"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}"
},
+ "fitToFrame" : true,
"background" : true,
"region" : "center",
- "fitToFrame" : true,
"title" : "Tickets",
"xtype" : "NestedLayoutPanel",
"fitContainer" : true,
"items" : [
{
"xtype" : "LayoutRegion",
- "tabPosition" : "top",
"$ xns" : "Roo",
+ "tabPosition" : "top",
"* prop" : "center"
},
{
"listeners" : {
"|activate" : "function() {\n _this.gpanel = this;\n if (_this.grid) {\n _this.grid.ds.load({});\n }\n}"
},
+ "fitToframe" : true,
"background" : true,
"region" : "north",
- "fitToframe" : true,
"title" : "mtrack_ticket",
"xtype" : "GridPanel",
"fitContainer" : true,
"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}"
+ "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}",
+ "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}"
},
"xtype" : "RowSelectionModel",
"$ xns" : "Roo.grid",
{
"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}"
+ "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? MTrack.projectCombo.getValue(): 0;\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,
"items" : [
{
"$ url" : "baseURL + '/Roo/mtrack_ticket.php'",
- "method" : "GET",
"xtype" : "HttpProxy",
+ "method" : "GET",
"$ xns" : "Roo.data",
"* prop" : "proxy"
},
"load" : "function (_self, records, options)\n{\n Roo.log(records);\n var ua = _this.personSel.store.reader.newRow({\n developer_id : -1,\n developer_id_name : '-- Un-assigned --'\n });\n this.insert(0,[ua]);\n// records.unshift(ua);\n}"
},
"xtype" : "Store",
- "$ sortInfo" : "{ field : 'developer_id_name' , dir : 'ASC' }",
"$ xns" : "Roo.data",
+ "$ sortInfo" : "{ field : 'developer_id_name' , dir : 'ASC' }",
"* prop" : "store",
"items" : [
{
"$ url" : "baseURL + '/Roo/Mtrack_ticket.php'",
- "xtype" : "HttpProxy",
"method" : "GET",
+ "xtype" : "HttpProxy",
"$ xns" : "Roo.data",
"* prop" : "proxy"
},
"items" : [
{
"$ url" : "baseURL + '/Roo/mtrack_milestone.php'",
- "method" : "GET",
"xtype" : "HttpProxy",
+ "method" : "GET",
"$ xns" : "Roo.data",
"* prop" : "proxy"
},
},
{
"xtype" : "ColumnModel",
- "header" : "Summary",
"width" : 200,
+ "header" : "Summary",
"$ renderer" : "function(v,x,r) { \n \n var col = '#000'; // closed?\n switch (r.data.status_name) {\n case 'resolved':\n col = '#0cc'; break; // blue\n case 'open':\n case 'reopened': \n case 'new': \n col = '#c00'; break; // redish\n case 'closed': \n col = '#999'; break; // grey\n }\n \n return String.format(\n r.data.status_name == 'closed' ?\n '{2}</span><s style=\"color:{3}\">[{1}]</s> {0}':\n '{2}<span style=\"color:{3}\">[{1}]</span> {0}',\n v,\n r.data.status_name == 'closed' ?\n r.data.resolution_id_name : \n r.data.status_name ,\n r.json.jira_ref ? (r.json.jira_ref+ ' ') : '',\n col\n ); \n}\n",
"$ xns" : "Roo.grid",
"* prop" : "colModel[]",
},
{
"xtype" : "ColumnModel",
- "header" : "Owner",
"width" : 75,
+ "header" : "Owner",
"$ renderer" : "function(v) { return String.format('{0}', v); }",
"$ xns" : "Roo.grid",
"* prop" : "colModel[]",
},
{
"xtype" : "ColumnModel",
- "header" : "Developer",
"width" : 75,
+ "header" : "Developer",
"$ renderer" : "function(v,x,r) { return String.format('{0}', r.data.developer_id_name); }",
"$ xns" : "Roo.grid",
"* prop" : "colModel[]",
"items" : [
{
"$ url" : "baseURL + '/Roo/Person.php'",
- "method" : "GET",
"xtype" : "HttpProxy",
+ "method" : "GET",
"$ xns" : "Roo.data",
"* prop" : "proxy"
},
"items" : [
{
"$ url" : "baseURL + '/Roo/core_enum.php'",
- "xtype" : "HttpProxy",
"method" : "GET",
+ "xtype" : "HttpProxy",
"$ xns" : "Roo.data",
"* prop" : "proxy"
},
"items" : [
{
"$ url" : "baseURL + '/Roo/core_enum.php'",
- "xtype" : "HttpProxy",
"method" : "GET",
+ "xtype" : "HttpProxy",
"$ xns" : "Roo.data",
"* prop" : "proxy"
},
"items" : [
{
"$ url" : "baseURL + '/Roo/core_enum.php'",
- "xtype" : "HttpProxy",
"method" : "GET",
+ "xtype" : "HttpProxy",
"$ xns" : "Roo.data",
"* prop" : "proxy"
},
},
{
"xtype" : "ColumnModel",
- "header" : "Hours",
"width" : 50,
+ "header" : "Hours",
"$ renderer" : "function(v,x,r) { \n return String.format('{0}/{1}', r.data.spent, v); \n}",
"$ xns" : "Roo.grid",
"* prop" : "colModel[]",
"resize" : "function (_self, width, height)\n{\n // create and update the CSS style\n \n if (!_this.css) {\n _this.css = Roo.util.CSS;\n \n _this.css.createStyleSheet(\n \n \".ticket-view-main .ticket-left-col { }\\n\" +\n \".ticket-view-main .readonly-tkt-description { }\\n\" +\n \".ticket-view-main .mtrack-ticket-events {} \\n\"\n ,\n Roo.id()\n ); \n \n }\n var w = width - 400;\n Roo.log(\"new width: \" + Math.max(0,w));\n \n _this.css.updateRule(\n \".ticket-view-main .ticket-left-col\", \n \"width\", Math.max(0, w) + 'px'\n );\n _this.css.updateRule(\n \".ticket-view-main .readonly-tkt-description\",\n \"width\", Math.max(0, w-10) + 'px'\n );\n _this.css.updateRule(\n \".ticket-view-main .mtrack-ticket-events\",\n \"width\", Math.max(0, w-10) + 'px'\n );\n}"
},
"autoScroll" : true,
- "background" : false,
"fitToFrame" : true,
+ "background" : false,
"region" : "center",
"title" : "Tickets",
"xtype" : "ContentPanel",
"|rendered" : "function (form)\n{\n _this.form= form;\n}\n"
},
"$ url" : "baseURL + '/Roo/mtrack_ticket.php'",
- "xtype" : "Form",
"method" : "POST",
+ "xtype" : "Form",
"style" : "margin:10px;",
"$ xns" : "Roo.form",
"items" : [
{
"xtype" : "Row",
- "$ xns" : "Roo.form",
"width" : 900,
+ "$ xns" : "Roo.form",
"items" : [
{
"labelAlign" : "top",
"items" : [
{
"$ url" : "baseURL + '/Roo/Mtrack_ticket.php'",
- "xtype" : "HttpProxy",
"method" : "GET",
+ "xtype" : "HttpProxy",
"$ xns" : "Roo.data",
"* prop" : "proxy"
},
"items" : [
{
"$ url" : "baseURL + '/Roo/core_person.php'",
- "method" : "GET",
"xtype" : "HttpProxy",
+ "method" : "GET",
"$ xns" : "Roo.data",
"* prop" : "proxy"
},