{
- "id": "roo-file-194",
- "name": "Pman.Dialog.MTrackTime",
- "parent": "",
- "title": "",
- "path": "/home/alan/gitlive/Pman.MTrack/Pman.Dialog.MTrackTime.bjs",
- "items": [
+ "name" : "Pman.Dialog.MTrackTime",
+ "parent" : "",
+ "title" : "",
+ "path" : "/home/alan/gitlive/Pman.MTrack/Pman.Dialog.MTrackTime.bjs",
+ "permname" : "",
+ "modOrder" : "001",
+ "strings" : {
+ "9a221c25cceeb0d108ff6cb635dc8b8b" : "Open Tasks (Unassigned) / Select Project",
+ "9e727fdd3aec8274f46685441900280d" : "Project",
+ "6a58f977f2b623b695a340766f2a6843" : "Select Project",
+ "74cf22d20dea80f7bd8800a6da89a722" : "Select mtrack_ticket",
+ "c751439d0db3883ac1c8e816327adcab" : "Ticket",
+ "290612199861c31d1036b185b4e69b75" : "Summary",
+ "1fa1f1ccb57b2486b4c05122d64868d4" : "Not on Project work",
+ "6cca3734b44a6ae61b40c9a915d122f4" : "Task Queue",
+ "ed7b9312345d291c1ccf68096e65ca54" : "Ticket Details",
+ "1243daf593fa297e07ab03bf06d925af" : "Searching...",
+ "645fcdd1616f8c7dbb207f6802786431" : "Time Manager",
+ "329a87b3fae81c1c17a185c78d2e0e63" : "cash_invoice_entry",
+ "9deec6a3dfda06500b808d70875f0a8f" : "Log Time",
+ "40bed7cf9b3d4bb3a3d7a7e3eb18c5eb" : "Person",
+ "340c2ee497b85d5954b01c64de7f44f6" : "Select Person",
+ "f4c6f851b00d5518bf888815de279aba" : "Notes",
+ "24f27bda5dd2c488aa9bc7700ba98c34" : "Select Projects",
+ "07ca5050e697392c9ed47e6453f1453f" : "Completed",
+ "a76d4ef5f3f6a672bbfab2865563e530" : "Time",
+ "b5a7adde1af5c87d7fd797b6245c2a39" : "Description",
+ "642f8356fcf65868f037f92e0e10c3cd" : "Plan Time",
+ "9e51cf61fbb08a10c12619611dc818ad" : "Active / Logged Time",
+ "3efbc55730fd4af147b96183d8afbd3b" : "mtrack_ticket",
+ "b2439dea1dd89e6f694df484214e57cf" : "Working on this",
+ "f49f927095bb01b44c96d29c8c09f3a3" : "Assigned to / Prioritized (all projects)"
+ },
+ "named_strings" : {
+ "description_fieldLabel" : "b5a7adde1af5c87d7fd797b6245c2a39",
+ "project_id_name_emptyText" : "6a58f977f2b623b695a340766f2a6843",
+ "project_id_name_loadingText" : "1243daf593fa297e07ab03bf06d925af",
+ "project_id_name_qtip" : "24f27bda5dd2c488aa9bc7700ba98c34",
+ "project_id_name_fieldLabel" : "9e727fdd3aec8274f46685441900280d"
+ },
+ "items" : [
+ {
+ "title" : "Time Manager",
+ "xtype" : "LayoutDialog",
+ "width" : 1000,
+ "$ xns" : "Roo",
+ "height" : 700,
+ "items" : [
+ {
+ "xtype" : "LayoutRegion",
+ "$ xns" : "Roo",
+ "tabPosition" : "top",
+ "* prop" : "center"
+ },
+ {
+ "region" : "center",
+ "title" : "Log Time",
+ "xtype" : "NestedLayoutPanel",
+ "$ xns" : "Roo",
+ "items" : [
+ {
+ "xtype" : "BorderLayout",
+ "$ xns" : "Roo",
+ "* prop" : "layout",
+ "items" : [
{
- "height": 700,
- "title": "Time Manager",
- "width": 1000,
- "xtype": "LayoutDialog",
- "|xns": "Roo",
- "items": [
+ "xtype" : "LayoutRegion",
+ "$ xns" : "Roo",
+ "width" : 600,
+ "split" : true,
+ "* prop" : "west"
+ },
+ {
+ "xtype" : "LayoutRegion",
+ "title" : "Active / Logged Time",
+ "$ xns" : "Roo",
+ "* prop" : "center"
+ },
+ {
+ "collapsedTitle" : "Ticket Details",
+ "collapsible" : true,
+ "title" : "Ticket Details",
+ "xtype" : "LayoutRegion",
+ "collapsed" : true,
+ "width" : 350,
+ "$ xns" : "Roo",
+ "split" : true,
+ "* prop" : "east"
+ },
+ {
+ "listeners" : {
+ "|activate" : "function() {\n _this.timepanel = this;\n if (_this.timegrid) {\n // _this.grid.footer.onClick('first');\n }\n}"
+ },
+ "region" : "west",
+ "fitToframe" : true,
+ "background" : true,
+ "title" : "cash_invoice_entry",
+ "xtype" : "GridPanel",
+ "fitContainer" : true,
+ "$ xns" : "Roo",
+ "tableName" : "cash_invoice_entry",
+ "items" : [
+ {
+ "listeners" : {
+ "|rowdblclick" : "function (_self, rowIndex, e)\n{\n if (!_this.dialog) { return; }\n _this.dialog.show( this.getDataSource().getAt(rowIndex), function() {\n _this.grid.footer.onClick('first');\n }); \n}\n",
+ "|render" : "function() \n{\n _this.timegrid = this; \n //_this.dialog = Pman.Dialog.FILL_IN\n if (_this.timepanel.active) {\n // this.footer.onClick('first');\n }\n}"
+ },
+ "autoExpandColumn" : "activity_ref",
+ "xtype" : "Grid",
+ "loadMask" : true,
+ "$ xns" : "Roo.grid",
+ "* prop" : "grid",
+ "items" : [
+ {
+ "xtype" : "Toolbar",
+ "$ xns" : "Roo",
+ "* prop" : "toolbar",
+ "items" : [
+ {
+ "listeners" : {
+ "render" : "function (_self)\n{\n _this.personSelect = _self;\n}"
+ },
+ "listWidth" : 400,
+ "triggerAction" : "all",
+ "fieldLabel" : "Person",
+ "forceSelection" : true,
+ "selectOnFocus" : true,
+ "pageSize" : 20,
+ "displayField" : "name",
+ "emptyText" : "Select Person",
+ "hiddenName" : "",
+ "minChars" : 2,
+ "valueField" : "id",
+ "xtype" : "ComboBox",
+ "allowBlank" : false,
+ "typeAhead" : true,
+ "editable" : false,
+ "width" : 300,
+ "$ xns" : "Roo.form",
+ "name" : "",
+ "qtip" : "Select Person",
+ "queryParam" : "",
+ "tpl" : "<div class=\"x-grid-cell-text x-btn button\"><b>{name}</b> {email} </div>",
+ "loadingText" : "Searching...",
+ "items" : [
+ {
+ "listeners" : {
+ "|beforeload" : "function (_self, o){\n o.params = o.params || {};\n // set more here\n o.params.company_id_comptype = 'OWNER';\n}\n"
+ },
+ "xtype" : "Store",
+ "remoteSort" : true,
+ "$ sortInfo" : "{ direction : 'ASC', field: 'id' }",
+ "$ xns" : "Roo.data",
+ "* prop" : "store",
+ "items" : [
+ {
+ "$ url" : "baseURL + '/Roo/Person.php'",
+ "xtype" : "HttpProxy",
+ "method" : "GET",
+ "$ xns" : "Roo.data",
+ "* prop" : "proxy"
+ },
+ {
+ "id" : "id",
+ "root" : "data",
+ "xtype" : "JsonReader",
+ "$ xns" : "Roo.data",
+ "$ fields" : "[{\"name\":\"id\",\"type\":\"int\"},{\"name\":\"name\",\"type\":\"string\"}]",
+ "* prop" : "reader",
+ "totalProperty" : "total"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "xtype" : "Store",
+ "remoteSort" : true,
+ "$ sortInfo" : "{ field : 'action_dt', direction: 'DESC' }",
+ "$ xns" : "Roo.data",
+ "* prop" : "dataSource",
+ "items" : [
+ {
+ "listeners" : {
+ "beforeload" : "function (This, params)\n{\n if (_this.personSelect.getValue()) {\n params.person_id = _this.personSelect.getValue();\n } else {\n params.person_id = Pman.Login.authUser.id;\n }\n \n \n}"
+ },
+ "$ url" : "baseURL + '/Roo/cash_invoice_entry.php'",
+ "method" : "GET",
+ "xtype" : "HttpProxy",
+ "$ xns" : "Roo.data",
+ "* prop" : "proxy"
+ },
+ {
+ "id" : "id",
+ "root" : "data",
+ "xtype" : "JsonReader",
+ "$ xns" : "Roo.data",
+ "$ fields" : "[\n {\n 'name': 'id',\n 'type': 'int'\n },\n {\n 'name': 'entry_dt',\n 'type': 'date',\n 'dateFormat': 'Y-m-d'\n },\n {\n 'name': 'entered_dt',\n 'type': 'date',\n 'dateFormat': 'Y-m-d'\n },\n {\n 'name': 'description',\n 'type': 'string'\n },\n {\n 'name': 'action',\n 'type': 'string'\n },\n {\n 'name': 'qty',\n 'type': 'string'\n },\n {\n 'name': 'invoice_id',\n 'type': 'int'\n },\n {\n 'name': 'pricevalue',\n 'type': 'float'\n },\n {\n 'name': 'qtyvalue',\n 'type': 'float'\n },\n {\n 'name': 'to_account_id',\n 'type': 'int'\n },\n {\n 'name': 'discount',\n 'type': 'float'\n },\n {\n 'name': 'action_dt',\n 'type': 'date',\n 'dateFormat': 'Y-m-d'\n },\n {\n 'name': 'staff_id',\n 'type': 'int'\n },\n {\n 'name': 'invoice_id_id',\n 'type': 'int'\n },\n {\n 'name': 'invoice_id_idtxt',\n 'type': 'string'\n },\n {\n 'name': 'invoice_id_project_id',\n 'type': 'int'\n },\n {\n 'name': 'invoice_id_opened_dt',\n 'type': 'date'\n },\n {\n 'name': 'invoice_id_posted',\n 'type': 'date'\n },\n {\n 'name': 'invoice_id_post_transaction_id',\n 'type': 'int'\n },\n {\n 'name': 'invoice_id_post_account_id',\n 'type': 'int'\n },\n {\n 'name': 'invoice_id_paid',\n 'type': 'float'\n },\n {\n 'name': 'invoice_id_total',\n 'type': 'float'\n },\n {\n 'name': 'invoice_id_duedate',\n 'type': 'date'\n },\n {\n 'name': 'to_account_id_id',\n 'type': 'int'\n },\n {\n 'name': 'to_account_id_name',\n 'type': 'string'\n },\n {\n 'name': 'to_account_id_type',\n 'type': 'string'\n },\n {\n 'name': 'to_account_id_commodity',\n 'type': 'string'\n },\n {\n 'name': 'to_account_id_scu',\n 'type': 'string'\n },\n {\n 'name': 'to_account_id_description',\n 'type': 'string'\n },\n {\n 'name': 'to_account_id_parent',\n 'type': 'int'\n },\n {\n 'name': 'to_account_id_fullname',\n 'type': 'string'\n },\n {\n 'name': 'staff_id_id',\n 'type': 'int'\n },\n {\n 'name': 'staff_id_office_id',\n 'type': 'int'\n },\n {\n 'name': 'staff_id_name',\n 'type': 'string'\n },\n {\n 'name': 'staff_id_phone',\n 'type': 'string'\n },\n {\n 'name': 'staff_id_fax',\n 'type': 'string'\n },\n {\n 'name': 'staff_id_email',\n 'type': 'string'\n },\n {\n 'name': 'staff_id_company_id',\n 'type': 'int'\n },\n {\n 'name': 'staff_id_role',\n 'type': 'string'\n },\n {\n 'name': 'staff_id_active',\n 'type': 'int'\n },\n {\n 'name': 'staff_id_remarks',\n 'type': 'string'\n },\n {\n 'name': 'staff_id_passwd',\n 'type': 'string'\n },\n {\n 'name': 'staff_id_owner_id',\n 'type': 'int'\n },\n {\n 'name': 'staff_id_lang',\n 'type': 'string'\n },\n {\n 'name': 'staff_id_no_reset_sent',\n 'type': 'int'\n },\n {\n 'name': 'staff_id_action_type',\n 'type': 'string'\n },\n {\n 'name': 'staff_id_project_id',\n 'type': 'int'\n },\n {\n 'name': 'staff_id_deleted_by',\n 'type': 'int'\n },\n {\n 'name': 'staff_id_deleted_dt',\n 'type': 'date'\n }\n]",
+ "* prop" : "reader",
+ "totalProperty" : "total"
+ }
+ ]
+ },
+ {
+ "xtype" : "ColumnModel",
+ "width" : 100,
+ "header" : "Time",
+ "$ renderer" : "function(v,x,r) { \n var s = r.data.qtyvalue;\n var end = v.add(Date.HOUR, s);\n return String.format('{0} {1}-{2}',\n v.format('D'), v.format('H:i'), end.format('H:i') );\n}",
+ "$ xns" : "Roo.grid",
+ "* prop" : "colModel[]",
+ "dataIndex" : "action_dt"
+ },
+ {
+ "xtype" : "ColumnModel",
+ "width" : 200,
+ "header" : "Ticket",
+ "$ renderer" : "function(v) { return String.format('{0}', v ? v.format('d/M/Y') : ''); }",
+ "$ xns" : "Roo.grid",
+ "* prop" : "colModel[]",
+ "dataIndex" : "ticket_id_summary"
+ },
+ {
+ "xtype" : "ColumnModel",
+ "width" : 300,
+ "header" : "Notes",
+ "$ renderer" : "function(v) { return String.format('{0}', v ? v.format('d/M/Y') : ''); }",
+ "$ xns" : "Roo.grid",
+ "* prop" : "colModel[]",
+ "dataIndex" : "notes"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "region" : "center",
+ "xtype" : "NestedLayoutPanel",
+ "$ xns" : "Roo",
+ "items" : [
+ {
+ "xtype" : "BorderLayout",
+ "$ xns" : "Roo",
+ "* prop" : "layout",
+ "items" : [
+ {
+ "xtype" : "LayoutRegion",
+ "$ xns" : "Roo",
+ "* prop" : "north",
+ "height" : 200
+ },
+ {
+ "xtype" : "LayoutRegion",
+ "title" : "Task Queue",
+ "$ xns" : "Roo",
+ "* prop" : "center"
+ },
+ {
+ "listeners" : {
+ "|activate" : "function() {\n _this.queuepanel = this;\n if (_this.queuegrid) {\n //_this.queuegrid.footer.onClick('first');\n }\n}"
+ },
+ "region" : "center",
+ "fitToframe" : true,
+ "background" : true,
+ "title" : "mtrack_ticket",
+ "xtype" : "GridPanel",
+ "fitContainer" : true,
+ "$ xns" : "Roo",
+ "tableName" : "mtrack_ticket",
+ "items" : [
+ {
+ "listeners" : {
+ "|rowdblclick" : "function (_self, rowIndex, e)\n{\n if (!_this.dialog) { return; }\n _this.dialog.show( this.getDataSource().getAt(rowIndex), function() {\n _this.grid.footer.onClick('first');\n }); \n}\n",
+ "|render" : "function() \n{\n _this.queuegrid = this; \n //_this.dialog = Pman.Dialog.FILL_IN\n if (_this.queuepanel.active) {\n //this.footer.onClick('first');\n }\n}"
+ },
+ "autoExpandColumn" : "summary",
+ "xtype" : "Grid",
+ "loadMask" : true,
+ "$ xns" : "Roo.grid",
+ "* prop" : "grid",
+ "items" : [
+ {
+ "xtype" : "Toolbar",
+ "$ xns" : "Roo",
+ "* prop" : "toolbar",
+ "items" : [
+ {
+ "listeners" : {
+ "render" : "function (_self)\n{\n _this.projectSel = _self;\n}",
+ "beforeselect" : "function (combo, record, index)\n{\n\n \n _this.queuegrid.ds.load({});\n \n \n \n}"
+ },
+ "listWidth" : 400,
+ "triggerAction" : "all",
+ "fieldLabel" : "Project",
+ "forceSelection" : true,
+ "selectOnFocus" : true,
+ "pageSize" : 20,
+ "displayField" : "name",
+ "emptyText" : "Select Project",
+ "hiddenName" : "project_id",
+ "minChars" : 2,
+ "valueField" : "id",
+ "xtype" : "ComboBox",
+ "allowBlank" : false,
+ "typeAhead" : true,
+ "editable" : false,
+ "width" : 200,
+ "$ xns" : "Roo.form",
+ "name" : "project_id_name",
+ "qtip" : "Select Projects",
+ "queryParam" : "query[name]",
+ "tpl" : "<div class=\"x-grid-cell-text x-btn button\"><b>{code}</b> - {name}</div>",
+ "loadingText" : "Searching...",
+ "items" : [
+ {
+ "listeners" : {
+ "|beforeload" : "function (_self, o){\n o.params = o.params || {};\n o.params['query[project_filter]'] = 'P,N,U'; // actually this is the default.\n \n // set more here\n}\n"
+ },
+ "xtype" : "Store",
+ "remoteSort" : true,
+ "$ sortInfo" : "{ field: 'code', direction: 'ASC' }",
+ "$ xns" : "Roo.data",
+ "* prop" : "store",
+ "items" : [
+ {
+ "$ url" : "baseURL + '/Roo/Projects.php'",
+ "xtype" : "HttpProxy",
+ "method" : "GET",
+ "$ xns" : "Roo.data",
+ "* prop" : "proxy"
+ },
+ {
+ "id" : "id",
+ "root" : "data",
+ "xtype" : "JsonReader",
+ "$ xns" : "Roo.data",
+ "$ fields" : "[{\"name\":\"id\",\"type\":\"int\"},{\"name\":\"name\",\"type\":\"string\"}]",
+ "* prop" : "reader",
+ "totalProperty" : "total"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "remoteSort" : true,
+ "xtype" : "Store",
+ "$ sortInfo" : "{ field : 'summary', direction: 'ASC' }",
+ "$ xns" : "Roo.data",
+ "* prop" : "dataSource",
+ "items" : [
+ {
+ "$ url" : "baseURL + '/Roo/mtrack_ticket.php'",
+ "xtype" : "HttpProxy",
+ "method" : "GET",
+ "$ xns" : "Roo.data",
+ "* prop" : "proxy"
+ },
+ {
+ "id" : "id",
+ "root" : "data",
+ "xtype" : "JsonReader",
+ "$ xns" : "Roo.data",
+ "$ fields" : "[\n {\n 'name': 'id',\n 'type': 'int'\n } /*,\n {\n 'name': 'project_id',\n 'type': 'int'\n },\n {\n 'name': 'summary',\n 'type': 'string'\n },\n {\n 'name': 'description',\n 'type': 'string'\n },\n {\n 'name': 'changelog',\n 'type': 'string'\n },\n {\n 'name': 'created',\n 'type': 'int'\n },\n {\n 'name': 'updated',\n 'type': 'int'\n },\n {\n 'name': 'owner_id',\n 'type': 'int'\n },\n {\n 'name': 'priority_id',\n 'type': 'int'\n },\n {\n 'name': 'severity_id',\n 'type': 'int'\n },\n {\n 'name': 'classification_id',\n 'type': 'int'\n },\n {\n 'name': 'resolution_id',\n 'type': 'int'\n },\n {\n 'name': 'cc',\n 'type': 'string'\n },\n {\n 'name': 'status',\n 'type': 'int'\n },\n {\n 'name': 'estimated',\n 'type': 'float'\n },\n {\n 'name': 'spent',\n 'type': 'float'\n },\n {\n 'name': 'x_fieldname',\n 'type': 'string'\n },\n {\n 'name': 'developer_id',\n 'type': 'int'\n },\n {\n 'name': 'milestone_id',\n 'type': 'int'\n },\n {\n 'name': 'updated_id',\n 'type': 'int'\n },\n {\n 'name': 'updated_person_id',\n 'type': 'int'\n },\n {\n 'name': 'updated_ontable',\n 'type': 'string'\n },\n {\n 'name': 'updated_onid',\n 'type': 'int'\n },\n {\n 'name': 'updated_changedate',\n 'type': 'date'\n },\n {\n 'name': 'updated_reason',\n 'type': 'string'\n },\n {\n 'name': 'created_id',\n 'type': 'int'\n },\n {\n 'name': 'created_person_id',\n 'type': 'int'\n },\n {\n 'name': 'created_ontable',\n 'type': 'string'\n },\n {\n 'name': 'created_onid',\n 'type': 'int'\n },\n {\n 'name': 'created_changedate',\n 'type': 'date'\n },\n {\n 'name': 'created_reason',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_id',\n 'type': 'int'\n },\n {\n 'name': 'owner_id_office_id',\n 'type': 'int'\n },\n {\n 'name': 'owner_id_name',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_phone',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_fax',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_email',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_company_id',\n 'type': 'int'\n },\n {\n 'name': 'owner_id_role',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_active',\n 'type': 'int'\n },\n {\n 'name': 'owner_id_remarks',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_passwd',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_owner_id',\n 'type': 'int'\n },\n {\n 'name': 'owner_id_lang',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_no_reset_sent',\n 'type': 'int'\n },\n {\n 'name': 'owner_id_action_type',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_project_id',\n 'type': 'int'\n },\n {\n 'name': 'owner_id_deleted_by',\n 'type': 'int'\n },\n {\n 'name': 'owner_id_deleted_dt',\n 'type': 'date'\n },\n {\n 'name': 'developer_id_id',\n 'type': 'int'\n },\n {\n 'name': 'developer_id_office_id',\n 'type': 'int'\n },\n {\n 'name': 'developer_id_name',\n 'type': 'string'\n },\n {\n 'name': 'developer_id_phone',\n 'type': 'string'\n },\n {\n 'name': 'developer_id_fax',\n 'type': 'string'\n },\n {\n 'name': 'developer_id_email',\n 'type': 'string'\n },\n {\n 'name': 'developer_id_company_id',\n 'type': 'int'\n },\n {\n 'name': 'developer_id_role',\n 'type': 'string'\n },\n {\n 'name': 'developer_id_active',\n 'type': 'int'\n },\n {\n 'name': 'developer_id_remarks',\n 'type': 'string'\n },\n {\n 'name': 'developer_id_passwd',\n 'type': 'string'\n },\n {\n 'name': 'developer_id_owner_id',\n 'type': 'int'\n },\n {\n 'name': 'developer_id_lang',\n 'type': 'string'\n },\n {\n 'name': 'developer_id_no_reset_sent',\n 'type': 'int'\n },\n {\n 'name': 'developer_id_action_type',\n 'type': 'string'\n },\n {\n 'name': 'developer_id_project_id',\n 'type': 'int'\n },\n {\n 'name': 'developer_id_deleted_by',\n 'type': 'int'\n },\n {\n 'name': 'developer_id_deleted_dt',\n 'type': 'date'\n },\n {\n 'name': 'priority_id_id',\n 'type': 'int'\n },\n {\n 'name': 'priority_id_etype',\n 'type': 'string'\n },\n {\n 'name': 'priority_id_name',\n 'type': 'string'\n },\n {\n 'name': 'priority_id_active',\n 'type': 'int'\n },\n {\n 'name': 'priority_id_seqid',\n 'type': 'int'\n },\n {\n 'name': 'severity_id_id',\n 'type': 'int'\n },\n {\n 'name': 'severity_id_etype',\n 'type': 'string'\n },\n {\n 'name': 'severity_id_name',\n 'type': 'string'\n },\n {\n 'name': 'severity_id_active',\n 'type': 'int'\n },\n {\n 'name': 'severity_id_seqid',\n 'type': 'int'\n },\n {\n 'name': 'classification_id_id',\n 'type': 'int'\n },\n {\n 'name': 'classification_id_etype',\n 'type': 'string'\n },\n {\n 'name': 'classification_id_name',\n 'type': 'string'\n },\n {\n 'name': 'classification_id_active',\n 'type': 'int'\n },\n {\n 'name': 'classification_id_seqid',\n 'type': 'int'\n },\n {\n 'name': 'resolution_id_id',\n 'type': 'int'\n },\n {\n 'name': 'resolution_id_etype',\n 'type': 'string'\n },\n {\n 'name': 'resolution_id_name',\n 'type': 'string'\n },\n {\n 'name': 'resolution_id_active',\n 'type': 'int'\n },\n {\n 'name': 'resolution_id_seqid',\n 'type': 'int'\n },\n {\n 'name': 'status_id',\n 'type': 'int'\n },\n {\n 'name': 'status_etype',\n 'type': 'string'\n },\n {\n 'name': 'status_name',\n 'type': 'string'\n },\n {\n 'name': 'status_active',\n 'type': 'int'\n },\n {\n 'name': 'status_seqid',\n 'type': 'int'\n },\n {\n 'name': 'project_id_id',\n 'type': 'int'\n },\n {\n 'name': 'project_id_name',\n 'type': 'string'\n },\n {\n 'name': 'project_id_remarks',\n 'type': 'string'\n },\n {\n 'name': 'project_id_owner_id',\n 'type': 'int'\n },\n {\n 'name': 'project_id_code',\n 'type': 'string'\n },\n {\n 'name': 'project_id_active',\n 'type': 'int'\n },\n {\n 'name': 'project_id_type',\n 'type': 'string'\n },\n {\n 'name': 'project_id_client_id',\n 'type': 'int'\n },\n {\n 'name': 'project_id_team_id',\n 'type': 'int'\n },\n {\n 'name': 'project_id_file_location',\n 'type': 'string'\n },\n {\n 'name': 'project_id_open_date',\n 'type': 'date'\n },\n {\n 'name': 'project_id_open_by',\n 'type': 'int'\n },\n {\n 'name': 'project_id_close_date',\n 'type': 'date'\n },\n {\n 'name': 'project_id_countries',\n 'type': 'string'\n },\n {\n 'name': 'project_id_languages',\n 'type': 'string'\n },\n {\n 'name': 'project_id_agency_id',\n 'type': 'int'\n },\n {\n 'name': 'milestone_id_id',\n 'type': 'int'\n },\n {\n 'name': 'milestone_id_name',\n 'type': 'string'\n },\n {\n 'name': 'milestone_id_description',\n 'type': 'string'\n },\n {\n 'name': 'milestone_id_startdate',\n 'type': 'date'\n },\n {\n 'name': 'milestone_id_duedate',\n 'type': 'date'\n },\n {\n 'name': 'milestone_id_completed',\n 'type': 'date'\n },\n {\n 'name': 'milestone_id_deleted',\n 'type': 'int'\n },\n {\n 'name': 'milestone_id_created',\n 'type': 'int'\n },\n {\n 'name': 'milestone_id_updated',\n 'type': 'int'\n },\n {\n 'name': 'milestone_id_project_id',\n 'type': 'int'\n } */\n]",
+ "* prop" : "reader",
+ "totalProperty" : "total"
+ }
+ ]
+ },
+ {
+ "xtype" : "ColumnModel",
+ "header" : "Summary",
+ "width" : 200,
+ "$ renderer" : "function(v) { return String.format('{0}', v); }",
+ "$ xns" : "Roo.grid",
+ "* prop" : "colModel[]",
+ "dataIndex" : "summary"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "region" : "north",
+ "xtype" : "ContentPanel",
+ "$ xns" : "Roo",
+ "items" : [
+ {
+ "xtype" : "Toolbar",
+ "$ xns" : "Roo",
+ "* prop" : "toolbar",
+ "items" : [
+ {
+ "text" : "Working on this",
+ "xtype" : "Button",
+ "$ xns" : "Roo.Toolbar"
+ },
+ {
+ "text" : "Completed",
+ "xtype" : "Button",
+ "$ xns" : "Roo.Toolbar"
+ },
+ {
+ "text" : "Not on Project work",
+ "xtype" : "Button",
+ "$ xns" : "Roo.Toolbar"
+ }
+ ]
+ },
+ {
+ "listeners" : {
+ "|actioncomplete" : "function(_self,action)\n{\n \n \n Roo.log('action complete');\n Roo.log(action);\n if (action.type == 'setdata') {\n\n _this.isClose = false; // force flag..\n \n if (this.activeRecord) {\n this.saveActive( this.activeRecord);\n }\n \n \n \n // show form..\n if (!action.data || !action.data.action) {\n _this.form.el.mask('select something'); \n this.activeRecord = false;\n _this.form.reset(); \n return;\n }\n _this.form.el.unmask(); \n \n this.activeRecord = action.rec;\n \n \n\n \n \n // should save here if we are 'dirty!';\n _this.form.reset();\n _this.form.setValues(action.data);\n // set the dates so they are correct..\n _this.form.setValues( { \n \n action_dt : action.data.action_dt.format('Y-m-d H:i:s'),\n entry_dt: action.data.action_dt.format('Y-m-d'),\n qtyvalue2 : action.data.qtyvalue\n });\n // set the default values..\n // for dirty test...\n _this.form.items.each(function(f) {\n f.originalValue = f.getValue();\n });\n \n \n \n \n // form is set to an event.\n \n \n \n return;\n }\n \n \n if (action.type == 'load') {\n \n return;\n }\n if (action.type =='submit') {\n // set this on the close button..\n if (_this.isClose) {\n _this.dialog.hide();\n }\n \n if (_this.callback) {\n _this.callback.call(_this, _this.form.getValues());\n }\n\n return;\n }\n}\n",
+ "|rendered" : "function (form)\n{\n _this.form= form;\n}\n"
+ },
+ "$ url" : "baseURL + '/Roo/cash_invoice_entry.php'",
+ "$ saveActive" : "function(rec, effort) {\n \n effort = effort || 0;\n \n\n if (!rec) {\n Roo.log(\"ERROR: saveActive: record not set \");\n return;\n }\n\n var d = Roo.apply({}, rec.data); // copy it so changes do not affect crap...\n \n var upd = (new Date()).format('Y-m-d H:i:s');\n \n \n \n \n //Roo.log(\"SAVE IT: \" + Roo.encode(d) );\n \n // return;\n var at = typeof(d.action_dt) == 'string' ? Date.parseDate(d.action_dt, 'Y-m-d H:i:s') : d.action_dt;\n \n new Pman.Request({\n url : baseURL + '/Roo/Cash_invoice_entry.php',\n method : 'POST',\n params : {\n id : d.id,\n entry_dt: at.format('Y-m-d'), // this should not change for posted entries really...\n entered_dt: upd, \n action_dt : at.format('Y-m-d H:i:s'),\n qtyvalue : d.qtyvalue,\n action: 'Hours',\n description: d.description,\n pricevalue: d.pricevalue, \n project_id : d.project_id,\n staff_id : d.staff_id * 1 ? d.staff_id : Pman.Login.authUser.id,\n ticket_id : d.ticket_id ? d.ticket_id : 0\n \n },\n success : function(res)\n {\n // everythings fine..\n \n // we have to update the view object... now...\n // we can not reload as that may blank out data..\n if (!rec.data.id) {\n Roo.log(\"Setting data id to \" + res.data.id);\n rec.set('id', res.data.id);\n\n }\n\n \n },\n failure : function()\n {\n effort++;\n if (effort > 3) {\n Roo.MessageBox.alert(\"Error\", \"Saving timesheet failed\");\n return;\n }\n _this.form.saveActive(rec, effort);\n }\n \n });\n}\n",
+ "activeData" : false,
+ "style" : "margin-left:10px;",
+ "method" : "POST",
+ "xtype" : "Form",
+ "$ xns" : "Roo.form",
+ "items" : [
+ {
+ "listeners" : {
+ "render" : "function (_self)\n{\n _this.projectSel = _self;\n}",
+ "beforeselect" : "function (combo, record, index)\n{\n\n Roo.log('save it');\n var sel = _this.grid.ds.selectedBar();\n \n if (!sel) {\n Roo.log(\"nothing selected?\");\n return;\n }\n \n // active record should be the same thing.\n sel.set('project_id', record.data.id);\n sel.set('project_id_code', record.data.code);\n sel.set('project_id_name', record.data.name);\n \n \n _this.grid.ds.updateBar(sel);\n \n \n \n}"
+ },
+ "listWidth" : 400,
+ "triggerAction" : "all",
+ "fieldLabel" : "Project",
+ "forceSelection" : true,
+ "selectOnFocus" : true,
+ "pageSize" : 20,
+ "displayField" : "name",
+ "emptyText" : "Select Project",
+ "hiddenName" : "project_id",
+ "minChars" : 2,
+ "valueField" : "id",
+ "xtype" : "ComboBox",
+ "allowBlank" : false,
+ "typeAhead" : true,
+ "editable" : false,
+ "width" : 200,
+ "$ xns" : "Roo.form",
+ "name" : "project_id_name",
+ "qtip" : "Select Projects",
+ "queryParam" : "query[name]",
+ "tpl" : "<div class=\"x-grid-cell-text x-btn button\"><b>{code}</b> - {name}</div>",
+ "loadingText" : "Searching...",
+ "items" : [
+ {
+ "listeners" : {
+ "|beforeload" : "function (_self, o){\n o.params = o.params || {};\n o.params['query[project_filter]'] = 'P,N,U'; // actually this is the default.\n \n // set more here\n}\n"
+ },
+ "xtype" : "Store",
+ "remoteSort" : true,
+ "$ sortInfo" : "{ field: 'code', direction: 'ASC' }",
+ "$ xns" : "Roo.data",
+ "* prop" : "store",
+ "items" : [
+ {
+ "$ url" : "baseURL + '/Roo/Projects.php'",
+ "xtype" : "HttpProxy",
+ "method" : "GET",
+ "$ xns" : "Roo.data",
+ "* prop" : "proxy"
+ },
+ {
+ "id" : "id",
+ "root" : "data",
+ "xtype" : "JsonReader",
+ "$ xns" : "Roo.data",
+ "$ fields" : "[{\"name\":\"id\",\"type\":\"int\"},{\"name\":\"name\",\"type\":\"string\"}]",
+ "* prop" : "reader",
+ "totalProperty" : "total"
+ }
+ ]
+ }
+ ]
+ },
{
- "*prop": "center",
- "tabPosition": "top",
- "xtype": "LayoutRegion",
- "|xns": "Roo"
+ "labelAlign" : "top",
+ "xtype" : "Column",
+ "width" : 300,
+ "$ xns" : "Roo.form",
+ "items" : [
+ {
+ "listeners" : {
+ "keyup" : "function (_self, e)\n{\n _this.selectedRec.set('description', this.getValue());\n _this.grid.dataSource.updateBar(_this.selectedRec);\n \n}"
+ },
+ "fieldLabel" : "Description",
+ "xtype" : "TextArea",
+ "width" : 300,
+ "$ xns" : "Roo.form",
+ "name" : "description",
+ "height" : 120
+ }
+ ]
},
{
- "region": "center",
- "title": "Log Time",
- "xtype": "NestedLayoutPanel",
- "|xns": "Roo",
- "items": [
- {
- "|xns": "Roo",
- "xtype": "BorderLayout",
- "*prop": "layout",
- "items": [
- {
- "*prop": "center",
- "title": "Active / Logged Time",
- "xtype": "LayoutRegion",
- "|xns": "Roo"
- },
- {
- "listeners": {
- "|activate": "function() {\n _this.timepanel = this;\n if (_this.timegrid) {\n // _this.grid.footer.onClick('first');\n }\n}"
- },
- "background": true,
- "fitContainer": true,
- "fitToframe": true,
- "region": "center",
- "tableName": "cash_invoice_entry",
- "title": "cash_invoice_entry",
- "xtype": "GridPanel",
- "|xns": "Roo",
- "items": [
- {
- "listeners": {
- "|render": "function() \n{\n _this.timegrid = this; \n //_this.dialog = Pman.Dialog.FILL_IN\n if (_this.timepanel.active) {\n // this.footer.onClick('first');\n }\n}",
- "|rowdblclick": "function (_self, rowIndex, e)\n{\n if (!_this.dialog) return;\n _this.dialog.show( this.getDataSource().getAt(rowIndex), function() {\n _this.grid.footer.onClick('first');\n }); \n}\n"
- },
- "*prop": "grid",
- "autoExpandColumn": "activity_ref",
- "loadMask": true,
- "xtype": "Grid",
- "|xns": "Roo.grid",
- "items": [
- {
- "|xns": "Roo",
- "xtype": "Toolbar",
- "*prop": "toolbar",
- "items": [
- {
- "|xns": "Roo.form",
- "xtype": "ComboBox",
- "allowBlank": "false",
- "editable": "false",
- "emptyText": "Select Person",
- "forceSelection": true,
- "listWidth": 400,
- "loadingText": "Searching...",
- "minChars": 2,
- "pageSize": 20,
- "qtip": "Select Person",
- "selectOnFocus": true,
- "triggerAction": "all",
- "typeAhead": true,
- "width": 300,
- "tpl": "<div class=\"x-grid-cell-text x-btn button\"><b>{name}</b> </div>",
- "queryParam": "",
- "fieldLabel": "Person",
- "valueField": "id",
- "displayField": "",
- "hiddenName": "",
- "name": "",
- "items": [
- {
- "*prop": "store",
- "xtype": "Store",
- "|xns": "Roo.data",
- "remoteSort": true,
- "|sortInfo": "{ direction : 'ASC', field: 'id' }",
- "listeners": {
- "|beforeload": "function (_self, o){\n o.params = o.params || {};\n // set more here\n}\n"
- },
- "items": [
- {
- "*prop": "proxy",
- "xtype": "HttpProxy",
- "method": "GET",
- "|xns": "Roo.data",
- "|url": "baseURL + '/Roo/Person.php'"
- },
- {
- "*prop": "reader",
- "xtype": "JsonReader",
- "|xns": "Roo.data",
- "id": "id",
- "root": "data",
- "totalProperty": "total",
- "|fields": "[{\"name\":\"id\",\"type\":\"int\"},{\"name\":\"name\",\"type\":\"string\"}]"
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "*prop": "dataSource",
- "xtype": "Store",
- "remoteSort": true,
- "|sortInfo": "{ field : 'description', direction: 'ASC' }",
- "|xns": "Roo.data",
- "items": [
- {
- "*prop": "proxy",
- "xtype": "HttpProxy",
- "method": "GET",
- "|url": "baseURL + '/Roo/cash_invoice_entry.php'",
- "|xns": "Roo.data"
- },
- {
- "|xns": "Roo.data",
- "xtype": "JsonReader",
- "totalProperty": "total",
- "root": "data",
- "*prop": "reader",
- "id": "id",
- "|fields": "[\n {\n 'name': 'id',\n 'type': 'int'\n },\n {\n 'name': 'entry_dt',\n 'type': 'date',\n 'dateFormat': 'Y-m-d'\n },\n {\n 'name': 'entered_dt',\n 'type': 'date',\n 'dateFormat': 'Y-m-d'\n },\n {\n 'name': 'description',\n 'type': 'string'\n },\n {\n 'name': 'action',\n 'type': 'string'\n },\n {\n 'name': 'qty',\n 'type': 'string'\n },\n {\n 'name': 'invoice_id',\n 'type': 'int'\n },\n {\n 'name': 'pricevalue',\n 'type': 'float'\n },\n {\n 'name': 'qtyvalue',\n 'type': 'float'\n },\n {\n 'name': 'to_account_id',\n 'type': 'int'\n },\n {\n 'name': 'discount',\n 'type': 'float'\n },\n {\n 'name': 'action_dt',\n 'type': 'date',\n 'dateFormat': 'Y-m-d'\n },\n {\n 'name': 'staff_id',\n 'type': 'int'\n },\n {\n 'name': 'invoice_id_id',\n 'type': 'int'\n },\n {\n 'name': 'invoice_id_idtxt',\n 'type': 'string'\n },\n {\n 'name': 'invoice_id_project_id',\n 'type': 'int'\n },\n {\n 'name': 'invoice_id_opened_dt',\n 'type': 'date'\n },\n {\n 'name': 'invoice_id_posted',\n 'type': 'date'\n },\n {\n 'name': 'invoice_id_post_transaction_id',\n 'type': 'int'\n },\n {\n 'name': 'invoice_id_post_account_id',\n 'type': 'int'\n },\n {\n 'name': 'invoice_id_paid',\n 'type': 'float'\n },\n {\n 'name': 'invoice_id_total',\n 'type': 'float'\n },\n {\n 'name': 'invoice_id_duedate',\n 'type': 'date'\n },\n {\n 'name': 'to_account_id_id',\n 'type': 'int'\n },\n {\n 'name': 'to_account_id_name',\n 'type': 'string'\n },\n {\n 'name': 'to_account_id_type',\n 'type': 'string'\n },\n {\n 'name': 'to_account_id_commodity',\n 'type': 'string'\n },\n {\n 'name': 'to_account_id_scu',\n 'type': 'string'\n },\n {\n 'name': 'to_account_id_description',\n 'type': 'string'\n },\n {\n 'name': 'to_account_id_parent',\n 'type': 'int'\n },\n {\n 'name': 'to_account_id_fullname',\n 'type': 'string'\n },\n {\n 'name': 'staff_id_id',\n 'type': 'int'\n },\n {\n 'name': 'staff_id_office_id',\n 'type': 'int'\n },\n {\n 'name': 'staff_id_name',\n 'type': 'string'\n },\n {\n 'name': 'staff_id_phone',\n 'type': 'string'\n },\n {\n 'name': 'staff_id_fax',\n 'type': 'string'\n },\n {\n 'name': 'staff_id_email',\n 'type': 'string'\n },\n {\n 'name': 'staff_id_company_id',\n 'type': 'int'\n },\n {\n 'name': 'staff_id_role',\n 'type': 'string'\n },\n {\n 'name': 'staff_id_active',\n 'type': 'int'\n },\n {\n 'name': 'staff_id_remarks',\n 'type': 'string'\n },\n {\n 'name': 'staff_id_passwd',\n 'type': 'string'\n },\n {\n 'name': 'staff_id_owner_id',\n 'type': 'int'\n },\n {\n 'name': 'staff_id_lang',\n 'type': 'string'\n },\n {\n 'name': 'staff_id_no_reset_sent',\n 'type': 'int'\n },\n {\n 'name': 'staff_id_action_type',\n 'type': 'string'\n },\n {\n 'name': 'staff_id_project_id',\n 'type': 'int'\n },\n {\n 'name': 'staff_id_deleted_by',\n 'type': 'int'\n },\n {\n 'name': 'staff_id_deleted_dt',\n 'type': 'date'\n }\n]"
- }
- ]
- },
- {
- "*prop": "colModel[]",
- "dataIndex": "hour",
- "header": "Hour",
- "width": 50,
- "xtype": "ColumnModel",
- "|renderer": "function(v) { return String.format('{0}', v); }",
- "|xns": "Roo.grid"
- },
- {
- "*prop": "colModel[]",
- "dataIndex": "activity_ref",
- "header": "Activity",
- "width": 300,
- "xtype": "ColumnModel",
- "|renderer": "function(v) { return String.format('{0}', v ? v.format('d/M/Y') : ''); }",
- "|xns": "Roo.grid"
- },
- {
- "*prop": "colModel[]",
- "dataIndex": "entered_dt",
- "header": "Timesheet",
- "width": 300,
- "xtype": "ColumnModel",
- "|renderer": "function(v) { return String.format('{0}', v ? v.format('d/M/Y') : ''); }",
- "|xns": "Roo.grid"
- }
- ]
- }
- ]
- },
- {
- "*prop": "east",
- "width": 350,
- "xtype": "LayoutRegion",
- "|xns": "Roo"
- },
- {
- "region": "east",
- "xtype": "NestedLayoutPanel",
- "|xns": "Roo",
- "items": [
- {
- "|xns": "Roo",
- "xtype": "BorderLayout",
- "*prop": "layout",
- "items": [
- {
- "*prop": "north",
- "height": 200,
- "title": "Details",
- "xtype": "LayoutRegion",
- "|xns": "Roo"
- },
- {
- "*prop": "center",
- "title": "Task Queue",
- "xtype": "LayoutRegion",
- "|xns": "Roo"
- },
- {
- "listeners": {
- "|activate": "function() {\n _this.queuepanel = this;\n if (_this.queuegrid) {\n //_this.queuegrid.footer.onClick('first');\n }\n}"
- },
- "background": true,
- "fitContainer": true,
- "fitToframe": true,
- "region": "center",
- "tableName": "mtrack_ticket",
- "title": "mtrack_ticket",
- "xtype": "GridPanel",
- "|xns": "Roo",
- "items": [
- {
- "listeners": {
- "|render": "function() \n{\n _this.queuegrid = this; \n //_this.dialog = Pman.Dialog.FILL_IN\n if (_this.queuepanel.active) {\n //this.footer.onClick('first');\n }\n}",
- "|rowdblclick": "function (_self, rowIndex, e)\n{\n if (!_this.dialog) return;\n _this.dialog.show( this.getDataSource().getAt(rowIndex), function() {\n _this.grid.footer.onClick('first');\n }); \n}\n"
- },
- "*prop": "grid",
- "autoExpandColumn": "summary",
- "loadMask": true,
- "xtype": "Grid",
- "|xns": "Roo.grid",
- "items": [
- {
- "*prop": "dataSource",
- "xtype": "Store",
- "remoteSort": true,
- "|sortInfo": "{ field : 'summary', direction: 'ASC' }",
- "|xns": "Roo.data",
- "items": [
- {
- "*prop": "proxy",
- "xtype": "HttpProxy",
- "method": "GET",
- "|url": "baseURL + '/Roo/mtrack_ticket.php'",
- "|xns": "Roo.data"
- },
- {
- "|xns": "Roo.data",
- "xtype": "JsonReader",
- "totalProperty": "total",
- "root": "data",
- "*prop": "reader",
- "id": "id",
- "|fields": "[\n {\n 'name': 'id',\n 'type': 'int'\n },\n {\n 'name': 'project_id',\n 'type': 'int'\n },\n {\n 'name': 'summary',\n 'type': 'string'\n },\n {\n 'name': 'description',\n 'type': 'string'\n },\n {\n 'name': 'changelog',\n 'type': 'string'\n },\n {\n 'name': 'created',\n 'type': 'int'\n },\n {\n 'name': 'updated',\n 'type': 'int'\n },\n {\n 'name': 'owner_id',\n 'type': 'int'\n },\n {\n 'name': 'priority_id',\n 'type': 'int'\n },\n {\n 'name': 'severity_id',\n 'type': 'int'\n },\n {\n 'name': 'classification_id',\n 'type': 'int'\n },\n {\n 'name': 'resolution_id',\n 'type': 'int'\n },\n {\n 'name': 'cc',\n 'type': 'string'\n },\n {\n 'name': 'status',\n 'type': 'int'\n },\n {\n 'name': 'estimated',\n 'type': 'float'\n },\n {\n 'name': 'spent',\n 'type': 'float'\n },\n {\n 'name': 'x_fieldname',\n 'type': 'string'\n },\n {\n 'name': 'developer_id',\n 'type': 'int'\n },\n {\n 'name': 'milestone_id',\n 'type': 'int'\n },\n {\n 'name': 'updated_id',\n 'type': 'int'\n },\n {\n 'name': 'updated_person_id',\n 'type': 'int'\n },\n {\n 'name': 'updated_ontable',\n 'type': 'string'\n },\n {\n 'name': 'updated_onid',\n 'type': 'int'\n },\n {\n 'name': 'updated_changedate',\n 'type': 'date'\n },\n {\n 'name': 'updated_reason',\n 'type': 'string'\n },\n {\n 'name': 'created_id',\n 'type': 'int'\n },\n {\n 'name': 'created_person_id',\n 'type': 'int'\n },\n {\n 'name': 'created_ontable',\n 'type': 'string'\n },\n {\n 'name': 'created_onid',\n 'type': 'int'\n },\n {\n 'name': 'created_changedate',\n 'type': 'date'\n },\n {\n 'name': 'created_reason',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_id',\n 'type': 'int'\n },\n {\n 'name': 'owner_id_office_id',\n 'type': 'int'\n },\n {\n 'name': 'owner_id_name',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_phone',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_fax',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_email',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_company_id',\n 'type': 'int'\n },\n {\n 'name': 'owner_id_role',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_active',\n 'type': 'int'\n },\n {\n 'name': 'owner_id_remarks',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_passwd',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_owner_id',\n 'type': 'int'\n },\n {\n 'name': 'owner_id_lang',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_no_reset_sent',\n 'type': 'int'\n },\n {\n 'name': 'owner_id_action_type',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_project_id',\n 'type': 'int'\n },\n {\n 'name': 'owner_id_deleted_by',\n 'type': 'int'\n },\n {\n 'name': 'owner_id_deleted_dt',\n 'type': 'date'\n },\n {\n 'name': 'developer_id_id',\n 'type': 'int'\n },\n {\n 'name': 'developer_id_office_id',\n 'type': 'int'\n },\n {\n 'name': 'developer_id_name',\n 'type': 'string'\n },\n {\n 'name': 'developer_id_phone',\n 'type': 'string'\n },\n {\n 'name': 'developer_id_fax',\n 'type': 'string'\n },\n {\n 'name': 'developer_id_email',\n 'type': 'string'\n },\n {\n 'name': 'developer_id_company_id',\n 'type': 'int'\n },\n {\n 'name': 'developer_id_role',\n 'type': 'string'\n },\n {\n 'name': 'developer_id_active',\n 'type': 'int'\n },\n {\n 'name': 'developer_id_remarks',\n 'type': 'string'\n },\n {\n 'name': 'developer_id_passwd',\n 'type': 'string'\n },\n {\n 'name': 'developer_id_owner_id',\n 'type': 'int'\n },\n {\n 'name': 'developer_id_lang',\n 'type': 'string'\n },\n {\n 'name': 'developer_id_no_reset_sent',\n 'type': 'int'\n },\n {\n 'name': 'developer_id_action_type',\n 'type': 'string'\n },\n {\n 'name': 'developer_id_project_id',\n 'type': 'int'\n },\n {\n 'name': 'developer_id_deleted_by',\n 'type': 'int'\n },\n {\n 'name': 'developer_id_deleted_dt',\n 'type': 'date'\n },\n {\n 'name': 'priority_id_id',\n 'type': 'int'\n },\n {\n 'name': 'priority_id_etype',\n 'type': 'string'\n },\n {\n 'name': 'priority_id_name',\n 'type': 'string'\n },\n {\n 'name': 'priority_id_active',\n 'type': 'int'\n },\n {\n 'name': 'priority_id_seqid',\n 'type': 'int'\n },\n {\n 'name': 'severity_id_id',\n 'type': 'int'\n },\n {\n 'name': 'severity_id_etype',\n 'type': 'string'\n },\n {\n 'name': 'severity_id_name',\n 'type': 'string'\n },\n {\n 'name': 'severity_id_active',\n 'type': 'int'\n },\n {\n 'name': 'severity_id_seqid',\n 'type': 'int'\n },\n {\n 'name': 'classification_id_id',\n 'type': 'int'\n },\n {\n 'name': 'classification_id_etype',\n 'type': 'string'\n },\n {\n 'name': 'classification_id_name',\n 'type': 'string'\n },\n {\n 'name': 'classification_id_active',\n 'type': 'int'\n },\n {\n 'name': 'classification_id_seqid',\n 'type': 'int'\n },\n {\n 'name': 'resolution_id_id',\n 'type': 'int'\n },\n {\n 'name': 'resolution_id_etype',\n 'type': 'string'\n },\n {\n 'name': 'resolution_id_name',\n 'type': 'string'\n },\n {\n 'name': 'resolution_id_active',\n 'type': 'int'\n },\n {\n 'name': 'resolution_id_seqid',\n 'type': 'int'\n },\n {\n 'name': 'status_id',\n 'type': 'int'\n },\n {\n 'name': 'status_etype',\n 'type': 'string'\n },\n {\n 'name': 'status_name',\n 'type': 'string'\n },\n {\n 'name': 'status_active',\n 'type': 'int'\n },\n {\n 'name': 'status_seqid',\n 'type': 'int'\n },\n {\n 'name': 'project_id_id',\n 'type': 'int'\n },\n {\n 'name': 'project_id_name',\n 'type': 'string'\n },\n {\n 'name': 'project_id_remarks',\n 'type': 'string'\n },\n {\n 'name': 'project_id_owner_id',\n 'type': 'int'\n },\n {\n 'name': 'project_id_code',\n 'type': 'string'\n },\n {\n 'name': 'project_id_active',\n 'type': 'int'\n },\n {\n 'name': 'project_id_type',\n 'type': 'string'\n },\n {\n 'name': 'project_id_client_id',\n 'type': 'int'\n },\n {\n 'name': 'project_id_team_id',\n 'type': 'int'\n },\n {\n 'name': 'project_id_file_location',\n 'type': 'string'\n },\n {\n 'name': 'project_id_open_date',\n 'type': 'date'\n },\n {\n 'name': 'project_id_open_by',\n 'type': 'int'\n },\n {\n 'name': 'project_id_close_date',\n 'type': 'date'\n },\n {\n 'name': 'project_id_countries',\n 'type': 'string'\n },\n {\n 'name': 'project_id_languages',\n 'type': 'string'\n },\n {\n 'name': 'project_id_agency_id',\n 'type': 'int'\n },\n {\n 'name': 'milestone_id_id',\n 'type': 'int'\n },\n {\n 'name': 'milestone_id_name',\n 'type': 'string'\n },\n {\n 'name': 'milestone_id_description',\n 'type': 'string'\n },\n {\n 'name': 'milestone_id_startdate',\n 'type': 'date'\n },\n {\n 'name': 'milestone_id_duedate',\n 'type': 'date'\n },\n {\n 'name': 'milestone_id_completed',\n 'type': 'date'\n },\n {\n 'name': 'milestone_id_deleted',\n 'type': 'int'\n },\n {\n 'name': 'milestone_id_created',\n 'type': 'int'\n },\n {\n 'name': 'milestone_id_updated',\n 'type': 'int'\n },\n {\n 'name': 'milestone_id_project_id',\n 'type': 'int'\n }\n]"
- }
- ]
- },
- {
- "xtype": "ColumnModel",
- "header": "Summary",
- "width": 200,
- "dataIndex": "summary",
- "|renderer": "function(v) { return String.format('{0}', v); }",
- "|xns": "Roo.grid",
- "*prop": "colModel[]"
- }
- ]
- }
- ]
- },
- {
- "region": "north",
- "xtype": "ContentPanel",
- "|xns": "Roo",
- "items": [
- {
- "listeners": {
- "|actioncomplete": "function(_self,action)\n{\n \n \n Roo.log('action complete');\n Roo .log(action);\n if (action.type == 'setdata') {\n\n _this.isClose = false; // force flag..\n \n if (this.activeRecord) {\n this.saveActive( this.activeRecord);\n }\n \n \n \n // show form..\n if (!action.data || !action.data.action) {\n _this.form.el.mask('select something'); \n this.activeRecord = false;\n _this.form.reset(); \n return;\n }\n _this.form.el.unmask(); \n \n this.activeRecord = action.rec;\n \n \n\n \n \n // should save here if we are 'dirty!';\n _this.form.reset();\n _this.form.setValues(action.data);\n // set the dates so they are correct..\n _this.form.setValues( { \n \n action_dt : action.data.action_dt.format('Y-m-d H:i:s'),\n entry_dt: action.data.action_dt.format('Y-m-d'),\n qtyvalue2 : action.data.qtyvalue\n });\n // set the default values..\n // for dirty test...\n _this.form.items.each(function(f) {\n f.originalValue = f.getValue();\n });\n \n \n \n \n // form is set to an event.\n \n \n \n return;\n }\n \n \n if (action.type == 'load') {\n \n return;\n }\n if (action.type =='submit') {\n // set this on the close button..\n if (_this.isClose) {\n _this.dialog.hide();\n }\n \n if (_this.callback) {\n _this.callback.call(_this, _this.form.getValues());\n }\n\n return;\n }\n}\n",
- "|rendered": "function (form)\n{\n _this.form= form;\n}\n"
- },
- "activeData": false,
- "method": "POST",
- "style": "margin-left:10px;",
- "xtype": "Form",
- "|saveActive": "function(rec, effort) {\n \n effort = effort || 0;\n \n\n if (!rec) {\n Roo.log(\"ERROR: saveActive: record not set \");\n return;\n }\n\n var d = Roo.apply({}, rec.data); // copy it so changes do not affect crap...\n \n var upd = (new Date()).format('Y-m-d H:i:s');\n \n \n \n \n //Roo.log(\"SAVE IT: \" + Roo.encode(d) );\n \n // return;\n var at = typeof(d.action_dt) == 'string' ? Date.parseDate(d.action_dt, 'Y-m-d H:i:s') : d.action_dt\n \n new Pman.Request({\n url : baseURL + '/Roo/Cash_invoice_entry.php',\n method : 'POST',\n params : {\n id : d.id,\n entry_dt: at.format('Y-m-d'), // this should not change for posted entries really...\n entered_dt: upd, \n action_dt : at.format('Y-m-d H:i:s'),\n qtyvalue : d.qtyvalue,\n action: 'Hours',\n description: d.description,\n pricevalue: d.pricevalue, \n project_id : d.project_id,\n staff_id : d.staff_id * 1 ? d.staff_id : Pman.Login.authUser.id,\n ticket_id : d.ticket_id ? d.ticket_id : 0\n \n },\n success : function(res)\n {\n // everythings fine..\n \n // we have to update the view object... now...\n // we can not reload as that may blank out data..\n if (!rec.data.id) {\n Roo.log(\"Setting data id to \" + res.data.id);\n rec.set('id', res.data.id);\n\n }\n\n \n },\n failure : function()\n {\n effort++;\n if (effort > 3) {\n Roo.MessageBox.alert(\"Error\", \"Saving timesheet failed\");\n return;\n }\n _this.form.saveActive(rec, effort);\n }\n \n });\n}\n",
- "|url": "baseURL + '/Roo/cash_invoice_entry.php'",
- "|xns": "Roo.form",
- "items": [
- {
- "listeners": {
- "render": "function (_self)\n{\n _this.projectSel = _self;\n}",
- "beforeselect": "function (combo, record, index)\n{\n\n Roo.log('save it');\n var sel = _this.grid.ds.selectedBar();\n \n if (!sel) {\n Roo.log(\"nothing selected?\");\n return;\n }\n \n // active record should be the same thing.\n sel.set('project_id', record.data.id);\n sel.set('project_id_code', record.data.code);\n sel.set('project_id_name', record.data.name);\n \n \n _this.grid.ds.updateBar(sel);\n \n \n \n}"
- },
- "allowBlank": "false",
- "displayField": "name",
- "editable": "false",
- "emptyText": "Select Project",
- "fieldLabel": "Project",
- "forceSelection": true,
- "hiddenName": "project_id",
- "listWidth": 400,
- "loadingText": "Searching...",
- "minChars": 2,
- "name": "project_id_name",
- "pageSize": 20,
- "qtip": "Select Projects",
- "queryParam": "query[name]",
- "selectOnFocus": true,
- "tpl": "<div class=\"x-grid-cell-text x-btn button\"><b>{code}</b> - {name}</div>",
- "triggerAction": "all",
- "typeAhead": true,
- "valueField": "id",
- "width": 200,
- "xtype": "ComboBox",
- "|xns": "Roo.form",
- "items": [
- {
- "listeners": {
- "|beforeload": "function (_self, o){\n o.params = o.params || {};\n o.params['query[project_filter]'] = 'P,N,U'; // actually this is the default.\n \n // set more here\n}\n"
- },
- "*prop": "store",
- "remoteSort": true,
- "xtype": "Store",
- "|sortInfo": "{ field: 'code', direction: 'ASC' }",
- "|xns": "Roo.data",
- "items": [
- {
- "*prop": "proxy",
- "xtype": "HttpProxy",
- "method": "GET",
- "|xns": "Roo.data",
- "|url": "baseURL + '/Roo/Projects.php'"
- },
- {
- "*prop": "reader",
- "xtype": "JsonReader",
- "|xns": "Roo.data",
- "id": "id",
- "root": "data",
- "totalProperty": "total",
- "|fields": "[{\"name\":\"id\",\"type\":\"int\"},{\"name\":\"name\",\"type\":\"string\"}]"
- }
- ]
- }
- ]
- },
- {
- "labelAlign": "top",
- "width": 300,
- "xtype": "Column",
- "|xns": "Roo.form",
- "items": [
- {
- "listeners": {
- "keyup": "function (_self, e)\n{\n _this.selectedRec.set('description', this.getValue());\n _this.grid.dataSource.updateBar(_this.selectedRec);\n \n}"
- },
- "fieldLabel": "Description",
- "height": 120,
- "name": "description",
- "width": 300,
- "xtype": "TextArea",
- "|xns": "Roo.form"
- }
- ]
- },
- {
- "name": "action",
- "xtype": "Hidden",
- "|xns": "Roo.form"
- },
- {
- "name": "staff_id",
- "xtype": "Hidden",
- "|xns": "Roo.form"
- },
- {
- "name": "qtyvalue",
- "xtype": "Hidden",
- "|xns": "Roo.form"
- },
- {
- "name": "qtyvalue2",
- "xtype": "Hidden",
- "|xns": "Roo.form"
- },
- {
- "name": "entry_dt",
- "xtype": "Hidden",
- "|xns": "Roo.form"
- },
- {
- "name": "action_dt",
- "xtype": "Hidden",
- "|xns": "Roo.form"
- },
- {
- "name": "id",
- "|xns": "Roo.form",
- "xtype": "Hidden"
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- }
- ]
+ "xtype" : "Hidden",
+ "$ xns" : "Roo.form",
+ "name" : "action"
},
{
- "region": "center",
- "title": "Plan Time",
- "xtype": "NestedLayoutPanel",
- "|xns": "Roo",
- "items": [
- {
- "|xns": "Roo",
- "xtype": "BorderLayout",
- "*prop": "layout",
- "items": [
- {
- "*prop": "west",
- "title": "Open Tasks (Unassigned)",
- "width": 450,
- "xtype": "LayoutRegion",
- "|xns": "Roo"
- },
- {
- "*prop": "center",
- "title": "Assigned to",
- "xtype": "LayoutRegion",
- "|xns": "Roo"
- }
- ]
- }
- ]
+ "xtype" : "Hidden",
+ "$ xns" : "Roo.form",
+ "name" : "staff_id"
+ },
+ {
+ "xtype" : "Hidden",
+ "$ xns" : "Roo.form",
+ "name" : "qtyvalue"
+ },
+ {
+ "xtype" : "Hidden",
+ "$ xns" : "Roo.form",
+ "name" : "qtyvalue2"
+ },
+ {
+ "xtype" : "Hidden",
+ "$ xns" : "Roo.form",
+ "name" : "entry_dt"
+ },
+ {
+ "xtype" : "Hidden",
+ "$ xns" : "Roo.form",
+ "name" : "action_dt"
+ },
+ {
+ "xtype" : "Hidden",
+ "$ xns" : "Roo.form",
+ "name" : "id"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "region" : "center",
+ "title" : "Plan Time",
+ "xtype" : "NestedLayoutPanel",
+ "$ xns" : "Roo",
+ "items" : [
+ {
+ "xtype" : "BorderLayout",
+ "$ xns" : "Roo",
+ "* prop" : "layout",
+ "items" : [
+ {
+ "title" : "Open Tasks (Unassigned) / Select Project",
+ "xtype" : "LayoutRegion",
+ "width" : 450,
+ "$ xns" : "Roo",
+ "* prop" : "west"
+ },
+ {
+ "xtype" : "LayoutRegion",
+ "title" : "Assigned to / Prioritized (all projects)",
+ "$ xns" : "Roo",
+ "* prop" : "center"
+ },
+ {
+ "listeners" : {
+ "|activate" : "function() {\n _this.openpanel = this;\n if (_this.opengrid) {\n // _this.opengrid.footer.onClick('first');\n }\n}"
+ },
+ "region" : "west",
+ "fitToframe" : true,
+ "background" : false,
+ "title" : "mtrack_ticket",
+ "xtype" : "GridPanel",
+ "fitContainer" : true,
+ "$ xns" : "Roo",
+ "tableName" : "mtrack_ticket",
+ "items" : [
+ {
+ "listeners" : {
+ "|rowdblclick" : "function (_self, rowIndex, e)\n{\n if (!_this.dialog) { return; }\n _this.dialog.show( this.getDataSource().getAt(rowIndex), function() {\n _this.grid.footer.onClick('first');\n }); \n}\n",
+ "|render" : "function() \n{\n _this.opengrid = this; \n //_this.dialog = Pman.Dialog.FILL_IN\n if (_this.openpanel.active) {\n //this.footer.onClick('first');\n }\n}"
+ },
+ "autoExpandColumn" : "summary",
+ "xtype" : "Grid",
+ "loadMask" : true,
+ "$ xns" : "Roo.grid",
+ "* prop" : "grid",
+ "items" : [
+ {
+ "xtype" : "Toolbar",
+ "$ xns" : "Roo",
+ "* prop" : "toolbar",
+ "items" : [
+ {
+ "listWidth" : 400,
+ "triggerAction" : "all",
+ "fieldLabel" : "mtrack_ticket",
+ "forceSelection" : true,
+ "selectOnFocus" : true,
+ "pageSize" : 20,
+ "emptyText" : "Select Project",
+ "displayField" : "",
+ "hiddenName" : "",
+ "minChars" : 2,
+ "valueField" : "id",
+ "xtype" : "ComboBox",
+ "typeAhead" : true,
+ "editable" : false,
+ "width" : 300,
+ "$ xns" : "Roo.form",
+ "name" : "",
+ "qtip" : "Select mtrack_ticket",
+ "queryParam" : "",
+ "tpl" : "<div class=\"x-grid-cell-text x-btn button\"><b>{name}</b> </div>",
+ "loadingText" : "Searching...",
+ "items" : [
+ {
+ "listeners" : {
+ "|beforeload" : "function (_self, o){\n o.params = o.params || {};\n // set more here\n}\n"
+ },
+ "xtype" : "Store",
+ "remoteSort" : true,
+ "$ xns" : "Roo.data",
+ "$ sortInfo" : "{ direction : 'ASC', field: 'id' }",
+ "* prop" : "store",
+ "items" : [
+ {
+ "$ url" : "baseURL + '/Roo/mtrack_ticket.php'",
+ "xtype" : "HttpProxy",
+ "method" : "GET",
+ "$ xns" : "Roo.data",
+ "* prop" : "proxy"
+ },
+ {
+ "id" : "id",
+ "root" : "data",
+ "xtype" : "JsonReader",
+ "$ xns" : "Roo.data",
+ "$ fields" : "[{\"name\":\"id\",\"type\":\"int\"},{\"name\":\"summary\",\"type\":\"string\"}]",
+ "* prop" : "reader",
+ "totalProperty" : "total"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "remoteSort" : true,
+ "xtype" : "Store",
+ "$ sortInfo" : "{ field : 'summary', direction: 'ASC' }",
+ "$ xns" : "Roo.data",
+ "* prop" : "dataSource",
+ "items" : [
+ {
+ "$ url" : "baseURL + '/Roo/mtrack_ticket.php'",
+ "xtype" : "HttpProxy",
+ "method" : "GET",
+ "$ xns" : "Roo.data",
+ "* prop" : "proxy"
+ },
+ {
+ "id" : "id",
+ "root" : "data",
+ "xtype" : "JsonReader",
+ "$ xns" : "Roo.data",
+ "$ fields" : "[\n {\n 'name': 'id',\n 'type': 'int'\n },\n {\n 'name': 'project_id',\n 'type': 'int'\n },\n {\n 'name': 'summary',\n 'type': 'string'\n },\n {\n 'name': 'description',\n 'type': 'string'\n },\n {\n 'name': 'changelog',\n 'type': 'string'\n },\n {\n 'name': 'created',\n 'type': 'int'\n },\n {\n 'name': 'updated',\n 'type': 'int'\n },\n {\n 'name': 'owner_id',\n 'type': 'int'\n },\n {\n 'name': 'priority_id',\n 'type': 'int'\n },\n {\n 'name': 'severity_id',\n 'type': 'int'\n },\n {\n 'name': 'classification_id',\n 'type': 'int'\n },\n {\n 'name': 'resolution_id',\n 'type': 'int'\n },\n {\n 'name': 'cc',\n 'type': 'string'\n },\n {\n 'name': 'status',\n 'type': 'int'\n },\n {\n 'name': 'estimated',\n 'type': 'float'\n },\n {\n 'name': 'spent',\n 'type': 'float'\n },\n {\n 'name': 'x_fieldname',\n 'type': 'string'\n },\n {\n 'name': 'developer_id',\n 'type': 'int'\n },\n {\n 'name': 'milestone_id',\n 'type': 'int'\n },\n {\n 'name': 'updated_id',\n 'type': 'int'\n },\n {\n 'name': 'updated_person_id',\n 'type': 'int'\n },\n {\n 'name': 'updated_ontable',\n 'type': 'string'\n },\n {\n 'name': 'updated_onid',\n 'type': 'int'\n },\n {\n 'name': 'updated_changedate',\n 'type': 'date'\n },\n {\n 'name': 'updated_reason',\n 'type': 'string'\n },\n {\n 'name': 'created_id',\n 'type': 'int'\n },\n {\n 'name': 'created_person_id',\n 'type': 'int'\n },\n {\n 'name': 'created_ontable',\n 'type': 'string'\n },\n {\n 'name': 'created_onid',\n 'type': 'int'\n },\n {\n 'name': 'created_changedate',\n 'type': 'date'\n },\n {\n 'name': 'created_reason',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_id',\n 'type': 'int'\n },\n {\n 'name': 'owner_id_office_id',\n 'type': 'int'\n },\n {\n 'name': 'owner_id_name',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_phone',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_fax',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_email',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_company_id',\n 'type': 'int'\n },\n {\n 'name': 'owner_id_role',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_active',\n 'type': 'int'\n },\n {\n 'name': 'owner_id_remarks',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_passwd',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_owner_id',\n 'type': 'int'\n },\n {\n 'name': 'owner_id_lang',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_no_reset_sent',\n 'type': 'int'\n },\n {\n 'name': 'owner_id_action_type',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_project_id',\n 'type': 'int'\n },\n {\n 'name': 'owner_id_deleted_by',\n 'type': 'int'\n },\n {\n 'name': 'owner_id_deleted_dt',\n 'type': 'date'\n },\n {\n 'name': 'developer_id_id',\n 'type': 'int'\n },\n {\n 'name': 'developer_id_office_id',\n 'type': 'int'\n },\n {\n 'name': 'developer_id_name',\n 'type': 'string'\n },\n {\n 'name': 'developer_id_phone',\n 'type': 'string'\n },\n {\n 'name': 'developer_id_fax',\n 'type': 'string'\n },\n {\n 'name': 'developer_id_email',\n 'type': 'string'\n },\n {\n 'name': 'developer_id_company_id',\n 'type': 'int'\n },\n {\n 'name': 'developer_id_role',\n 'type': 'string'\n },\n {\n 'name': 'developer_id_active',\n 'type': 'int'\n },\n {\n 'name': 'developer_id_remarks',\n 'type': 'string'\n },\n {\n 'name': 'developer_id_passwd',\n 'type': 'string'\n },\n {\n 'name': 'developer_id_owner_id',\n 'type': 'int'\n },\n {\n 'name': 'developer_id_lang',\n 'type': 'string'\n },\n {\n 'name': 'developer_id_no_reset_sent',\n 'type': 'int'\n },\n {\n 'name': 'developer_id_action_type',\n 'type': 'string'\n },\n {\n 'name': 'developer_id_project_id',\n 'type': 'int'\n },\n {\n 'name': 'developer_id_deleted_by',\n 'type': 'int'\n },\n {\n 'name': 'developer_id_deleted_dt',\n 'type': 'date'\n },\n {\n 'name': 'priority_id_id',\n 'type': 'int'\n },\n {\n 'name': 'priority_id_etype',\n 'type': 'string'\n },\n {\n 'name': 'priority_id_name',\n 'type': 'string'\n },\n {\n 'name': 'priority_id_active',\n 'type': 'int'\n },\n {\n 'name': 'priority_id_seqid',\n 'type': 'int'\n },\n {\n 'name': 'severity_id_id',\n 'type': 'int'\n },\n {\n 'name': 'severity_id_etype',\n 'type': 'string'\n },\n {\n 'name': 'severity_id_name',\n 'type': 'string'\n },\n {\n 'name': 'severity_id_active',\n 'type': 'int'\n },\n {\n 'name': 'severity_id_seqid',\n 'type': 'int'\n },\n {\n 'name': 'classification_id_id',\n 'type': 'int'\n },\n {\n 'name': 'classification_id_etype',\n 'type': 'string'\n },\n {\n 'name': 'classification_id_name',\n 'type': 'string'\n },\n {\n 'name': 'classification_id_active',\n 'type': 'int'\n },\n {\n 'name': 'classification_id_seqid',\n 'type': 'int'\n },\n {\n 'name': 'resolution_id_id',\n 'type': 'int'\n },\n {\n 'name': 'resolution_id_etype',\n 'type': 'string'\n },\n {\n 'name': 'resolution_id_name',\n 'type': 'string'\n },\n {\n 'name': 'resolution_id_active',\n 'type': 'int'\n },\n {\n 'name': 'resolution_id_seqid',\n 'type': 'int'\n },\n {\n 'name': 'status_id',\n 'type': 'int'\n },\n {\n 'name': 'status_etype',\n 'type': 'string'\n },\n {\n 'name': 'status_name',\n 'type': 'string'\n },\n {\n 'name': 'status_active',\n 'type': 'int'\n },\n {\n 'name': 'status_seqid',\n 'type': 'int'\n },\n {\n 'name': 'project_id_id',\n 'type': 'int'\n },\n {\n 'name': 'project_id_name',\n 'type': 'string'\n },\n {\n 'name': 'project_id_remarks',\n 'type': 'string'\n },\n {\n 'name': 'project_id_owner_id',\n 'type': 'int'\n },\n {\n 'name': 'project_id_code',\n 'type': 'string'\n },\n {\n 'name': 'project_id_active',\n 'type': 'int'\n },\n {\n 'name': 'project_id_type',\n 'type': 'string'\n },\n {\n 'name': 'project_id_client_id',\n 'type': 'int'\n },\n {\n 'name': 'project_id_team_id',\n 'type': 'int'\n },\n {\n 'name': 'project_id_file_location',\n 'type': 'string'\n },\n {\n 'name': 'project_id_open_date',\n 'type': 'date'\n },\n {\n 'name': 'project_id_open_by',\n 'type': 'int'\n },\n {\n 'name': 'project_id_close_date',\n 'type': 'date'\n },\n {\n 'name': 'project_id_countries',\n 'type': 'string'\n },\n {\n 'name': 'project_id_languages',\n 'type': 'string'\n },\n {\n 'name': 'project_id_agency_id',\n 'type': 'int'\n },\n {\n 'name': 'milestone_id_id',\n 'type': 'int'\n },\n {\n 'name': 'milestone_id_name',\n 'type': 'string'\n },\n {\n 'name': 'milestone_id_description',\n 'type': 'string'\n },\n {\n 'name': 'milestone_id_startdate',\n 'type': 'date'\n },\n {\n 'name': 'milestone_id_duedate',\n 'type': 'date'\n },\n {\n 'name': 'milestone_id_completed',\n 'type': 'date'\n },\n {\n 'name': 'milestone_id_deleted',\n 'type': 'int'\n },\n {\n 'name': 'milestone_id_created',\n 'type': 'int'\n },\n {\n 'name': 'milestone_id_updated',\n 'type': 'int'\n },\n {\n 'name': 'milestone_id_project_id',\n 'type': 'int'\n }\n]",
+ "* prop" : "reader",
+ "totalProperty" : "total"
+ }
+ ]
+ },
+ {
+ "xtype" : "ColumnModel",
+ "header" : "Summary",
+ "width" : 200,
+ "$ renderer" : "function(v) { return String.format('{0}', v); }",
+ "$ xns" : "Roo.grid",
+ "* prop" : "colModel[]",
+ "dataIndex" : "summary"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "listeners" : {
+ "|activate" : "function() {\n _this.openpanel = this;\n if (_this.opengrid) {\n // _this.opengrid.footer.onClick('first');\n }\n}"
+ },
+ "region" : "center",
+ "fitToframe" : true,
+ "background" : false,
+ "title" : "mtrack_ticket",
+ "xtype" : "GridPanel",
+ "fitContainer" : true,
+ "$ xns" : "Roo",
+ "tableName" : "mtrack_ticket",
+ "items" : [
+ {
+ "listeners" : {
+ "|rowdblclick" : "function (_self, rowIndex, e)\n{\n if (!_this.dialog) { return; }\n _this.dialog.show( this.getDataSource().getAt(rowIndex), function() {\n _this.grid.footer.onClick('first');\n }); \n}\n",
+ "|render" : "function() \n{\n _this.opengrid = this; \n //_this.dialog = Pman.Dialog.FILL_IN\n if (_this.openpanel.active) {\n //this.footer.onClick('first');\n }\n}"
+ },
+ "autoExpandColumn" : "summary",
+ "xtype" : "Grid",
+ "loadMask" : true,
+ "$ xns" : "Roo.grid",
+ "* prop" : "grid",
+ "items" : [
+ {
+ "xtype" : "Toolbar",
+ "$ xns" : "Roo",
+ "* prop" : "toolbar",
+ "items" : [
+ {
+ "listWidth" : 400,
+ "triggerAction" : "all",
+ "fieldLabel" : "mtrack_ticket",
+ "forceSelection" : true,
+ "selectOnFocus" : true,
+ "pageSize" : 20,
+ "emptyText" : "Select Person",
+ "displayField" : "",
+ "hiddenName" : "",
+ "minChars" : 2,
+ "valueField" : "id",
+ "xtype" : "ComboBox",
+ "typeAhead" : true,
+ "editable" : false,
+ "width" : 300,
+ "$ xns" : "Roo.form",
+ "name" : "",
+ "qtip" : "Select mtrack_ticket",
+ "queryParam" : "",
+ "tpl" : "<div class=\"x-grid-cell-text x-btn button\"><b>{name}</b> </div>",
+ "loadingText" : "Searching...",
+ "items" : [
+ {
+ "listeners" : {
+ "|beforeload" : "function (_self, o){\n o.params = o.params || {};\n // set more here\n}\n"
+ },
+ "xtype" : "Store",
+ "remoteSort" : true,
+ "$ xns" : "Roo.data",
+ "$ sortInfo" : "{ direction : 'ASC', field: 'id' }",
+ "* prop" : "store",
+ "items" : [
+ {
+ "$ url" : "baseURL + '/Roo/mtrack_ticket.php'",
+ "xtype" : "HttpProxy",
+ "method" : "GET",
+ "$ xns" : "Roo.data",
+ "* prop" : "proxy"
+ },
+ {
+ "id" : "id",
+ "root" : "data",
+ "xtype" : "JsonReader",
+ "$ xns" : "Roo.data",
+ "$ fields" : "[{\"name\":\"id\",\"type\":\"int\"},{\"name\":\"summary\",\"type\":\"string\"}]",
+ "* prop" : "reader",
+ "totalProperty" : "total"
+ }
+ ]
}
- ]
+ ]
+ }
+ ]
+ },
+ {
+ "remoteSort" : true,
+ "xtype" : "Store",
+ "$ sortInfo" : "{ field : 'summary', direction: 'ASC' }",
+ "$ xns" : "Roo.data",
+ "* prop" : "dataSource",
+ "items" : [
+ {
+ "$ url" : "baseURL + '/Roo/mtrack_ticket.php'",
+ "xtype" : "HttpProxy",
+ "method" : "GET",
+ "$ xns" : "Roo.data",
+ "* prop" : "proxy"
+ },
+ {
+ "id" : "id",
+ "root" : "data",
+ "xtype" : "JsonReader",
+ "$ xns" : "Roo.data",
+ "$ fields" : "[\n {\n 'name': 'id',\n 'type': 'int'\n },\n {\n 'name': 'project_id',\n 'type': 'int'\n },\n {\n 'name': 'summary',\n 'type': 'string'\n },\n {\n 'name': 'description',\n 'type': 'string'\n },\n {\n 'name': 'changelog',\n 'type': 'string'\n },\n {\n 'name': 'created',\n 'type': 'int'\n },\n {\n 'name': 'updated',\n 'type': 'int'\n },\n {\n 'name': 'owner_id',\n 'type': 'int'\n },\n {\n 'name': 'priority_id',\n 'type': 'int'\n },\n {\n 'name': 'severity_id',\n 'type': 'int'\n },\n {\n 'name': 'classification_id',\n 'type': 'int'\n },\n {\n 'name': 'resolution_id',\n 'type': 'int'\n },\n {\n 'name': 'cc',\n 'type': 'string'\n },\n {\n 'name': 'status',\n 'type': 'int'\n },\n {\n 'name': 'estimated',\n 'type': 'float'\n },\n {\n 'name': 'spent',\n 'type': 'float'\n },\n {\n 'name': 'x_fieldname',\n 'type': 'string'\n },\n {\n 'name': 'developer_id',\n 'type': 'int'\n },\n {\n 'name': 'milestone_id',\n 'type': 'int'\n },\n {\n 'name': 'updated_id',\n 'type': 'int'\n },\n {\n 'name': 'updated_person_id',\n 'type': 'int'\n },\n {\n 'name': 'updated_ontable',\n 'type': 'string'\n },\n {\n 'name': 'updated_onid',\n 'type': 'int'\n },\n {\n 'name': 'updated_changedate',\n 'type': 'date'\n },\n {\n 'name': 'updated_reason',\n 'type': 'string'\n },\n {\n 'name': 'created_id',\n 'type': 'int'\n },\n {\n 'name': 'created_person_id',\n 'type': 'int'\n },\n {\n 'name': 'created_ontable',\n 'type': 'string'\n },\n {\n 'name': 'created_onid',\n 'type': 'int'\n },\n {\n 'name': 'created_changedate',\n 'type': 'date'\n },\n {\n 'name': 'created_reason',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_id',\n 'type': 'int'\n },\n {\n 'name': 'owner_id_office_id',\n 'type': 'int'\n },\n {\n 'name': 'owner_id_name',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_phone',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_fax',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_email',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_company_id',\n 'type': 'int'\n },\n {\n 'name': 'owner_id_role',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_active',\n 'type': 'int'\n },\n {\n 'name': 'owner_id_remarks',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_passwd',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_owner_id',\n 'type': 'int'\n },\n {\n 'name': 'owner_id_lang',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_no_reset_sent',\n 'type': 'int'\n },\n {\n 'name': 'owner_id_action_type',\n 'type': 'string'\n },\n {\n 'name': 'owner_id_project_id',\n 'type': 'int'\n },\n {\n 'name': 'owner_id_deleted_by',\n 'type': 'int'\n },\n {\n 'name': 'owner_id_deleted_dt',\n 'type': 'date'\n },\n {\n 'name': 'developer_id_id',\n 'type': 'int'\n },\n {\n 'name': 'developer_id_office_id',\n 'type': 'int'\n },\n {\n 'name': 'developer_id_name',\n 'type': 'string'\n },\n {\n 'name': 'developer_id_phone',\n 'type': 'string'\n },\n {\n 'name': 'developer_id_fax',\n 'type': 'string'\n },\n {\n 'name': 'developer_id_email',\n 'type': 'string'\n },\n {\n 'name': 'developer_id_company_id',\n 'type': 'int'\n },\n {\n 'name': 'developer_id_role',\n 'type': 'string'\n },\n {\n 'name': 'developer_id_active',\n 'type': 'int'\n },\n {\n 'name': 'developer_id_remarks',\n 'type': 'string'\n },\n {\n 'name': 'developer_id_passwd',\n 'type': 'string'\n },\n {\n 'name': 'developer_id_owner_id',\n 'type': 'int'\n },\n {\n 'name': 'developer_id_lang',\n 'type': 'string'\n },\n {\n 'name': 'developer_id_no_reset_sent',\n 'type': 'int'\n },\n {\n 'name': 'developer_id_action_type',\n 'type': 'string'\n },\n {\n 'name': 'developer_id_project_id',\n 'type': 'int'\n },\n {\n 'name': 'developer_id_deleted_by',\n 'type': 'int'\n },\n {\n 'name': 'developer_id_deleted_dt',\n 'type': 'date'\n },\n {\n 'name': 'priority_id_id',\n 'type': 'int'\n },\n {\n 'name': 'priority_id_etype',\n 'type': 'string'\n },\n {\n 'name': 'priority_id_name',\n 'type': 'string'\n },\n {\n 'name': 'priority_id_active',\n 'type': 'int'\n },\n {\n 'name': 'priority_id_seqid',\n 'type': 'int'\n },\n {\n 'name': 'severity_id_id',\n 'type': 'int'\n },\n {\n 'name': 'severity_id_etype',\n 'type': 'string'\n },\n {\n 'name': 'severity_id_name',\n 'type': 'string'\n },\n {\n 'name': 'severity_id_active',\n 'type': 'int'\n },\n {\n 'name': 'severity_id_seqid',\n 'type': 'int'\n },\n {\n 'name': 'classification_id_id',\n 'type': 'int'\n },\n {\n 'name': 'classification_id_etype',\n 'type': 'string'\n },\n {\n 'name': 'classification_id_name',\n 'type': 'string'\n },\n {\n 'name': 'classification_id_active',\n 'type': 'int'\n },\n {\n 'name': 'classification_id_seqid',\n 'type': 'int'\n },\n {\n 'name': 'resolution_id_id',\n 'type': 'int'\n },\n {\n 'name': 'resolution_id_etype',\n 'type': 'string'\n },\n {\n 'name': 'resolution_id_name',\n 'type': 'string'\n },\n {\n 'name': 'resolution_id_active',\n 'type': 'int'\n },\n {\n 'name': 'resolution_id_seqid',\n 'type': 'int'\n },\n {\n 'name': 'status_id',\n 'type': 'int'\n },\n {\n 'name': 'status_etype',\n 'type': 'string'\n },\n {\n 'name': 'status_name',\n 'type': 'string'\n },\n {\n 'name': 'status_active',\n 'type': 'int'\n },\n {\n 'name': 'status_seqid',\n 'type': 'int'\n },\n {\n 'name': 'project_id_id',\n 'type': 'int'\n },\n {\n 'name': 'project_id_name',\n 'type': 'string'\n },\n {\n 'name': 'project_id_remarks',\n 'type': 'string'\n },\n {\n 'name': 'project_id_owner_id',\n 'type': 'int'\n },\n {\n 'name': 'project_id_code',\n 'type': 'string'\n },\n {\n 'name': 'project_id_active',\n 'type': 'int'\n },\n {\n 'name': 'project_id_type',\n 'type': 'string'\n },\n {\n 'name': 'project_id_client_id',\n 'type': 'int'\n },\n {\n 'name': 'project_id_team_id',\n 'type': 'int'\n },\n {\n 'name': 'project_id_file_location',\n 'type': 'string'\n },\n {\n 'name': 'project_id_open_date',\n 'type': 'date'\n },\n {\n 'name': 'project_id_open_by',\n 'type': 'int'\n },\n {\n 'name': 'project_id_close_date',\n 'type': 'date'\n },\n {\n 'name': 'project_id_countries',\n 'type': 'string'\n },\n {\n 'name': 'project_id_languages',\n 'type': 'string'\n },\n {\n 'name': 'project_id_agency_id',\n 'type': 'int'\n },\n {\n 'name': 'milestone_id_id',\n 'type': 'int'\n },\n {\n 'name': 'milestone_id_name',\n 'type': 'string'\n },\n {\n 'name': 'milestone_id_description',\n 'type': 'string'\n },\n {\n 'name': 'milestone_id_startdate',\n 'type': 'date'\n },\n {\n 'name': 'milestone_id_duedate',\n 'type': 'date'\n },\n {\n 'name': 'milestone_id_completed',\n 'type': 'date'\n },\n {\n 'name': 'milestone_id_deleted',\n 'type': 'int'\n },\n {\n 'name': 'milestone_id_created',\n 'type': 'int'\n },\n {\n 'name': 'milestone_id_updated',\n 'type': 'int'\n },\n {\n 'name': 'milestone_id_project_id',\n 'type': 'int'\n }\n]",
+ "* prop" : "reader",
+ "totalProperty" : "total"
+ }
+ ]
+ },
+ {
+ "xtype" : "ColumnModel",
+ "header" : "Summary",
+ "width" : 200,
+ "$ renderer" : "function(v) { return String.format('{0}', v); }",
+ "$ xns" : "Roo.grid",
+ "* prop" : "colModel[]",
+ "dataIndex" : "summary"
+ }
+ ]
+ }
+ ]
}
- ],
- "permname": "",
- "modOrder": "001"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
}
\ No newline at end of file