{ "name" : "Pman.Tab.MTrackTicket", "parent" : "Pman.Tab.DocumentsTab", "title" : "MTrackWeb.Ticket", "path" : "/home/alan/gitlive/Pman.MTrack/Pman.Tab.MTrackTicket.bjs", "permname" : "", "modOrder" : "001", "strings" : { "340c2ee497b85d5954b01c64de7f44f6" : "Select Person", "b9dd47d69178dbf735bfcd2733fd4ea6" : "Add Comment / Update", "290612199861c31d1036b185b4e69b75" : "Summary", "8a223eb0008a86f053b2a7eac0fa6eac" : "Select priority", "04720e14ddfde3154a120fdd0ae73d19" : "Action Required By", "ef6703d6c606526cece4a9eda9d49045" : "Your comment", "c76a5e84e4bdee527e274ea30c680d79" : "active", "502996d9790340c5fd7b86a5b93b1c9f" : "Priority", "40bed7cf9b3d4bb3a3d7a7e3eb18c5eb" : "Person ", "5c9335b28e6277ddbe0137f04e5e58a7" : "Classification", "7e5ddb4ca31c30e778f4d9c57b9577b1" : "Change Status", "1fd968087e03faeb2e87df1e9849d983" : "Spent", "1243daf593fa297e07ab03bf06d925af" : "Searching...", "b6f4a2ec6356bbd56d49f2096bf9d3d3" : "Owner", "672caf27f5363dc833bda5099775e891" : "Developer", "6a7e73161603d87b26a8eac49dab0a9c" : "Hours", "ff0a3b7f3daef040faf89a88fdac01b7" : "Updated", "b1550c2a1a5eb0d078d92eef8a0ef883" : "ID#", "9e727fdd3aec8274f46685441900280d" : "Project", "ec53a8c4f07baed5d8825072c89799be" : "Status", "ea4788705e6873b424c65e91c2846b19" : "Cancel", "a3edc4e7beafdcd450f339ec414b7508" : "Developer / Action Required By", "c1c694bd849d91d0eb34bfef8c2d8894" : "Tickets", "a5ffb2a210f259195a75e5abca8db4a2" : "Select mtrack_milestone", "3efbc55730fd4af147b96183d8afbd3b" : "mtrack_ticket", "a3a1edf91a3157dad9417dedb4af500d" : "Add New Ticket", "df25de42c84837baf5fa15049a8bc764" : "View:", "423570be9f14a39fe88384797ee376fd" : "Select severity", "5bf7a37a56bdea44d9b2b69201e91fbd" : "Edit original ticket", "d10e7195b9d5009f7b8e6bb25a099e84" : "Add Attachment / Patch", "e9c626b8a8b62de7562dfbf51a576ae5" : "Milestone", "b26917587d98330d93f87808fc9d7267" : "Subscribe", "f691f042a559b1c1a4f89826c6f75760" : "Resolved", "007cc9547ae8884ad597cd92ba505422" : "Severity", "c9cc8cce247e49bae79f15173ce97354" : "Save", "01bd6a16732dfa2b760dc8566c58afae" : "Download to Excel", "887950755a62e33c26209bdcbdc1d3d3" : "Bulk Change", "7025046a3448dfea367705b884148992" : "Select classification" }, "named_strings" : { "priority_id_name_qtip" : "8a223eb0008a86f053b2a7eac0fa6eac", "severity_id_name_loadingText" : "1243daf593fa297e07ab03bf06d925af", "developer_id_emptyText" : "340c2ee497b85d5954b01c64de7f44f6", "developer_id_name_loadingText" : "1243daf593fa297e07ab03bf06d925af", "status_name_emptyText" : "7e5ddb4ca31c30e778f4d9c57b9577b1", "severity_id_name_emptyText" : "423570be9f14a39fe88384797ee376fd", "classification_id_name_emptyText" : "7025046a3448dfea367705b884148992", "status_name_fieldLabel" : "ec53a8c4f07baed5d8825072c89799be", "developer_id_qtip" : "340c2ee497b85d5954b01c64de7f44f6", "developer_id_name_emptyText" : "340c2ee497b85d5954b01c64de7f44f6", "classification_id_name_qtip" : "7025046a3448dfea367705b884148992", "developer_id_fieldLabel" : "40bed7cf9b3d4bb3a3d7a7e3eb18c5eb", "developer_id_loadingText" : "1243daf593fa297e07ab03bf06d925af", "cm_status_name_value" : "c76a5e84e4bdee527e274ea30c680d79", "milestone_id_name_loadingText" : "1243daf593fa297e07ab03bf06d925af", "priority_id_name_emptyText" : "8a223eb0008a86f053b2a7eac0fa6eac", "status_name_qtip" : "7e5ddb4ca31c30e778f4d9c57b9577b1", "status_name_loadingText" : "1243daf593fa297e07ab03bf06d925af", "milestone_id_name_emptyText" : "a5ffb2a210f259195a75e5abca8db4a2", "developer_id_name_qtip" : "340c2ee497b85d5954b01c64de7f44f6", "reason_fieldLabel" : "ef6703d6c606526cece4a9eda9d49045", "cm_status_name_fieldLabel" : "ec53a8c4f07baed5d8825072c89799be", "priority_id_name_loadingText" : "1243daf593fa297e07ab03bf06d925af", "milestone_id_name_qtip" : "a5ffb2a210f259195a75e5abca8db4a2", "developer_id_name_fieldLabel" : "a3edc4e7beafdcd450f339ec414b7508", "severity_id_name_qtip" : "423570be9f14a39fe88384797ee376fd", "classification_id_name_loadingText" : "1243daf593fa297e07ab03bf06d925af" }, "items" : [ { "listeners" : { "activate" : "function (_self)\n{\n _this.panel = _self;\n (function () {\n if (_this.tpanel) {\n _this.panel.layout.getRegion('south').hide();\n //_this.panel.layout.getRegion('north').hide();\n }\n }).defer(100);\n try {\n if (!_this.url || !_this.project || (_this.project != MTrack.projectCombo.getValue())) {\n (function() { \n if (_this.tpanel) { \n // _this.tpanel.mload(\"/Report/1\"); \n }\n }).defer(300);\n }\n \n \n } catch(e) {Roo.log(\"activate fail\" + e.toString()); }\n}" }, "background" : true, "region" : "center", "fitToFrame" : true, "title" : "Tickets", "xtype" : "NestedLayoutPanel", "fitContainer" : true, "$ xns" : "Roo", "items" : [ { "xtype" : "BorderLayout", "$ xns" : "Roo", "* prop" : "layout", "items" : [ { "xtype" : "LayoutRegion", "tabPosition" : "top", "$ xns" : "Roo", "* prop" : "center" }, { "collapsible" : true, "xtype" : "LayoutRegion", "tabPosition" : "top", "$ xns" : "Roo", "split" : true, "height" : 300, "* prop" : "north" }, { "xtype" : "LayoutRegion", "$ xns" : "Roo", "split" : true, "* prop" : "south", "height" : 170 }, { "listeners" : { "|activate" : "function() {\n _this.gpanel = this;\n if (_this.grid) {\n _this.grid.ds.load({});\n }\n}" }, "background" : true, "region" : "north", "fitToframe" : true, "title" : "mtrack_ticket", "xtype" : "GridPanel", "fitContainer" : true, "$ xns" : "Roo", "tableName" : "mtrack_ticket", "items" : [ { "listeners" : { "celldblclick" : "function (_self, rowIndex, columnIndex, e)\n{\n var c = _this.grid.colModel.getDataIndex(columnIndex);\n \n \n if (c.match(/_id$/) ) {\n return;\n }\n var rec = _this.grid.ds.getAt(rowIndex);\n Pman.Dialog.MTrackTicket.show({ id : rec.data.id } , function(res) {\n // update row, and re-render..\n \n });\n \n \n}", "|render" : "function() \n{\n _this.grid = this; \n _this.panel.grid = this; // works with doc manager...\n //_this.dialog = Pman.Dialog.FILL_IN\n if (_this.gpanel.active) {\n _this.grid.ds.load({});\n }\n}", "afteredit" : "function (e)\n{\n Roo.log(e);\n e.record.commit();\n}" }, "autoExpandColumn" : "summary", "xtype" : "EditorGrid", "ddGroup" : "mtrack_ticket", "loadMask" : true, "$ getProjectId" : "function() {\n\n if (typeof(MTrack) != 'undefined') {\n return MTrack.projectCombo.getValue();\n }\n \n // project_id : _this.grid.getProjectId(), //MTrack.projectCombo ? MTrack.projectCombo.getValue() :2830 , // testing.\n // project_id_name : _this.grid.getProjectId(), //MTrack.projectCombo.el.dom.value,\n \n \n \n try {\n var pr = Pman.Tab.Projects; // shuld be documentsProjects\n if (!pr || !pr.grid) {\n return false;\n }\n } catch (e) {\n return false;\n }\n var sels = pr.grid.getSelectionModel().getSelections();\n var prids = [];\n if (sels.length) {\n Roo.each(sels,function(s) {\n prids.push(s.data.id);\n });\n // multi support later..\n return prids[0];\n }\n \n \n \n return 0;\n \n \n}\n", "clicksToEdit" : 1, "$ xns" : "Roo.grid", "* prop" : "grid", "enableDragDrop" : true, "$ getProjectName" : "function() {\n // project_id : _this.grid.getProjectId(), //MTrack.projectCombo ? MTrack.projectCombo.getValue() :2830 , // testing.\n \n if (typeof(MTrack) != 'undefined') {\n \n return MTrack.projectCombo.el.dom.value;\n }\n \n \n \n try {\n var pr = Pman.Tab.Projects; // shuld be documentsProjects\n if (!pr || !pr.grid) {\n return false;\n }\n } catch (e) {\n return false;\n }\n var sels = pr.grid.getSelectionModel().getSelections();\n var prids = [];\n if (sels.length) {\n Roo.each(sels,function(s) {\n prids.push(s.data.name);\n });\n // multi support later..\n return prids[0];\n }\n \n \n \n return ''; \n}\n", "items" : [ { "listeners" : { "afterselectionchange" : "function (_self, rowIndex, colIndex)\n{\n \n var sels = _this.grid.selModel.getSelections();\n \n if (!sels || sels.length > 1) {\n \n return;\n }\n \n var rec = sels[0];\n \n // verify nothing has chagned.. \n \n // load the ticked, and render a view of it...\n new Pman.Request({\n url : baseURL + '/Roo/mtrack_ticket',\n method : 'GET',\n params : { \n _id : rec.data.id\n },\n success : function(res) {\n //Roo.log(res.data);\n // render it into a template..\n _this.tpanel.setContent(Pman.MTrack.template.ticket_view(res.data));\n _this.tpanel.el.scrollTo('top',0);\n \n //... ehh\n Pman.MTrack.loadAudit(rec.data.id, _this.tpanel.el.select('.mtrack-ticket-events',true).first());\n \n \n \n new Pman.Request({\n url : baseURL + '/Roo/Images',\n method : 'GET',\n params : { \n onid : rec.data.id,\n ontable : 'mtrack_ticket'\n },\n success : function(ares) {\n Roo.log(ares.data);\n var el = Roo.select('.ticket-status-attachments .attachments-list', true).first();\n // fill in the attachement area with data from this..\n el.dom.innerHTML = Pman.MTrack.template.ticket_attachments(ares) ;\n }\n });\n \n \n _this.form.reset();\n\n _this.form.setValues({\n id : rec.data.id,\n owner_id : rec.data.owner_id,\n owner_id_name : rec.data.owner_id_name,\n status : rec.data.status,\n status_name : \"No Change\"\n }); \n \n \n for(var k in res.data) {\n rec.set(k,res.data[k]);\n }\n \n }\n });\n \n \n \n}", "cellselect" : "function (_self, rowIndex, colIndex)\n{\n return false;\n var rec = _this.grid.ds.getAt(rowIndex);\n \n // verify nothing has chagned.. \n \n // load the ticked, and render a view of it...\n new Pman.Request({\n url : baseURL + '/Roo/mtrack_ticket',\n method : 'GET',\n params : { \n _id : rec.data.id\n },\n success : function(res) {\n //Roo.log(res.data);\n // render it into a template..\n _this.tpanel.setContent(Pman.MTrack.template.ticket_view(res.data));\n _this.tpanel.el.scrollTo('top',0);\n \n //... ehh\n Pman.MTrack.loadAudit(rec.data.id, _this.tpanel.el.select('.mtrack-ticket-events',true).first());\n \n new Pman.Request({\n url : baseURL + '/Roo/Images',\n method : 'GET',\n params : { \n onid : rec.data.id,\n ontable : 'mtrack_ticket'\n },\n success : function(ares) {\n Roo.log(ares.data);\n var el = Roo.select('.ticket-status-attachments .attachments-list', true).first();\n // fill in the attachement area with data from this..\n el.dom.innerHTML = Pman.MTrack.template.ticket_attachments(ares) ;\n }\n });\n \n \n _this.form.reset();\n\n _this.form.setValues({\n id : rec.data.id,\n owner_id : rec.data.owner_id,\n owner_id_name : rec.data.owner_id_name,\n status : rec.data.status,\n status_name : \"No Change\"\n }); \n \n \n for(var k in res.data) {\n rec.set(k,res.data[k]);\n }\n \n }\n });\n \n \n \n}" }, "xtype" : "RowSelectionModel", "$ xns" : "Roo.grid", "* prop" : "sm" }, { "listeners" : { "update" : "function (_self, record, operation)\n{\n Roo.log('update: ' + JSON.stringify(operation));\n if (operation != 'commit') {\n return;\n }\n // send things that might change..\n new Pman.Request({\n url : baseURL + '/Roo/mtrack_ticket',\n method : 'POST',\n params : {\n id : record.data.id,\n milestone_id : record.data.milestone_id,\n priority_id : record.data.priority_id,\n severity_id : record.data.severity_id,\n classification_id : record.data.classification_id,\n estimated : record.data.estimated,\n developer_id : record.data.developer_id\n },\n success : function(res)\n {\n var r = res.data;\n //Roo.log(r);\n // do nothing?\n record.modified = record.modified || {};\n for (var k in r) {\n // update the \n \n if (k.match(/_id$/) || k.match(/_id_/) || k.match(/^status_/)) {\n \n record.data[k] = r[k];\n record.modified[k] = r[k];\n }\n }\n record.store.afterEdit(record);\n }\n // we should really have a failure - to reset to the old value.\n });\n \n \n \n}", "beforeload" : "function (_self, options)\n{\n \n if (Pman.building) { return false; }\n options.params = options.params || {};\n options.params['query[search]'] = _this.searchBox.getValue();\n var sq = options.params['query[viewtype]'] = _this.status.getValue(); \n var pc = false;\n var ps = false;\n try {\n pc = _this.grid.colModel.getIndexByDataIndex('project_id_name');\n \n } catch(e) {} \n \n\n if (!options.params['query[search]'].length || isNaN(options.params['query[search]'])) {\n \n \n ps = _this.personSel.getValue();\n ps = ps ? ps : 0;\n if (ps ) {\n options.params.developer_id = ps <0 ? 0 : ps;\n }\n\n \n \n \n try { \n options.params.project_id = Pman.Tab.DocumentsTab.panel.getProjectId();\n } catch(e) {\n options.params.project_id = MTrack.projectCombo.getValue();\n }\n options.params.project_id = options.params.project_id || undefined;\n }\n \n\n \n \n if ( ps < 1 && pc !== false) {\n _this.grid.colModel.setHidden(pc, true);\n \n }\n \n // project column\n if (pc!== false) {\n _this.grid.colModel.setHidden(pc, true);\n }\n \n if (pc !== false && !options.params.project_id) {\n\n _this.grid.colModel.setHidden(pc, false); \n\n }\n\n options.params.limit = 999;\n // columns...\n\n \n \n}" }, "xtype" : "Store", "remoteSort" : true, "$ sortInfo" : "{ field : 'summary', direction: 'ASC' }", "$ xns" : "Roo.data", "* prop" : "dataSource", "items" : [ { "$ url" : "baseURL + '/Roo/mtrack_ticket.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': '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" : "Toolbar", "$ xns" : "Roo", "* prop" : "toolbar", "items" : [ { "listeners" : { "click" : "function (_self, e)\n{\n Pman.Dialog.MTrackTicket.show({\n project_id : Pman.Tab.DocumentsTab.panel.getProjectId(), //MTrack.projectCombo ? MTrack.projectCombo.getValue() :2830 , // testing.\n project_id_name : Pman.Tab.DocumentsTab.panel.getProjectName(), //MTrack.projectCombo.el.dom.value,\n owner_id : Pman.Login.authUser.id,\n owner_id_name : Pman.Login.authUser.name\n\n }, function() { \n _this.grid.ds.load({}); \n });\n \n}" }, "text" : "Add New Ticket", "xtype" : "Button", "$ xns" : "Roo.Toolbar" }, { "listeners" : { "click" : "function (_self, e)\n{\n params = {};\n params.project_id = Pman.Tab.DocumentsTab.panel.getProjectId(); // testing.\n params.limit = 999;\n // columns...\n params['query[viewtype]'] = 'active';\n \n for (var k in _this.filterBtn) {\n if (_this.filterBtn[k].pressed) {\n params['query[viewtype]'] = k;\n }\n }\n var ii =0;\n params['csvCols['+ii+']'] = 'jira_ref';\n params['csvTitles['+ii+']'] = \"Jira ID\";\n ii++;\n \n Roo.each(_this.grid.colModel.config, function(c,i) {\n params['csvCols['+ii+']'] = c.dataIndex;\n params['csvTitles['+ii+']'] = c.header;\n try {\n if (typeof( c.editor.field.name) != 'undefined') {\n params['csvCols['+ii+']'] = c.editor.field.name;\n }\n } catch(e) {}\n ii++;\n });\n \n params['csvCols['+ii+']'] = 'description';\n params['csvTitles['+ii+']'] = \"Details\";\n \n \n\n \n \n new Pman.Download({\n url: baseURL + '/Roo/mtrack_ticket',\n method: 'GET' ,\n params: params\n \n });\n \n \n}" }, "text" : "Download to Excel", "xtype" : "Button", "$ xns" : "Roo.Toolbar" }, { "listeners" : { "click" : "function (_self, e)\n{\n var sels = _this.grid.selModel.getSelections();\n\n var pid = 0;\n var ids = [];\n Roo.each(sels, function(s) {\n ids.push(s.data.id);\n if (pid && s.data.project_id != pid) {\n pid = -1;\n return false;\n }\n pid = s.data.project_id ;\n \n });\n if (pid < 1) {\n Roo.MessageBox.alert(\"Error\", \"selected tickets must be of the same project\");\n return;\n }\n \n // permission based?\n \n Pman.Dialog.MTrackBulkChange.show({\n project_id : sels[0].data.project_id,\n project_id_name : sels[0].data.project_id_name,\n ids : ids.join(',')\n }, function(res) {\n Roo.log(res);\n var tks = {};\n \n Roo.each(res.data, function(d) {\n tks[d.id*1] = d;\n });\n \n Roo.each(sels, function(sel) {\n var record = _this.grid.ds.getById(sel.data.id);\n record.modified = record.modified || {};\n\n Roo.log(tks[record.data.id*1]);\n \n for (var k in tks[record.data.id*1]) {\n // update the \n \n \n if (k.match(/_id$/) || k.match(/_id_/) || k.match(/^status_/)) {\n\n\n Roo.log(\"SET \" + k + \"=\" + tks[record.data.id*1][k]);\n record.data[k] = tks[record.data.id*1][k];\n record.modified[k] = tks[record.data.id*1][k];\n }\n }\n record.store.afterEdit(record);\n });\n \n });\n\n \n \n}" }, "text" : "Bulk Change", "xtype" : "Button", "$ xns" : "Roo.Toolbar" }, { "xtype" : "Fill", "$ xns" : "Roo.Toolbar" }, { "text" : "View:", "xtype" : "TextItem", "$ xns" : "Roo.Toolbar" }, { "listeners" : { "specialkey" : "function (_self, e)\n{\n _this.grid.ds.load({});\n}", "render" : "function (_self)\n{\n_this.searchBox= _self;\n}" }, "xtype" : "TextField", "$ xns" : "Roo.form" }, { "listeners" : { "|render" : "function (_self)\n{\n _this.personSel = _self;\n if (Pman.Login.authUser.id) {\n this.setFromData({\n developer_id : Pman.Login.authUser.id,\n developer_id_name : Pman.Login.authUser.name\n });\n \n }\n}", "|select" : "function (combo, record, index)\n{\n _this.grid.ds.load({});\n \n}" }, "listWidth" : 600, "triggerAction" : "all", "fieldLabel" : "Person ", "forceSelection" : true, "selectOnFocus" : true, "pageSize" : 20, "displayField" : "developer_id_name", "emptyText" : "Select Person ", "hiddenName" : "developer_id", "minChars" : 2, "valueField" : "developer_id", "xtype" : "ComboBox", "allowBlank" : true, "typeAhead" : true, "editable" : true, "width" : 150, "$ xns" : "Roo.form", "name" : "developer_id", "qtip" : "Select Person ", "queryParam" : "query[name]", "tpl" : "