3 "name": "Pman.Dialog.MTrackTime",
6 "path": "/home/alan/gitlive/Pman.MTrack/Pman.Dialog.MTrackTime.bjs",
10 "title": "Time Manager",
12 "xtype": "LayoutDialog",
18 "xtype": "LayoutRegion",
24 "xtype": "NestedLayoutPanel",
29 "xtype": "BorderLayout",
34 "title": "Active / Logged Time",
35 "xtype": "LayoutRegion",
40 "|activate": "function() {\n _this.timepanel = this;\n if (_this.timegrid) {\n // _this.grid.footer.onClick('first');\n }\n}"
46 "tableName": "cash_invoice_entry",
47 "title": "cash_invoice_entry",
53 "|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}",
54 "|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"
57 "autoExpandColumn": "activity_ref",
70 "allowBlank": "false",
72 "emptyText": "Select Person",
73 "forceSelection": true,
75 "loadingText": "Searching...",
78 "qtip": "Select Person",
79 "selectOnFocus": true,
80 "triggerAction": "all",
83 "tpl": "<div class=\"x-grid-cell-text x-btn button\"><b>{name}</b> </div>",
85 "fieldLabel": "Person",
96 "|sortInfo": "{ direction : 'ASC', field: 'id' }",
98 "|beforeload": "function (_self, o){\n o.params = o.params || {};\n // set more here\n}\n"
103 "xtype": "HttpProxy",
106 "|url": "baseURL + '/Roo/Person.php'"
110 "xtype": "JsonReader",
114 "totalProperty": "total",
115 "|fields": "[{\"name\":\"id\",\"type\":\"int\"},{\"name\":\"name\",\"type\":\"string\"}]"
124 "*prop": "dataSource",
127 "|sortInfo": "{ field : 'description', direction: 'ASC' }",
132 "xtype": "HttpProxy",
134 "|url": "baseURL + '/Roo/cash_invoice_entry.php'",
139 "xtype": "JsonReader",
140 "totalProperty": "total",
144 "|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]"
149 "*prop": "colModel[]",
153 "xtype": "ColumnModel",
154 "|renderer": "function(v) { return String.format('{0}', v); }",
158 "*prop": "colModel[]",
159 "dataIndex": "activity_ref",
160 "header": "Activity",
162 "xtype": "ColumnModel",
163 "|renderer": "function(v) { return String.format('{0}', v ? v.format('d/M/Y') : ''); }",
167 "*prop": "colModel[]",
168 "dataIndex": "entered_dt",
169 "header": "Timesheet",
171 "xtype": "ColumnModel",
172 "|renderer": "function(v) { return String.format('{0}', v ? v.format('d/M/Y') : ''); }",
182 "xtype": "LayoutRegion",
187 "xtype": "NestedLayoutPanel",
192 "xtype": "BorderLayout",
199 "xtype": "LayoutRegion",
204 "title": "Task Queue",
205 "xtype": "LayoutRegion",
210 "|activate": "function() {\n _this.queuepanel = this;\n if (_this.queuegrid) {\n //_this.queuegrid.footer.onClick('first');\n }\n}"
213 "fitContainer": true,
216 "tableName": "mtrack_ticket",
217 "title": "mtrack_ticket",
218 "xtype": "GridPanel",
223 "|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}",
224 "|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"
227 "autoExpandColumn": "summary",
233 "*prop": "dataSource",
236 "|sortInfo": "{ field : 'summary', direction: 'ASC' }",
241 "xtype": "HttpProxy",
243 "|url": "baseURL + '/Roo/mtrack_ticket.php'",
248 "xtype": "JsonReader",
249 "totalProperty": "total",
253 "|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]"
258 "xtype": "ColumnModel",
261 "dataIndex": "summary",
262 "|renderer": "function(v) { return String.format('{0}', v); }",
264 "*prop": "colModel[]"
272 "xtype": "ContentPanel",
277 "|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",
278 "|rendered": "function (form)\n{\n _this.form= form;\n}\n"
282 "style": "margin-left:10px;",
284 "|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",
285 "|url": "baseURL + '/Roo/cash_invoice_entry.php'",
290 "render": "function (_self)\n{\n _this.projectSel = _self;\n}",
291 "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}"
293 "allowBlank": "false",
294 "displayField": "name",
296 "emptyText": "Select Project",
297 "fieldLabel": "Project",
298 "forceSelection": true,
299 "hiddenName": "project_id",
301 "loadingText": "Searching...",
303 "name": "project_id_name",
305 "qtip": "Select Projects",
306 "queryParam": "query[name]",
307 "selectOnFocus": true,
308 "tpl": "<div class=\"x-grid-cell-text x-btn button\"><b>{code}</b> - {name}</div>",
309 "triggerAction": "all",
318 "|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"
323 "|sortInfo": "{ field: 'code', direction: 'ASC' }",
328 "xtype": "HttpProxy",
331 "|url": "baseURL + '/Roo/Projects.php'"
335 "xtype": "JsonReader",
339 "totalProperty": "total",
340 "|fields": "[{\"name\":\"id\",\"type\":\"int\"},{\"name\":\"name\",\"type\":\"string\"}]"
354 "keyup": "function (_self, e)\n{\n _this.selectedRec.set('description', this.getValue());\n _this.grid.dataSource.updateBar(_this.selectedRec);\n \n}"
356 "fieldLabel": "Description",
358 "name": "description",
414 "title": "Plan Time",
415 "xtype": "NestedLayoutPanel",
420 "xtype": "BorderLayout",
425 "title": "Open Tasks (Unassigned) / Select Project",
427 "xtype": "LayoutRegion",
432 "title": "Assigned to / Prioritized (all projects)",
433 "xtype": "LayoutRegion",
438 "|activate": "function() {\n _this.openpanel = this;\n if (_this.opengrid) {\n // _this.opengrid.footer.onClick('first');\n }\n}"
441 "fitContainer": true,
444 "tableName": "mtrack_ticket",
445 "title": "mtrack_ticket",
446 "xtype": "GridPanel",
451 "|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}",
452 "|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"
455 "autoExpandColumn": "summary",
466 "allowBlank": "false",
469 "emptyText": "Select Project",
470 "fieldLabel": "mtrack_ticket",
471 "forceSelection": true,
474 "loadingText": "Searching...",
478 "qtip": "Select mtrack_ticket",
480 "selectOnFocus": true,
481 "tpl": "<div class=\"x-grid-cell-text x-btn button\"><b>{name}</b> </div>",
482 "triggerAction": "all",
494 "|sortInfo": "{ direction : 'ASC', field: 'id' }",
496 "|beforeload": "function (_self, o){\n o.params = o.params || {};\n // set more here\n}\n"
501 "xtype": "HttpProxy",
504 "|url": "baseURL + '/Roo/mtrack_ticket.php'"
508 "xtype": "JsonReader",
512 "totalProperty": "total",
513 "|fields": "[{\"name\":\"id\",\"type\":\"int\"},{\"name\":\"summary\",\"type\":\"string\"}]"
522 "*prop": "dataSource",
525 "|sortInfo": "{ field : 'summary', direction: 'ASC' }",
530 "xtype": "HttpProxy",
532 "|url": "baseURL + '/Roo/mtrack_ticket.php'",
537 "xtype": "JsonReader",
538 "totalProperty": "total",
542 "|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]"
547 "xtype": "ColumnModel",
550 "dataIndex": "summary",
551 "|renderer": "function(v) { return String.format('{0}', v); }",
553 "*prop": "colModel[]"
556 "xtype": "ColumnModel",
557 "header": "Changelog",
559 "dataIndex": "changelog",
560 "|renderer": "function(v) { return String.format('{0}', v); }",
562 "*prop": "colModel[]"
565 "xtype": "ColumnModel",
568 "dataIndex": "created",
569 "|renderer": "function(v) { return String.format('{0}', v); }",
571 "*prop": "colModel[]"
574 "xtype": "ColumnModel",
577 "dataIndex": "updated",
578 "|renderer": "function(v) { return String.format('{0}', v); }",
580 "*prop": "colModel[]"
583 "xtype": "ColumnModel",
586 "dataIndex": "owner_id",
587 "|renderer": "function(v) { return String.format('{0}', v); }",
589 "*prop": "colModel[]"
592 "xtype": "ColumnModel",
593 "header": "Priority",
595 "dataIndex": "priority_id",
596 "|renderer": "function(v) { return String.format('{0}', v); }",
598 "*prop": "colModel[]"
601 "xtype": "ColumnModel",
602 "header": "Severity",
604 "dataIndex": "severity_id",
605 "|renderer": "function(v) { return String.format('{0}', v); }",
607 "*prop": "colModel[]"
610 "xtype": "ColumnModel",
611 "header": "Classification",
613 "dataIndex": "classification_id",
614 "|renderer": "function(v) { return String.format('{0}', v); }",
616 "*prop": "colModel[]"
619 "xtype": "ColumnModel",
620 "header": "Resolution",
622 "dataIndex": "resolution_id",
623 "|renderer": "function(v) { return String.format('{0}', v); }",
625 "*prop": "colModel[]"
628 "xtype": "ColumnModel",
632 "|renderer": "function(v) { return String.format('{0}', v); }",
634 "*prop": "colModel[]"
637 "xtype": "ColumnModel",
640 "dataIndex": "status",
641 "|renderer": "function(v) { return String.format('{0}', v); }",
643 "*prop": "colModel[]"
646 "xtype": "ColumnModel",
647 "header": "Estimated",
649 "dataIndex": "estimated",
650 "|renderer": "function(v) { return String.format('{0}', v); }",
652 "*prop": "colModel[]"
655 "xtype": "ColumnModel",
658 "dataIndex": "spent",
659 "|renderer": "function(v) { return String.format('{0}', v); }",
661 "*prop": "colModel[]"
664 "xtype": "ColumnModel",
665 "header": "X fieldname",
667 "dataIndex": "x_fieldname",
668 "|renderer": "function(v) { return String.format('{0}', v); }",
670 "*prop": "colModel[]"
673 "xtype": "ColumnModel",
674 "header": "Developer",
676 "dataIndex": "developer_id",
677 "|renderer": "function(v) { return String.format('{0}', v); }",
679 "*prop": "colModel[]"
682 "xtype": "ColumnModel",
683 "header": "Milestone",
685 "dataIndex": "milestone_id",
686 "|renderer": "function(v) { return String.format('{0}', v); }",
688 "*prop": "colModel[]"