{
- "id": "roo-file-56",
- "name": "Pman.Tab.AdminTranslations",
- "parent": "Pman.Tab.Admin",
- "title": "Admin - Translations",
- "path": "/home/alan/gitlive/Pman.Admin/Pman.Tab.AdminTranslations.bjs",
- "items": [
+ "items" : [
+ {
+ "$ xns" : "Roo",
+ "items" : [
+ {
+ "$ xns" : "Roo",
+ "* prop" : "layout",
+ "items" : [
+ {
+ "$ xns" : "Roo",
+ "* prop" : "west",
+ "split" : true,
+ "width" : 450,
+ "xtype" : "LayoutRegion"
+ },
+ {
+ "$ xns" : "Roo",
+ "* prop" : "center",
+ "xtype" : "LayoutRegion"
+ },
+ {
+ "$ xns" : "Roo",
+ "items" : [
{
- "region": "center",
- "title": "Translate App",
- "xtype": "NestedLayoutPanel",
- "|xns": "Roo",
- "items": [
- {
- "|xns": "Roo",
- "xtype": "BorderLayout",
- "*prop": "layout",
- "items": [
- {
- "*prop": "center",
- "alwaysShowTabs": true,
- "tabPosition": "top",
- "xtype": "LayoutRegion",
- "|xns": "Roo"
- },
- {
- "listeners": {
- "|activate": "function() {\n _this.panel = this;\n if (_this.grid) {\n _this.grid.getDataSource().reload(); \n }\n}"
- },
- "background": true,
- "fitContainer": true,
- "fitToframe": true,
- "region": "center",
- "title": "Text in interface",
- "xtype": "GridPanel",
- "|xns": "Roo",
- "items": [
- {
- "*prop": "grid",
- "xtype": "EditorGrid",
- "autoExpandColumn": "txt",
- "loadMask": true,
- "listeners": {
- "|render": "function() { \n _this.grid = this; \n //_this.dialog = Pman.Dialog.FILL_IN\n if (_this.panel.active) {\n _this.grid.getDataSource().reload(); \n }\n}",
- "|beforeedit": "function(e) {\n console.log('beforeedit');\n //if (e.record.get('origtxt').indexOf('<') > -1) {\n // console.log(\"HTML EDITOR!!\");\n \n // return false;\n //}\n if (e.record.get('txt').replace(/\\s+/, '').length) {\n return true;\n }\n if (e.record.get('suggest').length) {\n e.record.set('txt', e.record.get('suggest'));\n // _this.saveRec(e.record);\n return;\n }\n \n \n \n \n var tl = e.record.get('id').split('/')[0];\n \n tl = (tl == 'zh_HK') ? 'zh-TW' : tl; \n tl = tl.replace('_', '-');\n var rec = e.record;\n \n \n \n Pman.gtranslate(e.record.get('origtxt'), 'en', tl, function(result) { \n if (typeof(result) == 'object') { //error\n return; \n }\n \n if (_this.grid.activeEditor) {\n _this.grid.activeEditor.setValue(result);\n } else {\n rec.set('txt',result);\n //_this.saveRec(rec);\n }\n\n //\n \n \n //console.log(result.translation);\n });\n \n \n \n return true;\n } ",
- "|afteredit": "function (e)\n{\n var saveRec = function(rec)\n {\n var g = _this.grid;\n\n //g.getView().el.mask('Saving');\n Ext.Ajax.request({\n url : baseURL + '/Admin/Translations.php',\n method: 'POST',\n params : {\n id : rec.get('id'),\n txt : rec.get('txt'),\n lang : _this.langCombo.getValue(),\n module : _this.modCombo.getValue()\n },\n success : function()\n {\n //g.getView().el.unmask();\n //g.getDataSource().reload();\n },\n failure : function()\n {\n Ext.Msg.alert(\"Error\", \"There was a problem saving the data - try reloading\");\n // g.getView().el.unmask();\n }\n \n });\n };\n \n saveRec.defer(1000, _this, [ e.record ]);\n}"
- },
- "clicksToEdit": 1,
- "|xns": "Roo.grid",
- "items": [
- {
- "*prop": "dataSource",
- "xtype": "Store",
- "|reader": "Pman.Readers.Category",
- "listeners": {
- "|beforeload": "function (_self, opts)\n{\n\n if (!_this.langCombo || !_this.langCombo.getValue().length) {\n return false;\n }\n if (!_this.modCombo || !_this.modCombo.getValue().length) {\n return false;\n }\n opts.params = {\n lang : _this.langCombo.getValue(),\n module : _this.modCombo.getValue()\n };\n}"
- },
- "|xns": "Roo.data",
- "items": [
- {
- "*prop": "proxy",
- "xtype": "HttpProxy",
- "method": "GET",
- "|url": "baseURL + '/Admin/Translations.php'",
- "listeners": {},
- "|xns": "Roo.data"
- },
- {
- "xtype": "JsonReader",
- "|xns": "Roo.data",
- "*prop": "reader",
- "root": "data",
- "totalProperty": "total",
- "id": "id",
- "|fields": "[ 'id', 'tablename', 'tableid', 'colname', 'txt', 'lang', { name:'updated', type:'date', dateFormat: 'Y-m-d H:i:s' }, { name:'origupdated', type:'date', dateFormat: 'Y-m-d H:i:s' }, 'origtxt', 'msum', 'suggest' ]",
- "listeners": {}
- }
- ]
- },
- {
- "*prop": "toolbar",
- "xtype": "Toolbar",
- "listeners": {},
- "|xns": "Roo",
- "items": [
- {
- "xtype": "ComboBox",
- "listeners": {
- "|render": "function (_self)\n{\n _this.modCombo = _self;\n}",
- "|select": "function (combo, record, index)\n{\n _this.grid.getDataSource().reload(); \n}"
- },
- "valueField": "module",
- "displayField": "module",
- "width": 200,
- "typeAhead": false,
- "editable": false,
- "mode": "local",
- "triggerAction": "all",
- "emptyText": "Select Module",
- "selectOnFocus": true,
- "|xns": "Roo.form",
- "items": [
- {
- "*prop": "store",
- "xtype": "SimpleStore",
- "|data": "(function() { \n var modlist = []; \n AppModules = typeof(AppModules) == 'undefined' ? [] : AppModules;\n Roo.each( AppModules.split(','), function(mod) { \n modlist.push( [ mod ] ); \n }); \n return modlist;\n })()",
- "|fields": "['module']",
- "|xns": "Roo.data"
- }
- ]
- },
- {
- "xtype": "ComboBox",
- "listeners": {
- "|select": "function (combo, record, index)\n{\n _this.grid.getDataSource().reload(); \n}",
- "|render": "function (_self)\n{\n _this.langCombo=_self;\n}"
- },
- "valueField": "lang",
- "displayField": "ldisp",
- "width": 200,
- "typeAhead": false,
- "editable": false,
- "mode": "local",
- "triggerAction": "all",
- "emptyText": "Select Language",
- "selectOnFocus": true,
- "|xns": "Roo.form",
- "items": [
- {
- "xtype": "SimpleStore",
- "|xns": "Roo.data",
- "*prop": "store",
- "listeners": {},
- "|fields": "['lang', 'ldisp']",
- "|data": "[ [ 'zh_HK' , '\\u7E41\\u4E2D - Trad. Chin. (HK)' ], [ 'zh_CN', '\\u7C21\\u4E2D - Simp. Chin.' ] ]"
- }
- ]
- }
- ]
- },
- {
- "xtype": "ColumnModel",
- "header": "Name",
- "width": 150,
- "dataIndex": "colname",
- "|renderer": "function(v,x,r) { var c = '#666'; if (r.get('updated') < r.get('origupdated')) { c = 'red'; } return '<div style=\"color:'+c+'\";>' +r.get('tableid')+ ':' + v + '</div>'; }",
- "listeners": {},
- "|xns": "Roo.grid",
- "*prop": "colModel[]"
- },
- {
- "xtype": "ColumnModel",
- "header": "Original",
- "width": 300,
- "dataIndex": "origtxt",
- "|renderer": "function(v,x,r) { var c = '#666'; if (r.get('updated') < r.get('origupdated')) { c = 'red'; } return '<div style=\"color:' + c+ '\">' + Ext.util.Format.htmlEncode(v) + '</div>'; }",
- "listeners": {},
- "|xns": "Roo.grid",
- "*prop": "colModel[]"
- },
- {
- "xtype": "ColumnModel",
- "header": "Translated (Click to Edit)",
- "width": 150,
- "dataIndex": "txt",
- "|renderer": "function(v,x,r) { var c = '#666'; if (r.get('updated') < r.get('origupdated')) { c = 'red'; } return '<div style=\"color:' + c+ '\">' + Ext.util.Format.htmlEncode(v) + '</div>'; }",
- "listeners": {},
- "|xns": "Roo.grid",
- "*prop": "colModel[]",
- "items": [
- {
- "xtype": "GridEditor",
- "*prop": "editor",
- "|xns": "Roo.grid",
- "listeners": {},
- "items": [
- {
- "xtype": "TextField",
- "*prop": "field",
- "|xns": "Roo.form",
- "listeners": {}
- }
- ]
- }
- ]
- }
- ]
- }
- ]
- },
- {
- "listeners": {
- "|activate": "function() {\n _this.langpanel = this;\n if (_this.langgrid) {\n _this.langgrid.ds.load({});\n }\n}"
- },
- "background": true,
- "fitContainer": true,
- "fitToframe": true,
- "region": "center",
- "tableName": "i18n",
- "title": "i18n",
- "xtype": "GridPanel",
- "|xns": "Roo",
- "items": [
- {
- "listeners": {
- "|render": "function() \n{\n _this.langgrid = this; \n //_this.dialog = Pman.Dialog.FILL_IN\n if (_this.langpanel.active) {\n this.ds.load({});\n }\n}",
- "|rowdblclick": "function (_self, rowIndex, e)\n{\n if (!_this.dialog) return;\n _this.dialog.show( this.getDataSource().getAt(rowIndex), function() {\n _this.grid.footer.onClick('first');\n }); \n}\n"
- },
- "*prop": "grid",
- "autoExpandColumn": "ltype",
- "loadMask": true,
- "xtype": "Grid",
- "|xns": "Roo.grid",
- "items": [
- {
- "*prop": "dataSource",
- "xtype": "Store",
- "remoteSort": true,
- "|sortInfo": "{ field : 'ltype', direction: 'ASC' }",
- "|xns": "Roo.data",
- "items": [
- {
- "*prop": "proxy",
- "xtype": "HttpProxy",
- "method": "GET",
- "|url": "baseURL + '/Roo/i18n.php'",
- "|xns": "Roo.data"
- },
- {
- "|xns": "Roo.data",
- "xtype": "JsonReader",
- "totalProperty": "total",
- "root": "data",
- "*prop": "reader",
- "id": "id",
- "|fields": "[\n {\n 'name': 'id',\n 'type': 'int'\n },\n {\n 'name': 'ltype',\n 'type': 'string'\n },\n {\n 'name': 'lkey',\n 'type': 'string'\n },\n {\n 'name': 'inlang',\n 'type': 'string'\n },\n {\n 'name': 'lval',\n 'type': 'string'\n }\n]"
- }
- ]
- },
- {
- "*prop": "footer",
- "xtype": "PagingToolbar",
- "pageSize": 25,
- "displayInfo": true,
- "displayMsg": "Displaying i18n{0} - {1} of {2}",
- "emptyMsg": "No i18n found",
- "|xns": "Roo"
- },
- {
- "*prop": "toolbar",
- "xtype": "Toolbar",
- "|xns": "Roo",
- "items": [
- {
- "text": "Add",
- "xtype": "Button",
- "cls": "x-btn-text-icon",
- "|icon": "Roo.rootURL + 'images/default/dd/drop-add.gif'",
- "listeners": {
- "|click": "function()\n{\n if (!_this.dialog) return;\n _this.dialog.show( { id : 0 } , function() {\n _this.grid.footer.onClick('first');\n }); \n}\n"
- },
- "|xns": "Roo.Toolbar"
- },
- {
- "text": "Edit",
- "xtype": "Button",
- "cls": "x-btn-text-icon",
- "|icon": "Roo.rootURL + 'images/default/tree/leaf.gif'",
- "listeners": {
- "|click": "function()\n{\n var s = _this.grid.getSelectionModel().getSelections();\n if (!s.length || (s.length > 1)) {\n Roo.MessageBox.alert(\"Error\", s.length ? \"Select only one Row\" : \"Select a Row\");\n return;\n }\n if (!_this.dialog) return;\n _this.dialog.show(s[0].data, function() {\n _this.grid.footer.onClick('first');\n }); \n \n}\n"
- },
- "|xns": "Roo.Toolbar"
- },
- {
- "text": "Delete",
- "cls": "x-btn-text-icon",
- "|icon": "rootURL + '/Pman/templates/images/trash.gif'",
- "xtype": "Button",
- "listeners": {
- "|click": "function()\n{\n Pman.genericDelete(_this, 'i18n'); \n}\n "
- },
- "|xns": "Roo.Toolbar"
- }
- ]
- },
- {
- "xtype": "ColumnModel",
- "header": "Id",
- "width": 75,
- "dataIndex": "id",
- "|renderer": "function(v) { return String.format('{0}', v); }",
- "|xns": "Roo.grid",
- "*prop": "colModel[]"
- },
- {
- "xtype": "ColumnModel",
- "header": "Ltype",
- "width": 200,
- "dataIndex": "ltype",
- "|renderer": "function(v) { return String.format('{0}', v); }",
- "|xns": "Roo.grid",
- "*prop": "colModel[]"
- },
- {
- "xtype": "ColumnModel",
- "header": "Lkey",
- "width": 200,
- "dataIndex": "lkey",
- "|renderer": "function(v) { return String.format('{0}', v); }",
- "|xns": "Roo.grid",
- "*prop": "colModel[]"
- },
- {
- "xtype": "ColumnModel",
- "header": "Inlang",
- "width": 200,
- "dataIndex": "inlang",
- "|renderer": "function(v) { return String.format('{0}', v); }",
- "|xns": "Roo.grid",
- "*prop": "colModel[]"
- },
- {
- "xtype": "ColumnModel",
- "header": "Lval",
- "width": 200,
- "dataIndex": "lval",
- "|renderer": "function(v) { return String.format('{0}', v); }",
- "|xns": "Roo.grid",
- "*prop": "colModel[]"
- }
- ]
- }
- ]
- }
- ]
- }
+ "$ xns" : "Roo",
+ "* prop" : "toolbar",
+ "items" : [
+ {
+ "$ xns" : "Roo.Toolbar",
+ "listeners" : {
+ "click" : [
+ "function (_self, e)",
+ "{",
+ " Pman.Dialog.AdminLanguagePick.show( { }, function(lang) {",
+ " ",
+ " new Pman.Request({",
+ " url : baseURL + '/Roo/core_templatestr',",
+ " method : 'POST',",
+ " params : {",
+ " _rescan : lang",
+ " }, ",
+ " success : function()",
+ " {",
+ " _this.treepanel.tree.getRootNode().reload();",
+ " }",
+ " });",
+ " ",
+ " });",
+ " ",
+ "}"
]
+ },
+ "text" : "New",
+ "xtype" : "Button"
+ },
+ {
+ "$ xns" : "Roo.Toolbar",
+ "xtype" : "Separator"
+ },
+ {
+ "$ xns" : "Roo.Toolbar",
+ "listeners" : {
+ "click" : [
+ "function (_self, e)",
+ "{",
+ " var tree = _this.treepanel.tree;",
+ " var sn = tree.getSelectionModel().getSelectedNode();",
+ "",
+ " if (!sn || typeof(sn.attributes.language) == 'undefined' || !sn.attributes.language) {",
+ " Roo.MessageBox.alert(\"Error\", \"Select a language\");",
+ " return;",
+ " }",
+ "",
+ " Roo.MessageBox.confirm(\"Confirm\", \"Are sure you want to delete the language\", function (v){",
+ " if (v != 'yes') {",
+ " return;",
+ " }",
+ " Roo.MessageBox.alert(\"Not yet\", \"not done yet\");",
+ " return;",
+ " ",
+ " ",
+ " ",
+ " ",
+ " });",
+ "}"
+ ]
+ },
+ "text" : "Delete",
+ "xtype" : "Button"
+ },
+ {
+ "$ xns" : "Roo.Toolbar",
+ "xtype" : "Separator"
+ },
+ {
+ "$ xns" : "Roo.Toolbar",
+ "listeners" : {
+ "click" : [
+ "function (_self, e)",
+ "{",
+ " var tree = _this.treepanel.tree;",
+ " Roo.log(tree);",
+ " var sn = tree.getSelectionModel().getSelectedNode();",
+ "",
+ " if (!sn) {",
+ " Roo.MessageBox.alert(\"Error\", \"Select a node\");",
+ " return;",
+ " }",
+ " ",
+ " ",
+ " var steps = [ ",
+ " 'scanProjectBJS',",
+ " 'scanPmanBJS',",
+ " 'scanPmanTemplates',",
+ " 'scanTables',",
+ " 'syncLanguage' ",
+ " ];",
+ " ",
+ " ",
+ " var syncTemplate = function(){",
+ " ",
+ " var step = steps.shift();",
+ " Roo.MessageBox.updateProgress( (5.0 - steps.length) / 5.0, \"Running \" + step);",
+ " ",
+ " new Pman.Request({",
+ " url : baseURL + '/Admin/UpdateBjsTemplates/' + step,",
+ " method : 'GET',",
+ " //mask : 'Processing...',",
+ " timeout : 9000000,",
+ " success : function()",
+ " {",
+ " if (steps.length > 0 ) { ",
+ " syncTemplate();",
+ " return;",
+ " }",
+ " Roo.MessageBox.hide();",
+ " _this.treepanel.tree.getRootNode().reload();",
+ " }",
+ " });",
+ " ",
+ " };",
+ " ",
+ " ",
+ " var syncLanguage = function(){",
+ " new Pman.Request({",
+ " url : baseURL + '/Roo/Core_templatestr',",
+ " method : 'POST',",
+ " mask : 'Processing...',",
+ " params : {",
+ " _rescan : sn.attributes.id.split(':')[1]",
+ " }, ",
+ " success : function()",
+ " {",
+ " _this.treepanel.tree.getRootNode().reload();",
+ " }",
+ " });",
+ " };",
+ " ",
+ " var syncSingleTemplate = function(id){",
+ " new Pman.Request({",
+ " url : baseURL + '/Roo/Core_template',",
+ " method : 'POST',",
+ " mask : 'Processing...',",
+ " params : {",
+ " id : id,",
+ " _rescan : 1",
+ " }, ",
+ " success : function()",
+ " {",
+ " (function() {",
+ " _this.grid.footer.onClick('first');",
+ " }).defer(100);",
+ " }",
+ " });",
+ " };",
+ " ",
+ " ",
+ " if(typeof(sn.isRoot) != 'undefined' && sn.isRoot){",
+ " Roo.MessageBox.progress(\"Syncing templates\", \"Starting\");",
+ " syncTemplate();",
+ " return;",
+ " }",
+ " ",
+ " if(typeof(sn.attributes.language) != 'undefined' && sn.attributes.language){",
+ " syncLanguage();",
+ " return;",
+ " }",
+ " ",
+ " if(typeof(sn.attributes.id) != 'undefined' && sn.attributes.id * 1> 0){",
+ " syncSingleTemplate(sn.attributes.id);",
+ " return;",
+ " }",
+ " ",
+ " ",
+ " ",
+ " ",
+ "}"
+ ]
+ },
+ "text" : "Rescan",
+ "xtype" : "Button"
+ },
+ {
+ "$ xns" : "Roo.Toolbar",
+ "xtype" : "Fill"
+ },
+ {
+ "$ xns" : "Roo.Toolbar",
+ "listeners" : {
+ "click" : [
+ "function (_self, e)",
+ "{",
+ " ",
+ " ",
+ " Pman.Dialog.Image.show({",
+ " _url : baseURL + '/Admin/Import/Core_templatestr' ",
+ " ",
+ " }, function() {",
+ " _this.treepanel.tree.getRootNode().reload();",
+ " });",
+ " ",
+ " ",
+ " ",
+ "}"
+ ]
+ },
+ "text" : "Upload",
+ "xtype" : "Button"
+ },
+ {
+ "$ xns" : "Roo.Toolbar",
+ "xtype" : "Fill"
+ },
+ {
+ "$ xns" : "Roo.Toolbar",
+ "listeners" : {
+ "click" : [
+ "function (_self, e)",
+ "{",
+ " var tree = _this.treepanel.tree;",
+ "",
+ " var sn = tree.getSelectionModel().getSelectedNode();",
+ " ",
+ " p = {",
+ " csvCols : 'src_id_mdsum,template_id_view_name,template_id_template,src_id_txt,lang,txt',",
+ " csvTitles : 'Code,Module,Template,Original,Language,Translation',",
+ " limit : 9999,",
+ " sort: 'template_id_view_name,template_id_template,src_id_txt',",
+ " dir: 'ASC',",
+ " active : 1",
+ " };",
+ " if (!sn || sn.id == 'transtree') {",
+ " Roo.MessageBox.alert(\"Error\", \"Select language, module or page\");",
+ " return;",
+ " }",
+ " if (typeof(sn.id) == 'number') {",
+ " p.template_id = sn.id;",
+ "",
+ " }",
+ " ",
+ " ",
+ " if (typeof(sn.id) == 'string' && sn.id.match(/^table:/)) {",
+ " var sns = sn.id.split(':');",
+ " p.lang = sns[1];",
+ " p.on_table = sns[2];",
+ " p.csvCols = 'src_id_mdsum,on_table,on_id,on_col,src_id_txt,lang,txt';",
+ " p.csvTitles = 'Code,Table,Table id,Column,Language,Translation';",
+ " }",
+ " ",
+ " if (typeof(sn.id) == 'string' && sn.id.match(/^view:/)) {",
+ " var sns = sn.id.split(':');",
+ " p.lang = sns[1];",
+ " p.template_id_view_name = sns[2];",
+ " ",
+ " }",
+ " if (typeof(sn.id) == 'string' && sn.id.match(/^lang:/)) {",
+ " var sns = sn.id.split(':');",
+ " p.lang = sns[1];",
+ "",
+ " }",
+ " // transtree",
+ " // view: {lang} : {view_name}",
+ " // lang:",
+ " ",
+ " new Pman.Download({",
+ " url : baseURL + '/Roo/Core_templatestr',",
+ " params : p,",
+ " method : 'GET' ",
+ " });",
+ " ",
+ " ",
+ " ",
+ " ",
+ " ",
+ "}"
+ ]
+ },
+ "text" : "Download",
+ "xtype" : "Button"
+ },
+ {
+ "$ xns" : "Roo.Toolbar",
+ "xtype" : "Separator"
+ },
+ {
+ "$ xns" : "Roo.Toolbar",
+ "listeners" : {
+ "click" : [
+ "function (_self, e)",
+ "{",
+ " _this.treepanel.tree.getRootNode().reload();",
+ " ",
+ "}"
+ ]
+ },
+ "text" : "Reload",
+ "xtype" : "Button"
+ }
+ ],
+ "xtype" : "Toolbar"
+ },
+ {
+ "$ xns" : "Roo.tree",
+ "* prop" : "tree",
+ "containerScroll" : false,
+ "items" : [
+ {
+ "$ baseParams" : "{ _tree : 1 }",
+ "$ dataUrl" : "baseURL + '/Roo/Core_templatestr'",
+ "$ xns" : "Roo.tree",
+ "* prop" : "loader",
+ "listeners" : {
+ "beforeload" : [
+ "function (This, node, callback)",
+ "{",
+ " // set some params.",
+ " Roo.log(node);",
+ " this.baseParams._tree = 1;",
+ " ",
+ " //this.baseParams.category = node.attributes.category;",
+ "}"
+ ],
+ "loadexception" : [
+ "function (This, node, response)",
+ "{",
+ " Roo.MessageBox.alert(\"Error\", \"Problem loading tree\");",
+ "}"
+ ]
+ },
+ "requestMethod" : "GET",
+ "xtype" : "TreeLoader"
+ },
+ {
+ "$ xns" : "Roo.tree",
+ "* prop" : "root",
+ "id" : "transtree",
+ "text" : "Translations (rescan this to update strings)",
+ "xtype" : "AsyncTreeNode"
+ },
+ {
+ "$ xns" : "Roo.tree",
+ "* prop" : "selModel",
+ "listeners" : {
+ "selectionchange" : [
+ "function (_self, node)",
+ "{",
+ " Roo.log(node);",
+ " ",
+ " //if (node.id.split('/').length < 2) {",
+ " // return;",
+ " // }",
+ " (function() {",
+ " _this.grid.footer.onClick('first');",
+ " }).defer(100);",
+ " ",
+ "}"
+ ]
+ },
+ "xtype" : "DefaultSelectionModel"
+ }
+ ],
+ "rootVisible" : true,
+ "xtype" : "TreePanel"
+ }
+ ],
+ "listeners" : {
+ "render" : [
+ "function (_self)",
+ "{",
+ " _this.treepanel = _self;",
+ "}"
+ ]
+ },
+ "region" : "west",
+ "xtype" : "TreePanel"
+ },
+ {
+ "$ xns" : "Roo",
+ "background" : false,
+ "fitContainer" : true,
+ "fitToframe" : true,
+ "items" : [
+ {
+ "$ xns" : "Roo.grid",
+ "* prop" : "grid",
+ "autoExpandColumn" : "txt",
+ "clicksToEdit" : 1,
+ "items" : [
+ {
+ "$ xns" : "Roo",
+ "* prop" : "toolbar",
+ "items" : [
+ {
+ "$ xns" : "Roo.form",
+ "String emptyText" : "Search for",
+ "listeners" : {
+ "render" : [
+ "function (_self)",
+ "{",
+ " _this.searchBox = this;",
+ "}"
+ ],
+ "specialkey" : [
+ "function (_self, e)",
+ "{",
+ "_this.grid.footer.onClick('first');",
+ "}"
+ ]
+ },
+ "xtype" : "TextField"
+ },
+ {
+ "$ icon" : "rootURL + '/Pman/templates/images/search.gif'",
+ "$ xns" : "Roo.Toolbar",
+ "cls" : "x-btn-icon",
+ "listeners" : {
+ "|click" : [
+ "function (_self, e)",
+ "{",
+ "_this.grid.footer.onClick('first');",
+ "}"
+ ]
+ },
+ "xtype" : "Button"
+ },
+ {
+ "$ icon" : "rootURL + '/Pman/templates/images/edit-clear.gif'",
+ "$ xns" : "Roo.Toolbar",
+ "cls" : "x-btn-icon",
+ "listeners" : {
+ "|click" : [
+ "function (_self, e)",
+ "{",
+ " _this.searchBox.setValue('');",
+ " ",
+ " _this.grid.footer.onClick('first');",
+ "}"
+ ]
+ },
+ "xtype" : "Button"
+ }
+ ],
+ "xtype" : "Toolbar"
+ },
+ {
+ "$ xns" : "Roo",
+ "* prop" : "footer",
+ "displayInfo" : true,
+ "displayMsg" : "Displaying petition_entry{0} - {1} of {2}",
+ "emptyMsg" : "Not Found",
+ "pageSize" : 100,
+ "xtype" : "PagingToolbar"
+ },
+ {
+ "$ sortInfo" : "{ field : 'src_id_txt', direction: 'ASC' }",
+ "$ xns" : "Roo.data",
+ "* prop" : "dataSource",
+ "items" : [
+ {
+ "$ url" : "baseURL + '/Roo/Core_templatestr.php'",
+ "$ xns" : "Roo.data",
+ "* prop" : "proxy",
+ "method" : "GET",
+ "xtype" : "HttpProxy"
+ },
+ {
+ "$ fields" : [
+ "[",
+ " {",
+ " 'name': 'id',",
+ " 'type': 'int'",
+ " },",
+ " {",
+ " 'name': 'shortname',",
+ " 'type': 'string'",
+ " }",
+ " ",
+ "]"
+ ],
+ "$ xns" : "Roo.data",
+ "* prop" : "reader",
+ "id" : "id",
+ "root" : "data",
+ "totalProperty" : "total",
+ "xtype" : "JsonReader"
+ }
+ ],
+ "listeners" : {
+ "beforeload" : [
+ "function (_self, o)",
+ "{",
+ " ",
+ " var sn = _this.treepanel.tree.getSelectionModel().getSelectedNode();",
+ "",
+ " if (!sn || typeof(sn.attributes) == 'undefined' || typeof(sn.attributes.leaf) == 'undefined' || !sn.attributes.leaf) { ",
+ " _this.grid.ds.removeAll();",
+ " return false;",
+ " }",
+ "",
+ " o.params = o.params || {};",
+ " o.params.lang = sn.parentNode.attributes.id.split(':')[1];",
+ " ",
+ " o.params.active = 1;",
+ " o.params['!src_id'] = 0;",
+ " ",
+ " if (_this.searchBox && _this.searchBox.getValue().length) { ",
+ " o.params['_search_txt'] = _this.searchBox.getValue();",
+ " }",
+ " ",
+ " ",
+ " if(sn.attributes.on_table){",
+ " o.params.on_table = sn.attributes.on_table;",
+ " } else {",
+ " o.params.template_id = sn.attributes.id * 1;",
+ " }",
+ " ",
+ "}",
+ "",
+ "",
+ ""
+ ],
+ "update" : [
+ "function (_self, rec, operation)",
+ "{",
+ " Roo.log(operation);",
+ " ",
+ " if (operation != 'commit') {",
+ " return;",
+ " }",
+ " ",
+ "",
+ " _this.grid.getView().el.mask(\"Saving\");",
+ " new Pman.Request({",
+ " url : baseURL + '/Roo/Core_templatestr',",
+ " method: 'POST',",
+ " params : {",
+ " id : rec.get('id'),",
+ " txt : rec.get('txt')",
+ " },",
+ " success : function()",
+ " {",
+ " _this.grid.getView().el.unmask();",
+ " //g.getDataSource().reload();",
+ " },",
+ " failure : function()",
+ " {",
+ " _this.grid.getView().el.unmask();",
+ " Roo.MessageBox.alert(\"Error\", \"There was a problem saving the data - try reloading\");",
+ " }",
+ " ",
+ " });",
+ " ",
+ "}"
+ ]
+ },
+ "remoteSort" : true,
+ "xtype" : "Store"
+ },
+ {
+ "$ renderer" : [
+ "function(v,x,r) ",
+ "{",
+ " var c = '#666';",
+ " if (r.data.updated < r.data.src_id_updated) {",
+ " c = 'red';",
+ " }",
+ " ",
+ " return String.format('<div style=\"color:'+c+'\";>{0}</div>', v)",
+ "",
+ "}"
+ ],
+ "$ xns" : "Roo.grid",
+ "* prop" : "cm[]",
+ "dataIndex" : "src_id_txt",
+ "header" : "Original",
+ "width" : 300,
+ "xtype" : "ColumnModel"
+ },
+ {
+ "$ renderer" : [
+ "function(v,x,r) ",
+ "{ ",
+ "",
+ " var c = '#666';",
+ " if (r.data.updated < r.data.src_id_updated) {",
+ " c = 'red';",
+ " }",
+ " ",
+ " return String.format('<div style=\"color:'+c+'\";>{0}</div>', v)",
+ "",
+ "}"
+ ],
+ "$ xns" : "Roo.grid",
+ "* prop" : "cm[]",
+ "dataIndex" : "txt",
+ "header" : "Translation",
+ "items" : [
+ {
+ "$ xns" : "Roo.grid",
+ "* prop" : "editor",
+ "items" : [
+ {
+ "$ xns" : "Roo.form",
+ "* prop" : "field",
+ "allowBlank" : false,
+ "xtype" : "TextField"
+ }
+ ],
+ "xtype" : "GridEditor"
+ }
+ ],
+ "width" : 200,
+ "xtype" : "ColumnModel"
+ },
+ {
+ "$ renderer" : [
+ "function(v,x,r) ",
+ "{",
+ " return v ? v : '';",
+ "",
+ "}"
+ ],
+ "$ xns" : "Roo.grid",
+ "* prop" : "cm[]",
+ "Boolean hidden" : true,
+ "dataIndex" : "src_id_mdsum",
+ "header" : "md5",
+ "width" : 250,
+ "xtype" : "ColumnModel"
+ }
+ ],
+ "listeners" : {
+ "afteredit" : [
+ "function (e)",
+ "{",
+ " e.record.commit();",
+ "}"
+ ],
+ "beforeedit" : [
+ "function (e)",
+ "{ ",
+ " /*if (e.record.data.src_id_txt.indexOf('<') > -1) {",
+ " // console.log(\"HTML EDITOR!!\");",
+ " Pman.Dialog.CmsTranslateEditor.show(e.record);",
+ " return false;",
+ " }*/",
+ " ",
+ " var str=e.record.data.src_id_txt;",
+ " var patt=/{(.*?)}/g;",
+ " ",
+ " Roo.log(str.length);",
+ " ",
+ " ",
+ " if(patt.test(str)){",
+ " e.cancel = true;",
+ " Pman.Dialog.AdminTranslateTemplates.show(e.record.data, function(v){",
+ " Roo.log(v);",
+ " e.value = v.txt;",
+ " e.record.set('txt', v.txt);",
+ " e.record.commit();",
+ " });",
+ " /*",
+ " Roo.MessageBox.prompt('WARNING', 'This text is with {TEMPLATE VARIABLE}, PLEASE BE CAREFUL EDITING. What\\'s change? '+str, function(btn, text){",
+ " if (btn == 'ok'){",
+ " e.value = text;",
+ " e.record.set('txt', text);",
+ " e.record.commit();",
+ " }",
+ " });*/",
+ " return;",
+ " }",
+ " ",
+ " if(str.length > 150){",
+ " e.cancel = true;",
+ " Pman.Dialog.AdminTranslateTemplates.show(e.record.data, function(v){",
+ " e.value = v.txt;",
+ " e.record.set('txt', v.txt);",
+ " e.record.commit();",
+ " });",
+ " /*",
+ " Roo.MessageBox.prompt('WARNING', 'This text is with {TEMPLATE VARIABLE}, PLEASE BE CAREFUL EDITING. What\\'s change? '+str, function(btn, text){",
+ " if (btn == 'ok'){",
+ " e.value = text;",
+ " e.record.set('txt', text);",
+ " e.record.commit();",
+ " }",
+ " });*/",
+ " return;",
+ " }",
+ " ",
+ "",
+ " if (e.record.data.txt.replace(/\\s+/, '').length) {",
+ " return true;",
+ " }",
+ " ",
+ " var tl = _this.treepanel.tree.getSelectionModel().getSelectedNode().parentNode.attributes.id;",
+ " // mapping?",
+ " ",
+ " tl = (tl == 'zh_HK') ? 'zh-TW' : tl;",
+ " ",
+ " if (tl == 'en' && !e.value.length) {",
+ "",
+ " e.value = e.record.data.src_id_txt;",
+ " e.record.set('txt', e.record.data.src_id_txt);",
+ " return true;",
+ " }",
+ " ",
+ " Pman.GoogleTranslate(e.record.data.src_id_txt, \"en\", tl, function(result) {",
+ " // Roo.log(result);",
+ " _this.grid.activeEditor.setValue(result);",
+ " //console.log(result.translation);",
+ " });",
+ " ",
+ "",
+ " ",
+ " return true;",
+ "}"
+ ],
+ "|render" : [
+ "function() ",
+ "{",
+ " _this.grid = this; ",
+ " //_this.dialog = Pman.Dialog.FILL_IN",
+ " if (_this.panel.active) {",
+ " this.footer.onClick('first');",
+ " // this.ds.onc.onClick('first');",
+ " }",
+ "}"
+ ],
+ "|rowdblclick" : [
+ "function (_self, rowIndex, e)",
+ "{",
+ " if (!_this.dialog) {",
+ " return;",
+ " }",
+ " _this.dialog.show( this.getDataSource().getAt(rowIndex).data, function() {",
+ " _this.grid.footer.onClick('first');",
+ " }); ",
+ "}",
+ ""
+ ]
+ },
+ "loadMask" : true,
+ "xtype" : "EditorGrid"
}
- ],
- "permname": "Admin.Translations",
- "modOrder": "950"
+ ],
+ "listeners" : {
+ "|activate" : [
+ "function() {",
+ " _this.panel = this;",
+ " if (_this.grid) {",
+ " _this.grid.footer.onClick('first');",
+ " }",
+ "}"
+ ]
+ },
+ "region" : "center",
+ "tableName" : "Page",
+ "title" : "Page",
+ "xtype" : "GridPanel"
+ }
+ ],
+ "xtype" : "BorderLayout"
+ }
+ ],
+ "region" : "center",
+ "title" : "Application Words",
+ "xtype" : "NestedLayoutPanel"
+ }
+ ],
+ "modOrder" : "950",
+ "name" : "Pman.Tab.AdminTranslations",
+ "parent" : "Pman.Tab.AdminTranslationsInt",
+ "path" : "/home/alan/gitlive/Pman.Admin/Pman.Tab.AdminTranslations.bjs",
+ "permname" : "Admin.Translations",
+ "strings" : {
+ "03c2e7e41ffc181a4e84080b4710e81e" : "New",
+ "07a1d316d1065473f290c3c2b72a80f3" : "Application Words",
+ "0a52da7a03a6de3beefe54f8c03ad80d" : "Original",
+ "193cfc9be3b995831c6af2fea6650e60" : "Page",
+ "1bc29b36f623ba82aaf6724fd3b16718" : "md5",
+ "4d1c8263ba1036754f8db14a98f9f006" : "Reload",
+ "69fd71b6f79260924a32a45850a13ab7" : "Translations (rescan this to update strings)",
+ "6dd08874f83507e9c7b23f1a46b7fa7c" : "Translation",
+ "801ab24683a4a8c433c6eb40c48bcd9d" : "Download",
+ "91412465ea9169dfd901dd5e7c96dd99" : "Upload",
+ "9d1ead73e678fa2f51a70a933b0bf017" : "Not Found",
+ "cd6ae20e52d83f601c5fa12b66f0f6d0" : "Rescan",
+ "e2f9d206562d8f5ea421ad51100f7151" : "Displaying petition_entry{0} - {1} of {2}",
+ "e3d388b2c43e5ba0905702620ae2abc1" : "Search for",
+ "f2a6c498fb90ee345d997f888fce3b18" : "Delete"
+ },
+ "title" : "Admin - Translations"
}
\ No newline at end of file