Pman.Tab.AdminProjectMembers.js
[Pman.Admin] / Pman.Tab.AdminProjectMembers.js
index 5a6d4cd..1584d55 100644 (file)
@@ -33,12 +33,6 @@ Pman.Tab.AdminProjectMembers = new Roo.util.Observable({
         this.panel = parentLayout.addxtype({
             xtype: 'GridPanel',
             xns: Roo,
-            title : "Person",
-            fitToframe : true,
-            fitContainer : true,
-            tableName : 'Person',
-            background : true,
-            region : 'center',
             listeners : {
                 activate : function() {
                     _this.panel = this;
@@ -47,11 +41,15 @@ Pman.Tab.AdminProjectMembers = new Roo.util.Observable({
                     }
                 }
             },
+            background : true,
+            fitContainer : true,
+            fitToframe : true,
+            region : 'east',
+            tableName : 'Person',
+            title : "Person",
             grid : {
                 xtype: 'Grid',
                 xns: Roo.grid,
-                autoExpandColumn : 'name',
-                loadMask : true,
                 listeners : {
                     render : function() 
                     {
@@ -69,9 +67,41 @@ Pman.Tab.AdminProjectMembers = new Roo.util.Observable({
                         }); 
                     }
                 },
+                filter : 'S',
+                autoExpandColumn : 'name',
+                loadMask : true,
                 dataSource : {
                     xtype: 'Store',
                     xns: Roo.data,
+                    listeners : {
+                        beforeload : function (_self, options)
+                        {
+                            if (!_this.memberBtn) {
+                                return false;
+                            }
+                            options.params.project_member_filter = _this.memberBtn.pressed;
+                            var pm = Pman.Tab.AdminProjectManager;
+                            if (!pm || !pm.grid || !pm.grid.getSelectionModel().getSelected()) {
+                                return false;
+                            }
+                            var sel = pm.grid.getSelectionModel().getSelected();
+                            switch(_this.grid.filter) {
+                                case 'S': // staff
+                                    options.params.company_id_comptype='OWNER';
+                                    options.params.project_member_of = sel.data.id;
+                                    break;
+                                case 'O': // owner..
+                                    options.params.company_id = sel.data.owner_id;
+                                    options.params.project_member_of = sel.data.id;
+                                    break;
+                                case 'A': // not owner or staff..
+                                    options.params['!company_id'] = sel.data.owner_id;
+                                    options.params['!company_id_comptype'] ='OWNER';
+                                    options.params.project_member_of = sel.data.id;        
+                            }
+                            
+                        }
+                    },
                     remoteSort : true,
                     sortInfo : { field : 'name', direction: 'ASC' },
                     proxy : {
@@ -397,10 +427,10 @@ Pman.Tab.AdminProjectMembers = new Roo.util.Observable({
                 footer : {
                     xtype: 'PagingToolbar',
                     xns: Roo,
-                    pageSize : 25,
                     displayInfo : true,
-                    displayMsg : 'Displaying Person{0} - {1} of {2}',
-                    emptyMsg : 'No Person found'
+                    displayMsg : ' ',
+                    emptyMsg : 'No Person found',
+                    pageSize : 25
                 },
                 toolbar : {
                     xtype: 'Toolbar',
@@ -419,6 +449,7 @@ Pman.Tab.AdminProjectMembers = new Roo.util.Observable({
                                 }
                             },
                             enableToggle : true,
+                            pressed : true,
                             text : "Staff",
                             toggleGroup : 'appm'
                         },
@@ -453,6 +484,27 @@ Pman.Tab.AdminProjectMembers = new Roo.util.Observable({
                             enableToggle : true,
                             text : "Other",
                             toggleGroup : 'appm'
+                        },
+                        {
+                            xtype: 'Fill',
+                            xns: Roo.Toolbar
+                        },
+                        {
+                            xtype: 'Button',
+                            xns: Roo.Toolbar,
+                            listeners : {
+                                toggle : function (_self, pressed)
+                                {
+                                   
+                                    _this.grid.footer.onClick('first');
+                                },
+                                render : function (_self)
+                                {
+                                    _this.memberBtn = _self;
+                                }
+                            },
+                            enableToggle : true,
+                            text : "Members"
                         }
                     ]
                 },
@@ -468,9 +520,10 @@ Pman.Tab.AdminProjectMembers = new Roo.util.Observable({
                     {
                         xtype: 'ColumnModel',
                         xns: Roo.grid,
+                        dataIndex : 'name',
                         header : 'Name',
+                        sortable : true,
                         width : 200,
-                        dataIndex : 'name',
                         renderer : function(v) { return String.format('{0}', v); }
                     },
                     {
@@ -479,13 +532,15 @@ Pman.Tab.AdminProjectMembers = new Roo.util.Observable({
                         dataIndex : 'email',
                         header : 'Email',
                         width : 100,
-                        renderer : function(v) { return String.format('{0}', v); }
+                        renderer : function(v) { return String.format('{0}', v); },
+                        sortable : true
                     },
                     {
                         xtype: 'ColumnModel',
                         xns: Roo.grid,
                         dataIndex : 'company_id_name',
                         header : 'Company',
+                        sortable : true,
                         width : 120,
                         renderer : function(v) { return String.format('{0}', v); }
                     }