Uncommited changes synced
authorAlan Knowles <alan@roojs.com>
Wed, 23 Dec 2020 05:20:20 +0000 (13:20 +0800)
committerAlan Knowles <alan@roojs.com>
Wed, 23 Dec 2020 05:20:20 +0000 (13:20 +0800)
DataObjects/Core_project.php
DataObjects/Mtrack_ticket.php
Merger.php
Pman.Dialog.MTrackTicket.bjs
Pman.Dialog.MTrackTicket.js
TestDayMail.php
UserRepos.php

index 702d578..3f2e615 100644 (file)
@@ -63,6 +63,27 @@ class Pman_MTrack_DataObjects_Core_project extends Pman_Core_DataObjects_Core_pr
         
            
         }
+         
+        if (isset($q['_with_tickets'])) {
+            $this->selectAdd("
+                COALESCE((
+                    SELECT
+                        count(mtrack_ticket.id)
+                    FROM
+                        mtrack_ticket
+                    LEFT JOIN
+                       core_enum as join_status_id
+                    ON
+                        join_status_id.id = mtrack_ticket.status
+                    WHERE
+                        (join_status_id.name NOT IN('closed', 'on hold') OR  mtrack_ticket.status  = 0)
+                        AND
+                        mtrack_ticket.project_id = core_project.id
+                ),0) as no_tickets
+            ");
+            
+        }
+        
         
         if (isset($q['_mtrack_repos_only'])) { 
         //?/ should we hide closed projects by default even from admin?
index 3c50c5a..a1a46c0 100644 (file)
@@ -679,7 +679,8 @@ class Pman_MTrack_DataObjects_Mtrack_ticket extends DB_DataObject
     
     function beforeUpdate($old, $req, $roo)
     {
-        if (!empty($req['reason'])) {
+        
+         if (!empty($req['reason'])) {
             $ch = DB_DataObject::factory('mtrack_change');
             $ch->beginChange($this, $req['reason']);
             $this->_mtrack_change= $ch;
@@ -722,6 +723,28 @@ class Pman_MTrack_DataObjects_Mtrack_ticket extends DB_DataObject
             $roo->jok("UPDATED");
         }
         
+        if (isset($req['_before']) || isset($req['_after']))  {
+            $req['_after'] = isset($req['_after']) ? $req['_after'] : 0;
+            $req['_before'] = isset($req['_before']) ? $req['_before'] : 0;
+            $old->updateSequence($req['_before'],$req['_after']);
+            
+            
+            if ($req['_before']) { 
+                $before = DB_DataObject::factory('mtrack_ticket');
+                $before->get($req['_before']);
+                $this->seqid = $before->seqid;
+            } else if ($req['_after']) {
+                $after = DB_DataObject::factory('mtrack_ticket');
+                $after->get($req['_after']);
+                $this->seqid =  $after->seqid+1;
+            } else {
+                
+                
+                
+            }
+        }   
+         
+        
         
     }
     
@@ -849,8 +872,10 @@ class Pman_MTrack_DataObjects_Mtrack_ticket extends DB_DataObject
     }
     
     //  http://roojs.com/admin.php/Roo/Mtrack_ticket?_post=1&id=733&_reorder=0
-    function updateSequence($tbefore)
+    function updateSequence($tbefore, $tafter = 0)
     {
+        // fix empty sequences?
+        
         $tn = $this->tableName();
         $t = DB_DataObject::factory('mtrack_ticket');
         $tt = clone($t);
@@ -859,7 +884,7 @@ class Pman_MTrack_DataObjects_Mtrack_ticket extends DB_DataObject
         $t->autoJoin();
         $t->selectAdd();
         // we still apply to closed tickets????
-        //$t->whereAdd("join_status_id.name != 'closed'");
+         $t->whereAdd("join_status_id.name != 'closed'");
         $t->applySort(false,  'old_style', false);
         
         $old_seqid = $this->seqid;
@@ -883,14 +908,24 @@ class Pman_MTrack_DataObjects_Mtrack_ticket extends DB_DataObject
             $old_seqid = $t->seqid;
             
         }
+        
+        
+        
+        
         $before_seq_id = 0;
         
         if ($tbefore) { 
             $before = DB_DataObject::factory('mtrack_ticket');
             $before->get($tbefore);
             $before_seq_id = $before->seqid;
+            
         }
-        
+        if ($tafter) { 
+            $after = DB_DataObject::factory('mtrack_ticket');
+            $after->get($tafter);
+            $before_seq_id = $after->seqid+1;
+        }
+         
         $t = DB_DataObject::factory('mtrack_ticket');
         
         
index 881b22f..3a7c864 100644 (file)
@@ -35,7 +35,7 @@ class Pman_MTrack_Merger extends Pman {
     }
     
     
-    function get($pi)
+    function get($pi, $opts= array())
     {
         
         $this->pi = 'default/roojs1'; // fixme..
index 2a45df8..9104539 100644 (file)
 {
-    "id": "roo-file-232",
-    "name": "Pman.Dialog.MTrackTicket",
-    "parent": "",
-    "title": "",
-    "path": "/home/alan/gitlive/Pman.MTrack/Pman.Dialog.MTrackTicket.bjs",
-    "items": [
+ "name" : "Pman.Dialog.MTrackTicket",
+ "parent" : "",
+ "title" : "",
+ "path" : "/home/alan/gitlive/Pman.MTrack/Pman.Dialog.MTrackTicket.bjs",
+ "permname" : "",
+ "modOrder" : "001",
+ "strings" : {
+  "a02a8093b46b8e647c29727fb50d67e4" : "Select milestone",
+  "672caf27f5363dc833bda5099775e891" : "Developer",
+  "9e727fdd3aec8274f46685441900280d" : "Project",
+  "6a58f977f2b623b695a340766f2a6843" : "Select Project",
+  "a5ffb2a210f259195a75e5abca8db4a2" : "Select mtrack_milestone",
+  "6c768695a8efb18436d5b7b4374cdb45" : "Select core_enum",
+  "007cc9547ae8884ad597cd92ba505422" : "Severity",
+  "86e9400686e8e080ef3c8995afb5eb86" : "Select Priority",
+  "ddcf50c29294d4414f3f7c1bbc892cb5" : "Resources",
+  "290612199861c31d1036b185b4e69b75" : "Summary",
+  "1cb251ec0d568de6a929b520c4aed8d1" : "text",
+  "5c9335b28e6277ddbe0137f04e5e58a7" : "Classification",
+  "3c311fbd0f9e51ce27b984f55164cf83" : "Estimated",
+  "1243daf593fa297e07ab03bf06d925af" : "Searching...",
+  "c4ca4238a0b923820dcc509a6f75849b" : "1",
+  "ea4788705e6873b424c65e91c2846b19" : "Cancel",
+  "502996d9790340c5fd7b86a5b93b1c9f" : "Priority",
+  "b6f4a2ec6356bbd56d49f2096bf9d3d3" : "Owner",
+  "ff18c41b7689060c39934dbb74de1e9c" : "Edit or Create Ticket",
+  "24f27bda5dd2c488aa9bc7700ba98c34" : "Select Projects",
+  "340c2ee497b85d5954b01c64de7f44f6" : "Select Person",
+  "23e6bcd09b259e6de4cd972516cb4214" : "View as",
+  "590fc197fe73db0aa2ec03687a372eea" : "markdown",
+  "e9c626b8a8b62de7562dfbf51a576ae5" : "Milestone",
+  "43371ce8259ba854b1ae3543fd477874" : "Select Severity",
+  "a8dbd02aaca3948002718aeb2babeefe" : "Summary / Details",
+  "9fc2d28c05ed9eb1d75ba4465abf15a9" : "Properties",
+  "b5a7adde1af5c87d7fd797b6245c2a39" : "Description",
+  "c9cc8cce247e49bae79f15173ce97354" : "Save",
+  "fcb17935fd52e65b8f223778c9e70313" : "Select Classification"
+ },
+ "named_strings" : {
+  "view_as_markdown_value" : "c4ca4238a0b923820dcc509a6f75849b",
+  "estimated_fieldLabel" : "3c311fbd0f9e51ce27b984f55164cf83",
+  "severity_id_name_loadingText" : "1243daf593fa297e07ab03bf06d925af",
+  "developer_id_name_qtip" : "340c2ee497b85d5954b01c64de7f44f6",
+  "milestone_id_name_fieldLabel" : "e9c626b8a8b62de7562dfbf51a576ae5",
+  "priority_id_name_qtip" : "6c768695a8efb18436d5b7b4374cdb45",
+  "view_as_text_boxLabel" : "1cb251ec0d568de6a929b520c4aed8d1",
+  "developer_id_name_fieldLabel" : "672caf27f5363dc833bda5099775e891",
+  "severity_id_name_fieldLabel" : "007cc9547ae8884ad597cd92ba505422",
+  "developer_id_name_emptyText" : "340c2ee497b85d5954b01c64de7f44f6",
+  "summary_fieldLabel" : "290612199861c31d1036b185b4e69b75",
+  "classification_id_name_emptyText" : "fcb17935fd52e65b8f223778c9e70313",
+  "severity_id_name_qtip" : "6c768695a8efb18436d5b7b4374cdb45",
+  "description_fieldLabel" : "b5a7adde1af5c87d7fd797b6245c2a39",
+  "owner_id_name_emptyText" : "340c2ee497b85d5954b01c64de7f44f6",
+  "project_id_name_qtip" : "24f27bda5dd2c488aa9bc7700ba98c34",
+  "severity_id_name_emptyText" : "43371ce8259ba854b1ae3543fd477874",
+  "milestone_id_name_qtip" : "a5ffb2a210f259195a75e5abca8db4a2",
+  "priority_id_name_loadingText" : "1243daf593fa297e07ab03bf06d925af",
+  "classification_id_name_loadingText" : "1243daf593fa297e07ab03bf06d925af",
+  "milestone_id_name_emptyText" : "a02a8093b46b8e647c29727fb50d67e4",
+  "priority_id_name_emptyText" : "86e9400686e8e080ef3c8995afb5eb86",
+  "developer_id_name_loadingText" : "1243daf593fa297e07ab03bf06d925af",
+  "milestone_id_name_loadingText" : "1243daf593fa297e07ab03bf06d925af",
+  "project_id_name_emptyText" : "6a58f977f2b623b695a340766f2a6843",
+  "owner_id_name_qtip" : "340c2ee497b85d5954b01c64de7f44f6",
+  "view_as_text_fieldLabel" : "23e6bcd09b259e6de4cd972516cb4214",
+  "priority_id_name_fieldLabel" : "502996d9790340c5fd7b86a5b93b1c9f",
+  "project_id_name_loadingText" : "1243daf593fa297e07ab03bf06d925af",
+  "owner_id_name_fieldLabel" : "b6f4a2ec6356bbd56d49f2096bf9d3d3",
+  "view_as_text_value" : "c4ca4238a0b923820dcc509a6f75849b",
+  "owner_id_name_loadingText" : "1243daf593fa297e07ab03bf06d925af",
+  "view_as_markdown_boxLabel" : "590fc197fe73db0aa2ec03687a372eea",
+  "project_id_name_fieldLabel" : "9e727fdd3aec8274f46685441900280d",
+  "classification_id_name_fieldLabel" : "5c9335b28e6277ddbe0137f04e5e58a7",
+  "classification_id_name_qtip" : "6c768695a8efb18436d5b7b4374cdb45"
+ },
+ "items" : [
+  {
+   "listeners" : {
+    "resize" : "function (_self, width, height)\n{\n    var bw = width - 320;\n    _this.form.findField('description').el.setWidth(bw);\n    _this.summaryBox.el.setWidth(bw+30);\n        _this.summaryCol.el.setWidth(bw+45);\n          _this.descCol.el.setWidth(bw+35);\n          \n}"
+   },
+   "modal" : true,
+   "collapsible" : false,
+   "title" : "Edit or Create Ticket",
+   "xtype" : "LayoutDialog",
+   "width" : 700,
+   "$ xns" : "Roo",
+   "closable" : false,
+   "resizable" : true,
+   "height" : 450,
+   "items" : [
+    {
+     "xtype" : "LayoutRegion",
+     "$ xns" : "Roo",
+     "* prop" : "center"
+    },
+    {
+     "region" : "center",
+     "xtype" : "ContentPanel",
+     "$ xns" : "Roo",
+     "items" : [
+      {
+       "listeners" : {
+        "|actioncomplete" : "function(_self,action)\n{\n    if (action.type == 'setdata') {\n  \n       this.load({ method: 'GET', params: { '_id' : _this.data.id  || 0}});\n          \n       return;\n    }\n    if (action.type == 'load') {\n       if (!_this.data.id) {\n            this.setValues(_this.data);\n        }\n        return;\n    }\n    \n    \n    if (action.type =='submit') {\n    \n        if (!_this.data.id * 1) {\n            Roo.MessageBox.confirm(\"Close?\", \n                \"The new ticket id is #\" + action.result.data.id + \", Press yes to close, or no to keep editing\",\n                function (res) {\n                    if (res == 'yes') {\n                    \n                    \n                        _this.dialog.hide();\n                    \n                         if (_this.callback) {\n                            _this.callback.call(_this, _this.form.getValues());\n                         }\n                         _this.form.reset();            \n                         return;\n                     }\n                     _this.data.id = action.result.data.id;\n                     _this.form.fireEvent('actioncomplete', _this.form, { type : 'setdata', data : {}});\n                     return;\n                 }\n             );\n        \n        \n        \n        \n            return;\n        }\n        \n        _this.dialog.hide();\n    \n         if (_this.callback) {\n            _this.callback.call(_this, _this.form.getValues());\n         }\n         _this.form.reset();        \n\n         return;\n    }\n}\n",
+        "|rendered" : "function (form)\n{\n    _this.form= form;\n}\n"
+       },
+       "$ url" : "baseURL + '/Roo/mtrack_ticket.php'",
+       "xtype" : "Form",
+       "method" : "POST",
+       "style" : "margin:10px;width:1000px;margin-top:0px;",
+       "$ xns" : "Roo.form",
+       "items" : [
         {
-            "listeners": {
-                "resize": "function (_self, width, height)\n{\n    var bw = width - 320;\n    _this.form.findField('description').el.setWidth(bw);\n    _this.summaryBox.el.setWidth(bw+30);\n        _this.summaryCol.el.setWidth(bw+45);\n          _this.descCol.el.setWidth(bw+35);\n          \n}"
+         "xtype" : "Column",
+         "$ xns" : "Roo.form",
+         "width" : 210,
+         "items" : [
+          {
+           "labelAlign" : "top",
+           "style" : "width:190px;",
+           "legend" : "Properties",
+           "xtype" : "FieldSet",
+           "$ xns" : "Roo.form",
+           "items" : [
+            {
+             "listWidth" : 400,
+             "triggerAction" : "all",
+             "fieldLabel" : "Project",
+             "forceSelection" : true,
+             "selectOnFocus" : true,
+             "pageSize" : 20,
+             "displayField" : "name",
+             "emptyText" : "Select Project",
+             "hiddenName" : "project_id",
+             "minChars" : 2,
+             "valueField" : "id",
+             "xtype" : "ComboBox",
+             "allowBlank" : false,
+             "typeAhead" : true,
+             "editable" : false,
+             "width" : 180,
+             "$ xns" : "Roo.form",
+             "name" : "project_id_name",
+             "qtip" : "Select Projects",
+             "queryParam" : "query[name]",
+             "tpl" : "<div class=\"x-grid-cell-text x-btn button \"><b>{name}</b> </div>",
+             "loadingText" : "Searching...",
+             "items" : [
+              {
+               "listeners" : {
+                "|beforeload" : "function (_self, o){\n    o.params = o.params || {};\n    // set more here\n}\n"
+               },
+               "xtype" : "Store",
+               "remoteSort" : true,
+               "$ sortInfo" : "{ direction : 'ASC', field: 'name' }",
+               "$ xns" : "Roo.data",
+               "* prop" : "store",
+               "items" : [
+                {
+                 "$ url" : "baseURL + '/Roo/Projects.php'",
+                 "method" : "GET",
+                 "xtype" : "HttpProxy",
+                 "$ xns" : "Roo.data",
+                 "* prop" : "proxy"
+                },
+                {
+                 "id" : "id",
+                 "root" : "data",
+                 "xtype" : "JsonReader",
+                 "$ xns" : "Roo.data",
+                 "$ fields" : "[{\"name\":\"id\",\"type\":\"int\"},{\"name\":\"name\",\"type\":\"string\"}]",
+                 "* prop" : "reader",
+                 "totalProperty" : "total"
+                }
+               ]
+              }
+             ]
             },
-            "closable": false,
-            "collapsible": false,
-            "height": 450,
-            "modal": true,
-            "resizable": true,
-            "title": "Edit or Create Ticket",
-            "width": 700,
-            "xtype": "LayoutDialog",
-            "|xns": "Roo",
-            "items": [
+            {
+             "alwaysQuery" : true,
+             "listWidth" : 400,
+             "triggerAction" : "all",
+             "fieldLabel" : "Milestone",
+             "forceSelection" : true,
+             "selectOnFocus" : true,
+             "pageSize" : 20,
+             "displayField" : "name",
+             "emptyText" : "Select milestone",
+             "hiddenName" : "milestone_id",
+             "minChars" : 2,
+             "valueField" : "id",
+             "xtype" : "ComboBox",
+             "typeAhead" : true,
+             "editable" : false,
+             "width" : 180,
+             "$ xns" : "Roo.form",
+             "name" : "milestone_id_name",
+             "qtip" : "Select mtrack_milestone",
+             "queryParam" : "query[name]",
+             "tpl" : "<div class=\"x-grid-cell-text x-btn button  RdYlGn-q{seqid}-{seqmax}\"><b>{name}</b> </div>",
+             "loadingText" : "Searching...",
+             "items" : [
+              {
+               "listeners" : {
+                "|beforeload" : "function (_self, o){\n    o.params = o.params || {};\n    // set more here\n    o.params.etype = 'milestone';\n    o.params.project_id = _this.form.findField('project_id').getValue();\n    if (!o.params.project_id) {\n        Roo.MessageBox.alert(\"Error\", \"Select Project\");\n        return false;\n    }\n}\n"
+               },
+               "xtype" : "Store",
+               "remoteSort" : true,
+               "$ sortInfo" : "{ direction : 'ASC', field: 'startdate' }",
+               "$ xns" : "Roo.data",
+               "* prop" : "store",
+               "items" : [
                 {
-                    "|xns": "Roo",
-                    "xtype": "LayoutRegion",
-                    "*prop": "center"
+                 "$ url" : "baseURL + '/Roo/mtrack_milestone.php'",
+                 "method" : "GET",
+                 "xtype" : "HttpProxy",
+                 "$ xns" : "Roo.data",
+                 "* prop" : "proxy"
                 },
                 {
-                    "region": "center",
-                    "xtype": "ContentPanel",
-                    "|xns": "Roo",
-                    "items": [
-                        {
-                            "listeners": {
-                                "|actioncomplete": "function(_self,action)\n{\n    if (action.type == 'setdata') {\n  \n       this.load({ method: 'GET', params: { '_id' : _this.data.id  || 0}});\n          \n       return;\n    }\n    if (action.type == 'load') {\n       if (!_this.data.id) {\n            this.setValues(_this.data);\n        }\n        return;\n    }\n    \n    \n    if (action.type =='submit') {\n    \n        if (!_this.data.id * 1) {\n            Roo.MessageBox.confirm(\"Close?\", \n                \"The new ticket id is #\" + action.result.data.id + \", Press yes to close, or no to keep editing\",\n                function (res) {\n                    if (res == 'yes') {\n                    \n                    \n                        _this.dialog.hide();\n                    \n                         if (_this.callback) {\n                            _this.callback.call(_this, _this.form.getValues());\n                         }\n                         _this.form.reset();            \n                         return;\n                     }\n                     _this.data.id = action.result.data.id;\n                     _this.form.fireEvent('actioncomplete', _this.form, { type : 'setdata', data : {}});\n                     return;\n                 }\n             );\n        \n        \n        \n        \n            return;\n        }\n        \n        _this.dialog.hide();\n    \n         if (_this.callback) {\n            _this.callback.call(_this, _this.form.getValues());\n         }\n         _this.form.reset();        \n\n         return;\n    }\n}\n",
-                                "|rendered": "function (form)\n{\n    _this.form= form;\n}\n"
-                            },
-                            "method": "POST",
-                            "style": "margin:10px;width:1000px;margin-top:0px;",
-                            "xtype": "Form",
-                            "|url": "baseURL + '/Roo/mtrack_ticket.php'",
-                            "|xns": "Roo.form",
-                            "items": [
-                                {
-                                    "width": 210,
-                                    "xtype": "Column",
-                                    "|xns": "Roo.form",
-                                    "items": [
-                                        {
-                                            "labelAlign": "top",
-                                            "legend": "Properties",
-                                            "style": "width:190px;",
-                                            "xtype": "FieldSet",
-                                            "|xns": "Roo.form",
-                                            "items": [
-                                                {
-                                                    "allowBlank": "false",
-                                                    "displayField": "name",
-                                                    "editable": "false",
-                                                    "emptyText": "Select Project",
-                                                    "fieldLabel": "Project",
-                                                    "forceSelection": true,
-                                                    "hiddenName": "project_id",
-                                                    "listWidth": 400,
-                                                    "loadingText": "Searching...",
-                                                    "minChars": 2,
-                                                    "name": "project_id_name",
-                                                    "pageSize": 20,
-                                                    "qtip": "Select Projects",
-                                                    "queryParam": "query[name]",
-                                                    "selectOnFocus": true,
-                                                    "tpl": "<div class=\"x-grid-cell-text x-btn button \"><b>{name}</b> </div>",
-                                                    "triggerAction": "all",
-                                                    "typeAhead": true,
-                                                    "valueField": "id",
-                                                    "width": 180,
-                                                    "xtype": "ComboBox",
-                                                    "|xns": "Roo.form",
-                                                    "items": [
-                                                        {
-                                                            "listeners": {
-                                                                "|beforeload": "function (_self, o){\n    o.params = o.params || {};\n    // set more here\n}\n"
-                                                            },
-                                                            "*prop": "store",
-                                                            "remoteSort": true,
-                                                            "xtype": "Store",
-                                                            "|sortInfo": "{ direction : 'ASC', field: 'name' }",
-                                                            "|xns": "Roo.data",
-                                                            "items": [
-                                                                {
-                                                                    "*prop": "proxy",
-                                                                    "xtype": "HttpProxy",
-                                                                    "method": "GET",
-                                                                    "|xns": "Roo.data",
-                                                                    "|url": "baseURL + '/Roo/Projects.php'"
-                                                                },
-                                                                {
-                                                                    "*prop": "reader",
-                                                                    "xtype": "JsonReader",
-                                                                    "|xns": "Roo.data",
-                                                                    "id": "id",
-                                                                    "root": "data",
-                                                                    "totalProperty": "total",
-                                                                    "|fields": "[{\"name\":\"id\",\"type\":\"int\"},{\"name\":\"name\",\"type\":\"string\"}]"
-                                                                }
-                                                            ]
-                                                        }
-                                                    ]
-                                                },
-                                                {
-                                                    "alwaysQuery": true,
-                                                    "displayField": "name",
-                                                    "editable": "false",
-                                                    "emptyText": "Select milestone",
-                                                    "fieldLabel": "Milestone",
-                                                    "forceSelection": true,
-                                                    "hiddenName": "milestone_id",
-                                                    "listWidth": 400,
-                                                    "loadingText": "Searching...",
-                                                    "minChars": 2,
-                                                    "name": "milestone_id_name",
-                                                    "pageSize": 20,
-                                                    "qtip": "Select mtrack_milestone",
-                                                    "queryParam": "query[name]",
-                                                    "selectOnFocus": true,
-                                                    "tpl": "<div class=\"x-grid-cell-text x-btn button  RdYlGn-q{seqid}-{seqmax}\"><b>{name}</b> </div>",
-                                                    "triggerAction": "all",
-                                                    "typeAhead": true,
-                                                    "valueField": "id",
-                                                    "width": 180,
-                                                    "xtype": "ComboBox",
-                                                    "|xns": "Roo.form",
-                                                    "items": [
-                                                        {
-                                                            "listeners": {
-                                                                "|beforeload": "function (_self, o){\n    o.params = o.params || {};\n    // set more here\n    o.params.etype = 'milestone';\n    o.params.project_id = _this.form.findField('project_id').getValue();\n    if (!o.params.project_id) {\n        Roo.MessageBox.alert(\"Error\", \"Select Project\");\n        return false;\n    }\n}\n"
-                                                            },
-                                                            "*prop": "store",
-                                                            "remoteSort": true,
-                                                            "xtype": "Store",
-                                                            "|sortInfo": "{ direction : 'ASC', field: 'startdate' }",
-                                                            "|xns": "Roo.data",
-                                                            "items": [
-                                                                {
-                                                                    "*prop": "proxy",
-                                                                    "xtype": "HttpProxy",
-                                                                    "method": "GET",
-                                                                    "|xns": "Roo.data",
-                                                                    "|url": "baseURL + '/Roo/mtrack_milestone.php'"
-                                                                },
-                                                                {
-                                                                    "*prop": "reader",
-                                                                    "xtype": "JsonReader",
-                                                                    "|xns": "Roo.data",
-                                                                    "id": "id",
-                                                                    "root": "data",
-                                                                    "totalProperty": "total",
-                                                                    "|fields": "[{\"name\":\"id\",\"type\":\"int\"},{\"name\":\"name\",\"type\":\"string\"}]"
-                                                                }
-                                                            ]
-                                                        }
-                                                    ]
-                                                },
-                                                {
-                                                    "allowBlank": false,
-                                                    "alwaysQuery": true,
-                                                    "displayField": "name",
-                                                    "editable": "false",
-                                                    "emptyText": "Select Priority",
-                                                    "fieldLabel": "Priority",
-                                                    "forceSelection": true,
-                                                    "hiddenName": "priority_id",
-                                                    "listWidth": 400,
-                                                    "loadingText": "Searching...",
-                                                    "minChars": 2,
-                                                    "name": "priority_id_name",
-                                                    "pageSize": 20,
-                                                    "qtip": "Select core_enum",
-                                                    "queryParam": "query[etype]",
-                                                    "selectOnFocus": true,
-                                                    "tpl": "<div class=\"x-grid-cell-text x-btn button  RdYlGn-q{seqid}-{seqmax}\"><b>{name}</b> </div>",
-                                                    "triggerAction": "all",
-                                                    "typeAhead": true,
-                                                    "valueField": "id",
-                                                    "width": 180,
-                                                    "xtype": "ComboBox",
-                                                    "|xns": "Roo.form",
-                                                    "items": [
-                                                        {
-                                                            "listeners": {
-                                                                "|beforeload": "function (_self, o){\n    o.params = o.params || {};\n    // set more here\n        o.params.etype = 'priority';\n}\n"
-                                                            },
-                                                            "*prop": "store",
-                                                            "remoteSort": true,
-                                                            "xtype": "Store",
-                                                            "|sortInfo": "{ direction : 'ASC', field: 'seqid' }",
-                                                            "|xns": "Roo.data",
-                                                            "items": [
-                                                                {
-                                                                    "*prop": "proxy",
-                                                                    "xtype": "HttpProxy",
-                                                                    "method": "GET",
-                                                                    "|xns": "Roo.data",
-                                                                    "|url": "baseURL + '/Roo/core_enum.php'"
-                                                                },
-                                                                {
-                                                                    "*prop": "reader",
-                                                                    "xtype": "JsonReader",
-                                                                    "|xns": "Roo.data",
-                                                                    "id": "id",
-                                                                    "root": "data",
-                                                                    "totalProperty": "total",
-                                                                    "|fields": "[{\"name\":\"id\",\"type\":\"int\"},{\"name\":\"etype\",\"type\":\"string\"}]"
-                                                                }
-                                                            ]
-                                                        }
-                                                    ]
-                                                },
-                                                {
-                                                    "allowBlank": false,
-                                                    "alwaysQuery": true,
-                                                    "displayField": "name",
-                                                    "editable": "false",
-                                                    "emptyText": "Select Severity",
-                                                    "fieldLabel": "Severity",
-                                                    "forceSelection": true,
-                                                    "hiddenName": "severity_id",
-                                                    "listWidth": 400,
-                                                    "loadingText": "Searching...",
-                                                    "minChars": 2,
-                                                    "name": "severity_id_name",
-                                                    "pageSize": 20,
-                                                    "qtip": "Select core_enum",
-                                                    "queryParam": "query[etype]",
-                                                    "selectOnFocus": true,
-                                                    "tpl": "<div class=\"x-grid-cell-text x-btn button RdYlGn-q{seqid}-{seqmax}\"><b>{name}</b> </div>",
-                                                    "triggerAction": "all",
-                                                    "typeAhead": true,
-                                                    "valueField": "id",
-                                                    "width": 180,
-                                                    "xtype": "ComboBox",
-                                                    "|xns": "Roo.form",
-                                                    "items": [
-                                                        {
-                                                            "listeners": {
-                                                                "|beforeload": "function (_self, o){\n    o.params = o.params || {};\n    // set more here\n        o.params.etype = 'severity';\n}\n"
-                                                            },
-                                                            "*prop": "store",
-                                                            "remoteSort": true,
-                                                            "xtype": "Store",
-                                                            "|sortInfo": "{ direction : 'ASC', field: 'seqid' }",
-                                                            "|xns": "Roo.data",
-                                                            "items": [
-                                                                {
-                                                                    "*prop": "proxy",
-                                                                    "xtype": "HttpProxy",
-                                                                    "method": "GET",
-                                                                    "|xns": "Roo.data",
-                                                                    "|url": "baseURL + '/Roo/core_enum.php'"
-                                                                },
-                                                                {
-                                                                    "*prop": "reader",
-                                                                    "xtype": "JsonReader",
-                                                                    "|xns": "Roo.data",
-                                                                    "id": "id",
-                                                                    "root": "data",
-                                                                    "totalProperty": "total",
-                                                                    "|fields": "[{\"name\":\"id\",\"type\":\"int\"},{\"name\":\"etype\",\"type\":\"string\"}]"
-                                                                }
-                                                            ]
-                                                        }
-                                                    ]
-                                                },
-                                                {
-                                                    "allowBlank": false,
-                                                    "alwaysQuery": true,
-                                                    "displayField": "name",
-                                                    "editable": "false",
-                                                    "emptyText": "Select Classification",
-                                                    "fieldLabel": "Classification",
-                                                    "forceSelection": true,
-                                                    "hiddenName": "classification_id",
-                                                    "listWidth": 400,
-                                                    "loadingText": "Searching...",
-                                                    "minChars": 2,
-                                                    "name": "classification_id_name",
-                                                    "pageSize": 20,
-                                                    "qtip": "Select core_enum",
-                                                    "queryParam": "query[etype]",
-                                                    "selectOnFocus": true,
-                                                    "tpl": "<div class=\"x-grid-cell-text x-btn button RdYlGn-q{seqid}-{seqmax}\"><b>{name}</b> </div>",
-                                                    "triggerAction": "all",
-                                                    "typeAhead": true,
-                                                    "valueField": "id",
-                                                    "width": 180,
-                                                    "xtype": "ComboBox",
-                                                    "|xns": "Roo.form",
-                                                    "items": [
-                                                        {
-                                                            "listeners": {
-                                                                "|beforeload": "function (_self, o){\n    o.params = o.params || {};\n    // set more here\n        o.params.etype = 'classification';\n}\n"
-                                                            },
-                                                            "*prop": "store",
-                                                            "remoteSort": true,
-                                                            "xtype": "Store",
-                                                            "|sortInfo": "{ direction : 'ASC', field: 'seqid' }",
-                                                            "|xns": "Roo.data",
-                                                            "items": [
-                                                                {
-                                                                    "*prop": "proxy",
-                                                                    "xtype": "HttpProxy",
-                                                                    "method": "GET",
-                                                                    "|xns": "Roo.data",
-                                                                    "|url": "baseURL + '/Roo/core_enum.php'"
-                                                                },
-                                                                {
-                                                                    "*prop": "reader",
-                                                                    "xtype": "JsonReader",
-                                                                    "|xns": "Roo.data",
-                                                                    "id": "id",
-                                                                    "root": "data",
-                                                                    "totalProperty": "total",
-                                                                    "|fields": "[{\"name\":\"id\",\"type\":\"int\"},{\"name\":\"etype\",\"type\":\"string\"}]"
-                                                                }
-                                                            ]
-                                                        }
-                                                    ]
-                                                }
-                                            ]
-                                        },
-                                        {
-                                            "legend": "Resources",
-                                            "style": "width: 190px",
-                                            "xtype": "FieldSet",
-                                            "|xns": "Roo.form",
-                                            "items": [
-                                                {
-                                                    "labelAlign": "top",
-                                                    "width": 190,
-                                                    "xtype": "Column",
-                                                    "|xns": "Roo.form",
-                                                    "items": [
-                                                        {
-                                                            "allowBlank": "false",
-                                                            "alwaysQuery": true,
-                                                            "displayField": "name",
-                                                            "editable": "false",
-                                                            "emptyText": "Select Person",
-                                                            "fieldLabel": "Developer",
-                                                            "forceSelection": true,
-                                                            "hiddenName": "developer_id",
-                                                            "listWidth": 400,
-                                                            "loadingText": "Searching...",
-                                                            "minChars": 2,
-                                                            "name": "developer_id_name",
-                                                            "pageSize": 20,
-                                                            "qtip": "Select Person",
-                                                            "queryParam": "query[name]",
-                                                            "selectOnFocus": true,
-                                                            "tpl": "<div class=\"x-grid-cell-text x-btn button\"><b>{name}</b> &lt;{email}&gt; </div>",
-                                                            "triggerAction": "all",
-                                                            "typeAhead": true,
-                                                            "valueField": "id",
-                                                            "width": 180,
-                                                            "xtype": "ComboBox",
-                                                            "|xns": "Roo.form",
-                                                            "items": [
-                                                                {
-                                                                    "listeners": {
-                                                                        "|beforeload": "function (_self, o){\n    o.params = o.params || {};\n    \n    // set more here\n    o.params['query[project_id]'] = _this.form.findField('project_id').getValue();\n    if (!o.params['query[project_id]']) {\n        Roo.MessageBox.alert(\"Error\", \"Select Project\");\n        return false;\n    }\n    o.params['query[role]'] = 'DEVELOPER';\n}\n"
-                                                                    },
-                                                                    "*prop": "store",
-                                                                    "remoteSort": true,
-                                                                    "xtype": "Store",
-                                                                    "|sortInfo": "{ direction : 'ASC', field: 'name' }",
-                                                                    "|xns": "Roo.data",
-                                                                    "items": [
-                                                                        {
-                                                                            "*prop": "proxy",
-                                                                            "xtype": "HttpProxy",
-                                                                            "method": "GET",
-                                                                            "|xns": "Roo.data",
-                                                                            "|url": "baseURL + '/Roo/Person.php'"
-                                                                        },
-                                                                        {
-                                                                            "*prop": "reader",
-                                                                            "xtype": "JsonReader",
-                                                                            "|xns": "Roo.data",
-                                                                            "id": "id",
-                                                                            "root": "data",
-                                                                            "totalProperty": "total",
-                                                                            "|fields": "[{\"name\":\"id\",\"type\":\"int\"},{\"name\":\"name\",\"type\":\"string\"}]"
-                                                                        }
-                                                                    ]
-                                                                }
-                                                            ]
-                                                        },
-                                                        {
-                                                            "allowBlank": "false",
-                                                            "alwaysQuery": true,
-                                                            "displayField": "name",
-                                                            "editable": "false",
-                                                            "emptyText": "Select Person",
-                                                            "fieldLabel": "Owner",
-                                                            "forceSelection": true,
-                                                            "hiddenName": "owner_id",
-                                                            "listWidth": 400,
-                                                            "loadingText": "Searching...",
-                                                            "minChars": 2,
-                                                            "name": "owner_id_name",
-                                                            "pageSize": 20,
-                                                            "qtip": "Select Person",
-                                                            "queryParam": "query[name]",
-                                                            "selectOnFocus": true,
-                                                            "tpl": "<div class=\"x-grid-cell-text x-btn button\"><b>{name}</b> </div>",
-                                                            "triggerAction": "all",
-                                                            "typeAhead": true,
-                                                            "valueField": "id",
-                                                            "width": 180,
-                                                            "xtype": "ComboBox",
-                                                            "|xns": "Roo.form",
-                                                            "items": [
-                                                                {
-                                                                    "listeners": {
-                                                                        "|beforeload": "function (_self, o){\n    o.params = o.params || {};\n    // set more here\n    o.params['query[project_id]']= _this.form.findField('project_id').getValue();\n    if (!o.params['query[project_id]'])  {\n        Roo.MessageBox.alert(\"Error\", \"Select Project\");\n        return false;\n    }\n}\n"
-                                                                    },
-                                                                    "*prop": "store",
-                                                                    "remoteSort": true,
-                                                                    "xtype": "Store",
-                                                                    "|sortInfo": "{ direction : 'ASC', field: 'name' }",
-                                                                    "|xns": "Roo.data",
-                                                                    "items": [
-                                                                        {
-                                                                            "*prop": "proxy",
-                                                                            "xtype": "HttpProxy",
-                                                                            "method": "GET",
-                                                                            "|xns": "Roo.data",
-                                                                            "|url": "baseURL + '/Roo/Person.php'"
-                                                                        },
-                                                                        {
-                                                                            "*prop": "reader",
-                                                                            "xtype": "JsonReader",
-                                                                            "|xns": "Roo.data",
-                                                                            "id": "id",
-                                                                            "root": "data",
-                                                                            "totalProperty": "total",
-                                                                            "|fields": "[{\"name\":\"id\",\"type\":\"int\"},{\"name\":\"name\",\"type\":\"string\"}]"
-                                                                        }
-                                                                    ]
-                                                                }
-                                                            ]
-                                                        }
-                                                    ]
-                                                },
-                                                {
-                                                    "labelAlign": "right",
-                                                    "labelWidth": 100,
-                                                    "width": 190,
-                                                    "xtype": "Column",
-                                                    "|xns": "Roo.form",
-                                                    "items": [
-                                                        {
-                                                            "style": "align:right;",
-                                                            "fieldLabel": "Estimated",
-                                                            "name": "estimated",
-                                                            "width": 75,
-                                                            "xtype": "NumberField",
-                                                            "|xns": "Roo.form"
-                                                        }
-                                                    ]
-                                                }
-                                            ]
-                                        }
-                                    ]
-                                },
-                                {
-                                    "listeners": {
-                                        "show": "function (_self)\n{\n\n}",
-                                        "render": "function (_self)\n{\n  _this.summaryCol = _self;\n}"
-                                    },
-                                    "style": "margin-left:10px",
-                                    "width": 430,
-                                    "xtype": "Column",
-                                    "|xns": "Roo.form",
-                                    "items": [
-                                        {
-                                            "listeners": {
-                                                "show": "function (_self)\n{\n\n}",
-                                                "render": "function (_self)\n{\n  _this.summaryBox = _self;\n}"
-                                            },
-                                            "legend": "Summary / Details",
-                                            "style": "width:410px",
-                                            "xtype": "FieldSet",
-                                            "|xns": "Roo.form",
-                                            "items": [
-                                                {
-                                                    "labelAlign": "top",
-                                                    "width": 400,
-                                                    "xtype": "Column",
-                                                    "|xns": "Roo.form",
-                                                    "items": [
-                                                        {
-                                                            "fieldLabel": "Summary",
-                                                            "name": "summary",
-                                                            "width": 400,
-                                                            "xtype": "TextField",
-                                                            "|xns": "Roo.form"
-                                                        }
-                                                    ]
-                                                },
-                                                {
-                                                    "labelWidth": 70,
-                                                    "style": "float:left; width:400px",
-                                                    "width": 400,
-                                                    "xtype": "Row",
-                                                    "|xns": "Roo.form",
-                                                    "items": [
-                                                        {
-                                                            "listeners": {
-                                                                "check": "function (_self, checked)\n{\n\n    if (!_this.form) {\n        return;\n    }\n    if (checked) {\n    \n         _this.form.findField('view_as').setValue('text');\n     }\n         \n    \n    \n     if (this.radio) {\n        return;\n    }\n     var md = _this.form.findField('view_as_markdown');\n\n    md.radio = true;\n    md.setValue(checked ? 0 : 1);\n    \n    md.radio = false;\n}"
-                                                            },
-                                                            "boxLabel": "text",
-                                                            "fieldLabel": "View as",
-                                                            "name": "view_as_text",
-                                                            "value": 1,
-                                                            "width": 100,
-                                                            "xtype": "Checkbox",
-                                                            "|xns": "Roo.form"
-                                                        },
-                                                        {
-                                                            "hideLabels": true,
-                                                            "style": "float: left",
-                                                            "width": 100,
-                                                            "xtype": "Row",
-                                                            "|xns": "Roo.form",
-                                                            "items": [
-                                                                {
-                                                                    "listeners": {
-                                                                        "check": "function (_self, checked)\n{\n       if (!_this.form) {\n        return;\n    }\n    \n        if (checked) {\n    \n         _this.form.findField('view_as').setValue('markdown');\n     }\n    \n     if (this.radio) {\n        return;\n    }\n     var md = _this.form.findField('view_as_text');\n\n    md.radio = true;\n    md.setValue(checked ? 0 : 1);\n    md.radio = false;\n}"
-                                                                    },
-                                                                    "boxLabel": "markdown",
-                                                                    "name": "view_as_markdown",
-                                                                    "value": 1,
-                                                                    "xtype": "Checkbox",
-                                                                    "|xns": "Roo.form"
-                                                                }
-                                                            ]
-                                                        }
-                                                    ]
-                                                },
-                                                {
-                                                    "listeners": {
-                                                        "show": "function (_self)\n{\n\n}",
-                                                        "render": "function (_self)\n{\n  _this.descCol = _self;\n}"
-                                                    },
-                                                    "labelAlign": "top",
-                                                    "width": 400,
-                                                    "xtype": "Column",
-                                                    "|xns": "Roo.form",
-                                                    "items": [
-                                                        {
-                                                            "fieldLabel": "Description",
-                                                            "height": 250,
-                                                            "name": "description",
-                                                            "width": 400,
-                                                            "xtype": "TextArea",
-                                                            "|xns": "Roo.form"
-                                                        }
-                                                    ]
-                                                }
-                                            ]
-                                        }
-                                    ]
-                                },
-                                {
-                                    "name": "id",
-                                    "|xns": "Roo.form",
-                                    "xtype": "Hidden"
-                                },
-                                {
-                                    "name": "view_as",
-                                    "xtype": "Hidden",
-                                    "|xns": "Roo.form"
-                                }
-                            ]
-                        }
-                    ]
+                 "id" : "id",
+                 "root" : "data",
+                 "xtype" : "JsonReader",
+                 "$ xns" : "Roo.data",
+                 "$ fields" : "[{\"name\":\"id\",\"type\":\"int\"},{\"name\":\"name\",\"type\":\"string\"}]",
+                 "* prop" : "reader",
+                 "totalProperty" : "total"
+                }
+               ]
+              }
+             ]
+            },
+            {
+             "alwaysQuery" : true,
+             "listWidth" : 400,
+             "triggerAction" : "all",
+             "fieldLabel" : "Priority",
+             "forceSelection" : true,
+             "selectOnFocus" : true,
+             "pageSize" : 20,
+             "displayField" : "name",
+             "emptyText" : "Select Priority",
+             "hiddenName" : "priority_id",
+             "minChars" : 2,
+             "valueField" : "id",
+             "xtype" : "ComboBox",
+             "allowBlank" : false,
+             "typeAhead" : true,
+             "editable" : false,
+             "width" : 180,
+             "$ xns" : "Roo.form",
+             "name" : "priority_id_name",
+             "qtip" : "Select core_enum",
+             "queryParam" : "query[etype]",
+             "tpl" : "<div class=\"x-grid-cell-text x-btn button  RdYlGn-q{seqid}-{seqmax}\"><b>{name}</b> </div>",
+             "loadingText" : "Searching...",
+             "items" : [
+              {
+               "listeners" : {
+                "|beforeload" : "function (_self, o){\n    o.params = o.params || {};\n    // set more here\n        o.params.etype = 'priority';\n}\n"
+               },
+               "xtype" : "Store",
+               "remoteSort" : true,
+               "$ sortInfo" : "{ direction : 'ASC', field: 'seqid' }",
+               "$ xns" : "Roo.data",
+               "* prop" : "store",
+               "items" : [
+                {
+                 "$ url" : "baseURL + '/Roo/core_enum.php'",
+                 "method" : "GET",
+                 "xtype" : "HttpProxy",
+                 "$ xns" : "Roo.data",
+                 "* prop" : "proxy"
                 },
                 {
-                    "listeners": {
-                        "click": "function (_self, e)\n{\n    _this.dialog.hide();\n}"
-                    },
-                    "*prop": "buttons[]",
-                    "text": "Cancel",
-                    "xtype": "Button",
-                    "|xns": "Roo"
+                 "id" : "id",
+                 "root" : "data",
+                 "xtype" : "JsonReader",
+                 "$ xns" : "Roo.data",
+                 "$ fields" : "[{\"name\":\"id\",\"type\":\"int\"},{\"name\":\"etype\",\"type\":\"string\"}]",
+                 "* prop" : "reader",
+                 "totalProperty" : "total"
+                }
+               ]
+              }
+             ]
+            },
+            {
+             "alwaysQuery" : true,
+             "listWidth" : 400,
+             "triggerAction" : "all",
+             "fieldLabel" : "Severity",
+             "forceSelection" : true,
+             "selectOnFocus" : true,
+             "pageSize" : 20,
+             "displayField" : "name",
+             "emptyText" : "Select Severity",
+             "hiddenName" : "severity_id",
+             "minChars" : 2,
+             "valueField" : "id",
+             "xtype" : "ComboBox",
+             "allowBlank" : false,
+             "typeAhead" : true,
+             "editable" : false,
+             "width" : 180,
+             "$ xns" : "Roo.form",
+             "name" : "severity_id_name",
+             "qtip" : "Select core_enum",
+             "queryParam" : "query[etype]",
+             "tpl" : "<div class=\"x-grid-cell-text x-btn button RdYlGn-q{seqid}-{seqmax}\"><b>{name}</b> </div>",
+             "loadingText" : "Searching...",
+             "items" : [
+              {
+               "listeners" : {
+                "|beforeload" : "function (_self, o){\n    o.params = o.params || {};\n    // set more here\n        o.params.etype = 'severity';\n}\n"
+               },
+               "xtype" : "Store",
+               "remoteSort" : true,
+               "$ sortInfo" : "{ direction : 'ASC', field: 'seqid' }",
+               "$ xns" : "Roo.data",
+               "* prop" : "store",
+               "items" : [
+                {
+                 "$ url" : "baseURL + '/Roo/core_enum.php'",
+                 "method" : "GET",
+                 "xtype" : "HttpProxy",
+                 "$ xns" : "Roo.data",
+                 "* prop" : "proxy"
                 },
                 {
-                    "listeners": {
-                        "click": "function (_self, e)\n{\n    // do some checks?\n     \n    \n \n    _this.form.doAction(\"submit\");\n\n}"
-                    },
-                    "*prop": "buttons[]",
-                    "text": "Save",
-                    "xtype": "Button",
-                    "|xns": "Roo"
+                 "id" : "id",
+                 "root" : "data",
+                 "xtype" : "JsonReader",
+                 "$ xns" : "Roo.data",
+                 "$ fields" : "[{\"name\":\"id\",\"type\":\"int\"},{\"name\":\"etype\",\"type\":\"string\"}]",
+                 "* prop" : "reader",
+                 "totalProperty" : "total"
                 }
-            ]
+               ]
+              }
+             ]
+            },
+            {
+             "alwaysQuery" : true,
+             "listWidth" : 400,
+             "triggerAction" : "all",
+             "fieldLabel" : "Classification",
+             "forceSelection" : true,
+             "selectOnFocus" : true,
+             "pageSize" : 20,
+             "displayField" : "name",
+             "emptyText" : "Select Classification",
+             "hiddenName" : "classification_id",
+             "minChars" : 2,
+             "valueField" : "id",
+             "xtype" : "ComboBox",
+             "allowBlank" : false,
+             "typeAhead" : true,
+             "editable" : false,
+             "width" : 180,
+             "$ xns" : "Roo.form",
+             "name" : "classification_id_name",
+             "qtip" : "Select core_enum",
+             "queryParam" : "query[etype]",
+             "tpl" : "<div class=\"x-grid-cell-text x-btn button RdYlGn-q{seqid}-{seqmax}\"><b>{name}</b> </div>",
+             "loadingText" : "Searching...",
+             "items" : [
+              {
+               "listeners" : {
+                "|beforeload" : "function (_self, o){\n    o.params = o.params || {};\n    // set more here\n        o.params.etype = 'classification';\n}\n"
+               },
+               "xtype" : "Store",
+               "remoteSort" : true,
+               "$ sortInfo" : "{ direction : 'ASC', field: 'seqid' }",
+               "$ xns" : "Roo.data",
+               "* prop" : "store",
+               "items" : [
+                {
+                 "$ url" : "baseURL + '/Roo/core_enum.php'",
+                 "method" : "GET",
+                 "xtype" : "HttpProxy",
+                 "$ xns" : "Roo.data",
+                 "* prop" : "proxy"
+                },
+                {
+                 "id" : "id",
+                 "root" : "data",
+                 "xtype" : "JsonReader",
+                 "$ xns" : "Roo.data",
+                 "$ fields" : "[{\"name\":\"id\",\"type\":\"int\"},{\"name\":\"etype\",\"type\":\"string\"}]",
+                 "* prop" : "reader",
+                 "totalProperty" : "total"
+                }
+               ]
+              }
+             ]
+            }
+           ]
+          },
+          {
+           "xtype" : "FieldSet",
+           "legend" : "Resources",
+           "style" : "width: 190px",
+           "$ xns" : "Roo.form",
+           "items" : [
+            {
+             "labelAlign" : "top",
+             "xtype" : "Column",
+             "width" : 190,
+             "$ xns" : "Roo.form",
+             "items" : [
+              {
+               "alwaysQuery" : true,
+               "listWidth" : 400,
+               "triggerAction" : "all",
+               "fieldLabel" : "Developer",
+               "forceSelection" : true,
+               "selectOnFocus" : true,
+               "pageSize" : 20,
+               "displayField" : "name",
+               "emptyText" : "Select Person",
+               "hiddenName" : "developer_id",
+               "minChars" : 2,
+               "valueField" : "id",
+               "xtype" : "ComboBox",
+               "allowBlank" : false,
+               "typeAhead" : true,
+               "editable" : true,
+               "width" : 180,
+               "$ xns" : "Roo.form",
+               "name" : "developer_id_name",
+               "qtip" : "Select Person",
+               "queryParam" : "query[name]",
+               "tpl" : "<div class=\"x-grid-cell-text x-btn button\"><b>{name}</b> &lt;{email}&gt; </div>",
+               "loadingText" : "Searching...",
+               "items" : [
+                {
+                 "listeners" : {
+                  "|beforeload" : "function (_self, o){\n    o.params = o.params || {};\n    \n    // set more here\n    o.params['query[project_id]'] = _this.form.findField('project_id').getValue();\n    if (!o.params['query[project_id]']) {\n        Roo.MessageBox.alert(\"Error\", \"Select Project\");\n        return false;\n    }\n    o.params['query[role]'] = 'DEVELOPER';\n}\n"
+                 },
+                 "xtype" : "Store",
+                 "remoteSort" : true,
+                 "$ sortInfo" : "{ direction : 'ASC', field: 'name' }",
+                 "$ xns" : "Roo.data",
+                 "* prop" : "store",
+                 "items" : [
+                  {
+                   "$ url" : "baseURL + '/Roo/Person.php'",
+                   "method" : "GET",
+                   "xtype" : "HttpProxy",
+                   "$ xns" : "Roo.data",
+                   "* prop" : "proxy"
+                  },
+                  {
+                   "id" : "id",
+                   "root" : "data",
+                   "xtype" : "JsonReader",
+                   "$ xns" : "Roo.data",
+                   "$ fields" : "[{\"name\":\"id\",\"type\":\"int\"},{\"name\":\"name\",\"type\":\"string\"}]",
+                   "* prop" : "reader",
+                   "totalProperty" : "total"
+                  }
+                 ]
+                }
+               ]
+              },
+              {
+               "alwaysQuery" : true,
+               "listWidth" : 400,
+               "triggerAction" : "all",
+               "fieldLabel" : "Owner",
+               "forceSelection" : true,
+               "selectOnFocus" : true,
+               "pageSize" : 20,
+               "displayField" : "name",
+               "emptyText" : "Select Person",
+               "hiddenName" : "owner_id",
+               "minChars" : 2,
+               "valueField" : "id",
+               "xtype" : "ComboBox",
+               "allowBlank" : false,
+               "typeAhead" : true,
+               "editable" : false,
+               "width" : 180,
+               "$ xns" : "Roo.form",
+               "name" : "owner_id_name",
+               "qtip" : "Select Person",
+               "queryParam" : "query[name]",
+               "tpl" : "<div class=\"x-grid-cell-text x-btn button\"><b>{name}</b> </div>",
+               "loadingText" : "Searching...",
+               "items" : [
+                {
+                 "listeners" : {
+                  "|beforeload" : "function (_self, o){\n    o.params = o.params || {};\n    // set more here\n    o.params['query[project_id]']= _this.form.findField('project_id').getValue();\n    if (!o.params['query[project_id]'])  {\n        Roo.MessageBox.alert(\"Error\", \"Select Project\");\n        return false;\n    }\n}\n"
+                 },
+                 "xtype" : "Store",
+                 "remoteSort" : true,
+                 "$ sortInfo" : "{ direction : 'ASC', field: 'name' }",
+                 "$ xns" : "Roo.data",
+                 "* prop" : "store",
+                 "items" : [
+                  {
+                   "$ url" : "baseURL + '/Roo/Person.php'",
+                   "method" : "GET",
+                   "xtype" : "HttpProxy",
+                   "$ xns" : "Roo.data",
+                   "* prop" : "proxy"
+                  },
+                  {
+                   "id" : "id",
+                   "root" : "data",
+                   "xtype" : "JsonReader",
+                   "$ xns" : "Roo.data",
+                   "$ fields" : "[{\"name\":\"id\",\"type\":\"int\"},{\"name\":\"name\",\"type\":\"string\"}]",
+                   "* prop" : "reader",
+                   "totalProperty" : "total"
+                  }
+                 ]
+                }
+               ]
+              }
+             ]
+            },
+            {
+             "labelAlign" : "right",
+             "xtype" : "Column",
+             "labelWidth" : 100,
+             "width" : 190,
+             "$ xns" : "Roo.form",
+             "items" : [
+              {
+               "fieldLabel" : "Estimated",
+               "style" : "align:right;",
+               "xtype" : "NumberField",
+               "width" : 75,
+               "$ xns" : "Roo.form",
+               "name" : "estimated"
+              }
+             ]
+            }
+           ]
+          }
+         ]
+        },
+        {
+         "listeners" : {
+          "show" : "function (_self)\n{\n\n}",
+          "render" : "function (_self)\n{\n  _this.summaryCol = _self;\n}"
+         },
+         "xtype" : "Column",
+         "style" : "margin-left:10px",
+         "width" : 430,
+         "$ xns" : "Roo.form",
+         "items" : [
+          {
+           "listeners" : {
+            "show" : "function (_self)\n{\n\n}",
+            "render" : "function (_self)\n{\n  _this.summaryBox = _self;\n}"
+           },
+           "xtype" : "FieldSet",
+           "legend" : "Summary / Details",
+           "style" : "width:410px",
+           "$ xns" : "Roo.form",
+           "items" : [
+            {
+             "labelAlign" : "top",
+             "xtype" : "Column",
+             "width" : 400,
+             "$ xns" : "Roo.form",
+             "items" : [
+              {
+               "fieldLabel" : "Summary",
+               "xtype" : "TextField",
+               "width" : 400,
+               "$ xns" : "Roo.form",
+               "name" : "summary"
+              }
+             ]
+            },
+            {
+             "style" : "float:left; width:400px",
+             "xtype" : "Row",
+             "labelWidth" : 70,
+             "width" : 400,
+             "$ xns" : "Roo.form",
+             "items" : [
+              {
+               "listeners" : {
+                "check" : "function (_self, checked)\n{\n\n    if (!_this.form) {\n        return;\n    }\n    if (checked) {\n    \n         _this.form.findField('view_as').setValue('text');\n     }\n         \n    \n    \n     if (this.radio) {\n        return;\n    }\n     var md = _this.form.findField('view_as_markdown');\n\n    md.radio = true;\n    md.setValue(checked ? 0 : 1);\n    \n    md.radio = false;\n}"
+               },
+               "fieldLabel" : "View as",
+               "value" : 1,
+               "xtype" : "Checkbox",
+               "boxLabel" : "text",
+               "width" : 100,
+               "$ xns" : "Roo.form",
+               "name" : "view_as_text"
+              },
+              {
+               "hideLabels" : true,
+               "style" : "float: left",
+               "xtype" : "Row",
+               "width" : 100,
+               "$ xns" : "Roo.form",
+               "items" : [
+                {
+                 "listeners" : {
+                  "check" : "function (_self, checked)\n{\n       if (!_this.form) {\n        return;\n    }\n    \n        if (checked) {\n    \n         _this.form.findField('view_as').setValue('markdown');\n     }\n    \n     if (this.radio) {\n        return;\n    }\n     var md = _this.form.findField('view_as_text');\n\n    md.radio = true;\n    md.setValue(checked ? 0 : 1);\n    md.radio = false;\n}"
+                 },
+                 "value" : 1,
+                 "xtype" : "Checkbox",
+                 "boxLabel" : "markdown",
+                 "$ xns" : "Roo.form",
+                 "name" : "view_as_markdown"
+                }
+               ]
+              }
+             ]
+            },
+            {
+             "listeners" : {
+              "show" : "function (_self)\n{\n\n}",
+              "render" : "function (_self)\n{\n  _this.descCol = _self;\n}"
+             },
+             "labelAlign" : "top",
+             "xtype" : "Column",
+             "width" : 400,
+             "$ xns" : "Roo.form",
+             "items" : [
+              {
+               "fieldLabel" : "Description",
+               "xtype" : "TextArea",
+               "width" : 400,
+               "$ xns" : "Roo.form",
+               "name" : "description",
+               "height" : 250
+              }
+             ]
+            }
+           ]
+          }
+         ]
+        },
+        {
+         "xtype" : "Hidden",
+         "$ xns" : "Roo.form",
+         "name" : "id"
+        },
+        {
+         "xtype" : "Hidden",
+         "$ xns" : "Roo.form",
+         "name" : "view_as"
         }
-    ],
-    "permname": "",
-    "modOrder": "001"
+       ]
+      }
+     ]
+    },
+    {
+     "listeners" : {
+      "click" : "function (_self, e)\n{\n    _this.dialog.hide();\n}"
+     },
+     "text" : "Cancel",
+     "xtype" : "Button",
+     "$ xns" : "Roo",
+     "* prop" : "buttons[]"
+    },
+    {
+     "listeners" : {
+      "click" : "function (_self, e)\n{\n    // do some checks?\n     \n    \n \n    _this.form.doAction(\"submit\");\n\n}"
+     },
+     "text" : "Save",
+     "xtype" : "Button",
+     "$ xns" : "Roo",
+     "* prop" : "buttons[]"
+    }
+   ]
+  }
+ ]
 }
\ No newline at end of file
index 86ef9d2..5402460 100644 (file)
 
 // Auto generated file - created by app.Builder.js- do not edit directly (at present!)
 
+Roo.namespace('Pman.Dialog');
+
 Pman.Dialog.MTrackTicket = {
 
-    dialog : false,
-    callback:  false,
+ _strings : {
+  'a02a8093b46b8e647c29727fb50d67e4' :"Select milestone",
+  '672caf27f5363dc833bda5099775e891' :"Developer",
+  '9e727fdd3aec8274f46685441900280d' :"Project",
+  '6a58f977f2b623b695a340766f2a6843' :"Select Project",
+  'a5ffb2a210f259195a75e5abca8db4a2' :"Select mtrack_milestone",
+  '6c768695a8efb18436d5b7b4374cdb45' :"Select core_enum",
+  '007cc9547ae8884ad597cd92ba505422' :"Severity",
+  '86e9400686e8e080ef3c8995afb5eb86' :"Select Priority",
+  'ddcf50c29294d4414f3f7c1bbc892cb5' :"Resources",
+  '290612199861c31d1036b185b4e69b75' :"Summary",
+  '1cb251ec0d568de6a929b520c4aed8d1' :"text",
+  '5c9335b28e6277ddbe0137f04e5e58a7' :"Classification",
+  '3c311fbd0f9e51ce27b984f55164cf83' :"Estimated",
+  '1243daf593fa297e07ab03bf06d925af' :"Searching...",
+  'c4ca4238a0b923820dcc509a6f75849b' :"1",
+  'ea4788705e6873b424c65e91c2846b19' :"Cancel",
+  '502996d9790340c5fd7b86a5b93b1c9f' :"Priority",
+  'b6f4a2ec6356bbd56d49f2096bf9d3d3' :"Owner",
+  'ff18c41b7689060c39934dbb74de1e9c' :"Edit or Create Ticket",
+  '24f27bda5dd2c488aa9bc7700ba98c34' :"Select Projects",
+  '340c2ee497b85d5954b01c64de7f44f6' :"Select Person",
+  '23e6bcd09b259e6de4cd972516cb4214' :"View as",
+  '590fc197fe73db0aa2ec03687a372eea' :"markdown",
+  'e9c626b8a8b62de7562dfbf51a576ae5' :"Milestone",
+  '43371ce8259ba854b1ae3543fd477874' :"Select Severity",
+  'a8dbd02aaca3948002718aeb2babeefe' :"Summary / Details",
+  '9fc2d28c05ed9eb1d75ba4465abf15a9' :"Properties",
+  'b5a7adde1af5c87d7fd797b6245c2a39' :"Description",
+  'c9cc8cce247e49bae79f15173ce97354' :"Save",
+  'fcb17935fd52e65b8f223778c9e70313' :"Select Classification"
+ },
+ _named_strings : {
+  'view_as_markdown_value' : 'c4ca4238a0b923820dcc509a6f75849b' /* 1 */ ,
+  'estimated_fieldLabel' : '3c311fbd0f9e51ce27b984f55164cf83' /* Estimated */ ,
+  'severity_id_name_loadingText' : '1243daf593fa297e07ab03bf06d925af' /* Searching... */ ,
+  'developer_id_name_qtip' : '340c2ee497b85d5954b01c64de7f44f6' /* Select Person */ ,
+  'milestone_id_name_fieldLabel' : 'e9c626b8a8b62de7562dfbf51a576ae5' /* Milestone */ ,
+  'priority_id_name_qtip' : '6c768695a8efb18436d5b7b4374cdb45' /* Select core_enum */ ,
+  'view_as_text_boxLabel' : '1cb251ec0d568de6a929b520c4aed8d1' /* text */ ,
+  'developer_id_name_fieldLabel' : '672caf27f5363dc833bda5099775e891' /* Developer */ ,
+  'severity_id_name_fieldLabel' : '007cc9547ae8884ad597cd92ba505422' /* Severity */ ,
+  'developer_id_name_emptyText' : '340c2ee497b85d5954b01c64de7f44f6' /* Select Person */ ,
+  'summary_fieldLabel' : '290612199861c31d1036b185b4e69b75' /* Summary */ ,
+  'classification_id_name_emptyText' : 'fcb17935fd52e65b8f223778c9e70313' /* Select Classification */ ,
+  'severity_id_name_qtip' : '6c768695a8efb18436d5b7b4374cdb45' /* Select core_enum */ ,
+  'description_fieldLabel' : 'b5a7adde1af5c87d7fd797b6245c2a39' /* Description */ ,
+  'owner_id_name_emptyText' : '340c2ee497b85d5954b01c64de7f44f6' /* Select Person */ ,
+  'project_id_name_qtip' : '24f27bda5dd2c488aa9bc7700ba98c34' /* Select Projects */ ,
+  'severity_id_name_emptyText' : '43371ce8259ba854b1ae3543fd477874' /* Select Severity */ ,
+  'milestone_id_name_qtip' : 'a5ffb2a210f259195a75e5abca8db4a2' /* Select mtrack_milestone */ ,
+  'priority_id_name_loadingText' : '1243daf593fa297e07ab03bf06d925af' /* Searching... */ ,
+  'classification_id_name_loadingText' : '1243daf593fa297e07ab03bf06d925af' /* Searching... */ ,
+  'milestone_id_name_emptyText' : 'a02a8093b46b8e647c29727fb50d67e4' /* Select milestone */ ,
+  'priority_id_name_emptyText' : '86e9400686e8e080ef3c8995afb5eb86' /* Select Priority */ ,
+  'developer_id_name_loadingText' : '1243daf593fa297e07ab03bf06d925af' /* Searching... */ ,
+  'milestone_id_name_loadingText' : '1243daf593fa297e07ab03bf06d925af' /* Searching... */ ,
+  'project_id_name_emptyText' : '6a58f977f2b623b695a340766f2a6843' /* Select Project */ ,
+  'owner_id_name_qtip' : '340c2ee497b85d5954b01c64de7f44f6' /* Select Person */ ,
+  'view_as_text_fieldLabel' : '23e6bcd09b259e6de4cd972516cb4214' /* View as */ ,
+  'priority_id_name_fieldLabel' : '502996d9790340c5fd7b86a5b93b1c9f' /* Priority */ ,
+  'project_id_name_loadingText' : '1243daf593fa297e07ab03bf06d925af' /* Searching... */ ,
+  'owner_id_name_fieldLabel' : 'b6f4a2ec6356bbd56d49f2096bf9d3d3' /* Owner */ ,
+  'view_as_text_value' : 'c4ca4238a0b923820dcc509a6f75849b' /* 1 */ ,
+  'owner_id_name_loadingText' : '1243daf593fa297e07ab03bf06d925af' /* Searching... */ ,
+  'view_as_markdown_boxLabel' : '590fc197fe73db0aa2ec03687a372eea' /* markdown */ ,
+  'project_id_name_fieldLabel' : '9e727fdd3aec8274f46685441900280d' /* Project */ ,
+  'classification_id_name_fieldLabel' : '5c9335b28e6277ddbe0137f04e5e58a7' /* Classification */ ,
+  'classification_id_name_qtip' : '6c768695a8efb18436d5b7b4374cdb45' /* Select core_enum */ 
+ },
 
-    show : function(data, cb)
-    {
-        if (!this.dialog) {
-            this.create();
-        }
+ dialog : false,
+ callback:  false,
 
-        this.callback = cb;
-        this.data = data;
-        this.dialog.show(this.data._el);
-        if (this.form) {
-           this.form.reset();
-           this.form.setValues(data);
-           this.form.fireEvent('actioncomplete', this.form,  { type: 'setdata', data: data });
-        }
+ show : function(data, cb)
+ {
+  if (!this.dialog) {
+   this.create();
+  }
 
-    },
+  this.callback = cb;
+  this.data = data;
+  this.dialog.show(this.data._el);
+  if (this.form) {
+   this.form.reset();
+   this.form.setValues(data);
+   this.form.fireEvent('actioncomplete', this.form,  { type: 'setdata', data: data });
+  }
 
-    create : function()
-    {
-        var _this = this;
-        this.dialog = Roo.factory({
-            xtype: 'LayoutDialog',
-            xns: Roo,
-            listeners : {
-                resize : function (_self, width, height)
-                {
-                    var bw = width - 320;
-                    _this.form.findField('description').el.setWidth(bw);
-                    _this.summaryBox.el.setWidth(bw+30);
-                        _this.summaryCol.el.setWidth(bw+45);
-                          _this.descCol.el.setWidth(bw+35);
-                          
+ },
+
+ create : function()
+ {
+   var _this = this;
+   this.dialog = Roo.factory({
+    xtype : 'LayoutDialog',
+    closable : false,
+    collapsible : false,
+    height : 450,
+    modal : true,
+    resizable : true,
+    title : _this._strings['ff18c41b7689060c39934dbb74de1e9c'] /* Edit or Create Ticket */,
+    width : 700,
+    listeners : {
+     resize : function (_self, width, height)
+      {
+          var bw = width - 320;
+          _this.form.findField('description').el.setWidth(bw);
+          _this.summaryBox.el.setWidth(bw+30);
+              _this.summaryCol.el.setWidth(bw+45);
+                _this.descCol.el.setWidth(bw+35);
+                
+      }
+    },
+    xns : Roo,
+    '|xns' : 'Roo',
+    center : {
+     xtype : 'LayoutRegion',
+     xns : Roo,
+     '|xns' : 'Roo'
+    },
+    buttons : [
+     {
+      xtype : 'Button',
+      text : _this._strings['ea4788705e6873b424c65e91c2846b19'] /* Cancel */,
+      listeners : {
+       click : function (_self, e)
+        {
+            _this.dialog.hide();
+        }
+      },
+      xns : Roo,
+      '|xns' : 'Roo'
+     },
+     {
+      xtype : 'Button',
+      text : _this._strings['c9cc8cce247e49bae79f15173ce97354'] /* Save */,
+      listeners : {
+       click : function (_self, e)
+        {
+            // do some checks?
+             
+            
+         
+            _this.form.doAction("submit");
+        
+        }
+      },
+      xns : Roo,
+      '|xns' : 'Roo'
+     }
+    ],
+    items  : [
+     {
+      xtype : 'ContentPanel',
+      region : 'center',
+      xns : Roo,
+      '|xns' : 'Roo',
+      items  : [
+       {
+        xtype : 'Form',
+        method : 'POST',
+        style : 'margin:10px;width:1000px;margin-top:0px;',
+        url : baseURL + '/Roo/mtrack_ticket.php',
+        listeners : {
+         actioncomplete : function(_self,action)
+          {
+              if (action.type == 'setdata') {
+            
+                 this.load({ method: 'GET', params: { '_id' : _this.data.id  || 0}});
+                    
+                 return;
+              }
+              if (action.type == 'load') {
+                 if (!_this.data.id) {
+                      this.setValues(_this.data);
+                  }
+                  return;
+              }
+              
+              
+              if (action.type =='submit') {
+              
+                  if (!_this.data.id * 1) {
+                      Roo.MessageBox.confirm("Close?", 
+                          "The new ticket id is #" + action.result.data.id + ", Press yes to close, or no to keep editing",
+                          function (res) {
+                              if (res == 'yes') {
+                              
+                              
+                                  _this.dialog.hide();
+                              
+                                   if (_this.callback) {
+                                      _this.callback.call(_this, _this.form.getValues());
+                                   }
+                                   _this.form.reset();            
+                                   return;
+                               }
+                               _this.data.id = action.result.data.id;
+                               _this.form.fireEvent('actioncomplete', _this.form, { type : 'setdata', data : {}});
+                               return;
+                           }
+                       );
+                  
+                  
+                  
+                  
+                      return;
+                  }
+                  
+                  _this.dialog.hide();
+              
+                   if (_this.callback) {
+                      _this.callback.call(_this, _this.form.getValues());
+                   }
+                   _this.form.reset();        
+          
+                   return;
+              }
+          },
+         rendered : function (form)
+          {
+              _this.form= form;
+          }
+        },
+        xns : Roo.form,
+        '|xns' : 'Roo.form',
+        items  : [
+         {
+          xtype : 'Column',
+          width : 210,
+          xns : Roo.form,
+          '|xns' : 'Roo.form',
+          items  : [
+           {
+            xtype : 'FieldSet',
+            labelAlign : 'top',
+            legend : _this._strings['9fc2d28c05ed9eb1d75ba4465abf15a9'] /* Properties */,
+            style : 'width:190px;',
+            xns : Roo.form,
+            '|xns' : 'Roo.form',
+            items  : [
+             {
+              xtype : 'ComboBox',
+              allowBlank : false,
+              displayField : 'name',
+              editable : false,
+              emptyText : _this._strings['6a58f977f2b623b695a340766f2a6843'] /* Select Project */,
+              fieldLabel : _this._strings['9e727fdd3aec8274f46685441900280d'] /* Project */,
+              forceSelection : true,
+              hiddenName : 'project_id',
+              listWidth : 400,
+              loadingText : _this._strings['1243daf593fa297e07ab03bf06d925af'] /* Searching... */,
+              minChars : 2,
+              name : 'project_id_name',
+              pageSize : 20,
+              qtip : _this._strings['24f27bda5dd2c488aa9bc7700ba98c34'] /* Select Projects */,
+              queryParam : 'query[name]',
+              selectOnFocus : true,
+              tpl : '<div class=\"x-grid-cell-text x-btn button \"><b>{name}</b> </div>',
+              triggerAction : 'all',
+              typeAhead : true,
+              valueField : 'id',
+              width : 180,
+              xns : Roo.form,
+              '|xns' : 'Roo.form',
+              store : {
+               xtype : 'Store',
+               remoteSort : true,
+               sortInfo : { direction : 'ASC', field: 'name' },
+               listeners : {
+                beforeload : function (_self, o){
+                     o.params = o.params || {};
+                     // set more here
+                 }
+               },
+               xns : Roo.data,
+               '|xns' : 'Roo.data',
+               proxy : {
+                xtype : 'HttpProxy',
+                method : 'GET',
+                url : baseURL + '/Roo/Projects.php',
+                xns : Roo.data,
+                '|xns' : 'Roo.data'
+               },
+               reader : {
+                xtype : 'JsonReader',
+                fields : [{"name":"id","type":"int"},{"name":"name","type":"string"}],
+                id : 'id',
+                root : 'data',
+                totalProperty : 'total',
+                xns : Roo.data,
+                '|xns' : 'Roo.data'
+               }
+              }
+             },
+             {
+              xtype : 'ComboBox',
+              alwaysQuery : true,
+              displayField : 'name',
+              editable : false,
+              emptyText : _this._strings['a02a8093b46b8e647c29727fb50d67e4'] /* Select milestone */,
+              fieldLabel : _this._strings['e9c626b8a8b62de7562dfbf51a576ae5'] /* Milestone */,
+              forceSelection : true,
+              hiddenName : 'milestone_id',
+              listWidth : 400,
+              loadingText : _this._strings['1243daf593fa297e07ab03bf06d925af'] /* Searching... */,
+              minChars : 2,
+              name : 'milestone_id_name',
+              pageSize : 20,
+              qtip : _this._strings['a5ffb2a210f259195a75e5abca8db4a2'] /* Select mtrack_milestone */,
+              queryParam : 'query[name]',
+              selectOnFocus : true,
+              tpl : '<div class=\"x-grid-cell-text x-btn button  RdYlGn-q{seqid}-{seqmax}\"><b>{name}</b> </div>',
+              triggerAction : 'all',
+              typeAhead : true,
+              valueField : 'id',
+              width : 180,
+              xns : Roo.form,
+              '|xns' : 'Roo.form',
+              store : {
+               xtype : 'Store',
+               remoteSort : true,
+               sortInfo : { direction : 'ASC', field: 'startdate' },
+               listeners : {
+                beforeload : function (_self, o){
+                     o.params = o.params || {};
+                     // set more here
+                     o.params.etype = 'milestone';
+                     o.params.project_id = _this.form.findField('project_id').getValue();
+                     if (!o.params.project_id) {
+                         Roo.MessageBox.alert("Error", "Select Project");
+                         return false;
+                     }
+                 }
+               },
+               xns : Roo.data,
+               '|xns' : 'Roo.data',
+               proxy : {
+                xtype : 'HttpProxy',
+                method : 'GET',
+                url : baseURL + '/Roo/mtrack_milestone.php',
+                xns : Roo.data,
+                '|xns' : 'Roo.data'
+               },
+               reader : {
+                xtype : 'JsonReader',
+                fields : [{"name":"id","type":"int"},{"name":"name","type":"string"}],
+                id : 'id',
+                root : 'data',
+                totalProperty : 'total',
+                xns : Roo.data,
+                '|xns' : 'Roo.data'
+               }
+              }
+             },
+             {
+              xtype : 'ComboBox',
+              allowBlank : false,
+              alwaysQuery : true,
+              displayField : 'name',
+              editable : false,
+              emptyText : _this._strings['86e9400686e8e080ef3c8995afb5eb86'] /* Select Priority */,
+              fieldLabel : _this._strings['502996d9790340c5fd7b86a5b93b1c9f'] /* Priority */,
+              forceSelection : true,
+              hiddenName : 'priority_id',
+              listWidth : 400,
+              loadingText : _this._strings['1243daf593fa297e07ab03bf06d925af'] /* Searching... */,
+              minChars : 2,
+              name : 'priority_id_name',
+              pageSize : 20,
+              qtip : _this._strings['6c768695a8efb18436d5b7b4374cdb45'] /* Select core_enum */,
+              queryParam : 'query[etype]',
+              selectOnFocus : true,
+              tpl : '<div class=\"x-grid-cell-text x-btn button  RdYlGn-q{seqid}-{seqmax}\"><b>{name}</b> </div>',
+              triggerAction : 'all',
+              typeAhead : true,
+              valueField : 'id',
+              width : 180,
+              xns : Roo.form,
+              '|xns' : 'Roo.form',
+              store : {
+               xtype : 'Store',
+               remoteSort : true,
+               sortInfo : { direction : 'ASC', field: 'seqid' },
+               listeners : {
+                beforeload : function (_self, o){
+                     o.params = o.params || {};
+                     // set more here
+                         o.params.etype = 'priority';
+                 }
+               },
+               xns : Roo.data,
+               '|xns' : 'Roo.data',
+               proxy : {
+                xtype : 'HttpProxy',
+                method : 'GET',
+                url : baseURL + '/Roo/core_enum.php',
+                xns : Roo.data,
+                '|xns' : 'Roo.data'
+               },
+               reader : {
+                xtype : 'JsonReader',
+                fields : [{"name":"id","type":"int"},{"name":"etype","type":"string"}],
+                id : 'id',
+                root : 'data',
+                totalProperty : 'total',
+                xns : Roo.data,
+                '|xns' : 'Roo.data'
+               }
+              }
+             },
+             {
+              xtype : 'ComboBox',
+              allowBlank : false,
+              alwaysQuery : true,
+              displayField : 'name',
+              editable : false,
+              emptyText : _this._strings['43371ce8259ba854b1ae3543fd477874'] /* Select Severity */,
+              fieldLabel : _this._strings['007cc9547ae8884ad597cd92ba505422'] /* Severity */,
+              forceSelection : true,
+              hiddenName : 'severity_id',
+              listWidth : 400,
+              loadingText : _this._strings['1243daf593fa297e07ab03bf06d925af'] /* Searching... */,
+              minChars : 2,
+              name : 'severity_id_name',
+              pageSize : 20,
+              qtip : _this._strings['6c768695a8efb18436d5b7b4374cdb45'] /* Select core_enum */,
+              queryParam : 'query[etype]',
+              selectOnFocus : true,
+              tpl : '<div class=\"x-grid-cell-text x-btn button RdYlGn-q{seqid}-{seqmax}\"><b>{name}</b> </div>',
+              triggerAction : 'all',
+              typeAhead : true,
+              valueField : 'id',
+              width : 180,
+              xns : Roo.form,
+              '|xns' : 'Roo.form',
+              store : {
+               xtype : 'Store',
+               remoteSort : true,
+               sortInfo : { direction : 'ASC', field: 'seqid' },
+               listeners : {
+                beforeload : function (_self, o){
+                     o.params = o.params || {};
+                     // set more here
+                         o.params.etype = 'severity';
+                 }
+               },
+               xns : Roo.data,
+               '|xns' : 'Roo.data',
+               proxy : {
+                xtype : 'HttpProxy',
+                method : 'GET',
+                url : baseURL + '/Roo/core_enum.php',
+                xns : Roo.data,
+                '|xns' : 'Roo.data'
+               },
+               reader : {
+                xtype : 'JsonReader',
+                fields : [{"name":"id","type":"int"},{"name":"etype","type":"string"}],
+                id : 'id',
+                root : 'data',
+                totalProperty : 'total',
+                xns : Roo.data,
+                '|xns' : 'Roo.data'
+               }
+              }
+             },
+             {
+              xtype : 'ComboBox',
+              allowBlank : false,
+              alwaysQuery : true,
+              displayField : 'name',
+              editable : false,
+              emptyText : _this._strings['fcb17935fd52e65b8f223778c9e70313'] /* Select Classification */,
+              fieldLabel : _this._strings['5c9335b28e6277ddbe0137f04e5e58a7'] /* Classification */,
+              forceSelection : true,
+              hiddenName : 'classification_id',
+              listWidth : 400,
+              loadingText : _this._strings['1243daf593fa297e07ab03bf06d925af'] /* Searching... */,
+              minChars : 2,
+              name : 'classification_id_name',
+              pageSize : 20,
+              qtip : _this._strings['6c768695a8efb18436d5b7b4374cdb45'] /* Select core_enum */,
+              queryParam : 'query[etype]',
+              selectOnFocus : true,
+              tpl : '<div class=\"x-grid-cell-text x-btn button RdYlGn-q{seqid}-{seqmax}\"><b>{name}</b> </div>',
+              triggerAction : 'all',
+              typeAhead : true,
+              valueField : 'id',
+              width : 180,
+              xns : Roo.form,
+              '|xns' : 'Roo.form',
+              store : {
+               xtype : 'Store',
+               remoteSort : true,
+               sortInfo : { direction : 'ASC', field: 'seqid' },
+               listeners : {
+                beforeload : function (_self, o){
+                     o.params = o.params || {};
+                     // set more here
+                         o.params.etype = 'classification';
+                 }
+               },
+               xns : Roo.data,
+               '|xns' : 'Roo.data',
+               proxy : {
+                xtype : 'HttpProxy',
+                method : 'GET',
+                url : baseURL + '/Roo/core_enum.php',
+                xns : Roo.data,
+                '|xns' : 'Roo.data'
+               },
+               reader : {
+                xtype : 'JsonReader',
+                fields : [{"name":"id","type":"int"},{"name":"etype","type":"string"}],
+                id : 'id',
+                root : 'data',
+                totalProperty : 'total',
+                xns : Roo.data,
+                '|xns' : 'Roo.data'
+               }
+              }
+             }
+            ]
+           },
+           {
+            xtype : 'FieldSet',
+            legend : _this._strings['ddcf50c29294d4414f3f7c1bbc892cb5'] /* Resources */,
+            style : 'width: 190px',
+            xns : Roo.form,
+            '|xns' : 'Roo.form',
+            items  : [
+             {
+              xtype : 'Column',
+              labelAlign : 'top',
+              width : 190,
+              xns : Roo.form,
+              '|xns' : 'Roo.form',
+              items  : [
+               {
+                xtype : 'ComboBox',
+                allowBlank : false,
+                alwaysQuery : true,
+                displayField : 'name',
+                editable : true,
+                emptyText : _this._strings['340c2ee497b85d5954b01c64de7f44f6'] /* Select Person */,
+                fieldLabel : _this._strings['672caf27f5363dc833bda5099775e891'] /* Developer */,
+                forceSelection : true,
+                hiddenName : 'developer_id',
+                listWidth : 400,
+                loadingText : _this._strings['1243daf593fa297e07ab03bf06d925af'] /* Searching... */,
+                minChars : 2,
+                name : 'developer_id_name',
+                pageSize : 20,
+                qtip : _this._strings['340c2ee497b85d5954b01c64de7f44f6'] /* Select Person */,
+                queryParam : 'query[name]',
+                selectOnFocus : true,
+                tpl : '<div class=\"x-grid-cell-text x-btn button\"><b>{name}</b> &lt;{email}&gt; </div>',
+                triggerAction : 'all',
+                typeAhead : true,
+                valueField : 'id',
+                width : 180,
+                xns : Roo.form,
+                '|xns' : 'Roo.form',
+                store : {
+                 xtype : 'Store',
+                 remoteSort : true,
+                 sortInfo : { direction : 'ASC', field: 'name' },
+                 listeners : {
+                  beforeload : function (_self, o){
+                       o.params = o.params || {};
+                       
+                       // set more here
+                       o.params['query[project_id]'] = _this.form.findField('project_id').getValue();
+                       if (!o.params['query[project_id]']) {
+                           Roo.MessageBox.alert("Error", "Select Project");
+                           return false;
+                       }
+                       o.params['query[role]'] = 'DEVELOPER';
+                   }
+                 },
+                 xns : Roo.data,
+                 '|xns' : 'Roo.data',
+                 proxy : {
+                  xtype : 'HttpProxy',
+                  method : 'GET',
+                  url : baseURL + '/Roo/Person.php',
+                  xns : Roo.data,
+                  '|xns' : 'Roo.data'
+                 },
+                 reader : {
+                  xtype : 'JsonReader',
+                  fields : [{"name":"id","type":"int"},{"name":"name","type":"string"}],
+                  id : 'id',
+                  root : 'data',
+                  totalProperty : 'total',
+                  xns : Roo.data,
+                  '|xns' : 'Roo.data'
+                 }
                 }
-            },
-            closable : false,
-            collapsible : false,
-            height : 450,
-            modal : true,
-            resizable : true,
-            title : "Edit or Create Ticket",
-            width : 700,
-            items : [
-                {
-                    xtype: 'ContentPanel',
-                    xns: Roo,
-                    region : 'center',
-                    items : [
-                        {
-                            xtype: 'Form',
-                            xns: Roo.form,
-                            listeners : {
-                                actioncomplete : function(_self,action)
-                                {
-                                    if (action.type == 'setdata') {
-                                  
-                                       this.load({ method: 'GET', params: { '_id' : _this.data.id  || 0}});
-                                          
-                                       return;
-                                    }
-                                    if (action.type == 'load') {
-                                       if (!_this.data.id) {
-                                            this.setValues(_this.data);
-                                        }
-                                        return;
-                                    }
-                                    
-                                    
-                                    if (action.type =='submit') {
-                                    
-                                        if (!_this.data.id * 1) {
-                                            Roo.MessageBox.confirm("Close?", 
-                                                "The new ticket id is #" + action.result.data.id + ", Press yes to close, or no to keep editing",
-                                                function (res) {
-                                                    if (res == 'yes') {
-                                                    
-                                                    
-                                                        _this.dialog.hide();
-                                                    
-                                                         if (_this.callback) {
-                                                            _this.callback.call(_this, _this.form.getValues());
-                                                         }
-                                                         _this.form.reset();            
-                                                         return;
-                                                     }
-                                                     _this.data.id = action.result.data.id;
-                                                     _this.form.fireEvent('actioncomplete', _this.form, { type : 'setdata', data : {}});
-                                                     return;
-                                                 }
-                                             );
-                                        
-                                        
-                                        
-                                        
-                                            return;
-                                        }
-                                        
-                                        _this.dialog.hide();
-                                    
-                                         if (_this.callback) {
-                                            _this.callback.call(_this, _this.form.getValues());
-                                         }
-                                         _this.form.reset();        
-                                
-                                         return;
-                                    }
-                                },
-                                rendered : function (form)
-                                {
-                                    _this.form= form;
-                                }
-                            },
-                            method : 'POST',
-                            style : 'margin:10px;width:1000px;margin-top:0px;',
-                            url : baseURL + '/Roo/mtrack_ticket.php',
-                            items : [
-                                {
-                                    xtype: 'Column',
-                                    xns: Roo.form,
-                                    width : 210,
-                                    items : [
-                                        {
-                                            xtype: 'FieldSet',
-                                            xns: Roo.form,
-                                            labelAlign : 'top',
-                                            legend : "Properties",
-                                            style : 'width:190px;',
-                                            items : [
-                                                {
-                                                    xtype: 'ComboBox',
-                                                    xns: Roo.form,
-                                                    allowBlank : 'false',
-                                                    displayField : 'name',
-                                                    editable : 'false',
-                                                    emptyText : "Select Project",
-                                                    fieldLabel : 'Project',
-                                                    forceSelection : true,
-                                                    hiddenName : 'project_id',
-                                                    listWidth : 400,
-                                                    loadingText : "Searching...",
-                                                    minChars : 2,
-                                                    name : 'project_id_name',
-                                                    pageSize : 20,
-                                                    qtip : "Select Projects",
-                                                    queryParam : 'query[name]',
-                                                    selectOnFocus : true,
-                                                    tpl : '<div class="x-grid-cell-text x-btn button "><b>{name}</b> </div>',
-                                                    triggerAction : 'all',
-                                                    typeAhead : true,
-                                                    valueField : 'id',
-                                                    width : 180,
-                                                    store : {
-                                                        xtype: 'Store',
-                                                        xns: Roo.data,
-                                                        listeners : {
-                                                            beforeload : function (_self, o){
-                                                                o.params = o.params || {};
-                                                                // set more here
-                                                            }
-                                                        },
-                                                        remoteSort : true,
-                                                        sortInfo : { direction : 'ASC', field: 'name' },
-                                                        proxy : {
-                                                            xtype: 'HttpProxy',
-                                                            xns: Roo.data,
-                                                            method : 'GET',
-                                                            url : baseURL + '/Roo/Projects.php'
-                                                        },
-                                                        reader : {
-                                                            xtype: 'JsonReader',
-                                                            xns: Roo.data,
-                                                            id : 'id',
-                                                            root : 'data',
-                                                            totalProperty : 'total',
-                                                            fields : [{"name":"id","type":"int"},{"name":"name","type":"string"}]
-                                                        }
-                                                    }
-                                                },
-                                                {
-                                                    xtype: 'ComboBox',
-                                                    xns: Roo.form,
-                                                    alwaysQuery : true,
-                                                    displayField : 'name',
-                                                    editable : 'false',
-                                                    emptyText : "Select milestone",
-                                                    fieldLabel : 'Milestone',
-                                                    forceSelection : true,
-                                                    hiddenName : 'milestone_id',
-                                                    listWidth : 400,
-                                                    loadingText : "Searching...",
-                                                    minChars : 2,
-                                                    name : 'milestone_id_name',
-                                                    pageSize : 20,
-                                                    qtip : "Select mtrack_milestone",
-                                                    queryParam : 'query[name]',
-                                                    selectOnFocus : true,
-                                                    tpl : '<div class="x-grid-cell-text x-btn button  RdYlGn-q{seqid}-{seqmax}"><b>{name}</b> </div>',
-                                                    triggerAction : 'all',
-                                                    typeAhead : true,
-                                                    valueField : 'id',
-                                                    width : 180,
-                                                    store : {
-                                                        xtype: 'Store',
-                                                        xns: Roo.data,
-                                                        listeners : {
-                                                            beforeload : function (_self, o){
-                                                                o.params = o.params || {};
-                                                                // set more here
-                                                                o.params.etype = 'milestone';
-                                                                o.params.project_id = _this.form.findField('project_id').getValue();
-                                                                if (!o.params.project_id) {
-                                                                    Roo.MessageBox.alert("Error", "Select Project");
-                                                                    return false;
-                                                                }
-                                                            }
-                                                        },
-                                                        remoteSort : true,
-                                                        sortInfo : { direction : 'ASC', field: 'startdate' },
-                                                        proxy : {
-                                                            xtype: 'HttpProxy',
-                                                            xns: Roo.data,
-                                                            method : 'GET',
-                                                            url : baseURL + '/Roo/mtrack_milestone.php'
-                                                        },
-                                                        reader : {
-                                                            xtype: 'JsonReader',
-                                                            xns: Roo.data,
-                                                            id : 'id',
-                                                            root : 'data',
-                                                            totalProperty : 'total',
-                                                            fields : [{"name":"id","type":"int"},{"name":"name","type":"string"}]
-                                                        }
-                                                    }
-                                                },
-                                                {
-                                                    xtype: 'ComboBox',
-                                                    xns: Roo.form,
-                                                    allowBlank : false,
-                                                    alwaysQuery : true,
-                                                    displayField : 'name',
-                                                    editable : 'false',
-                                                    emptyText : "Select Priority",
-                                                    fieldLabel : 'Priority',
-                                                    forceSelection : true,
-                                                    hiddenName : 'priority_id',
-                                                    listWidth : 400,
-                                                    loadingText : "Searching...",
-                                                    minChars : 2,
-                                                    name : 'priority_id_name',
-                                                    pageSize : 20,
-                                                    qtip : "Select core_enum",
-                                                    queryParam : 'query[etype]',
-                                                    selectOnFocus : true,
-                                                    tpl : '<div class="x-grid-cell-text x-btn button  RdYlGn-q{seqid}-{seqmax}"><b>{name}</b> </div>',
-                                                    triggerAction : 'all',
-                                                    typeAhead : true,
-                                                    valueField : 'id',
-                                                    width : 180,
-                                                    store : {
-                                                        xtype: 'Store',
-                                                        xns: Roo.data,
-                                                        listeners : {
-                                                            beforeload : function (_self, o){
-                                                                o.params = o.params || {};
-                                                                // set more here
-                                                                    o.params.etype = 'priority';
-                                                            }
-                                                        },
-                                                        remoteSort : true,
-                                                        sortInfo : { direction : 'ASC', field: 'seqid' },
-                                                        proxy : {
-                                                            xtype: 'HttpProxy',
-                                                            xns: Roo.data,
-                                                            method : 'GET',
-                                                            url : baseURL + '/Roo/core_enum.php'
-                                                        },
-                                                        reader : {
-                                                            xtype: 'JsonReader',
-                                                            xns: Roo.data,
-                                                            id : 'id',
-                                                            root : 'data',
-                                                            totalProperty : 'total',
-                                                            fields : [{"name":"id","type":"int"},{"name":"etype","type":"string"}]
-                                                        }
-                                                    }
-                                                },
-                                                {
-                                                    xtype: 'ComboBox',
-                                                    xns: Roo.form,
-                                                    allowBlank : false,
-                                                    alwaysQuery : true,
-                                                    displayField : 'name',
-                                                    editable : 'false',
-                                                    emptyText : "Select Severity",
-                                                    fieldLabel : 'Severity',
-                                                    forceSelection : true,
-                                                    hiddenName : 'severity_id',
-                                                    listWidth : 400,
-                                                    loadingText : "Searching...",
-                                                    minChars : 2,
-                                                    name : 'severity_id_name',
-                                                    pageSize : 20,
-                                                    qtip : "Select core_enum",
-                                                    queryParam : 'query[etype]',
-                                                    selectOnFocus : true,
-                                                    tpl : '<div class="x-grid-cell-text x-btn button RdYlGn-q{seqid}-{seqmax}"><b>{name}</b> </div>',
-                                                    triggerAction : 'all',
-                                                    typeAhead : true,
-                                                    valueField : 'id',
-                                                    width : 180,
-                                                    store : {
-                                                        xtype: 'Store',
-                                                        xns: Roo.data,
-                                                        listeners : {
-                                                            beforeload : function (_self, o){
-                                                                o.params = o.params || {};
-                                                                // set more here
-                                                                    o.params.etype = 'severity';
-                                                            }
-                                                        },
-                                                        remoteSort : true,
-                                                        sortInfo : { direction : 'ASC', field: 'seqid' },
-                                                        proxy : {
-                                                            xtype: 'HttpProxy',
-                                                            xns: Roo.data,
-                                                            method : 'GET',
-                                                            url : baseURL + '/Roo/core_enum.php'
-                                                        },
-                                                        reader : {
-                                                            xtype: 'JsonReader',
-                                                            xns: Roo.data,
-                                                            id : 'id',
-                                                            root : 'data',
-                                                            totalProperty : 'total',
-                                                            fields : [{"name":"id","type":"int"},{"name":"etype","type":"string"}]
-                                                        }
-                                                    }
-                                                },
-                                                {
-                                                    xtype: 'ComboBox',
-                                                    xns: Roo.form,
-                                                    allowBlank : false,
-                                                    alwaysQuery : true,
-                                                    displayField : 'name',
-                                                    editable : 'false',
-                                                    emptyText : "Select Classification",
-                                                    fieldLabel : 'Classification',
-                                                    forceSelection : true,
-                                                    hiddenName : 'classification_id',
-                                                    listWidth : 400,
-                                                    loadingText : "Searching...",
-                                                    minChars : 2,
-                                                    name : 'classification_id_name',
-                                                    pageSize : 20,
-                                                    qtip : "Select core_enum",
-                                                    queryParam : 'query[etype]',
-                                                    selectOnFocus : true,
-                                                    tpl : '<div class="x-grid-cell-text x-btn button RdYlGn-q{seqid}-{seqmax}"><b>{name}</b> </div>',
-                                                    triggerAction : 'all',
-                                                    typeAhead : true,
-                                                    valueField : 'id',
-                                                    width : 180,
-                                                    store : {
-                                                        xtype: 'Store',
-                                                        xns: Roo.data,
-                                                        listeners : {
-                                                            beforeload : function (_self, o){
-                                                                o.params = o.params || {};
-                                                                // set more here
-                                                                    o.params.etype = 'classification';
-                                                            }
-                                                        },
-                                                        remoteSort : true,
-                                                        sortInfo : { direction : 'ASC', field: 'seqid' },
-                                                        proxy : {
-                                                            xtype: 'HttpProxy',
-                                                            xns: Roo.data,
-                                                            method : 'GET',
-                                                            url : baseURL + '/Roo/core_enum.php'
-                                                        },
-                                                        reader : {
-                                                            xtype: 'JsonReader',
-                                                            xns: Roo.data,
-                                                            id : 'id',
-                                                            root : 'data',
-                                                            totalProperty : 'total',
-                                                            fields : [{"name":"id","type":"int"},{"name":"etype","type":"string"}]
-                                                        }
-                                                    }
-                                                }
-                                            ]
-                                        },
-                                        {
-                                            xtype: 'FieldSet',
-                                            xns: Roo.form,
-                                            legend : "Resources",
-                                            style : 'width: 190px',
-                                            items : [
-                                                {
-                                                    xtype: 'Column',
-                                                    xns: Roo.form,
-                                                    labelAlign : 'top',
-                                                    width : 190,
-                                                    items : [
-                                                        {
-                                                            xtype: 'ComboBox',
-                                                            xns: Roo.form,
-                                                            allowBlank : 'false',
-                                                            alwaysQuery : true,
-                                                            displayField : 'name',
-                                                            editable : 'false',
-                                                            emptyText : "Select Person",
-                                                            fieldLabel : 'Developer',
-                                                            forceSelection : true,
-                                                            hiddenName : 'developer_id',
-                                                            listWidth : 400,
-                                                            loadingText : "Searching...",
-                                                            minChars : 2,
-                                                            name : 'developer_id_name',
-                                                            pageSize : 20,
-                                                            qtip : "Select Person",
-                                                            queryParam : 'query[name]',
-                                                            selectOnFocus : true,
-                                                            tpl : '<div class="x-grid-cell-text x-btn button"><b>{name}</b> &lt;{email}&gt; </div>',
-                                                            triggerAction : 'all',
-                                                            typeAhead : true,
-                                                            valueField : 'id',
-                                                            width : 180,
-                                                            store : {
-                                                                xtype: 'Store',
-                                                                xns: Roo.data,
-                                                                listeners : {
-                                                                    beforeload : function (_self, o){
-                                                                        o.params = o.params || {};
-                                                                        
-                                                                        // set more here
-                                                                        o.params['query[project_id]'] = _this.form.findField('project_id').getValue();
-                                                                        if (!o.params['query[project_id]']) {
-                                                                            Roo.MessageBox.alert("Error", "Select Project");
-                                                                            return false;
-                                                                        }
-                                                                        o.params['query[role]'] = 'DEVELOPER';
-                                                                    }
-                                                                },
-                                                                remoteSort : true,
-                                                                sortInfo : { direction : 'ASC', field: 'name' },
-                                                                proxy : {
-                                                                    xtype: 'HttpProxy',
-                                                                    xns: Roo.data,
-                                                                    method : 'GET',
-                                                                    url : baseURL + '/Roo/Person.php'
-                                                                },
-                                                                reader : {
-                                                                    xtype: 'JsonReader',
-                                                                    xns: Roo.data,
-                                                                    id : 'id',
-                                                                    root : 'data',
-                                                                    totalProperty : 'total',
-                                                                    fields : [{"name":"id","type":"int"},{"name":"name","type":"string"}]
-                                                                }
-                                                            }
-                                                        },
-                                                        {
-                                                            xtype: 'ComboBox',
-                                                            xns: Roo.form,
-                                                            allowBlank : 'false',
-                                                            alwaysQuery : true,
-                                                            displayField : 'name',
-                                                            editable : 'false',
-                                                            emptyText : "Select Person",
-                                                            fieldLabel : 'Owner',
-                                                            forceSelection : true,
-                                                            hiddenName : 'owner_id',
-                                                            listWidth : 400,
-                                                            loadingText : "Searching...",
-                                                            minChars : 2,
-                                                            name : 'owner_id_name',
-                                                            pageSize : 20,
-                                                            qtip : "Select Person",
-                                                            queryParam : 'query[name]',
-                                                            selectOnFocus : true,
-                                                            tpl : '<div class="x-grid-cell-text x-btn button"><b>{name}</b> </div>',
-                                                            triggerAction : 'all',
-                                                            typeAhead : true,
-                                                            valueField : 'id',
-                                                            width : 180,
-                                                            store : {
-                                                                xtype: 'Store',
-                                                                xns: Roo.data,
-                                                                listeners : {
-                                                                    beforeload : function (_self, o){
-                                                                        o.params = o.params || {};
-                                                                        // set more here
-                                                                        o.params['query[project_id]']= _this.form.findField('project_id').getValue();
-                                                                        if (!o.params['query[project_id]'])  {
-                                                                            Roo.MessageBox.alert("Error", "Select Project");
-                                                                            return false;
-                                                                        }
-                                                                    }
-                                                                },
-                                                                remoteSort : true,
-                                                                sortInfo : { direction : 'ASC', field: 'name' },
-                                                                proxy : {
-                                                                    xtype: 'HttpProxy',
-                                                                    xns: Roo.data,
-                                                                    method : 'GET',
-                                                                    url : baseURL + '/Roo/Person.php'
-                                                                },
-                                                                reader : {
-                                                                    xtype: 'JsonReader',
-                                                                    xns: Roo.data,
-                                                                    id : 'id',
-                                                                    root : 'data',
-                                                                    totalProperty : 'total',
-                                                                    fields : [{"name":"id","type":"int"},{"name":"name","type":"string"}]
-                                                                }
-                                                            }
-                                                        }
-                                                    ]
-                                                },
-                                                {
-                                                    xtype: 'Column',
-                                                    xns: Roo.form,
-                                                    labelAlign : 'right',
-                                                    labelWidth : 100,
-                                                    width : 190,
-                                                    items : [
-                                                        {
-                                                            xtype: 'NumberField',
-                                                            xns: Roo.form,
-                                                            style : 'align:right;',
-                                                            fieldLabel : 'Estimated',
-                                                            name : 'estimated',
-                                                            width : 75
-                                                        }
-                                                    ]
-                                                }
-                                            ]
-                                        }
-                                    ]
-                                },
-                                {
-                                    xtype: 'Column',
-                                    xns: Roo.form,
-                                    listeners : {
-                                        show : function (_self)
-                                        {
-                                        
-                                        },
-                                        render : function (_self)
-                                        {
-                                          _this.summaryCol = _self;
-                                        }
-                                    },
-                                    style : 'margin-left:10px',
-                                    width : 430,
-                                    items : [
-                                        {
-                                            xtype: 'FieldSet',
-                                            xns: Roo.form,
-                                            listeners : {
-                                                show : function (_self)
-                                                {
-                                                
-                                                },
-                                                render : function (_self)
-                                                {
-                                                  _this.summaryBox = _self;
-                                                }
-                                            },
-                                            legend : "Summary / Details",
-                                            style : 'width:410px',
-                                            items : [
-                                                {
-                                                    xtype: 'Column',
-                                                    xns: Roo.form,
-                                                    labelAlign : 'top',
-                                                    width : 400,
-                                                    items : [
-                                                        {
-                                                            xtype: 'TextField',
-                                                            xns: Roo.form,
-                                                            fieldLabel : 'Summary',
-                                                            name : 'summary',
-                                                            width : 400
-                                                        }
-                                                    ]
-                                                },
-                                                {
-                                                    xtype: 'Row',
-                                                    xns: Roo.form,
-                                                    labelWidth : 70,
-                                                    style : 'float:left; width:400px',
-                                                    width : 400,
-                                                    items : [
-                                                        {
-                                                            xtype: 'Checkbox',
-                                                            xns: Roo.form,
-                                                            listeners : {
-                                                                check : function (_self, checked)
-                                                                {
-                                                                
-                                                                    if (!_this.form) {
-                                                                        return;
-                                                                    }
-                                                                    if (checked) {
-                                                                    
-                                                                         _this.form.findField('view_as').setValue('text');
-                                                                     }
-                                                                         
-                                                                    
-                                                                    
-                                                                     if (this.radio) {
-                                                                        return;
-                                                                    }
-                                                                     var md = _this.form.findField('view_as_markdown');
-                                                                
-                                                                    md.radio = true;
-                                                                    md.setValue(checked ? 0 : 1);
-                                                                    
-                                                                    md.radio = false;
-                                                                }
-                                                            },
-                                                            boxLabel : 'text',
-                                                            fieldLabel : 'View as',
-                                                            name : 'view_as_text',
-                                                            value : 1,
-                                                            width : 100
-                                                        },
-                                                        {
-                                                            xtype: 'Row',
-                                                            xns: Roo.form,
-                                                            hideLabels : true,
-                                                            style : 'float: left',
-                                                            width : 100,
-                                                            items : [
-                                                                {
-                                                                    xtype: 'Checkbox',
-                                                                    xns: Roo.form,
-                                                                    listeners : {
-                                                                        check : function (_self, checked)
-                                                                        {
-                                                                               if (!_this.form) {
-                                                                                return;
-                                                                            }
-                                                                            
-                                                                                if (checked) {
-                                                                            
-                                                                                 _this.form.findField('view_as').setValue('markdown');
-                                                                             }
-                                                                            
-                                                                             if (this.radio) {
-                                                                                return;
-                                                                            }
-                                                                             var md = _this.form.findField('view_as_text');
-                                                                        
-                                                                            md.radio = true;
-                                                                            md.setValue(checked ? 0 : 1);
-                                                                            md.radio = false;
-                                                                        }
-                                                                    },
-                                                                    boxLabel : 'markdown',
-                                                                    name : 'view_as_markdown',
-                                                                    value : 1
-                                                                }
-                                                            ]
-                                                        }
-                                                    ]
-                                                },
-                                                {
-                                                    xtype: 'Column',
-                                                    xns: Roo.form,
-                                                    listeners : {
-                                                        show : function (_self)
-                                                        {
-                                                        
-                                                        },
-                                                        render : function (_self)
-                                                        {
-                                                          _this.descCol = _self;
-                                                        }
-                                                    },
-                                                    labelAlign : 'top',
-                                                    width : 400,
-                                                    items : [
-                                                        {
-                                                            xtype: 'TextArea',
-                                                            xns: Roo.form,
-                                                            fieldLabel : 'Description',
-                                                            height : 250,
-                                                            name : 'description',
-                                                            width : 400
-                                                        }
-                                                    ]
-                                                }
-                                            ]
-                                        }
-                                    ]
-                                },
-                                {
-                                    xtype: 'Hidden',
-                                    xns: Roo.form,
-                                    name : 'id'
-                                },
-                                {
-                                    xtype: 'Hidden',
-                                    xns: Roo.form,
-                                    name : 'view_as'
-                                }
-                            ]
-                        }
-                    ]
+               },
+               {
+                xtype : 'ComboBox',
+                allowBlank : false,
+                alwaysQuery : true,
+                displayField : 'name',
+                editable : false,
+                emptyText : _this._strings['340c2ee497b85d5954b01c64de7f44f6'] /* Select Person */,
+                fieldLabel : _this._strings['b6f4a2ec6356bbd56d49f2096bf9d3d3'] /* Owner */,
+                forceSelection : true,
+                hiddenName : 'owner_id',
+                listWidth : 400,
+                loadingText : _this._strings['1243daf593fa297e07ab03bf06d925af'] /* Searching... */,
+                minChars : 2,
+                name : 'owner_id_name',
+                pageSize : 20,
+                qtip : _this._strings['340c2ee497b85d5954b01c64de7f44f6'] /* Select Person */,
+                queryParam : 'query[name]',
+                selectOnFocus : true,
+                tpl : '<div class=\"x-grid-cell-text x-btn button\"><b>{name}</b> </div>',
+                triggerAction : 'all',
+                typeAhead : true,
+                valueField : 'id',
+                width : 180,
+                xns : Roo.form,
+                '|xns' : 'Roo.form',
+                store : {
+                 xtype : 'Store',
+                 remoteSort : true,
+                 sortInfo : { direction : 'ASC', field: 'name' },
+                 listeners : {
+                  beforeload : function (_self, o){
+                       o.params = o.params || {};
+                       // set more here
+                       o.params['query[project_id]']= _this.form.findField('project_id').getValue();
+                       if (!o.params['query[project_id]'])  {
+                           Roo.MessageBox.alert("Error", "Select Project");
+                           return false;
+                       }
+                   }
+                 },
+                 xns : Roo.data,
+                 '|xns' : 'Roo.data',
+                 proxy : {
+                  xtype : 'HttpProxy',
+                  method : 'GET',
+                  url : baseURL + '/Roo/Person.php',
+                  xns : Roo.data,
+                  '|xns' : 'Roo.data'
+                 },
+                 reader : {
+                  xtype : 'JsonReader',
+                  fields : [{"name":"id","type":"int"},{"name":"name","type":"string"}],
+                  id : 'id',
+                  root : 'data',
+                  totalProperty : 'total',
+                  xns : Roo.data,
+                  '|xns' : 'Roo.data'
+                 }
                 }
-            ],
-            center : {
-                xtype: 'LayoutRegion',
-                xns: Roo
+               }
+              ]
+             },
+             {
+              xtype : 'Column',
+              labelAlign : 'right',
+              labelWidth : 100,
+              width : 190,
+              xns : Roo.form,
+              '|xns' : 'Roo.form',
+              items  : [
+               {
+                xtype : 'NumberField',
+                fieldLabel : _this._strings['3c311fbd0f9e51ce27b984f55164cf83'] /* Estimated */,
+                name : 'estimated',
+                style : 'align:right;',
+                width : 75,
+                xns : Roo.form,
+                '|xns' : 'Roo.form'
+               }
+              ]
+             }
+            ]
+           }
+          ]
+         },
+         {
+          xtype : 'Column',
+          style : 'margin-left:10px',
+          width : 430,
+          listeners : {
+           render : function (_self)
+            {
+              _this.summaryCol = _self;
             },
-            buttons : [
-                {
-                    xtype: 'Button',
-                    xns: Roo,
-                    listeners : {
-                        click : function (_self, e)
-                        {
-                            _this.dialog.hide();
-                        }
-                    },
-                    text : "Cancel"
+           show : function (_self)
+            {
+            
+            }
+          },
+          xns : Roo.form,
+          '|xns' : 'Roo.form',
+          items  : [
+           {
+            xtype : 'FieldSet',
+            legend : _this._strings['a8dbd02aaca3948002718aeb2babeefe'] /* Summary / Details */,
+            style : 'width:410px',
+            listeners : {
+             render : function (_self)
+              {
+                _this.summaryBox = _self;
+              },
+             show : function (_self)
+              {
+              
+              }
+            },
+            xns : Roo.form,
+            '|xns' : 'Roo.form',
+            items  : [
+             {
+              xtype : 'Column',
+              labelAlign : 'top',
+              width : 400,
+              xns : Roo.form,
+              '|xns' : 'Roo.form',
+              items  : [
+               {
+                xtype : 'TextField',
+                fieldLabel : _this._strings['290612199861c31d1036b185b4e69b75'] /* Summary */,
+                name : 'summary',
+                width : 400,
+                xns : Roo.form,
+                '|xns' : 'Roo.form'
+               }
+              ]
+             },
+             {
+              xtype : 'Row',
+              labelWidth : 70,
+              style : 'float:left; width:400px',
+              width : 400,
+              xns : Roo.form,
+              '|xns' : 'Roo.form',
+              items  : [
+               {
+                xtype : 'Checkbox',
+                boxLabel : _this._strings['1cb251ec0d568de6a929b520c4aed8d1'] /* text */,
+                fieldLabel : _this._strings['23e6bcd09b259e6de4cd972516cb4214'] /* View as */,
+                name : 'view_as_text',
+                value : 1,
+                width : 100,
+                listeners : {
+                 check : function (_self, checked)
+                  {
+                  
+                      if (!_this.form) {
+                          return;
+                      }
+                      if (checked) {
+                      
+                           _this.form.findField('view_as').setValue('text');
+                       }
+                           
+                      
+                      
+                       if (this.radio) {
+                          return;
+                      }
+                       var md = _this.form.findField('view_as_markdown');
+                  
+                      md.radio = true;
+                      md.setValue(checked ? 0 : 1);
+                      
+                      md.radio = false;
+                  }
                 },
-                {
-                    xtype: 'Button',
-                    xns: Roo,
-                    listeners : {
-                        click : function (_self, e)
-                        {
-                            // do some checks?
-                             
-                            
-                         
-                            _this.form.doAction("submit");
+                xns : Roo.form,
+                '|xns' : 'Roo.form'
+               },
+               {
+                xtype : 'Row',
+                hideLabels : true,
+                style : 'float: left',
+                width : 100,
+                xns : Roo.form,
+                '|xns' : 'Roo.form',
+                items  : [
+                 {
+                  xtype : 'Checkbox',
+                  boxLabel : _this._strings['590fc197fe73db0aa2ec03687a372eea'] /* markdown */,
+                  name : 'view_as_markdown',
+                  value : 1,
+                  listeners : {
+                   check : function (_self, checked)
+                    {
+                           if (!_this.form) {
+                            return;
+                        }
+                        
+                            if (checked) {
+                        
+                             _this.form.findField('view_as').setValue('markdown');
+                         }
                         
+                         if (this.radio) {
+                            return;
                         }
-                    },
-                    text : "Save"
+                         var md = _this.form.findField('view_as_text');
+                    
+                        md.radio = true;
+                        md.setValue(checked ? 0 : 1);
+                        md.radio = false;
+                    }
+                  },
+                  xns : Roo.form,
+                  '|xns' : 'Roo.form'
+                 }
+                ]
+               }
+              ]
+             },
+             {
+              xtype : 'Column',
+              labelAlign : 'top',
+              width : 400,
+              listeners : {
+               render : function (_self)
+                {
+                  _this.descCol = _self;
+                },
+               show : function (_self)
+                {
+                
                 }
+              },
+              xns : Roo.form,
+              '|xns' : 'Roo.form',
+              items  : [
+               {
+                xtype : 'TextArea',
+                fieldLabel : _this._strings['b5a7adde1af5c87d7fd797b6245c2a39'] /* Description */,
+                height : 250,
+                name : 'description',
+                width : 400,
+                xns : Roo.form,
+                '|xns' : 'Roo.form'
+               }
+              ]
+             }
             ]
-        });
-    }
+           }
+          ]
+         },
+         {
+          xtype : 'Hidden',
+          name : 'id',
+          xns : Roo.form,
+          '|xns' : 'Roo.form'
+         },
+         {
+          xtype : 'Hidden',
+          name : 'view_as',
+          xns : Roo.form,
+          '|xns' : 'Roo.form'
+         }
+        ]
+       }
+      ]
+     }
+    ]
+   });
+ }
 };
index a1886a4..d468d33 100644 (file)
@@ -12,16 +12,16 @@ class Pman_MTrack_TestDayMail extends Pman_Core_Cli
     {
         return true;
     }
-    function get()
+    function get($base, $opts= array())
     {
-        
+        die("not used");
         echo '<style>' . file_get_contents(__DIR__ . '/templates/css/code.diff.css' ).
             '</style>';
         $r = DB_DataObject::factory('mtrack_repos');
         $r->find();
         while ($r->fetch()) {
             $p = DB_DAtaObject::factory('Person');
-            $p->whereAddIn('email', array('alan@roojs.com','chris@roojs.com'), 'string');
+            $p->whereAddIn('email', array('alan@roojs.com' ), 'string');
             foreach($p->fetchAll('id') as $pid) {
                 $cw = DB_DAtaObject::Factory('core_watch');
                 $cw->setFrom(array(
index 2a8d5af..c525575 100644 (file)
@@ -10,7 +10,7 @@ class Pman_MTrack_UserRepos extends Pman {
         return true;
         
     }
-    function get()
+    function get($base, $opts= array())
     {
         $au = DB_DataObject::Factory('Person');
         $au->company_id = $au->sqlValue("(SELECT id from Companies where  comptype='OWNER' LIMIT 1)");