Fix #6666 - paging upgrade to bs4
authorAlan Knowles <alan@roojs.com>
Thu, 1 Apr 2021 07:05:57 +0000 (15:05 +0800)
committerAlan Knowles <alan@roojs.com>
Thu, 1 Apr 2021 07:05:57 +0000 (15:05 +0800)
Pman.Dialog.BAdminProject.bjs [new file with mode: 0644]
Pman.Tab.BAdminProject.bjs [new file with mode: 0644]
Pman.Tab.BAdminProject.js [new file with mode: 0644]
Pman.Tab.BAdminStaff.bjs
Pman.Tab.BAdminStaff.js
templates/Pman.Tab.BAdminStaff.html [new file with mode: 0644]

diff --git a/Pman.Dialog.BAdminProject.bjs b/Pman.Dialog.BAdminProject.bjs
new file mode 100644 (file)
index 0000000..ceadae0
--- /dev/null
@@ -0,0 +1,182 @@
+{
+ "name" : "Pman.Dialog.BAdminProject",
+ "parent" : "",
+ "title" : "",
+ "path" : "/home/alan/gitlive/Pman.BAdmin/Pman.Dialog.BAdminProject.bjs",
+ "permname" : "",
+ "modOrder" : "001",
+ "strings" : {
+  "ce8ae9da5b7cd6c3df2929543a9af92d" : "Email",
+  "adcd03ae20497ceeaae58901f1e67b53" : "Add / Edit Project",
+  "ae3a26601c99fb65404a473134b81b38" : "Job No / Code",
+  "577d7068826de925ea2aec01dbadf5e4" : "Client",
+  "3ec365dd533ddb7ef3d1c111186ce872" : "Details",
+  "ea4788705e6873b424c65e91c2846b19" : "Cancel",
+  "ac848fa228f49ba2b8a5fbd76596817d" : "Team",
+  "d9c693d3309dbee7de27e00f5ffa3993" : "Permission Group (only members of this group can view/edit)",
+  "49ee3087348e8d44e1feda1917443987" : "Name",
+  "bbbabdbe1b262f75d99d62880b953be1" : "Role",
+  "245fe794333c2b0d5c513129b346b93f" : "Project Type",
+  "c9cc8cce247e49bae79f15173ce97354" : "Save"
+ },
+ "named_strings" : {
+  "email_placeholder" : "ce8ae9da5b7cd6c3df2929543a9af92d",
+  "name_placeholder" : "49ee3087348e8d44e1feda1917443987",
+  "role_fieldLabel" : "245fe794333c2b0d5c513129b346b93f",
+  "name_fieldLabel" : "ae3a26601c99fb65404a473134b81b38",
+  "role_placeholder" : "bbbabdbe1b262f75d99d62880b953be1",
+  "phone_fieldLabel" : "d9c693d3309dbee7de27e00f5ffa3993",
+  "email_fieldLabel" : "577d7068826de925ea2aec01dbadf5e4"
+ },
+ "items" : [
+  {
+   "listeners" : {
+    "render" : "function (_self)\n{\n    _this.dialog = this;\n}"
+   },
+   "String cls" : "add-user-dialog",
+   "String size" : "xl",
+   "string fit_content" : true,
+   "xtype" : "Modal",
+   "int max_width" : 650,
+   "string max_height" : 680,
+   "$ xns" : "Roo.bootstrap",
+   "String title" : "Add / Edit Project",
+   "items" : [
+    {
+     "listeners" : {
+      "render" : "function (_self)\n{\n    _this.layout = _self;\n}"
+     },
+     "xtype" : "Border",
+     "$ xns" : "Roo.bootstrap.layout",
+     "items" : [
+      {
+       "xtype" : "Region",
+       "Boolean hideTabs" : true,
+       "$ xns" : "Roo.bootstrap.layout",
+       "* prop" : "center"
+      },
+      {
+       "listeners" : {
+        "render" : "function (_self)\n{\n    _this.detail_tab = _self;\n}"
+       },
+       "id" : "DetailPanel",
+       "Boolean fitContainer" : true,
+       "xtype" : "Content",
+       "Boolean fitToFrame" : true,
+       "$ xns" : "Roo.bootstrap.panel",
+       "String region" : "center",
+       "String title" : "Details",
+       "Boolean autoScroll" : true,
+       "Boolean background" : false,
+       "items" : [
+        {
+         "String cls" : "col-md-12",
+         "xtype" : "Container",
+         "$ xns" : "Roo.bootstrap",
+         "items" : [
+          {
+           "listeners" : {
+            "actioncomplete" : "function (_self, action)\n{\n    if(action.type == 'setdata'){\n        \n        \n        _this.dialog.resize();\n        \n        return;\n    }\n   \n    if (action.type == 'load') {\n        \n        _this.data = action.result.data;\n        \n       \n        return;\n    }\n    \n    if (action.type == 'submit') { // only submitted here if we are \n    \n        _this.dialog.hide();\n       \n        if (_this.callback) {\n            _this.callback.call(this, action.result.data);\n        }\n        \n        return;\n    }\n}",
+            "render" : "function (_self)\n{\n    _this.form = this;\n}"
+           },
+           "$ url" : "baseURL + '/Roo/core_person' ",
+           "String cls" : "p-4",
+           "xtype" : "Form",
+           "style" : "margin-top: 20px;",
+           "String labelAlign" : "top",
+           "$ xns" : "Roo.bootstrap",
+           "string errorMask" : true,
+           "items" : [
+            {
+             "String name" : "name",
+             "xtype" : "Input",
+             "string placeholder" : "Name",
+             "String labelAlign" : "left",
+             "string fieldLabel" : "Job No / Code",
+             "$ xns" : "Roo.bootstrap",
+             "Number labelWidth" : 150
+            },
+            {
+             "String name" : "role",
+             "xtype" : "Input",
+             "string placeholder" : "Role",
+             "string fieldLabel" : "Name",
+             "String labelAlign" : "left",
+             "$ xns" : "Roo.bootstrap",
+             "Number labelWidth" : 150
+            },
+            {
+             "String name" : "role",
+             "xtype" : "Input",
+             "string placeholder" : "Role",
+             "string fieldLabel" : "Project Type",
+             "String labelAlign" : "left",
+             "$ xns" : "Roo.bootstrap",
+             "Number labelWidth" : 150
+            },
+            {
+             "String name" : "email",
+             "xtype" : "Input",
+             "string placeholder" : "Email",
+             "String labelAlign" : "left",
+             "string fieldLabel" : "Client",
+             "$ xns" : "Roo.bootstrap",
+             "Number labelWidth" : 150
+            },
+            {
+             "String name" : "phone",
+             "xtype" : "Input",
+             "string fieldLabel" : "Team",
+             "String labelAlign" : "left",
+             "$ xns" : "Roo.bootstrap",
+             "Number labelWidth" : 150
+            },
+            {
+             "String name" : "phone",
+             "xtype" : "Input",
+             "string fieldLabel" : "Permission Group (only members of this group can view/edit)",
+             "String labelAlign" : "top",
+             "$ xns" : "Roo.bootstrap",
+             "Number labelWidth" : 150
+            },
+            {
+             "listeners" : {
+              "render" : "function (_self)\n{\n    _this.userID = _self;\n}"
+             },
+             "String name" : "id",
+             "xtype" : "Input",
+             "String labelAlign" : "left",
+             "String inputType" : "hidden",
+             "$ xns" : "Roo.bootstrap"
+            }
+           ]
+          }
+         ]
+        }
+       ]
+      }
+     ]
+    },
+    {
+     "listeners" : {
+      "click" : "function (_self, e)\n{\n    _this.dialog.hide(); \n}"
+     },
+     "xtype" : "Button",
+     "$ xns" : "Roo.bootstrap",
+     "String html" : "Cancel",
+     "* prop" : "buttons[]"
+    },
+    {
+     "listeners" : {
+      "click" : "function (_self, e)\n{\n    if(!_this.form.isValid()){\n        //Roo.bootstrap.MessageBox.alert('Error', 'Please Correct all the errors in red');\n        return;\n    }\n    \n    var myID = _this.form.findField('id').getValue() * 1;\n    var myName = _this.form.findField('name').getValue();\n\n    if (_this.form.findField('company_id') && !_this.form.findField('company_id').getValue()) {\n        Roo.bootstrap.MessageBox.alert(\"Error\", \"Select a Company\");\n        return;\n    }\n        \n       // validate password match (only needed if we are not using generated one..\n    if (_this.form.findField('passwd1') \n            && _this.form.findField('passwd1').getValue().length > 0 \n            && _this.form.findField('passwd1').inputEl().dom.type == \"password\") {\n            \n        var p1 = _this.form.findField('passwd1').getValue();\n        var p2 = _this.form.findField('passwd2').getValue();\n            \n            \n        if (Pman.Login.authUser.id < 0 && !p1.length) {\n            Roo.bootstrap.MessageBox.alert(\"Error\", \"You must create a password for the admin account\");\n            return;\n        }\n            \n            \n        if (p1.length || p2.length) {\n            if (p1 != p2) {\n                Roo.bootstrap.MessageBox.alert(\"Error\", \"Passwords do not match\");\n                return;\n            }\n        }\n            \n        \n    }\n    \n    // get the list of record with tick\n    \n    _this.form.doAction(\"submit\");\n    \n    return;\n\n}"
+     },
+     "String weight" : "primary",
+     "xtype" : "Button",
+     "$ xns" : "Roo.bootstrap",
+     "String html" : "Save",
+     "* prop" : "buttons[]"
+    }
+   ]
+  }
+ ]
+}
\ No newline at end of file
diff --git a/Pman.Tab.BAdminProject.bjs b/Pman.Tab.BAdminProject.bjs
new file mode 100644 (file)
index 0000000..37f8477
--- /dev/null
@@ -0,0 +1,253 @@
+{
+ "name" : "Pman.Tab.BAdminProject",
+ "parent" : "Pman.Tab.BAdmin",
+ "title" : "",
+ "path" : "/home/alan/gitlive/Pman.BAdmin/Pman.Tab.BAdminProject.bjs",
+ "permname" : "",
+ "modOrder" : "300",
+ "strings" : {
+  "54e1d44609e3abed11f6e1eb6ae54988" : "Projects",
+  "d7778d0c64b6ba21494c97f77a66885a" : "Filter",
+  "ec211f7c20af43e742bf2570c3cb84f9" : "Add",
+  "689202409e48743b914713f96d93947c" : "Value",
+  "e57c636e4888ae64d98a590c6d530f25" : "Job No.",
+  "bfa40db99e13ed2fe413ea8f1507cda9" : "Permission Group",
+  "1a11b1adc359c03db0ca798a00e2632c" : "Opened",
+  "f2a6c498fb90ee345d997f888fce3b18" : "Delete",
+  "49ee3087348e8d44e1feda1917443987" : "Name",
+  "dec0281615951933174d1bad72eeb180" : "Office / Team"
+ },
+ "items" : [
+  {
+   "xtype" : "Nest",
+   "$ xns" : "Roo.bootstrap.panel",
+   "String region" : "center",
+   "String title" : "Projects",
+   "items" : [
+    {
+     "xtype" : "Border",
+     "$ xns" : "Roo.bootstrap.layout",
+     "* prop" : "layout",
+     "items" : [
+      {
+       "xtype" : "Region",
+       "$ xns" : "Roo.bootstrap.layout",
+       "* prop" : "center"
+      },
+      {
+       "Number width" : 250,
+       "xtype" : "Region",
+       "$ xns" : "Roo.bootstrap.layout",
+       "* prop" : "west",
+       "Boolean split" : true
+      },
+      {
+       "xtype" : "Region",
+       "Number height" : 50,
+       "$ xns" : "Roo.bootstrap.layout",
+       "* prop" : "north"
+      },
+      {
+       "xtype" : "Content",
+       "String region" : "north",
+       "$ xns" : "Roo.bootstrap.panel",
+       "items" : [
+        {
+         "String type" : "pills",
+         "xtype" : "NavSimplebar",
+         "$ xns" : "Roo.bootstrap",
+         "items" : [
+          {
+           "String cls" : "mr-md-auto",
+           "xtype" : "Form",
+           "String align" : "right",
+           "$ xns" : "Roo.bootstrap",
+           "items" : [
+            {
+             "xtype" : "Input",
+             "$ xns" : "Roo.bootstrap"
+            },
+            {
+             "String weight" : "primary",
+             "xtype" : "Button",
+             "String fa" : "search",
+             "$ xns" : "Roo.bootstrap"
+            }
+           ]
+          },
+          {
+           "String type" : "pills",
+           "bool pilltype" : false,
+           "xtype" : "NavGroup",
+           "String align" : "right",
+           "$ xns" : "Roo.bootstrap",
+           "items" : [
+            {
+             "String button_weight" : "danger",
+             "String cls" : "ml-3 mr-0",
+             "xtype" : "NavItem",
+             "bool button_outline" : false,
+             "String fa" : "trash",
+             "$ xns" : "Roo.bootstrap",
+             "String html" : "Delete"
+            },
+            {
+             "listeners" : {
+              "click" : "function (e)\n{\n    Pman.Dialog.BAdminProject.show({});\n}"
+             },
+             "String button_weight" : "warning",
+             "String cls" : "ml-3 mr-0",
+             "xtype" : "NavItem",
+             "bool button_outline" : false,
+             "String fa" : "plus",
+             "$ xns" : "Roo.bootstrap",
+             "String html" : "Add"
+            }
+           ]
+          }
+         ]
+        }
+       ]
+      },
+      {
+       "listeners" : {
+        "activate" : "function (_self)\n{\n  this.grid.ds.load({});\n}"
+       },
+       "xtype" : "Grid",
+       "$ xns" : "Roo.bootstrap.panel",
+       "String region" : "west",
+       "items" : [
+        {
+         "listeners" : {
+          "render" : "function (_self)\n{\n    _this.grid = this;\n}"
+         },
+         "boolean striped" : true,
+         "xtype" : "Table",
+         "Boolean rowSelection" : true,
+         "$ xns" : "Roo.bootstrap",
+         "* prop" : "grid",
+         "items" : [
+          {
+           "listeners" : {
+            "selectionchange" : "function (_self)\n{\n    _this.addBtn.hide();\n    _this.removeBtn.hide();\n\n    var s = this.getSelected();\n    if (!s) { return; }\n\n    _this.preview.setUrl( baseURL + '/Preview/' + s.data.id + '.html'); \n    \n    if (s.data.is_approved) { \n        _this.removeBtn.show();\n    } else {\n        _this.addBtn.show();\n    }\n    \n}"
+           },
+           "Boolean singleSelect" : true,
+           "xtype" : "RowSelectionModel",
+           "$ xns" : "Roo.bootstrap.Table",
+           "* prop" : "sm"
+          },
+          {
+           "$ Array fields" : "[ 'filter' , 'value' ]",
+           "$ Array data" : "[\n    [ 'Job No:', '' ],\n    [ 'Office:', '' ],\n    [ 'Team Leader:', '' ],\n    [ 'Status:', '' ] \n]",
+           "boolean isLocal" : true,
+           "xtype" : "SimpleStore",
+           "$ xns" : "Roo.data",
+           "* prop" : "store"
+          },
+          {
+           "String header" : "Filter",
+           "String dataIndex" : "filter",
+           "xtype" : "ColumnModel",
+           "$ xns" : "Roo.grid",
+           "* prop" : "cm[]",
+           "Number sm" : 6
+          },
+          {
+           "String header" : "Value",
+           "String dataIndex" : "value",
+           "$ Function renderer" : "function(v,x,r) {\n    \n    return v;\n}",
+           "xtype" : "ColumnModel",
+           "$ xns" : "Roo.grid",
+           "* prop" : "cm[]",
+           "Number sm" : 6
+          }
+         ]
+        }
+       ]
+      },
+      {
+       "listeners" : {
+        "activate" : "function (_self)\n{\n    this.grid.ds.load({});\n}"
+       },
+       "xtype" : "Grid",
+       "String region" : "center",
+       "$ xns" : "Roo.bootstrap.panel",
+       "items" : [
+        {
+         "listeners" : {
+          "render" : "function (_self)\n{\n    _this.grid = this;\n}",
+          "rowclick" : "function (_self, el, rowIndex, e)\n{\n    Pman.Dialog.BAdminProject.show({});\n}"
+         },
+         "boolean striped" : true,
+         "xtype" : "Table",
+         "Boolean rowSelection" : true,
+         "$ xns" : "Roo.bootstrap",
+         "* prop" : "grid",
+         "items" : [
+          {
+           "listeners" : {
+            "selectionchange" : "function (_self)\n{\n \n}"
+           },
+           "Boolean singleSelect" : true,
+           "xtype" : "RowSelectionModel",
+           "$ xns" : "Roo.bootstrap.Table",
+           "* prop" : "sm"
+          },
+          {
+           "$ Array fields" : "[ 'filter' , 'value' ]",
+           "$ Array data" : "[\n    [ 'Project:', '' ],\n    [ 'ER No.:', '' ],\n    [ 'School Code:', '' ],\n    [ 'District:', '' ] \n]",
+           "boolean isLocal" : true,
+           "xtype" : "SimpleStore",
+           "$ xns" : "Roo.data",
+           "* prop" : "store"
+          },
+          {
+           "String header" : "Job No.",
+           "String dataIndex" : "fname",
+           "xtype" : "ColumnModel",
+           "$ xns" : "Roo.grid",
+           "* prop" : "cm[]",
+           "Number sm" : 1
+          },
+          {
+           "String header" : "Name",
+           "String dataIndex" : "fname",
+           "xtype" : "ColumnModel",
+           "$ xns" : "Roo.grid",
+           "* prop" : "cm[]",
+           "Number sm" : 5
+          },
+          {
+           "String header" : "Office / Team",
+           "String dataIndex" : "fname",
+           "xtype" : "ColumnModel",
+           "$ xns" : "Roo.grid",
+           "* prop" : "cm[]",
+           "Number sm" : 2
+          },
+          {
+           "String header" : "Opened",
+           "String dataIndex" : "fname",
+           "xtype" : "ColumnModel",
+           "$ xns" : "Roo.grid",
+           "* prop" : "cm[]",
+           "Number sm" : 2
+          },
+          {
+           "String header" : "Permission Group",
+           "String dataIndex" : "fname",
+           "xtype" : "ColumnModel",
+           "$ xns" : "Roo.grid",
+           "* prop" : "cm[]",
+           "Number sm" : 2
+          }
+         ]
+        }
+       ]
+      }
+     ]
+    }
+   ]
+  }
+ ]
+}
\ No newline at end of file
diff --git a/Pman.Tab.BAdminProject.js b/Pman.Tab.BAdminProject.js
new file mode 100644 (file)
index 0000000..4a3b761
--- /dev/null
@@ -0,0 +1,319 @@
+//<script type="text/javascript">
+
+// Auto generated file - created by app.Builder.js- do not edit directly (at present!)
+
+Roo.namespace('Pman.Tab');
+
+Pman.Tab.BAdminProject = new Roo.XComponent({
+
+ _strings : {
+  '54e1d44609e3abed11f6e1eb6ae54988' :"Projects",
+  'd7778d0c64b6ba21494c97f77a66885a' :"Filter",
+  'ec211f7c20af43e742bf2570c3cb84f9' :"Add",
+  '689202409e48743b914713f96d93947c' :"Value",
+  'e57c636e4888ae64d98a590c6d530f25' :"Job No.",
+  'bfa40db99e13ed2fe413ea8f1507cda9' :"Permission Group",
+  '1a11b1adc359c03db0ca798a00e2632c' :"Opened",
+  'f2a6c498fb90ee345d997f888fce3b18' :"Delete",
+  '49ee3087348e8d44e1feda1917443987' :"Name",
+  'dec0281615951933174d1bad72eeb180' :"Office / Team"
+ },
+
+  part     :  ["BAdmin", "Project" ],
+  order    : '300-Pman.Tab.BAdminProject',
+  region   : 'center',
+  parent   : 'Pman.Tab.BAdmin',
+  name     : "unnamed module",
+  disabled : false, 
+  permname : '', 
+  _tree : function(_data)
+  {
+   var _this = this;
+   var MODULE = this;
+   return {
+   xtype : 'Nest',
+   region : 'center',
+   title : _this._strings['54e1d44609e3abed11f6e1eb6ae54988'] /* Projects */,
+   xns : Roo.bootstrap.panel,
+   '|xns' : 'Roo.bootstrap.panel',
+   layout : {
+    xtype : 'Border',
+    xns : Roo.bootstrap.layout,
+    '|xns' : 'Roo.bootstrap.layout',
+    center : {
+     xtype : 'Region',
+     xns : Roo.bootstrap.layout,
+     '|xns' : 'Roo.bootstrap.layout'
+    },
+    west : {
+     xtype : 'Region',
+     split : true,
+     width : 250,
+     xns : Roo.bootstrap.layout,
+     '|xns' : 'Roo.bootstrap.layout'
+    },
+    north : {
+     xtype : 'Region',
+     height : 50,
+     xns : Roo.bootstrap.layout,
+     '|xns' : 'Roo.bootstrap.layout'
+    },
+    items  : [
+     {
+      xtype : 'Content',
+      region : 'north',
+      xns : Roo.bootstrap.panel,
+      '|xns' : 'Roo.bootstrap.panel',
+      items  : [
+       {
+        xtype : 'NavSimplebar',
+        type : 'pills',
+        xns : Roo.bootstrap,
+        '|xns' : 'Roo.bootstrap',
+        items  : [
+         {
+          xtype : 'Form',
+          align : 'right',
+          cls : 'mr-md-auto',
+          xns : Roo.bootstrap,
+          '|xns' : 'Roo.bootstrap',
+          items  : [
+           {
+            xtype : 'Input',
+            xns : Roo.bootstrap,
+            '|xns' : 'Roo.bootstrap'
+           },
+           {
+            xtype : 'Button',
+            fa : 'search',
+            weight : 'primary',
+            xns : Roo.bootstrap,
+            '|xns' : 'Roo.bootstrap'
+           }
+          ]
+         },
+         {
+          xtype : 'NavGroup',
+          align : 'right',
+          pilltype : false,
+          type : 'pills',
+          xns : Roo.bootstrap,
+          '|xns' : 'Roo.bootstrap',
+          items  : [
+           {
+            xtype : 'NavItem',
+            button_outline : false,
+            button_weight : 'danger',
+            cls : 'ml-3 mr-0',
+            fa : 'trash',
+            html : _this._strings['f2a6c498fb90ee345d997f888fce3b18'] /* Delete */,
+            xns : Roo.bootstrap,
+            '|xns' : 'Roo.bootstrap'
+           },
+           {
+            xtype : 'NavItem',
+            button_outline : false,
+            button_weight : 'warning',
+            cls : 'ml-3 mr-0',
+            fa : 'plus',
+            html : _this._strings['ec211f7c20af43e742bf2570c3cb84f9'] /* Add */,
+            listeners : {
+             click : function (e)
+              {
+                  Pman.Dialog.BAdminProject.show({});
+              }
+            },
+            xns : Roo.bootstrap,
+            '|xns' : 'Roo.bootstrap'
+           }
+          ]
+         }
+        ]
+       }
+      ]
+     },
+     {
+      xtype : 'Grid',
+      region : 'west',
+      listeners : {
+       activate : function (_self)
+        {
+          this.grid.ds.load({});
+        }
+      },
+      xns : Roo.bootstrap.panel,
+      '|xns' : 'Roo.bootstrap.panel',
+      grid : {
+       xtype : 'Table',
+       rowSelection : true,
+       striped : true,
+       listeners : {
+        render : function (_self)
+         {
+             _this.grid = this;
+         }
+       },
+       xns : Roo.bootstrap,
+       '|xns' : 'Roo.bootstrap',
+       store : {
+        xtype : 'SimpleStore',
+        data : [
+            [ 'Job No:', '' ],
+            [ 'Office:', '' ],
+            [ 'Team Leader:', '' ],
+            [ 'Status:', '' ] 
+        ],
+        fields : [ 'filter' , 'value' ],
+        isLocal : true,
+        xns : Roo.data,
+        '|xns' : 'Roo.data'
+       },
+       sm : {
+        xtype : 'RowSelectionModel',
+        singleSelect : true,
+        listeners : {
+         selectionchange : function (_self)
+          {
+              _this.addBtn.hide();
+              _this.removeBtn.hide();
+          
+              var s = this.getSelected();
+              if (!s) { return; }
+          
+              _this.preview.setUrl( baseURL + '/Preview/' + s.data.id + '.html'); 
+              
+              if (s.data.is_approved) { 
+                  _this.removeBtn.show();
+              } else {
+                  _this.addBtn.show();
+              }
+              
+          }
+        },
+        xns : Roo.bootstrap.Table,
+        '|xns' : 'Roo.bootstrap.Table'
+       },
+       cm : [
+        {
+         xtype : 'ColumnModel',
+         dataIndex : 'filter',
+         header : _this._strings['d7778d0c64b6ba21494c97f77a66885a'] /* Filter */,
+         sm : 6,
+         xns : Roo.grid,
+         '|xns' : 'Roo.grid'
+        },
+        {
+         xtype : 'ColumnModel',
+         dataIndex : 'value',
+         header : _this._strings['689202409e48743b914713f96d93947c'] /* Value */,
+         renderer : function(v,x,r) {
+             
+             return v;
+         },
+         sm : 6,
+         xns : Roo.grid,
+         '|xns' : 'Roo.grid'
+        }
+       ]
+      }
+     },
+     {
+      xtype : 'Grid',
+      region : 'center',
+      listeners : {
+       activate : function (_self)
+        {
+            this.grid.ds.load({});
+        }
+      },
+      xns : Roo.bootstrap.panel,
+      '|xns' : 'Roo.bootstrap.panel',
+      grid : {
+       xtype : 'Table',
+       rowSelection : true,
+       striped : true,
+       listeners : {
+        render : function (_self)
+         {
+             _this.grid = this;
+         },
+        rowclick : function (_self, el, rowIndex, e)
+         {
+             Pman.Dialog.BAdminProject.show({});
+         }
+       },
+       xns : Roo.bootstrap,
+       '|xns' : 'Roo.bootstrap',
+       store : {
+        xtype : 'SimpleStore',
+        data : [
+            [ 'Project:', '' ],
+            [ 'ER No.:', '' ],
+            [ 'School Code:', '' ],
+            [ 'District:', '' ] 
+        ],
+        fields : [ 'filter' , 'value' ],
+        isLocal : true,
+        xns : Roo.data,
+        '|xns' : 'Roo.data'
+       },
+       sm : {
+        xtype : 'RowSelectionModel',
+        singleSelect : true,
+        listeners : {
+         selectionchange : function (_self)
+          {
+           
+          }
+        },
+        xns : Roo.bootstrap.Table,
+        '|xns' : 'Roo.bootstrap.Table'
+       },
+       cm : [
+        {
+         xtype : 'ColumnModel',
+         dataIndex : 'fname',
+         header : _this._strings['e57c636e4888ae64d98a590c6d530f25'] /* Job No. */,
+         sm : 1,
+         xns : Roo.grid,
+         '|xns' : 'Roo.grid'
+        },
+        {
+         xtype : 'ColumnModel',
+         dataIndex : 'fname',
+         header : _this._strings['49ee3087348e8d44e1feda1917443987'] /* Name */,
+         sm : 5,
+         xns : Roo.grid,
+         '|xns' : 'Roo.grid'
+        },
+        {
+         xtype : 'ColumnModel',
+         dataIndex : 'fname',
+         header : _this._strings['dec0281615951933174d1bad72eeb180'] /* Office / Team */,
+         sm : 2,
+         xns : Roo.grid,
+         '|xns' : 'Roo.grid'
+        },
+        {
+         xtype : 'ColumnModel',
+         dataIndex : 'fname',
+         header : _this._strings['1a11b1adc359c03db0ca798a00e2632c'] /* Opened */,
+         sm : 2,
+         xns : Roo.grid,
+         '|xns' : 'Roo.grid'
+        },
+        {
+         xtype : 'ColumnModel',
+         dataIndex : 'fname',
+         header : _this._strings['bfa40db99e13ed2fe413ea8f1507cda9'] /* Permission Group */,
+         sm : 2,
+         xns : Roo.grid,
+         '|xns' : 'Roo.grid'
+        }
+       ]
+      }
+     }
+    ]
+   }
+  };  }
+});
index b81e5e4..f966a72 100644 (file)
@@ -2,18 +2,20 @@
  "name" : "Pman.Tab.BAdminStaff",
  "parent" : "Pman.Tab.BAdmin",
  "title" : "",
- "path" : "/home/edward/gitlive/Pman.BAdmin/Pman.Tab.BAdminStaff.bjs",
+ "path" : "/home/alan/gitlive/Pman.BAdmin/Pman.Tab.BAdminStaff.bjs",
  "permname" : "",
  "modOrder" : "003",
  "strings" : {
-  "b15aafc19dc2ba4b788adf77268d8ca4" : "Hide Inactive",
+  "cdb6b6bab1fd18b9dbfe3fb84a5d34ae" : "<i class=\"fa fa-search\"></i>",
   "ce8ae9da5b7cd6c3df2929543a9af92d" : "Email",
+  "b15aafc19dc2ba4b788adf77268d8ca4" : "Hide Inactive",
   "f29c99f082755399839b64ebaf9f608a" : "List / View",
   "4f3cdff2e6a5e08440be182ef40d93f7" : "Print / Export",
   "ec211f7c20af43e742bf2570c3cb84f9" : "Add",
   "a37ede293936e29279ed543129451ec3" : "Groups",
   "7dce122004969d56ae2e0245cb754d35" : "Edit",
   "05b763f7d24f32575493b3c23f299b0e" : "Add To Group",
+  "9bac86fd9f499d47cea5f2fd70d701c1" : "search for account",
   "e0a7cc944485bdedafb92b0cf98632fa" : "Remove From Group",
   "bcc254b55c4a1babdf1dcb82c207506b" : "Phone",
   "25f57527ae8a27c94fb5230b5486c743" : "Permission List",
                  "xtype" : "Row",
                  "$ xns" : "Roo.bootstrap",
                  "items" : [
+                  {
+                   "Number md" : 3,
+                   "xtype" : "Column",
+                   "$ xns" : "Roo.bootstrap",
+                   "items" : [
+                    {
+                     "listeners" : {
+                      "specialkey" : "function (_self, e)\n{    \n     if(e.keyCode == e.ENTER) {\n        if (_this.member_grid) {\n            _this.member_grid.footer.onClick('first'); \n        }\n    \n    }\n    \n}",
+                      "render" : "function (_self)\n{\n    _this.searchBox = this;\n}"
+                     },
+                     "xtype" : "Input",
+                     "string placeholder" : "search for account",
+                     "$ xns" : "Roo.bootstrap",
+                     "items" : [
+                      {
+                       "listeners" : {
+                        "click" : "function (_self, e)\n{\n    _this.member_grid.footer.onClick('first');\n}"
+                       },
+                       "xtype" : "Button",
+                       "$ xns" : "Roo.bootstrap",
+                       "String html" : "<i class=\"fa fa-search\"></i>",
+                       "* prop" : "after"
+                      }
+                     ]
+                    }
+                   ]
+                  },
                   {
                    "Number md" : 9,
+                   "String cls" : "text-right",
                    "xtype" : "Column",
                    "$ xns" : "Roo.bootstrap",
                    "items" : [
                      "String glyphicon" : "user"
                     }
                    ]
-                  },
-                  {
-                   "Number md" : 3,
-                   "String cls" : "text-right",
-                   "xtype" : "Column",
-                   "$ xns" : "Roo.bootstrap",
-                   "items" : [
-                    {
-                     "listeners" : {
-                      "toggle" : "function (_self, e, pressed)\n{\n    this.setText(this.pressed ? this._ontext : this._offtext);\n\n    _this.member_grid.footer.onClick('first');\n    \n    return;\n    \n}",
-                      "render" : "function (_self)\n{\n    _this.footerActiveBtn = this;\n}"
-                     },
-                     "String cls" : "roo-toolbar-button",
-                     "String _offtext" : "Show Inactive",
-                     "String weight" : "default",
-                     "bool pressed" : false,
-                     "xtype" : "Button",
-                     "String _ontext" : "Hide Inactive",
-                     "$ xns" : "Roo.bootstrap",
-                     "String html" : "Show Inactive",
-                     "string name" : "activeButton"
-                    }
-                   ]
                   }
                  ]
                 }
           {
            "listeners" : {
             "update" : "function (_self, record, operation)\n{\n    if (operation != 'commit') {\n        return;\n    }\n    // only used to change active status.\n     \n    new Pman.Request({\n        url : baseURL + '/Roo/core_person',\n        method :'POST',\n        params : {\n            id : record.data.id,\n            active: record.data.active\n            \n        },\n        success : function() {\n            // do nothing\n            \n        },\n        failure : function() \n        {\n            /*Roo.bootstrap.MessageBox.alert(\"Error\", \"saving failed\", function() {\n                _this.grid.footer.onClick('first');\n            });*/\n        }\n    });\n}",
-            "beforeload" : "function (_self, options)\n{\n    if (!Pman.buildCompleted) {\n        return false;\n    }\n    options.params = options.params || {};\n    \n    //options.params['query[type]'] = 0;\n    //options.params.active = 1;\n    \n    if(!_this.group_grid){\n        this.removeAll();\n        return false;\n    }\n    \n    var group = _this.group_grid.getSelectionModel().getSelected();\n    \n    if(!group){\n        this.removeAll();\n        return false;\n    }\n    \n    if(_this.footerActiveBtn && !_this.footerActiveBtn.pressed){\n        options.params.active = 1;\n    }\n    \n    options.params['query[in_group]'] = group.data.id;\n  \n}",
+            "beforeload" : "function (_self, options)\n{\n    if (!Pman.buildCompleted) {\n        return false;\n    }\n    options.params = options.params || {};\n    \n    //options.params['query[type]'] = 0;\n    //options.params.active = 1;\n    \n    if(!_this.group_grid){\n        this.removeAll();\n        return false;\n    }\n    \n    var group = _this.group_grid.getSelectionModel().getSelected();\n    \n    if(!group){\n        this.removeAll();\n        return false;\n    }\n    \n    if(_this.footerActiveBtn && !_this.footerActiveBtn.pressed){\n        options.params.active = 1;\n    }\n    \n    \n    options.params['query[name]'] =    _this.searchBox.getValue();\n    \n    options.params['query[in_group]'] = group.data.id;\n  \n}",
             "load" : "function (_self, records, options)\n{\n    _this.edit_btn.el.hide();\n    _this.delete_btn.el.hide();\n    _this.addToGroupBtn.el.hide();\n    _this.removeFromGroupBtn.el.hide();\n    _this.switch_btn.el.hide();\n    \n    options.params.active = 1;\n    \n\n    \n}"
            },
            "xtype" : "Store",
            "xtype" : "PagingToolbar",
            "$ xns" : "Roo.bootstrap",
            "* prop" : "footer",
-           "string name" : "footer"
+           "string name" : "footer",
+           "items" : [
+            {
+             "listeners" : {
+              "toggle" : "function (_self, e, pressed)\n{\n    this.setText(this.pressed ? this._ontext : this._offtext);\n\n    _this.member_grid.footer.onClick('first');\n    \n    return;\n    \n}",
+              "render" : "function (_self)\n{\n    _this.footerActiveBtn = this;\n}"
+             },
+             "String cls" : "roo-toolbar-button",
+             "String _offtext" : "Show Inactive",
+             "String weight" : "default",
+             "bool pressed" : false,
+             "xtype" : "Button",
+             "String _ontext" : "Hide Inactive",
+             "$ xns" : "Roo.bootstrap",
+             "String html" : "Show Inactive",
+             "* prop" : "buttons[]",
+             "string name" : "activeButton"
+            }
+           ]
           }
          ]
         }
           "cellclick" : "function (_self, el, rowIndex, columnIndex, e)\n{\n    var di = _this.permission_grid.colModel.getDataIndex(columnIndex);\n    \n    var r = _this.permission_grid.store.getAt(rowIndex);\n    \n    if(di == 'rightname' || di == 'descript' || r.data.id * 1 < 1) {\n        return;\n    }\n    \n    if(di == 'id'){\n        \n        var accessmask = r.data.accessmask.split('').sort().join('');\n        var fullmask = r.data.FullMask.split('').sort().join('');\n        \n        r.set('accessmask', (accessmask == fullmask) ? '' : r.data.FullMask);\n        \n        r.commit();\n        \n        return;\n    }\n    \n    var mapping = {\n        'add' : 'A',\n        'edit' : 'E',\n        'delete' : 'D',\n        'view' : 'S',\n        'print' : 'P'\n    };\n    \n    var target = mapping[di];\n    \n    if(r.data.FullMask.indexOf(target) === -1){\n        return;\n    }\n    \n    var accessmask = r.data.accessmask.split('');\n    \n    if(accessmask.indexOf(target) !== -1){\n        accessmask.splice(accessmask.indexOf(target), 1);\n    } else {\n        accessmask.push(target);\n    }\n    \n    r.set('accessmask', accessmask.sort().join(''));\n    \n    r.commit();\n    \n}",
           "render" : "function (_self)\n{\n    _this.permission_grid = this;\n    \n    if(_this.permission_panel.active) {\n        (function(){\n            _this.permission_grid.store.load({});\n        }).defer(50);\n    }\n}"
          },
+         "String cls" : "table-fixed",
          "Boolean footerShow" : false,
          "Boolean cellSelection" : true,
-         "String cls" : "table-fixed",
          "boolean striped" : true,
          "boolean hover" : true,
          "xtype" : "Table",
index 19ce651..430a0bb 100644 (file)
@@ -7,14 +7,16 @@ Roo.namespace('Pman.Tab');
 Pman.Tab.BAdminStaff = new Roo.XComponent({
 
  _strings : {
-  'b15aafc19dc2ba4b788adf77268d8ca4' :"Hide Inactive",
+  'cdb6b6bab1fd18b9dbfe3fb84a5d34ae' :"<i class=\"fa fa-search\"></i>",
   'ce8ae9da5b7cd6c3df2929543a9af92d' :"Email",
+  'b15aafc19dc2ba4b788adf77268d8ca4' :"Hide Inactive",
   'f29c99f082755399839b64ebaf9f608a' :"List / View",
   '4f3cdff2e6a5e08440be182ef40d93f7' :"Print / Export",
   'ec211f7c20af43e742bf2570c3cb84f9' :"Add",
   'a37ede293936e29279ed543129451ec3' :"Groups",
   '7dce122004969d56ae2e0245cb754d35' :"Edit",
   '05b763f7d24f32575493b3c23f299b0e' :"Add To Group",
+  '9bac86fd9f499d47cea5f2fd70d701c1' :"search for account",
   'e0a7cc944485bdedafb92b0cf98632fa' :"Remove From Group",
   'bcc254b55c4a1babdf1dcb82c207506b' :"Phone",
   '25f57527ae8a27c94fb5230b5486c743' :"Permission List",
@@ -141,6 +143,49 @@ Pman.Tab.BAdminStaff = new Roo.XComponent({
                items  : [
                 {
                  xtype : 'Column',
+                 md : 3,
+                 xns : Roo.bootstrap,
+                 '|xns' : 'Roo.bootstrap',
+                 items  : [
+                  {
+                   xtype : 'Input',
+                   placeholder : _this._strings['9bac86fd9f499d47cea5f2fd70d701c1'] /* search for account */,
+                   listeners : {
+                    render : function (_self)
+                     {
+                         _this.searchBox = this;
+                     },
+                    specialkey : function (_self, e)
+                     {    
+                          if(e.keyCode == e.ENTER) {
+                             if (_this.member_grid) {
+                                 _this.member_grid.footer.onClick('first'); 
+                             }
+                         
+                         }
+                         
+                     }
+                   },
+                   xns : Roo.bootstrap,
+                   '|xns' : 'Roo.bootstrap',
+                   after : {
+                    xtype : 'Button',
+                    html : _this._strings['cdb6b6bab1fd18b9dbfe3fb84a5d34ae'] /* <i class="fa fa-search"></i> */,
+                    listeners : {
+                     click : function (_self, e)
+                      {
+                          _this.member_grid.footer.onClick('first');
+                      }
+                    },
+                    xns : Roo.bootstrap,
+                    '|xns' : 'Roo.bootstrap'
+                   }
+                  }
+                 ]
+                },
+                {
+                 xtype : 'Column',
+                 cls : 'text-right',
                  md : 9,
                  xns : Roo.bootstrap,
                  '|xns' : 'Roo.bootstrap',
@@ -411,42 +456,6 @@ Pman.Tab.BAdminStaff = new Roo.XComponent({
                    '|xns' : 'Roo.bootstrap'
                   }
                  ]
-                },
-                {
-                 xtype : 'Column',
-                 cls : 'text-right',
-                 md : 3,
-                 xns : Roo.bootstrap,
-                 '|xns' : 'Roo.bootstrap',
-                 items  : [
-                  {
-                   xtype : 'Button',
-                   cls : 'roo-toolbar-button',
-                   html : _this._strings['5bc3fd20294c17c9803942958fd7f26d'] /* Show Inactive */,
-                   name : 'activeButton',
-                   _offtext : _this._strings['5bc3fd20294c17c9803942958fd7f26d'] /* Show Inactive */,
-                   _ontext : _this._strings['b15aafc19dc2ba4b788adf77268d8ca4'] /* Hide Inactive */,
-                   pressed : false,
-                   weight : 'default',
-                   listeners : {
-                    render : function (_self)
-                     {
-                         _this.footerActiveBtn = this;
-                     },
-                    toggle : function (_self, e, pressed)
-                     {
-                         this.setText(this.pressed ? this._ontext : this._offtext);
-                     
-                         _this.member_grid.footer.onClick('first');
-                         
-                         return;
-                         
-                     }
-                   },
-                   xns : Roo.bootstrap,
-                   '|xns' : 'Roo.bootstrap'
-                  }
-                 ]
                 }
                ]
               }
@@ -522,7 +531,36 @@ Pman.Tab.BAdminStaff = new Roo.XComponent({
         name : 'footer',
         pageSize : 25,
         xns : Roo.bootstrap,
-        '|xns' : 'Roo.bootstrap'
+        '|xns' : 'Roo.bootstrap',
+        buttons : [
+         {
+          xtype : 'Button',
+          cls : 'roo-toolbar-button',
+          html : _this._strings['5bc3fd20294c17c9803942958fd7f26d'] /* Show Inactive */,
+          name : 'activeButton',
+          _offtext : _this._strings['5bc3fd20294c17c9803942958fd7f26d'] /* Show Inactive */,
+          _ontext : _this._strings['b15aafc19dc2ba4b788adf77268d8ca4'] /* Hide Inactive */,
+          pressed : false,
+          weight : 'default',
+          listeners : {
+           render : function (_self)
+            {
+                _this.footerActiveBtn = this;
+            },
+           toggle : function (_self, e, pressed)
+            {
+                this.setText(this.pressed ? this._ontext : this._offtext);
+            
+                _this.member_grid.footer.onClick('first');
+                
+                return;
+                
+            }
+          },
+          xns : Roo.bootstrap,
+          '|xns' : 'Roo.bootstrap'
+         }
+        ]
        },
        store : {
         xtype : 'Store',
@@ -555,6 +593,9 @@ Pman.Tab.BAdminStaff = new Roo.XComponent({
                   options.params.active = 1;
               }
               
+              
+              options.params['query[name]'] =    _this.searchBox.getValue();
+              
               options.params['query[in_group]'] = group.data.id;
             
           },
diff --git a/templates/Pman.Tab.BAdminStaff.html b/templates/Pman.Tab.BAdminStaff.html
new file mode 100644 (file)
index 0000000..21bc76c
--- /dev/null
@@ -0,0 +1,230 @@
+  
+       
+         
+    
+
+        
+  <DIV class=" roo-layout-region roo-layout-panel roo-layout-panel-center" xbuilderid="roo-gen6" style="left: 0px; top: 0px; width: 1142px; height: 723px;">
+    <DIV unselectable="on" class="roo-unselectable roo-layout-panel-hd breadcrumb roo-layout-title-center" xbuilderid="roo-gen7" style="display: none;">
+      <SPAN class="roo-unselectable roo-layout-panel-hd-text" unselectable="on">Account Management</SPAN>
+      <DIV class="roo-unselectable roo-layout-panel-hd-tools" unselectable="on" xbuilderid="roo-gen8"></DIV>
+    </DIV>
+    <DIV class="roo-layout-panel-body tab-content roo-tabs-top" xbuilderid="roo-gen9" style="overflow: hidden; height: 723px;">
+      <NAV class="navbar-light bg-light" xbuilderid="roo-gen24">
+        <UL class="nav nav-tabs" role="tablist" xbuilderid="roo-gen25" style="display: none;">
+          <LI class="nav-item" xbuilderid="roo-gen28">
+            <A class="nav-link active" href="#" unselectable="on" title="" xbuilderid="roo-gen27">Account Management</A>
+          </LI>
+        </UL>
+      </NAV>
+      <DIV id="tab-body26" class=" tab-content roo-layout-tabs-body" style="position: relative; height: 723px;">
+        <DIV xbuilderid="roo-gen10" class=" roo-layout-container roo-layout-nested-layout tab-pane roo-layout-active-content" xtype="Roo.bootstrap.panel.Nest" style="position: relative; display: block; zoom: 1; visibility: visible; width: 1142px; height: 723px;">
+          <DIV class=" roo-layout-region roo-layout-panel roo-layout-panel-center" xbuilderid="roo-gen13" style="left: 255px; top: 0px; width: 887px; height: 723px;">
+            <DIV unselectable="on" class="roo-unselectable roo-layout-panel-hd breadcrumb roo-layout-title-center" xbuilderid="roo-gen14" style="display: none;">
+              <SPAN class="roo-unselectable roo-layout-panel-hd-text" unselectable="on">Members List</SPAN>
+              <DIV class="roo-unselectable roo-layout-panel-hd-tools" unselectable="on" xbuilderid="roo-gen15"></DIV>
+            </DIV>
+            <DIV class="roo-layout-panel-body tab-content roo-tabs-top" xbuilderid="roo-gen16" style="overflow: hidden; height: 723px;">
+              <NAV class="navbar-light bg-light" xbuilderid="roo-gen99">
+                <UL class="nav nav-tabs" role="tablist" xbuilderid="roo-gen100" style="">
+                  <LI class="nav-item" xbuilderid="roo-gen103">
+                    <A class="nav-link active" href="#" unselectable="on" title="" xbuilderid="roo-gen102">Members List</A>
+                  </LI>
+                  <LI class="nav-item" xbuilderid="roo-gen118">
+                    <A class="nav-link" href="#" unselectable="on" title="" xbuilderid="roo-gen117">Permission List</A>
+                  </LI>
+                </UL>
+              </NAV>
+              <DIV id="tab-body101" class=" tab-content roo-layout-tabs-body" style="position: relative; height: 681px;">
+                <DIV class="roo-layout-grid-wrapper roo-layout-inactive-content tab-pane" xbuilderid="roo-gen108" style="position: absolute; display: block; zoom: 1;"></DIV>
+                <DIV class="roo-layout-grid-wrapper  roo-layout-active-content tab-pane" xbuilderid="roo-gen30" style="position: relative; display: block; zoom: 1; visibility: visible;">
+                  <DIV xbuilderid="roo-gen31">
+                    <DIV class="navbar roo-navbar-simple navbar-light bg-light" xbuilderid="roo-comp-1004" style="width: 855px;">
+                      <DIV class="x-dlg-mask" xbuilderid="roo-gen32" style="width: 32px; height: 16px; display: none;"></DIV>
+                      <UL class="nav navbar-nav mr-auto" xbuilderid="roo-comp-1006" style="width: 100%;">
+                        <DIV class="nav-item" xbuilderid="roo-comp-1008" style="width: 100%;">
+                          <DIV xbuilderid="roo-comp-1010" style="width: 100%;">
+                            <DIV class="row clearfix roo-toolbar" xbuilderid="roo-comp-1012">
+                              <DIV class="column col-md-3" xbuilderid="roo-comp-1014">
+                                <DIV class="form-group" xbuilderid="roo-comp-1016">
+                                  <DIV class="input-group">
+                                    <INPUT xbuilderid="roo-gen34" type="text" value="" class="form-control" placeholder="search for account" autocomplete="new-password"></INPUT>
+                                    <SPAN class="roo-input-after input-group-append  input-group-btn" xbuilderid="roo-gen42"><BUTTON class="btn roo-button btn-outline-secondary btn-default" xbuilderid="roo-comp-1017">
+                                        <SPAN class="roo-button-text"><I class="fa fa-search"></I></SPAN>
+                                      </BUTTON></SPAN>
+                                  </DIV>
+                                </DIV>
+                              </DIV>
+                              <DIV class="column col-md-9 text-right" xbuilderid="roo-comp-1019">
+                                <BUTTON class="btn roo-button btn-outline-secondary btn-default roo-toolbar-button" xbuilderid="roo-comp-1021">
+                                  <SPAN class="glyphicon glyphicon-plus"></SPAN> 
+                                  <SPAN class="roo-button-text">Add</SPAN>
+                                </BUTTON>
+                                <BUTTON class="btn roo-button btn-outline-secondary btn-default roo-toolbar-button" xbuilderid="roo-comp-1023" style="display: none;">
+                                  <SPAN class="glyphicon glyphicon-edit"></SPAN> 
+                                  <SPAN class="roo-button-text">Edit</SPAN>
+                                </BUTTON>
+                                <BUTTON class="btn roo-button btn-primary roo-toolbar-button" xbuilderid="roo-comp-1025" style="display: none;">
+                                  <SPAN class="glyphicon glyphicon-trash"></SPAN> 
+                                  <SPAN class="roo-button-text">Delete</SPAN>
+                                </BUTTON>
+                                <BUTTON class="btn roo-button btn-outline-secondary btn-default roo-toolbar-button" xbuilderid="roo-comp-1027" style="display: none;">
+                                  <SPAN class="glyphicon glyphicon-plus"></SPAN> 
+                                  <SPAN class="roo-button-text">Add To Group</SPAN>
+                                </BUTTON>
+                                <BUTTON class="btn roo-button btn-outline-secondary btn-default roo-toolbar-button" xbuilderid="roo-comp-1029" style="display: none;">
+                                  <SPAN class="glyphicon glyphicon-trash"></SPAN> 
+                                  <SPAN class="roo-button-text">Remove From Group</SPAN>
+                                </BUTTON>
+                                <BUTTON class="btn roo-button btn-outline-secondary btn-default roo-toolbar-button" xbuilderid="roo-comp-1031" style="display: none;">
+                                  <SPAN class="glyphicon glyphicon-user"></SPAN> 
+                                  <SPAN class="roo-button-text">Switch to Selected User</SPAN>
+                                </BUTTON>
+                              </DIV>
+                            </DIV>
+                          </DIV>
+                        </DIV>
+                      </UL>
+                    </DIV>
+                  </DIV>
+                  <DIV xbuilderid="roo-comp-1033" class="table-fixed roo-layout-component-panel" style="width: 887px; height: 607px;">
+                    <TABLE class="table table-body-fixed table-hover table-responsive table-fixed">
+                      <THEAD xbuilderid="roo-gen66">
+                        <TR>
+                          <TH class="sortable col-xs-1 col-1 col-sm-1 col-md-1" style=" text-align:center;" sort="active" xbuilderid="roo-gen68">
+                            <I class="glyphicon"></I>Active
+                          </TH>
+                          <TH class="sortable col-xs-3 col-3 col-sm-3 col-md-3" style="" sort="name" xbuilderid="roo-gen69">
+                            <I class="glyphicon"></I>Name
+                          </TH>
+                          <TH class="sortable col-xs-2 col-2 col-sm-2 col-md-2" style="" sort="role" xbuilderid="roo-gen70">
+                            <I class="glyphicon"></I>Role / Position
+                          </TH>
+                          <TH class="x-hcol-3 col-xs-2 col-2 col-sm-2 col-md-2" style="" sort="phone">Phone</TH>
+                          <TH class="sortable col-xs-4 col-4 col-sm-2 col-md-4" style="" sort="email" xbuilderid="roo-gen71">
+                            <I class="glyphicon"></I>Email
+                          </TH>
+                        </TR>
+                      </THEAD>
+                      <TBODY xbuilderid="roo-gen65" style="width: 887px; height: 461px;">
+                        <TR xbuilderid="roo-gen107" style="width: 887px;">
+                          <TD colspan="5"></TD>
+                        </TR>
+                      </TBODY>
+                      <TFOOT xbuilderid="roo-gen67">
+                        <TR xbuilderid="roo-gen105" style="width: 887px;">
+                          <TD colspan="5" xbuilderid="roo-gen106" style="width: 887px;">
+                            <DIV class="navbar roo-navbar-simple navbar-light bg-light" xbuilderid="roo-comp-1034" name="footer">
+                              <UL class="nav nav-PagingToolbar navbar-nav"></UL>
+                              <DIV class="x-dlg-mask" xbuilderid="roo-gen78" style="width: 32px; height: 16px; display: none;"></DIV>
+                              <DIV class="btn-group pagination" xbuilderid="roo-comp-1035">
+                                <BUTTON class="btn roo-button btn-outline-secondary btn-default prev btn-outline-secondary" disabled="disabled" xbuilderid="roo-comp-1037" tooltip="First Page">
+                                  <SPAN class="roo-button-text"> <I class="fa fa-step-backward"></I></SPAN>
+                                </BUTTON>
+                                <BUTTON class="btn roo-button btn-outline-secondary btn-default prev btn-outline-secondary" disabled="disabled" xbuilderid="roo-comp-1038" tooltip="Previous Page">
+                                  <SPAN class="roo-button-text"> <I class="fa fa-backward"></I></SPAN>
+                                </BUTTON>
+                                <BUTTON class="btn roo-button btn-outline-secondary btn-default x-paging-position  btn-outline-secondary" disabled="disabled" xbuilderid="roo-comp-1039">
+                                  <SPAN class="roo-button-text">Page<INPUT type="text" size="3" value="1" class="x-grid-page-number" xbuilderid="roo-gen87"></INPUT><SPAN class="x-paging-after" xbuilderid="roo-gen90">of 1</SPAN></SPAN>
+                                </BUTTON>
+                                <BUTTON class="btn roo-button btn-outline-secondary btn-default next btn-outline-secondary" disabled="disabled" xbuilderid="roo-comp-1040" tooltip="Next Page">
+                                  <SPAN class="roo-button-text"> <I class="fa fa-forward"></I></SPAN>
+                                </BUTTON>
+                                <BUTTON class="btn roo-button btn-outline-secondary btn-default next btn-outline-secondary" disabled="disabled" xbuilderid="roo-comp-1041" tooltip="Last Page">
+                                  <SPAN class="roo-button-text"> <I class="fa fa-step-forward"></I></SPAN>
+                                </BUTTON>
+                                <BUTTON class="btn roo-button btn-outline-secondary btn-default btn-outline-secondary" xbuilderid="roo-comp-1042" tooltip="Refresh">
+                                  <SPAN class="roo-button-text"> <I class="fa fa-refresh"></I></SPAN>
+                                </BUTTON>
+                              </DIV>
+                              <BUTTON class="btn roo-button btn-outline-secondary btn-default roo-toolbar-button" xbuilderid="roo-comp-1036" name="activeButton">
+                                <SPAN class="roo-button-text">Show Inactive</SPAN>
+                              </BUTTON>
+                            </DIV>
+                          </TD>
+                        </TR>
+                      </TFOOT>
+                    </TABLE>
+                  </DIV>
+                </DIV>
+              </DIV>
+            </DIV>
+          </DIV>
+          <DIV class=" roo-layout-region roo-layout-panel roo-layout-panel-west" xbuilderid="roo-gen17" style="width: 250px; left: 0px; top: 0px; height: 723px;">
+            <DIV unselectable="on" class="roo-unselectable roo-layout-panel-hd breadcrumb roo-layout-title-west" xbuilderid="roo-gen18" style="display: none;">
+              <SPAN class="roo-unselectable roo-layout-panel-hd-text" unselectable="on">Groups</SPAN>
+              <DIV class="roo-unselectable roo-layout-panel-hd-tools" unselectable="on" xbuilderid="roo-gen19"></DIV>
+            </DIV>
+            <DIV class="roo-layout-panel-body tab-content roo-tabs-top" xbuilderid="roo-gen20" style="overflow: hidden; height: 723px;">
+              <NAV class="navbar-light bg-light" xbuilderid="roo-gen142">
+                <UL class="nav nav-tabs" role="tablist" xbuilderid="roo-gen143" style="display: none;">
+                  <LI class="nav-item" xbuilderid="roo-gen146">
+                    <A class="nav-link active" href="#" unselectable="on" title="" xbuilderid="roo-gen145">Groups</A>
+                  </LI>
+                </UL>
+              </NAV>
+              <DIV id="tab-body144" class=" tab-content roo-layout-tabs-body" style="position: relative; height: 723px;">
+                <DIV class="roo-layout-grid-wrapper  roo-layout-active-content tab-pane" xbuilderid="roo-gen120" style="position: relative; display: block; zoom: 1; visibility: visible;">
+                  <DIV xbuilderid="roo-gen121">
+                    <DIV class="navbar roo-navbar-simple navbar-light bg-light" xbuilderid="roo-comp-1045" style="width: 218px;">
+                      <DIV class="x-dlg-mask" xbuilderid="roo-gen122" style="width: 32px; height: 16px; display: none;"></DIV>
+                      <UL class="nav navbar-nav mr-auto" xbuilderid="roo-comp-1047">
+                        <DIV class="nav-item account-management-group-nav-item" xbuilderid="roo-comp-1049">
+                          <BUTTON class="btn roo-button btn-outline-secondary btn-default dropdown dropdown-toggle" xbuilderid="roo-comp-1051">
+                            <SPAN class="roo-button-text">Manage Groups</SPAN> 
+                            <SPAN class="caret"></SPAN>
+                            <UL class="dropdown-menu" style="z-index:1000" xbuilderid="roo-comp-1053">
+                              <LI class="dropdown-menu-item" xbuilderid="roo-comp-1055">
+                                <A class="dropdown-item" href="#">
+                                  <I class="fa fa-fa fa-plus"></I>
+                                  <SPAN>Add</SPAN>
+                                </A>
+                              </LI>
+                              <LI class="dropdown-menu-item" xbuilderid="roo-comp-1057">
+                                <A class="dropdown-item" href="#">
+                                  <I class="fa fa-fa fa-pencil"></I>
+                                  <SPAN>Edit</SPAN>
+                                </A>
+                              </LI>
+                              <LI class="dropdown-menu-item" xbuilderid="roo-comp-1059">
+                                <A class="dropdown-item" href="#">
+                                  <I class="fa fa-fa fa-trash"></I>
+                                  <SPAN>Delete</SPAN>
+                                </A>
+                              </LI>
+                              <LI class="dropdown-menu-item" xbuilderid="roo-comp-1061">
+                                <A class="dropdown-item" href="#">
+                                  <I class="fa fa-fa fa-refresh"></I>
+                                  <SPAN>Reload</SPAN>
+                                </A>
+                              </LI>
+                            </UL>
+                          </BUTTON>
+                        </DIV>
+                      </UL>
+                    </DIV>
+                  </DIV>
+                  <DIV xbuilderid="roo-comp-1063" class="table-fixed roo-layout-component-panel" style="width: 250px; height: 669px;">
+                    <TABLE class="table table-body-fixed table-striped table-hover table-responsive table-fixed">
+                      <THEAD xbuilderid="roo-gen137">
+                        <TR>
+                          <TH class="x-hcol-0 col-xs-12 col-12 col-sm-12 col-md-12" style="" sort="name">Name</TH>
+                        </TR>
+                      </THEAD>
+                      <TBODY xbuilderid="roo-gen136" style="width: 250px; height: 620px;">
+                        <TR xbuilderid="roo-gen148" style="width: 250px;">
+                          <TD colspan="1"></TD>
+                        </TR>
+                      </TBODY>
+                    </TABLE>
+                  </DIV>
+                </DIV>
+              </DIV>
+            </DIV>
+          </DIV>
+          <DIV xbuilderid="roo-gen17-split" class="roo-layout-split roo-layout-split-west roo-splitbar-h roo-layout-split-h" style="left: 250px; top: 0px; height: 723px;"> </DIV>
+        </DIV>
+      </DIV>
+    </DIV>
+  </DIV>
+  <DIV xbuilderid="roo-gen21" class=" x-unselectable roo-splitbar-proxy roo-splitbar-proxy-h"></DIV>