1 //<script type="text/javascript">
3 // Auto generated file - created by app.Builder.js- do not edit directly (at present!)
5 Pman.Dialog.MTrackTime = {
10 show : function(data, cb)
18 this.dialog.show(this.data._el);
21 this.form.setValues(data);
22 this.form.fireEvent('actioncomplete', this.form, { type: 'setdata', data: data });
30 this.dialog = Roo.factory({
31 xtype: 'LayoutDialog',
34 title : "Time Manager",
38 xtype: 'NestedLayoutPanel',
43 xtype: 'BorderLayout',
50 activate : function() {
51 _this.timepanel = this;
53 // _this.grid.footer.onClick('first');
61 tableName : 'cash_invoice_entry',
62 title : "cash_invoice_entry",
69 _this.timegrid = this;
70 //_this.dialog = Pman.Dialog.FILL_IN
71 if (_this.timepanel.active) {
72 // this.footer.onClick('first');
75 rowdblclick : function (_self, rowIndex, e)
77 if (!_this.dialog) return;
78 _this.dialog.show( this.getDataSource().getAt(rowIndex), function() {
79 _this.grid.footer.onClick('first');
83 autoExpandColumn : 'activity_ref',
94 emptyText : "Select Person",
95 forceSelection : true,
97 loadingText : "Searching...",
100 qtip : "Select Person",
101 selectOnFocus : true,
102 triggerAction : 'all',
105 tpl : '<div class="x-grid-cell-text x-btn button"><b>{name}</b> </div>',
107 fieldLabel : 'Person',
116 sortInfo : { direction : 'ASC', field: 'id' },
118 beforeload : function (_self, o){
119 o.params = o.params || {};
127 url : baseURL + '/Roo/Person.php'
134 totalProperty : 'total',
135 fields : [{"name":"id","type":"int"},{"name":"name","type":"string"}]
145 sortInfo : { field : 'description', direction: 'ASC' },
150 url : baseURL + '/Roo/cash_invoice_entry.php'
155 totalProperty : 'total',
166 'dateFormat': 'Y-m-d'
169 'name': 'entered_dt',
171 'dateFormat': 'Y-m-d'
174 'name': 'description',
186 'name': 'invoice_id',
190 'name': 'pricevalue',
198 'name': 'to_account_id',
208 'dateFormat': 'Y-m-d'
215 'name': 'invoice_id_id',
219 'name': 'invoice_id_idtxt',
223 'name': 'invoice_id_project_id',
227 'name': 'invoice_id_opened_dt',
231 'name': 'invoice_id_posted',
235 'name': 'invoice_id_post_transaction_id',
239 'name': 'invoice_id_post_account_id',
243 'name': 'invoice_id_paid',
247 'name': 'invoice_id_total',
251 'name': 'invoice_id_duedate',
255 'name': 'to_account_id_id',
259 'name': 'to_account_id_name',
263 'name': 'to_account_id_type',
267 'name': 'to_account_id_commodity',
271 'name': 'to_account_id_scu',
275 'name': 'to_account_id_description',
279 'name': 'to_account_id_parent',
283 'name': 'to_account_id_fullname',
287 'name': 'staff_id_id',
291 'name': 'staff_id_office_id',
295 'name': 'staff_id_name',
299 'name': 'staff_id_phone',
303 'name': 'staff_id_fax',
307 'name': 'staff_id_email',
311 'name': 'staff_id_company_id',
315 'name': 'staff_id_role',
319 'name': 'staff_id_active',
323 'name': 'staff_id_remarks',
327 'name': 'staff_id_passwd',
331 'name': 'staff_id_owner_id',
335 'name': 'staff_id_lang',
339 'name': 'staff_id_no_reset_sent',
343 'name': 'staff_id_action_type',
347 'name': 'staff_id_project_id',
351 'name': 'staff_id_deleted_by',
355 'name': 'staff_id_deleted_dt',
363 xtype: 'ColumnModel',
368 renderer : function(v) { return String.format('{0}', v); }
371 xtype: 'ColumnModel',
373 dataIndex : 'activity_ref',
376 renderer : function(v) { return String.format('{0}', v ? v.format('d/M/Y') : ''); }
379 xtype: 'ColumnModel',
381 dataIndex : 'entered_dt',
382 header : 'Timesheet',
384 renderer : function(v) { return String.format('{0}', v ? v.format('d/M/Y') : ''); }
390 xtype: 'NestedLayoutPanel',
394 xtype: 'BorderLayout',
401 activate : function() {
402 _this.queuepanel = this;
403 if (_this.queuegrid) {
404 //_this.queuegrid.footer.onClick('first');
412 tableName : 'mtrack_ticket',
413 title : "mtrack_ticket",
420 _this.queuegrid = this;
421 //_this.dialog = Pman.Dialog.FILL_IN
422 if (_this.queuepanel.active) {
423 //this.footer.onClick('first');
426 rowdblclick : function (_self, rowIndex, e)
428 if (!_this.dialog) return;
429 _this.dialog.show( this.getDataSource().getAt(rowIndex), function() {
430 _this.grid.footer.onClick('first');
434 autoExpandColumn : 'summary',
440 sortInfo : { field : 'summary', direction: 'ASC' },
445 url : baseURL + '/Roo/mtrack_ticket.php'
450 totalProperty : 'total',
459 'name': 'project_id',
467 'name': 'description',
487 'name': 'priority_id',
491 'name': 'severity_id',
495 'name': 'classification_id',
499 'name': 'resolution_id',
519 'name': 'x_fieldname',
523 'name': 'developer_id',
527 'name': 'milestone_id',
531 'name': 'updated_id',
535 'name': 'updated_person_id',
539 'name': 'updated_ontable',
543 'name': 'updated_onid',
547 'name': 'updated_changedate',
551 'name': 'updated_reason',
555 'name': 'created_id',
559 'name': 'created_person_id',
563 'name': 'created_ontable',
567 'name': 'created_onid',
571 'name': 'created_changedate',
575 'name': 'created_reason',
579 'name': 'owner_id_id',
583 'name': 'owner_id_office_id',
587 'name': 'owner_id_name',
591 'name': 'owner_id_phone',
595 'name': 'owner_id_fax',
599 'name': 'owner_id_email',
603 'name': 'owner_id_company_id',
607 'name': 'owner_id_role',
611 'name': 'owner_id_active',
615 'name': 'owner_id_remarks',
619 'name': 'owner_id_passwd',
623 'name': 'owner_id_owner_id',
627 'name': 'owner_id_lang',
631 'name': 'owner_id_no_reset_sent',
635 'name': 'owner_id_action_type',
639 'name': 'owner_id_project_id',
643 'name': 'owner_id_deleted_by',
647 'name': 'owner_id_deleted_dt',
651 'name': 'developer_id_id',
655 'name': 'developer_id_office_id',
659 'name': 'developer_id_name',
663 'name': 'developer_id_phone',
667 'name': 'developer_id_fax',
671 'name': 'developer_id_email',
675 'name': 'developer_id_company_id',
679 'name': 'developer_id_role',
683 'name': 'developer_id_active',
687 'name': 'developer_id_remarks',
691 'name': 'developer_id_passwd',
695 'name': 'developer_id_owner_id',
699 'name': 'developer_id_lang',
703 'name': 'developer_id_no_reset_sent',
707 'name': 'developer_id_action_type',
711 'name': 'developer_id_project_id',
715 'name': 'developer_id_deleted_by',
719 'name': 'developer_id_deleted_dt',
723 'name': 'priority_id_id',
727 'name': 'priority_id_etype',
731 'name': 'priority_id_name',
735 'name': 'priority_id_active',
739 'name': 'priority_id_seqid',
743 'name': 'severity_id_id',
747 'name': 'severity_id_etype',
751 'name': 'severity_id_name',
755 'name': 'severity_id_active',
759 'name': 'severity_id_seqid',
763 'name': 'classification_id_id',
767 'name': 'classification_id_etype',
771 'name': 'classification_id_name',
775 'name': 'classification_id_active',
779 'name': 'classification_id_seqid',
783 'name': 'resolution_id_id',
787 'name': 'resolution_id_etype',
791 'name': 'resolution_id_name',
795 'name': 'resolution_id_active',
799 'name': 'resolution_id_seqid',
807 'name': 'status_etype',
811 'name': 'status_name',
815 'name': 'status_active',
819 'name': 'status_seqid',
823 'name': 'project_id_id',
827 'name': 'project_id_name',
831 'name': 'project_id_remarks',
835 'name': 'project_id_owner_id',
839 'name': 'project_id_code',
843 'name': 'project_id_active',
847 'name': 'project_id_type',
851 'name': 'project_id_client_id',
855 'name': 'project_id_team_id',
859 'name': 'project_id_file_location',
863 'name': 'project_id_open_date',
867 'name': 'project_id_open_by',
871 'name': 'project_id_close_date',
875 'name': 'project_id_countries',
879 'name': 'project_id_languages',
883 'name': 'project_id_agency_id',
887 'name': 'milestone_id_id',
891 'name': 'milestone_id_name',
895 'name': 'milestone_id_description',
899 'name': 'milestone_id_startdate',
903 'name': 'milestone_id_duedate',
907 'name': 'milestone_id_completed',
911 'name': 'milestone_id_deleted',
915 'name': 'milestone_id_created',
919 'name': 'milestone_id_updated',
923 'name': 'milestone_id_project_id',
931 xtype: 'ColumnModel',
935 dataIndex : 'summary',
936 renderer : function(v) { return String.format('{0}', v); }
942 xtype: 'ContentPanel',
950 actioncomplete : function(_self,action)
954 Roo.log('action complete');
956 if (action.type == 'setdata') {
958 _this.isClose = false; // force flag..
960 if (this.activeRecord) {
961 this.saveActive( this.activeRecord);
967 if (!action.data || !action.data.action) {
968 _this.form.el.mask('select something');
969 this.activeRecord = false;
973 _this.form.el.unmask();
975 this.activeRecord = action.rec;
981 // should save here if we are 'dirty!';
983 _this.form.setValues(action.data);
984 // set the dates so they are correct..
985 _this.form.setValues( {
987 action_dt : action.data.action_dt.format('Y-m-d H:i:s'),
988 entry_dt: action.data.action_dt.format('Y-m-d'),
989 qtyvalue2 : action.data.qtyvalue
991 // set the default values..
993 _this.form.items.each(function(f) {
994 f.originalValue = f.getValue();
1000 // form is set to an event.
1008 if (action.type == 'load') {
1012 if (action.type =='submit') {
1013 // set this on the close button..
1014 if (_this.isClose) {
1015 _this.dialog.hide();
1018 if (_this.callback) {
1019 _this.callback.call(_this, _this.form.getValues());
1025 rendered : function (form)
1032 style : 'margin-left:10px;',
1033 saveActive : function(rec, effort) {
1035 effort = effort || 0;
1039 Roo.log("ERROR: saveActive: record not set ");
1043 var d = Roo.apply({}, rec.data); // copy it so changes do not affect crap...
1045 var upd = (new Date()).format('Y-m-d H:i:s');
1050 //Roo.log("SAVE IT: " + Roo.encode(d) );
1053 var at = typeof(d.action_dt) == 'string' ? Date.parseDate(d.action_dt, 'Y-m-d H:i:s') : d.action_dt
1056 url : baseURL + '/Roo/Cash_invoice_entry.php',
1060 entry_dt: at.format('Y-m-d'), // this should not change for posted entries really...
1062 action_dt : at.format('Y-m-d H:i:s'),
1063 qtyvalue : d.qtyvalue,
1065 description: d.description,
1066 pricevalue: d.pricevalue,
1067 project_id : d.project_id,
1068 staff_id : d.staff_id * 1 ? d.staff_id : Pman.Login.authUser.id,
1069 ticket_id : d.ticket_id ? d.ticket_id : 0
1072 success : function(res)
1074 // everythings fine..
1076 // we have to update the view object... now...
1077 // we can not reload as that may blank out data..
1079 Roo.log("Setting data id to " + res.data.id);
1080 rec.set('id', res.data.id);
1086 failure : function()
1090 Roo.MessageBox.alert("Error", "Saving timesheet failed");
1093 _this.form.saveActive(rec, effort);
1098 url : baseURL + '/Roo/cash_invoice_entry.php',
1104 render : function (_self)
1106 _this.projectSel = _self;
1108 beforeselect : function (combo, record, index)
1112 var sel = _this.grid.ds.selectedBar();
1115 Roo.log("nothing selected?");
1119 // active record should be the same thing.
1120 sel.set('project_id', record.data.id);
1121 sel.set('project_id_code', record.data.code);
1122 sel.set('project_id_name', record.data.name);
1125 _this.grid.ds.updateBar(sel);
1131 allowBlank : 'false',
1132 displayField : 'name',
1134 emptyText : "Select Project",
1135 fieldLabel : 'Project',
1136 forceSelection : true,
1137 hiddenName : 'project_id',
1139 loadingText : "Searching...",
1141 name : 'project_id_name',
1143 qtip : "Select Projects",
1144 queryParam : 'query[name]',
1145 selectOnFocus : true,
1146 tpl : '<div class="x-grid-cell-text x-btn button"><b>{code}</b> - {name}</div>',
1147 triggerAction : 'all',
1155 beforeload : function (_self, o){
1156 o.params = o.params || {};
1157 o.params['query[project_filter]'] = 'P,N,U'; // actually this is the default.
1163 sortInfo : { field: 'code', direction: 'ASC' },
1168 url : baseURL + '/Roo/Projects.php'
1171 xtype: 'JsonReader',
1175 totalProperty : 'total',
1176 fields : [{"name":"id","type":"int"},{"name":"name","type":"string"}]
1190 keyup : function (_self, e)
1192 _this.selectedRec.set('description', this.getValue());
1193 _this.grid.dataSource.updateBar(_this.selectedRec);
1197 fieldLabel : 'Description',
1199 name : 'description',
1245 xtype: 'LayoutRegion',
1251 xtype: 'LayoutRegion',
1253 title : "Task Queue"
1259 xtype: 'LayoutRegion',
1261 title : "Active / Logged Time"
1264 xtype: 'LayoutRegion',
1271 xtype: 'NestedLayoutPanel',
1274 title : "Plan Time",
1276 xtype: 'BorderLayout',
1283 activate : function() {
1284 _this.openpanel = this;
1285 if (_this.opengrid) {
1286 // _this.opengrid.footer.onClick('first');
1291 fitContainer : true,
1294 tableName : 'mtrack_ticket',
1295 title : "mtrack_ticket",
1302 _this.opengrid = this;
1303 //_this.dialog = Pman.Dialog.FILL_IN
1304 if (_this.openpanel.active) {
1305 //this.footer.onClick('first');
1308 rowdblclick : function (_self, rowIndex, e)
1310 if (!_this.dialog) return;
1311 _this.dialog.show( this.getDataSource().getAt(rowIndex), function() {
1312 _this.grid.footer.onClick('first');
1316 autoExpandColumn : 'summary',
1325 allowBlank : 'false',
1328 emptyText : "Select Project",
1329 fieldLabel : 'mtrack_ticket',
1330 forceSelection : true,
1333 loadingText : "Searching...",
1337 qtip : "Select mtrack_ticket",
1339 selectOnFocus : true,
1340 tpl : '<div class="x-grid-cell-text x-btn button"><b>{name}</b> </div>',
1341 triggerAction : 'all',
1349 sortInfo : { direction : 'ASC', field: 'id' },
1351 beforeload : function (_self, o){
1352 o.params = o.params || {};
1360 url : baseURL + '/Roo/mtrack_ticket.php'
1363 xtype: 'JsonReader',
1367 totalProperty : 'total',
1368 fields : [{"name":"id","type":"int"},{"name":"summary","type":"string"}]
1378 sortInfo : { field : 'summary', direction: 'ASC' },
1383 url : baseURL + '/Roo/mtrack_ticket.php'
1386 xtype: 'JsonReader',
1388 totalProperty : 'total',
1397 'name': 'project_id',
1405 'name': 'description',
1409 'name': 'changelog',
1425 'name': 'priority_id',
1429 'name': 'severity_id',
1433 'name': 'classification_id',
1437 'name': 'resolution_id',
1449 'name': 'estimated',
1457 'name': 'x_fieldname',
1461 'name': 'developer_id',
1465 'name': 'milestone_id',
1469 'name': 'updated_id',
1473 'name': 'updated_person_id',
1477 'name': 'updated_ontable',
1481 'name': 'updated_onid',
1485 'name': 'updated_changedate',
1489 'name': 'updated_reason',
1493 'name': 'created_id',
1497 'name': 'created_person_id',
1501 'name': 'created_ontable',
1505 'name': 'created_onid',
1509 'name': 'created_changedate',
1513 'name': 'created_reason',
1517 'name': 'owner_id_id',
1521 'name': 'owner_id_office_id',
1525 'name': 'owner_id_name',
1529 'name': 'owner_id_phone',
1533 'name': 'owner_id_fax',
1537 'name': 'owner_id_email',
1541 'name': 'owner_id_company_id',
1545 'name': 'owner_id_role',
1549 'name': 'owner_id_active',
1553 'name': 'owner_id_remarks',
1557 'name': 'owner_id_passwd',
1561 'name': 'owner_id_owner_id',
1565 'name': 'owner_id_lang',
1569 'name': 'owner_id_no_reset_sent',
1573 'name': 'owner_id_action_type',
1577 'name': 'owner_id_project_id',
1581 'name': 'owner_id_deleted_by',
1585 'name': 'owner_id_deleted_dt',
1589 'name': 'developer_id_id',
1593 'name': 'developer_id_office_id',
1597 'name': 'developer_id_name',
1601 'name': 'developer_id_phone',
1605 'name': 'developer_id_fax',
1609 'name': 'developer_id_email',
1613 'name': 'developer_id_company_id',
1617 'name': 'developer_id_role',
1621 'name': 'developer_id_active',
1625 'name': 'developer_id_remarks',
1629 'name': 'developer_id_passwd',
1633 'name': 'developer_id_owner_id',
1637 'name': 'developer_id_lang',
1641 'name': 'developer_id_no_reset_sent',
1645 'name': 'developer_id_action_type',
1649 'name': 'developer_id_project_id',
1653 'name': 'developer_id_deleted_by',
1657 'name': 'developer_id_deleted_dt',
1661 'name': 'priority_id_id',
1665 'name': 'priority_id_etype',
1669 'name': 'priority_id_name',
1673 'name': 'priority_id_active',
1677 'name': 'priority_id_seqid',
1681 'name': 'severity_id_id',
1685 'name': 'severity_id_etype',
1689 'name': 'severity_id_name',
1693 'name': 'severity_id_active',
1697 'name': 'severity_id_seqid',
1701 'name': 'classification_id_id',
1705 'name': 'classification_id_etype',
1709 'name': 'classification_id_name',
1713 'name': 'classification_id_active',
1717 'name': 'classification_id_seqid',
1721 'name': 'resolution_id_id',
1725 'name': 'resolution_id_etype',
1729 'name': 'resolution_id_name',
1733 'name': 'resolution_id_active',
1737 'name': 'resolution_id_seqid',
1741 'name': 'status_id',
1745 'name': 'status_etype',
1749 'name': 'status_name',
1753 'name': 'status_active',
1757 'name': 'status_seqid',
1761 'name': 'project_id_id',
1765 'name': 'project_id_name',
1769 'name': 'project_id_remarks',
1773 'name': 'project_id_owner_id',
1777 'name': 'project_id_code',
1781 'name': 'project_id_active',
1785 'name': 'project_id_type',
1789 'name': 'project_id_client_id',
1793 'name': 'project_id_team_id',
1797 'name': 'project_id_file_location',
1801 'name': 'project_id_open_date',
1805 'name': 'project_id_open_by',
1809 'name': 'project_id_close_date',
1813 'name': 'project_id_countries',
1817 'name': 'project_id_languages',
1821 'name': 'project_id_agency_id',
1825 'name': 'milestone_id_id',
1829 'name': 'milestone_id_name',
1833 'name': 'milestone_id_description',
1837 'name': 'milestone_id_startdate',
1841 'name': 'milestone_id_duedate',
1845 'name': 'milestone_id_completed',
1849 'name': 'milestone_id_deleted',
1853 'name': 'milestone_id_created',
1857 'name': 'milestone_id_updated',
1861 'name': 'milestone_id_project_id',
1869 xtype: 'ColumnModel',
1873 dataIndex : 'summary',
1874 renderer : function(v) { return String.format('{0}', v); }
1877 xtype: 'ColumnModel',
1881 dataIndex : 'status',
1882 renderer : function(v) { return String.format('{0}', v); }
1885 xtype: 'ColumnModel',
1887 header : 'Estimated',
1889 dataIndex : 'estimated',
1890 renderer : function(v) { return String.format('{0}', v); }
1893 xtype: 'ColumnModel',
1897 dataIndex : 'spent',
1898 renderer : function(v) { return String.format('{0}', v); }
1901 xtype: 'ColumnModel',
1903 header : 'X fieldname',
1905 dataIndex : 'x_fieldname',
1906 renderer : function(v) { return String.format('{0}', v); }
1909 xtype: 'ColumnModel',
1911 header : 'Developer',
1913 dataIndex : 'developer_id',
1914 renderer : function(v) { return String.format('{0}', v); }
1917 xtype: 'ColumnModel',
1919 header : 'Milestone',
1921 dataIndex : 'milestone_id',
1922 renderer : function(v) { return String.format('{0}', v); }
1929 xtype: 'LayoutRegion',
1931 title : "Open Tasks (Unassigned) / Select Project",
1935 xtype: 'LayoutRegion',
1937 title : "Assigned to / Prioritized (all projects)"
1943 xtype: 'LayoutRegion',