1.0 generic plugin

  1. #1

    1.0 generic plugin

    i have just updated from svn and this still exists

    i have this dataview with a generic plugin

    
    <Plugins>
         <ext:GenericPlugin ID="GenericPlugin1" runat="server" InstanceName="Ext.DataView.DragSelector"  />
    </Plugins>
    but when the page loads i'm getting this error

    <div role="listitem" class="errorTitle focusRow subLogRow ">missing ; before statement
    <div role="listitem" class="errorSourceBox errorSource-syntax focusRow subLogRow ">[img]chrome://firebug/content/blank.gif[/img]<a class="errorSource a11yFocus ">ataView.DragSelector({})new Ext.menu.Men...Event.confirmRequest({formProxyArg: "form

    and when you look at the generated html part of the script is this

    </a>this.uchrcaPublicQS_GenericPlugin1=new Ext.DataView.DragSelector({})new Ext.menu.Menu(......

    perhaps the error is cause by this part
    new Ext.DataView.DragSelector({})new Ext.menu.Menu(......

    no ";" generated after the plugin code
    <a class="errorSource a11yFocus ">
    this is the plugin code

    
    Ext.DataView.DragSelector = function(cfg){
        cfg = cfg || {};
        var view, regions, proxy, tracker;
        var rs, bodyRegion, dragRegion = new Ext.lib.Region(0,0,0,0);
        var dragSafe = cfg.dragSafe === true;
    
        this.init = function(dataView){
            view = dataView;
            view.on('render', onRender);
        };
    
        function fillRegions(){
            rs = [];
            view.all.each(function(el){
                rs[rs.length] = el.getRegion();
            });
            bodyRegion = view.el.getRegion();
        }
    
        function cancelClick(){
            return false;
        }
    
        function onBeforeStart(e){
            return !dragSafe || e.target == view.el.dom;
        }
    
        function onStart(e){
            view.on('containerclick', cancelClick, view, {single:true});
            if(!proxy){
                proxy = view.el.createChild({cls:'x-view-selector'});
            }else{
                proxy.setDisplayed('block');
            }
            fillRegions();
            view.clearSelections();
        }
    
        function onDrag(e){
            var startXY = tracker.startXY;
            var xy = tracker.getXY();
    
            var x = Math.min(startXY[0], xy[0]);
            var y = Math.min(startXY[1], xy[1]);
            var w = Math.abs(startXY[0] - xy[0]);
            var h = Math.abs(startXY[1] - xy[1]);
    
            dragRegion.left = x;
            dragRegion.top = y;
            dragRegion.right = x+w;
            dragRegion.bottom = y+h;
    
            dragRegion.constrainTo(bodyRegion);
            proxy.setRegion(dragRegion);
    
            for(var i = 0, len = rs.length; i < len; i++){
                var r = rs[i], sel = dragRegion.intersect(r);
                if(sel &amp;&amp; !r.selected){
                    r.selected = true;
                    view.select(i, true);
                }else if(!sel &amp;&amp; r.selected){
                    r.selected = false;
                    view.deselect(i);
                }
            }
        }
    
        function onEnd(e){
            if(proxy){
                proxy.setDisplayed(false);
            }
        }
    
        function onRender(view){
            tracker = new Ext.dd.DragTracker({
                onBeforeStart: onBeforeStart,
                onStart: onStart,
                onDrag: onDrag,
                onEnd: onEnd
            });
            tracker.initEl(view.el);
        }
    };
    </a>

  2. #2

    RE: 1.0 generic plugin

    Hi,

    Please provide test example. I have tested DataView example with DragSelector plugin and it works correctly for me
  3. #3

    RE: 1.0 generic plugin

    can i just email you the aspx page and the DLL or the full source file of the store extension?
  4. #4

    RE: 1.0 generic plugin

    here is the window with the dataview and the plugin

    
    
    <ext:Window ID="winPublicQS" runat="server" Hidden="true" Height="400" Width="500"
        ConstrainHeader="false" Maximizable="true" Title="Shared Checklists"  AutoScroll="true" AutoRender="false" >
        <Content>
            <ext:FitLayout ID="FitLayout1" runat="server">
                <Items>
                <ext:DataView ID="extdvPublicQS" runat="server" ItemSelector="div.thumbwrap" MultiSelect="false"
                    StoreID="extstorePublicQS" AutoHeight="true" OverClass="x-view-over" EmptyText="No items to display" SingleSelect="true" >
                    <Template ID="Template1" runat="server"  >
                        <tpl for=".">
                            <div class="thumbwrap" ext:id="{id}">
                                <div class="thumb" ><img class="thumb" src="{img_src}" title="{alt_text}" alt="{alt_text}"  />
    
                                {name}
                            
    
                        </tpl>
                        <div class="x-clear">
    
                    </Template>
                    <Plugins>
                        <ext:GenericPlugin ID="GenericPlugin1" runat="server" InstanceName="Ext.DataView.DragSelector"  />
                    </Plugins>
                    <CustomConfig>
                        <ext:ConfigItem Name="plugins" Value="new Ext.DataView.LabelEditor({dataIndex: 'name', allowEdit: 'permission'}, new Ext.form.TextField({
                                                                                                                                                            allowBlank: false,
                                                                                                                                                            growMin:90,
                                                                                                                                                            growMax:240,
                                                                                                                                                            grow:true,
                                                                                                                                                            selectOnFocus:true,
                                                                                                                                                            minLength: 1,
                                                                                                                                                            maxLength: 50, 
                                                                                                                                                            style: 'font-size:12px; font-family: tahoma,arial,helvetica,sans-serif'
                                                                                                                                                        }))" />
                    </CustomConfig>
                    <Listeners>
                        <ContextMenu Fn="createContext" />
                        <DblClick Fn="openChecklistContentWindow" />
                    </Listeners>
                </ext:DataView>
                </Items>
            </ext:FitLayout>
            <ext:Menu ID="ItemContextMenu" runat="server"  >
                <Items>
                    <ext:MenuItem ID="extmenuitemPublish" runat="server" Text="Publish" >
                        <DirectEvents>
                            <Click OnEvent="extmenuitem_Click" Success="bodyOnReady(wordWrap); "  Failure="Ext.Msg.alert('Error', 'Unable to Publish Checklist. ' + (result.errorMessage||''))" >
                                <EventMask Msg="Publishing..." ShowMask="true" Target="Page" />
                                <ExtraParams>
                                    <ext:Parameter Name="dvselected" Value="#{extdvPublicQS}.getSelectedRecords()[0].get('id')" Mode="Raw" />
                                    <ext:Parameter Name="functionality" Value="Publish" Mode="Value" />
                                </ExtraParams>
                            </Click>  
                        </DirectEvents>
                    </ext:MenuItem>
                    <ext:MenuSeparator ID="extmenusepPublish" runat="server" ></ext:MenuSeparator>
                    <ext:MenuItem ID="extmenuitemCO" runat="server" Text="Check Out For Edit">
                        <DirectEvents>
                            <Click OnEvent="extmenuitem_Click" Success="bodyOnReady(wordWrap); " Failure="Ext.Msg.alert('Error', 'Unable to Check Out Checklist. ' + (result.errorMessage||''))" >
                                <EventMask Msg="Processing..." ShowMask="true" Target="Page" />
                                <ExtraParams>
                                    <ext:Parameter Name="dvselected" Value="#{extdvPublicQS}.getSelectedRecords()[0].get('id')" Mode="Raw" />
                                    <ext:Parameter Name="functionality" Value="CO" Mode="Value" />
                                </ExtraParams>
                            </Click>  
                        </DirectEvents>
                    </ext:MenuItem>
                    <ext:MenuItem ID="extmenuitemCI" runat="server" Text="Check In" >
                        <DirectEvents>
                            <Click OnEvent="extmenuitem_Click" Success="bodyOnReady(wordWrap); " Failure="Ext.Msg.alert('Error', 'Unable to Check In Checklist. ' + (result.errorMessage||''))" >
                                <EventMask Msg="Processing..." ShowMask="true" Target="Page" />
                                <ExtraParams>
                                    <ext:Parameter Name="dvselected" Value="#{extdvPublicQS}.getSelectedRecords()[0].get('id')" Mode="Raw" />
                                    <ext:Parameter Name="functionality" Value="CI" Mode="Value" />
                                </ExtraParams>
                            </Click>  
                        </DirectEvents>
                    </ext:MenuItem>
                    <ext:MenuItem ID="extmenuitemUCO" runat="server" Text="Undo Checkout" >
                        <DirectEvents>
                            <Click OnEvent="extmenuitem_Click" Success="bodyOnReady(wordWrap); " Failure="Ext.Msg.alert('Error', 'Unable to Undo Checkout of Checklist. ' + (result.errorMessage||''))" >
                                <EventMask Msg="Processing..." ShowMask="true" Target="Page" />
                                <ExtraParams>
                                    <ext:Parameter Name="dvselected" Value="#{extdvPublicQS}.getSelectedRecords()[0].get('id')" Mode="Raw" />
                                    <ext:Parameter Name="functionality" Value="UCO" Mode="Value" />
                                </ExtraParams>
                            </Click>  
                        </DirectEvents>
                    </ext:MenuItem>
                    <ext:MenuSeparator ID="MenuSeparator1" runat="server" ></ext:MenuSeparator>
                    <ext:MenuItem ID="extmenuitemPermissions" runat="server" Text="Sharing and Permissions" >
                        <DirectEvents>
                            <Click OnEvent="extmenuitem_Click" Failure="Ext.Msg.alert('Error', 'Error encountered while opening Checklist Sharing and Permission window. ' + (result.errorMessage||''))" >
                                <EventMask Msg="Processing..." ShowMask="true" Target="Page" />  
                                <ExtraParams>
                                    <ext:Parameter Name="dvselected" Value="#{extdvPublicQS}.getSelectedRecords()[0].get('id')" Mode="Raw" />
                                    <ext:Parameter Name="functionality" Value="Permissions" Mode="Value" />
                                </ExtraParams>
                            </Click>  
                        </DirectEvents>
                    </ext:MenuItem>
                    <ext:MenuSeparator ID="MenuSeparator2" runat="server" ></ext:MenuSeparator>
                    <ext:MenuItem ID="extmenuitemAssignCompany" runat="server" Text="Assign to Company" >
                        <Listeners>
                            <Click Fn="showCompanyAssignmentDetails" />
                        </Listeners>
                         <%--<Menu>
                            <ext:Menu IgnoreParentClicks="true" runat="server" ID="extmenuAssignCompanies" ></ext:Menu>
                        </Menu>--%>
                    </ext:MenuItem>
                </Items>
            </ext:Menu>
        </Content>
        <%--<Listeners>
            <BeforeHide Handler="uchrcaPublicQS_extstorePublicQS.save();" />
        </Listeners>--%>
        <DirectEvents>
            <Show OnEvent="winPublicQS_Show" Success="el.body.setVisible(true); bodyOnReady(wordWrap, #{extdvPublicQS}); " >
                <EventMask ShowMask="true" Msg="Loading..." Target="This" />
            </Show>
        </DirectEvents>
        <Listeners>
            <BeforeShow Handler="el.body.setVisible(false);" />
        </Listeners>
    </ext:Window>
  5. #5

    RE: 1.0 generic plugin

    i got what's causing the error now


    if i set the name of the CustomPlugin's config item to "plugins", the error is occuring, otherwise there is no problem

    is this code correct?


    <CustomConfig>
        <ext:ConfigItem Name="plugins" Value="new Ext.DataView.LabelEditor({dataIndex: 'name'})" />
    </CustomConfig>
    because the following code is not allowed either


    
    <ext:GenericPlugin ID="GenericPlugin1" runat="server" InstanceOf="Ext.DataView.LabelEditor">
        <ExtraParams>
            <ext:Parameter Name="dataIndex" Value="name" />
        </ExtraParams>
    </ext:GenericPlugin>

  6. #6

    RE: 1.0 generic plugin

    Hi,

    Just use GenerigPlugin with CustomConfig (instead ExtraParams)
  7. #7

    RE: 1.0 generic plugin

    so i'll just make each parameter a config item?
  8. #8

    RE: 1.0 generic plugin

    Hi,

    No, just modify that javascript constructor. It should expects one argument only (config object), pass textfield inside config object

Similar Threads

  1. Is there an Ext Generic Control?
    By glenh in forum 1.x Help
    Replies: 0
    Last Post: May 27, 2012, 10:34 PM
  2. Creating a Generic Store
    By Fredrik in forum Examples and Extras
    Replies: 2
    Last Post: Nov 29, 2010, 5:30 PM
  3. [CLOSED] [1.0] Generic plugin not rendering
    By tdracz in forum 1.x Legacy Premium Help
    Replies: 2
    Last Post: Dec 11, 2009, 8:06 AM
  4. Generic Plugin Examples
    By Tbaseflug in forum 1.x Help
    Replies: 11
    Last Post: Jan 21, 2009, 8:34 PM
  5. generic plugin parameter
    By [WP]joju in forum 1.x Help
    Replies: 3
    Last Post: Nov 20, 2008, 7:35 AM

Posting Permissions