{ "name" : "Pman.Tab.MTrackTimeline", "parent" : "Pman.Tab.DocumentsTab", "title" : "", "path" : "/home/alan/gitlive/Pman.MTrack/Pman.Tab.MTrackTimeline.bjs", "permname" : "", "modOrder" : "300", "strings" : { "9a9984a2dd014cc958919b73e2a1f33a" : "Project Timeline", "87f9f735a1d36793ceaecd4e47124b63" : "Events", "9e727fdd3aec8274f46685441900280d" : "Project", "4ee972120bcda675f75222c87cb9d356" : "Who", "3d1f92a565d3b1a61880236e33c49bf3" : "Timeline", "c112bb3542e98308d12d5ecb10a67abc" : "Changes", "e77ec81408c215410441b24d83ef5bec" : "Repos", "ff5572e3fac2fd20b897cebfdf14e9d5" : "Code Changes", "6c099dca310fcc4e75f7cc0d01e5afe1" : "Select a date to refresh.." }, "items" : [ { "listeners" : { "activate" : "function (_self)\n{\n // navigation..\n // a) record the fact we go here.. (for history)\n \n // when page loads, we have to go to this page..\n \n // at other times, we just check \n // a) project was the same as before... - do not change.\n // b) \n _this.project = _this.project || 0;\n \n \n if (typeof(MTrackWeb) != 'undefined' && !MTrackWeb.Layout) {\n return;\n }\n \n if (typeof(Pman.Tab.DocumentsTab) == 'undefined') {\n return;\n }\n /*\n if (!_this.iscroll) { \n \n (function() {\n \n try {\n _this.iscroll = new Roo.ux.Iscroll(_this.tpanel.el.dom);\n } catch(e) { \n Roo.log(e);\n }\n }).defer(100); \n\n }\n _this.iscroll = true; \n \n */\n var chg_project = (_this.project != Pman.Tab.DocumentsTab.panel.getProjectId());\n \n _this.project = Pman.Tab.DocumentsTab.panel.getProjectId();\n \n if (typeof(MTrackWeb) == 'undefined') {\n return;\n }\n try { \n window.history.pushState( { url: '/Timeline' }, 'Timeline' , baseURL + '/Timeline' );\n } catch (e) {}\n \n MTrack.currentURL = '/Timeline';\n if (chg_project) {\n (function() {\n _this.grid.ds.load({});\n //_this.tpanel.view.store.load({});\n }).defer(100);\n }\n \n \n}" }, "fitToFrame" : true, "background" : true, "region" : "center", "title" : "Project Timeline", "xtype" : "NestedLayoutPanel", "fitContainer" : true, "$ xns" : "Roo", "items" : [ { "xtype" : "BorderLayout", "$ xns" : "Roo", "* prop" : "layout", "items" : [ { "xtype" : "LayoutRegion", "tabPosition" : "top", "$ xns" : "Roo", "* prop" : "center" }, { "xtype" : "LayoutRegion", "width" : 250, "$ xns" : "Roo", "* prop" : "west" }, { "listeners" : { "activate" : "function (_self)\n{\n \n}", "render" : "function (_self)\n{\n _this.commitpanel = _self;\n}" }, "autoScroll" : true, "region" : "center", "fitToFrame" : true, "title" : "Code Changes", "xtype" : "ContentPanel", "$ xns" : "Roo", "items" : [ { "listeners" : { "preparedata" : "function (_self, data, i, rec)\n{\n Roo.apply(data, rec.json);\n}" }, "$ tpl" : "new Roo.DomTemplate({url : rootURL +'/Pman/MTrack/domtemplates/dailychanges.html'})", "xtype" : "View", "$ xns" : "Roo", "* prop" : "view", "items" : [ { "listeners" : { "beforeload" : "function (_self, o)\n{\n o.params = o.params || {};\n o.params._daychanges = _this.datePicker.activeDate.format(\"Y-m-d\");\n var re = _this.grid.selModel.getSelected();\n if (!re) {\n return false;\n }\n o.params.id = re.data.repo_id;\n}" }, "xtype" : "Store", "$ xns" : "Roo.data", "* prop" : "store", "items" : [ { "$ url" : "baseURL + '/Roo/mtrack_repos'", "method" : "GET", "xtype" : "HttpProxy", "timeout" : 60000, "$ xns" : "Roo.data", "* prop" : "proxy" }, { "id" : "id", "root" : "data", "xtype" : "JsonReader", "$ fields" : "[\n {\n 'name': 'id',\n 'type': 'int'\n },\n 'name'\n]", "$ xns" : "Roo.data", "* prop" : "reader" } ] } ] } ] }, { "listeners" : { "activate" : "function (_self)\n{\n _this.tpanel = _self;\n}" }, "autoScroll" : true, "background" : true, "fitToFrame" : true, "region" : "center", "title" : "Timeline", "xtype" : "ContentPanel", "fitContainer" : true, "$ xns" : "Roo", "$ mload" : "function(url) {\n\n // can you actually link to this page..\n // perhaps a specific day..\n\n this._url = url;\n // this._project = MTrack.projectCombo.getValue();\n // MTrack.ajaxLoad(url, this);\n _this.grid.ds.load({});\n \n}\n", "items" : [ { "xtype" : "Toolbar", "$ xns" : "Roo", "* prop" : "toolbar", "items" : [ { "text" : "Select a date to refresh..", "xtype" : "Button", "$ xns" : "Roo.Toolbar" } ] }, { "listeners" : { "beforeclick" : "function (_self, index, node, e)\n{\n Roo.log(node);\n Roo.log(e);\n}", "beforeselect" : "function (_self, node, selections)\n{\n //Roo.log(node)\n //Roo.log(this.indexOf(node));\n var rec = this.store.getAt(this.indexOf(node));\n //Roo.log(data);\n \n new Pman.Request({\n url : baseURL + '/Roo/mtrack_change',\n method :'GET',\n params : {\n _id : rec.data.id,\n _withdiff : 1\n },\n success : function (res) {\n \n //.. this.tpl.\n //Roo.log( _this.tpanel.view.chgtmp.apply(res));\n \n \n }\n });\n \n \n \n \n}" }, "selectedClass" : "change-log-item-expanded", "multiSelect" : true, "xtype" : "View", "toggleSelect" : true, "singleSelect" : false, "$ xns" : "Roo", "items" : [ { "$ url" : "rootURL + '/Pman/MTrack/templates/timeline.html'", "xtype" : "XTemplate", "$ xns" : "Roo", "* prop" : "tpl" }, { "listeners" : { "beforeload" : "function (_self, o)\n{\n o = o || {};\n o.params = o.params || {};\n \n var sel = _this.grid.selModel.getSelected();\n if (!sel) {\n return false;\n }\n \n \n o.params.from_date =_this.datePicker.activeDate.format(\"Y-m-d\");\n o.params.person_id = sel.data.person_id;\n // o.params.viewtype = 'summary'; \n o.params.timeline = 1;\n // project?\n o.params.project_id = sel.data.project_id;\n o.params.limit = 9999;\n}" }, "xtype" : "Store", "remoteSort" : true, "$ sortInfo" : "{ field : 'person_name', direction: 'ASC' }", "$ xns" : "Roo.data", "* prop" : "store", "items" : [ { "$ url" : "baseURL + '/Roo/mtrack_change.php'", "xtype" : "HttpProxy", "method" : "GET", "$ xns" : "Roo.data", "* prop" : "proxy" }, { "id" : "id", "root" : "data", "xtype" : "JsonReader", "$ fields" : "[\n {\n 'name': 'person_id',\n 'type': 'int'\n },\n {\n 'name': 'person_name',\n 'type': 'string'\n },\n {\n 'name': 'changeday',\n 'type': 'date',\n 'dateFormat': 'Y-m-d'\n },\n {\n 'name': 'nchanges',\n 'type': 'int'\n },\n 'project_code',\n 'project_id'\n \n\n]", "$ xns" : "Roo.data", "* prop" : "reader", "totalProperty" : "total" } ] }, { "$ url" : "rootURL + '/Pman/MTrack/templates/timeline-changelog.html'", "xtype" : "XTemplate", "$ xns" : "Roo", "* prop" : "chgtpl" } ] } ] }, { "region" : "west", "xtype" : "NestedLayoutPanel", "$ xns" : "Roo", "items" : [ { "xtype" : "BorderLayout", "$ xns" : "Roo", "* prop" : "layout", "items" : [ { "xtype" : "LayoutRegion", "$ xns" : "Roo", "* prop" : "center" }, { "xtype" : "LayoutRegion", "$ xns" : "Roo", "* prop" : "north", "height" : 220 }, { "listeners" : { "|activate" : "function() {\n _this.gridpanel = this;\n\n}" }, "autoScroll" : true, "background" : false, "fitToframe" : true, "region" : "center", "title" : "Events", "xtype" : "GridPanel", "fitContainer" : true, "$ xns" : "Roo", "tableName" : "Events", "items" : [ { "listeners" : { "|render" : "function() \n{\n _this.grid = this; \n //_this.dialog = Pman.Dialog.FILL_IN\n this.dataSource.load({});\n\n}" }, "autoExpandColumn" : "person_id_name", "xtype" : "Grid", "loadMask" : true, "$ xns" : "Roo.grid", "* prop" : "grid", "items" : [ { "listeners" : { "afterselectionchange" : "function (_self)\n{\n // select the data..\n \n var r= _this.grid.sm.getSelected();\n \n \n //_this.datePicker.setValue(r.data.changeday);\n //\n _this.commitpanel.view.store.load({});\n // _this.tpanel.view.store.load({});\n \n} " }, "xtype" : "RowSelectionModel", "singleSelect" : true, "$ xns" : "Roo.grid", "* prop" : "sm" }, { "listeners" : { "beforeload" : "function (_self, o)\n{\n o = o || {};\n o.params = o.params || {};\n \n if (!_this.datePicker || !_this.datePicker.getValue) {\n return false;\n }\n o.params.on_date = _this.datePicker.activeDate.format(\"Y-m-d\");\n o.params.viewtype = 'summary'; \n o.params.timeline = 1;\n // project?\n o.params.project_id = Pman.Tab.DocumentsTab ? \n Pman.Tab.DocumentsTab.panel.getProjectId() : 0;\n}" }, "xtype" : "Store", "remoteSort" : true, "$ sortInfo" : "{ field : 'person_name', direction: 'ASC' }", "$ xns" : "Roo.data", "* prop" : "dataSource", "items" : [ { "$ url" : "baseURL + '/Roo/mtrack_change.php'", "xtype" : "HttpProxy", "method" : "GET", "$ xns" : "Roo.data", "* prop" : "proxy" }, { "id" : "id", "root" : "data", "xtype" : "JsonReader", "$ fields" : "[\n {\n 'name': 'person_id',\n 'type': 'int'\n },\n {\n 'name': 'person_name',\n 'type': 'string'\n },\n {\n 'name': 'changeday',\n 'type': 'date',\n 'dateFormat': 'Y-m-d'\n },\n {\n 'name': 'nchanges',\n 'type': 'int'\n },\n 'project_code',\n 'project_id',\n 'repo_id',\n 'repo_name'\n \n\n]", "$ xns" : "Roo.data", "* prop" : "reader", "totalProperty" : "total" } ] }, { "xtype" : "ColumnModel", "header" : "Repos", "width" : 30, "$ renderer" : "function(v,x,r) { \n\n return String.format('{0}', v ? v : '' );\n }", "$ xns" : "Roo.grid", "* prop" : "colModel[]", "dataIndex" : "repo_name" }, { "xtype" : "ColumnModel", "header" : "Project", "width" : 50, "$ renderer" : "function(v,x,r) { \n \n Roo.log(r);\n return String.format( '{0}' ,v );\n }\n ", "$ xns" : "Roo.grid", "* prop" : "colModel[]", "dataIndex" : "project_code" }, { "xtype" : "ColumnModel", "header" : "Who", "width" : 100, "$ renderer" : "function(v,x,r) { \n \n return String.format( '{0}' , v);\n }\n ", "$ xns" : "Roo.grid", "* prop" : "colModel[]", "dataIndex" : "person_name" }, { "align" : "right", "xtype" : "ColumnModel", "header" : "Changes", "width" : 30, "$ renderer" : "function(v,x,r) { \n return v * 1;\n }\n ", "$ xns" : "Roo.grid", "* prop" : "colModel[]", "dataIndex" : "nchanges" } ] } ] }, { "region" : "north", "xtype" : "ContentPanel", "$ xns" : "Roo", "items" : [ { "listeners" : { "render" : "function (_self)\n{\n _this.datePicker = _self;\n}", "monthchange" : "function (_self, date)\n{\n \n}", "select" : "function (_self, date)\n{\n if (! _this.grid) {\n return;\n }\n _this.grid.ds.load({});\n}" }, "xtype" : "DatePicker", "$ xns" : "Roo" } ] } ] } ] } ] } ] } ] }