From: Edward Date: Thu, 18 Jun 2015 04:21:22 +0000 (+0800) Subject: Pman.Tab.AdminTranslations.bjs X-Git-Url: http://git.roojs.org/?p=Pman.Admin;a=commitdiff_plain;h=40325921c01375733b1c38ba6704833cfdd54054 Pman.Tab.AdminTranslations.bjs Pman.Tab.AdminTranslations.js --- diff --git a/Pman.Tab.AdminTranslations.bjs b/Pman.Tab.AdminTranslations.bjs index 2fe6f76..db1c50d 100644 --- a/Pman.Tab.AdminTranslations.bjs +++ b/Pman.Tab.AdminTranslations.bjs @@ -1,391 +1,396 @@ { - "id": "roo-file-275", - "name": "Pman.Tab.AdminTranslations", - "parent": "Pman.Tab.Admin", - "title": "Admin - Translations", - "path": "/home/edward/gitlive/Pman.Admin/Pman.Tab.AdminTranslations.bjs", - "items": [ + "name" : "Pman.Tab.AdminTranslations", + "parent" : "Pman.Tab.Admin", + "title" : "Admin - Translations", + "path" : "/home/edward/gitlive/Pman.Admin/Pman.Tab.AdminTranslations.bjs", + "permname" : "Admin.Translations", + "modOrder" : "950", + "strings" : { + "0a52da7a03a6de3beefe54f8c03ad80d" : "Original", + "ae739a236065a45c64ad51aacb19498c" : "Active?", + "801ab24683a4a8c433c6eb40c48bcd9d" : "Download", + "e2ade2e0b88406a390f59b5232abb328" : "Translated (Click to Edit)", + "6dd08874f83507e9c7b23f1a46b7fa7c" : "Translation", + "83dad8107f9459efe2b4fabcf5b63108" : "Select Language", + "a1d1ae170f841c328acdc6052511ed8c" : "Text in interface", + "78463a384a5aa4fad5fa73e2f506ecfc" : "English", + "4e7c16d320ae129cc81b296e05748b3a" : "Translate App", + "526d688f37a86d3c3f27d0c5016eb71d" : "Reset", + "b51c3fa7e0ae26a1d88bf1279f265bb4" : "Select Module", + "49ee3087348e8d44e1feda1917443987" : "Name", + "552bcc4e00cd663f09cc4efbaca1cd45" : "Select Translation of", + "ca0dbad92a874b2f69b549293387925e" : "Code", + "0a9e8bd9e8b301dfb2c21c355e0b377d" : "Languages and Countries" + }, + "items" : [ + { + "region" : "center", + "xtype" : "NestedLayoutPanel", + "title" : "Translate App", + "$ xns" : "Roo", + "items" : [ + { + "xtype" : "BorderLayout", + "$ xns" : "Roo", + "* prop" : "layout", + "items" : [ + { + "alwaysShowTabs" : true, + "xtype" : "LayoutRegion", + "tabPosition" : "top", + "$ xns" : "Roo", + "* prop" : "center" + }, + { + "listeners" : { + "|activate" : "function() {\n _this.panel = this;\n if (_this.grid) {\n _this.grid.getDataSource().reload(); \n }\n}" + }, + "fitToframe" : true, + "background" : true, + "region" : "center", + "title" : "Text in interface", + "xtype" : "GridPanel", + "fitContainer" : true, + "$ 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": [ - { - "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 new Pman.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 Roo.MessageBox.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}", - "celldblclick": "function (_self, rowIndex, columnIndex, e)\n{\n var di = this.colModel.config[columnIndex].dataIndex;\n if (di != 'reset_tx') {\n return;\n }\n rec = this.ds.getAt(rowIndex);\n \n var g = _this.grid;\n \n new Pman.Request({\n url : baseURL + '/Admin/Translations.php',\n method: 'POST',\n params : {\n id : rec.get('id'),\n 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 rec.set('txt', '');\n },\n failure : function()\n {\n Roo.MessageBox.alert(\"Error\", \"There was a problem saving the data - try reloading\");\n // g.getView().el.unmask();\n }\n \n });\n \n \n}" - }, - "*prop": "grid", - "autoExpandColumn": "txt", - "clicksToEdit": 1, - "loadMask": true, - "xtype": "EditorGrid", - "|xns": "Roo.grid", - "items": [ - { - "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}", - "loadexception": "function (self, ret, load, jsonData)\n{\n Roo.MessageBox.alert(\"Error\", jsonData);\n}" - }, - "*prop": "dataSource", - "xtype": "Store", - "|reader": "Pman.Readers.Category", - "|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.' ] ]" - } - ] - }, - { - "|xns": "Roo.Toolbar", - "xtype": "Fill" - }, - { - "listeners": { - "click": "function (_self, e)\n{\n new Pman.Download({\n grid: _this.grid\n \n });\n}" - }, - "text": "Download", - "xtype": "Button", - "|xns": "Roo.Toolbar" - } - ] - }, - { - "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 '
' +r.get('tableid')+ ':' + v + '
'; }", - "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 '
' + Ext.util.Format.htmlEncode(v) + '
'; }", - "listeners": {}, - "|xns": "Roo.grid", - "*prop": "colModel[]" - }, - { - "*prop": "colModel[]", - "dataIndex": "reset_tx", - "header": "Reset", - "width": 50, - "xtype": "ColumnModel", - "|renderer": "function(v,x,r) { \n return '';\n}", - "|xns": "Roo.grid" - }, - { - "*prop": "colModel[]", - "dataIndex": "txt", - "header": "Translated (Click to Edit)", - "width": 150, - "xtype": "ColumnModel", - "|renderer": "function(v,x,r) { var c = '#666'; if (r.get('updated') < r.get('origupdated')) { c = 'red'; } return '
' + Ext.util.Format.htmlEncode(v) + '
'; }", - "|xns": "Roo.grid", - "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": "Languages and Countries", - "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}", - "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 + '/Roo/I18n.php',\n method: 'POST',\n params : {\n id : rec.get('id'),\n lval : rec.get('lval')\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}", - "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('lval').replace(/\\s+/, '').length) {\n return true;\n }\n \n \n var tl = _this.langgridCombo.getValue();\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('lval_en'), '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('lval',result);\n //_this.saveRec(rec);\n }\n\n //\n \n \n //console.log(result.translation);\n });\n \n \n \n return true;\n } ", - "cellclick": "function (_self, rowIndex, columnIndex, e)\n{\n if(_this.langgrid.colModel.getDataIndex(columnIndex) !== 'is_active'){\n return;\n }\n \n var s = _this.langgrid.ds.getAt(rowIndex);\n \n if(!s || s.data.id * 1 < 0){\n return;\n }\n \n s.set('is_active', s.data.is_active ? 0 : 1);\n \n new Pman.Request({\n url : baseURL+'/Roo/I18n',\n method : 'POST',\n params : {\n id : s.data.id,\n is_active : s.data.is_active\n }\n }); \n \n}" - }, - "*prop": "grid", - "autoExpandColumn": "lval", - "clicksToEdit": 1, - "loadMask": true, - "xtype": "EditorGrid", - "|xns": "Roo.grid", - "items": [ - { - "listeners": { - "beforeload": "function (_self, options)\n{\n options =options || {};\n options.params =options.params|| {};\n options.params.ltype = _this.langtypeCombo.getValue();\n options.params.inlang = _this.langgridCombo.getValue();\n options.params['query[_with_en]'] = 1;\n if (!options.params.ltype.length || !options.params.inlang.length) {\n return false;\n }\n \n options.params.limit = 9999;\n \n}" - }, - "*prop": "dataSource", - "remoteSort": true, - "xtype": "Store", - "|sortInfo": "{ field : 'lkey', 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": "toolbar", - "xtype": "Toolbar", - "|xns": "Roo", - "items": [ - { - "listeners": { - "|render": "function (_self)\n{\n _this.langtypeCombo = _self;\n}", - "|select": "function (combo, record, index)\n{\n _this.langgrid.getDataSource().reload(); \n}" - }, - "displayField": "lval", - "editable": false, - "emptyText": "Select Translation of", - "mode": "local", - "selectOnFocus": true, - "triggerAction": "all", - "typeAhead": false, - "valueField": "lkey", - "width": 200, - "xtype": "ComboBox", - "|xns": "Roo.form", - "items": [ - { - "*prop": "store", - "xtype": "SimpleStore", - "|data": "[\n [ 'l', 'Language Names' ],\n [ 'c', 'Country Names' ],\n [ 'm', 'Currency Names' ]\n]", - "|fields": "['lkey','lval']", - "|xns": "Roo.data" - } - ] - }, - { - "listeners": { - "|select": "function (combo, record, index)\n{\n _this.langgrid.getDataSource().reload(); \n}", - "|render": "function (_self)\n{\n _this.langgridCombo=_self;\n}" - }, - "displayField": "ldisp", - "editable": false, - "emptyText": "Select Language", - "mode": "local", - "selectOnFocus": true, - "triggerAction": "all", - "typeAhead": false, - "valueField": "lang", - "width": 200, - "xtype": "ComboBox", - "|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.' ] ]" - } - ] - } - ] - }, - { - "*prop": "colModel[]", - "dataIndex": "lkey", - "header": "Code", - "width": 50, - "xtype": "ColumnModel", - "|renderer": "function(v) { return String.format('{0}', v); }", - "|xns": "Roo.grid" - }, - { - "*prop": "colModel[]", - "dataIndex": "lval_en", - "header": "English", - "width": 150, - "xtype": "ColumnModel", - "|renderer": "function(v) { return String.format('{0}', v); }", - "|xns": "Roo.grid" - }, - { - "*prop": "colModel[]", - "dataIndex": "lval", - "header": "Translation", - "width": 200, - "xtype": "ColumnModel", - "|renderer": "function(v) { return String.format('{0}', v); }", - "|xns": "Roo.grid", - "items": [ - { - "xtype": "GridEditor", - "*prop": "editor", - "|xns": "Roo.grid", - "listeners": {}, - "items": [ - { - "xtype": "TextField", - "*prop": "field", - "|xns": "Roo.form", - "listeners": {} - } - ] - } - ] - }, - { - "*prop": "colModel[]", - "dataIndex": "is_active", - "header": "Active?", - "width": 150, - "xtype": "ColumnModel", - "|renderer": "function(v,x,r) { \n\n return '';\n \n \n}", - "|xns": "Roo.grid" - } - ] - } - ] - } - ] - } - ] + "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}", + "celldblclick" : "function (_self, rowIndex, columnIndex, e)\n{\n var di = this.colModel.config[columnIndex].dataIndex;\n if (di != 'reset_tx') {\n return;\n }\n rec = this.ds.getAt(rowIndex);\n \n var g = _this.grid;\n \n new Pman.Request({\n url : baseURL + '/Admin/Translations.php',\n method: 'POST',\n params : {\n id : rec.get('id'),\n 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 rec.set('txt', '');\n },\n failure : function()\n {\n Roo.MessageBox.alert(\"Error\", \"There was a problem saving the data - try reloading\");\n // g.getView().el.unmask();\n }\n \n });\n \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 new Pman.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 Roo.MessageBox.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}" + }, + "autoExpandColumn" : "txt", + "xtype" : "EditorGrid", + "loadMask" : true, + "clicksToEdit" : 1, + "$ xns" : "Roo.grid", + "* prop" : "grid", + "items" : [ + { + "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}", + "loadexception" : "function (self, ret, load, jsonData)\n{\n Roo.MessageBox.alert(\"Error\", jsonData);\n}" + }, + "xtype" : "Store", + "$ reader" : "Pman.Readers.Category", + "$ xns" : "Roo.data", + "* prop" : "dataSource", + "items" : [ + { + "$ url" : "baseURL + '/Admin/Translations.php'", + "method" : "GET", + "xtype" : "HttpProxy", + "$ xns" : "Roo.data", + "* prop" : "proxy" + }, + { + "id" : "id", + "root" : "data", + "xtype" : "JsonReader", + "$ xns" : "Roo.data", + "$ 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' ]", + "* prop" : "reader", + "totalProperty" : "total" + } + ] + }, + { + "xtype" : "Toolbar", + "$ xns" : "Roo", + "* prop" : "toolbar", + "items" : [ + { + "listeners" : { + "|render" : "function (_self)\n{\n _this.modCombo = _self;\n}", + "|select" : "function (combo, record, index)\n{\n _this.grid.getDataSource().reload(); \n}" + }, + "triggerAction" : "all", + "selectOnFocus" : true, + "displayField" : "module", + "xtype" : "ComboBox", + "valueField" : "module", + "emptyText" : "Select Module", + "typeAhead" : false, + "editable" : false, + "width" : 200, + "$ xns" : "Roo.form", + "mode" : "local", + "items" : [ + { + "| 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 })()", + "xtype" : "SimpleStore", + "$ fields" : "['module']", + "$ xns" : "Roo.data", + "* prop" : "store" + } + ] + }, + { + "listeners" : { + "|render" : "function (_self)\n{\n _this.langCombo=_self;\n}", + "|select" : "function (combo, record, index)\n{\n _this.grid.getDataSource().reload(); \n}" + }, + "triggerAction" : "all", + "selectOnFocus" : true, + "displayField" : "ldisp", + "xtype" : "ComboBox", + "valueField" : "lang", + "emptyText" : "Select Language", + "typeAhead" : false, + "editable" : false, + "width" : 200, + "$ xns" : "Roo.form", + "mode" : "local", + "items" : [ + { + "xtype" : "SimpleStore", + "$ data" : "[ [ 'zh_HK' , '\\u7E41\\u4E2D - Trad. Chin. (HK)' ], [ 'zh_CN', '\\u7C21\\u4E2D - Simp. Chin.' ] ]", + "$ xns" : "Roo.data", + "$ fields" : "['lang', 'ldisp']", + "* prop" : "store" + } + ] + }, + { + "xtype" : "Fill", + "$ xns" : "Roo.Toolbar" + }, + { + "listeners" : { + "click" : "function (_self, e)\n{\n new Pman.Download({\n grid: _this.grid\n \n });\n}" + }, + "text" : "Download", + "xtype" : "Button", + "$ xns" : "Roo.Toolbar" + } + ] + }, + { + "xtype" : "ColumnModel", + "width" : 150, + "header" : "Name", + "$ renderer" : "function(v,x,r) { var c = '#666'; if (r.get('updated') < r.get('origupdated')) { c = 'red'; } return '
' +r.get('tableid')+ ':' + v + '
'; }", + "$ xns" : "Roo.grid", + "* prop" : "colModel[]", + "dataIndex" : "colname" + }, + { + "xtype" : "ColumnModel", + "width" : 300, + "header" : "Original", + "$ renderer" : "function(v,x,r) { var c = '#666'; if (r.get('updated') < r.get('origupdated')) { c = 'red'; } return '
' + Ext.util.Format.htmlEncode(v) + '
'; }", + "$ xns" : "Roo.grid", + "* prop" : "colModel[]", + "dataIndex" : "origtxt" + }, + { + "xtype" : "ColumnModel", + "header" : "Reset", + "width" : 50, + "$ renderer" : "function(v,x,r) { \n return '';\n}", + "$ xns" : "Roo.grid", + "* prop" : "colModel[]", + "dataIndex" : "reset_tx" + }, + { + "xtype" : "ColumnModel", + "header" : "Translated (Click to Edit)", + "width" : 150, + "$ renderer" : "function(v,x,r) { var c = '#666'; if (r.get('updated') < r.get('origupdated')) { c = 'red'; } return '
' + Ext.util.Format.htmlEncode(v) + '
'; }", + "$ xns" : "Roo.grid", + "* prop" : "colModel[]", + "dataIndex" : "txt", + "items" : [ + { + "xtype" : "GridEditor", + "$ xns" : "Roo.grid", + "* prop" : "editor", + "items" : [ + { + "xtype" : "TextField", + "$ xns" : "Roo.form", + "* prop" : "field" + } + ] + } + ] + } + ] } - ], - "permname": "Admin.Translations", - "modOrder": "950" + ] + }, + { + "listeners" : { + "|activate" : "function() {\n _this.langpanel = this;\n if (_this.langgrid) {\n _this.langgrid.ds.load({});\n }\n}" + }, + "fitToframe" : true, + "background" : true, + "region" : "center", + "title" : "Languages and Countries", + "xtype" : "GridPanel", + "fitContainer" : true, + "$ xns" : "Roo", + "tableName" : "i18n", + "items" : [ + { + "listeners" : { + "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('lval').replace(/\\s+/, '').length) {\n return true;\n }\n \n \n var tl = _this.langgridCombo.getValue();\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('lval_en'), '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('lval',result);\n //_this.saveRec(rec);\n }\n\n //\n \n \n //console.log(result.translation);\n });\n \n \n \n return true;\n } ", + "|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}", + "cellclick" : "function (_self, rowIndex, columnIndex, e)\n{\n if(_this.langgrid.colModel.getDataIndex(columnIndex) !== 'is_active'){\n return;\n }\n \n var s = _this.langgrid.ds.getAt(rowIndex);\n \n if(!s || s.data.id * 1 < 0){\n return;\n }\n \n s.set('is_active', s.data.is_active ? 0 : 1);\n \n new Pman.Request({\n url : baseURL+'/Roo/I18n',\n method : 'POST',\n params : {\n id : s.data.id,\n is_active : s.data.is_active\n }\n }); \n \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 + '/Roo/I18n.php',\n method: 'POST',\n params : {\n id : rec.get('id'),\n lval : rec.get('lval')\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}" + }, + "autoExpandColumn" : "lval", + "xtype" : "EditorGrid", + "loadMask" : true, + "clicksToEdit" : 1, + "$ xns" : "Roo.grid", + "* prop" : "grid", + "items" : [ + { + "listeners" : { + "beforeload" : "function (_self, options)\n{\n options =options || {};\n options.params =options.params|| {};\n options.params.ltype = _this.langtypeCombo.getValue();\n options.params.inlang = _this.langgridCombo.getValue();\n options.params['query[_with_en]'] = 1;\n if (!options.params.ltype.length || !options.params.inlang.length) {\n return false;\n }\n \n options.params.limit = 9999;\n \n}" + }, + "xtype" : "Store", + "remoteSort" : true, + "$ sortInfo" : "{ field : 'lkey', direction: 'ASC' }", + "$ xns" : "Roo.data", + "* prop" : "dataSource", + "items" : [ + { + "$ url" : "baseURL + '/Roo/i18n.php'", + "method" : "GET", + "xtype" : "HttpProxy", + "$ xns" : "Roo.data", + "* prop" : "proxy" + }, + { + "id" : "id", + "root" : "data", + "xtype" : "JsonReader", + "$ xns" : "Roo.data", + "$ fields" : "[\n {\n 'name': 'id',\n 'type': 'int'\n },\n {\n 'name': '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" : "reader", + "totalProperty" : "total" + } + ] + }, + { + "xtype" : "Toolbar", + "$ xns" : "Roo", + "* prop" : "toolbar", + "items" : [ + { + "listeners" : { + "|render" : "function (_self)\n{\n _this.langtypeCombo = _self;\n}", + "|select" : "function (combo, record, index)\n{\n _this.langgrid.getDataSource().reload(); \n}" + }, + "triggerAction" : "all", + "selectOnFocus" : true, + "emptyText" : "Select Translation of", + "displayField" : "lval", + "valueField" : "lkey", + "xtype" : "ComboBox", + "typeAhead" : false, + "editable" : false, + "width" : 200, + "$ xns" : "Roo.form", + "mode" : "local", + "items" : [ + { + "xtype" : "SimpleStore", + "$ data" : "[\n [ 'l', 'Language Names' ],\n [ 'c', 'Country Names' ],\n [ 'm', 'Currency Names' ]\n]", + "$ fields" : "['lkey','lval']", + "$ xns" : "Roo.data", + "* prop" : "store" + } + ] + }, + { + "listeners" : { + "|render" : "function (_self)\n{\n _this.langgridCombo=_self;\n}", + "|select" : "function (combo, record, index)\n{\n _this.langgrid.getDataSource().reload(); \n}" + }, + "triggerAction" : "all", + "selectOnFocus" : true, + "emptyText" : "Select Language", + "displayField" : "ldisp", + "valueField" : "lang", + "xtype" : "ComboBox", + "typeAhead" : false, + "editable" : false, + "width" : 200, + "$ xns" : "Roo.form", + "mode" : "local", + "items" : [ + { + "xtype" : "SimpleStore", + "$ data" : "[ [ 'zh_HK' , '\\u7E41\\u4E2D - Trad. Chin. (HK)' ], [ 'zh_CN', '\\u7C21\\u4E2D - Simp. Chin.' ] ]", + "$ xns" : "Roo.data", + "$ fields" : "['lang', 'ldisp']", + "* prop" : "store" + } + ] + } + ] + }, + { + "xtype" : "ColumnModel", + "header" : "Code", + "width" : 50, + "$ renderer" : "function(v) { return String.format('{0}', v); }", + "$ xns" : "Roo.grid", + "* prop" : "colModel[]", + "dataIndex" : "lkey" + }, + { + "xtype" : "ColumnModel", + "header" : "English", + "width" : 150, + "$ renderer" : "function(v) { return String.format('{0}', v); }", + "$ xns" : "Roo.grid", + "* prop" : "colModel[]", + "dataIndex" : "lval_en" + }, + { + "xtype" : "ColumnModel", + "header" : "Translation", + "width" : 200, + "$ renderer" : "function(v) { return String.format('{0}', v); }", + "$ xns" : "Roo.grid", + "* prop" : "colModel[]", + "dataIndex" : "lval", + "items" : [ + { + "xtype" : "GridEditor", + "$ xns" : "Roo.grid", + "* prop" : "editor", + "items" : [ + { + "xtype" : "TextField", + "$ xns" : "Roo.form", + "* prop" : "field" + } + ] + } + ] + }, + { + "xtype" : "ColumnModel", + "header" : "Active?", + "width" : 150, + "$ renderer" : "function(v,x,r) { \n\n return '';\n \n \n}", + "$ xns" : "Roo.grid", + "* prop" : "colModel[]", + "dataIndex" : "is_active" + } + ] + } + ] + } + ] + } + ] + } + ] } \ No newline at end of file diff --git a/Pman.Tab.AdminTranslations.js b/Pman.Tab.AdminTranslations.js index 5a55600..e3824b3 100644 --- a/Pman.Tab.AdminTranslations.js +++ b/Pman.Tab.AdminTranslations.js @@ -2,659 +2,779 @@ // Auto generated file - created by app.Builder.js- do not edit directly (at present!) +Roo.namespace('Pman.Tab'); + Pman.Tab.AdminTranslations = new Roo.XComponent({ - part : ["Admin","Translations"], - order : '950-Pman.Tab.AdminTranslations', - region : 'center', - parent : 'Pman.Tab.Admin', - name : "Admin - Translations", - disabled : false, - permname : 'Admin.Translations', - _tree : function() - { - var _this = this; - var MODULE = this; - return { - xtype: 'NestedLayoutPanel', - xns: Roo, - region : 'center', - title : "Translate App", - layout : { - xtype: 'BorderLayout', - xns: Roo, - items : [ - { - xtype: 'GridPanel', - xns: Roo, - listeners : { - activate : function() { - _this.panel = this; - if (_this.grid) { - _this.grid.getDataSource().reload(); - } - } - }, - background : true, - fitContainer : true, - fitToframe : true, - region : 'center', - title : "Text in interface", - grid : { - xtype: 'EditorGrid', - xns: Roo.grid, - listeners : { - render : function() { - _this.grid = this; - //_this.dialog = Pman.Dialog.FILL_IN - if (_this.panel.active) { - _this.grid.getDataSource().reload(); - } - }, - beforeedit : function(e) { - console.log('beforeedit'); - //if (e.record.get('origtxt').indexOf('<') > -1) { - // console.log("HTML EDITOR!!"); - - // return false; - //} - if (e.record.get('txt').replace(/\s+/, '').length) { - return true; - } - if (e.record.get('suggest').length) { - e.record.set('txt', e.record.get('suggest')); - // _this.saveRec(e.record); - return; - } - - - - - var tl = e.record.get('id').split('/')[0]; - - tl = (tl == 'zh_HK') ? 'zh-TW' : tl; - tl = tl.replace('_', '-'); - var rec = e.record; - - - - Pman.gtranslate(e.record.get('origtxt'), 'en', tl, function(result) { - if (typeof(result) == 'object') { //error - return; - } - - if (_this.grid.activeEditor) { - _this.grid.activeEditor.setValue(result); - } else { - rec.set('txt',result); - //_this.saveRec(rec); - } - - // - - - //console.log(result.translation); - }); - - - - return true; - }, - afteredit : function (e) - { - var saveRec = function(rec) - { - var g = _this.grid; - - //g.getView().el.mask('Saving'); - new Pman.Request({ - url : baseURL + '/Admin/Translations.php', - method: 'POST', - params : { - id : rec.get('id'), - txt : rec.get('txt'), - lang : _this.langCombo.getValue(), - module : _this.modCombo.getValue() - }, - success : function() - { - //g.getView().el.unmask(); - //g.getDataSource().reload(); - }, - failure : function() - { - Roo.MessageBox.alert("Error", "There was a problem saving the data - try reloading"); - // g.getView().el.unmask(); - } - - }); - }; - - saveRec.defer(1000, _this, [ e.record ]); - }, - celldblclick : function (_self, rowIndex, columnIndex, e) - { - var di = this.colModel.config[columnIndex].dataIndex; - if (di != 'reset_tx') { - return; + + _strings : { + '0a52da7a03a6de3beefe54f8c03ad80d' :"Original", + 'ae739a236065a45c64ad51aacb19498c' :"Active?", + '801ab24683a4a8c433c6eb40c48bcd9d' :"Download", + 'e2ade2e0b88406a390f59b5232abb328' :"Translated (Click to Edit)", + '6dd08874f83507e9c7b23f1a46b7fa7c' :"Translation", + '83dad8107f9459efe2b4fabcf5b63108' :"Select Language", + 'a1d1ae170f841c328acdc6052511ed8c' :"Text in interface", + '78463a384a5aa4fad5fa73e2f506ecfc' :"English", + '4e7c16d320ae129cc81b296e05748b3a' :"Translate App", + '526d688f37a86d3c3f27d0c5016eb71d' :"Reset", + 'b51c3fa7e0ae26a1d88bf1279f265bb4' :"Select Module", + '49ee3087348e8d44e1feda1917443987' :"Name", + '552bcc4e00cd663f09cc4efbaca1cd45' :"Select Translation of", + 'ca0dbad92a874b2f69b549293387925e' :"Code", + '0a9e8bd9e8b301dfb2c21c355e0b377d' :"Languages and Countries" + }, + + part : ["Admin", "Translations" ], + order : '950-Pman.Tab.AdminTranslations', + region : 'center', + parent : 'Pman.Tab.Admin', + name : "Admin - Translations", + disabled : false, + permname : 'Admin.Translations', + _tree : function() + { + var _this = this; + var MODULE = this; + return { + layout : { + center : { + '|xns' : 'Roo', + alwaysShowTabs : true, + tabPosition : 'top', + xns : Roo, + xtype : 'LayoutRegion' + }, + '|xns' : 'Roo', + xns : Roo, + xtype : 'BorderLayout', + items : [ + { + grid : { + dataSource : { + proxy : { + '|xns' : 'Roo.data', + method : 'GET', + url : baseURL + '/Admin/Translations.php', + xns : Roo.data, + xtype : 'HttpProxy' + }, + reader : { + '|xns' : 'Roo.data', + 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' ], + id : 'id', + root : 'data', + totalProperty : 'total', + xns : Roo.data, + xtype : 'JsonReader' + }, + '|xns' : 'Roo.data', + reader : Pman.Readers.Category, + xns : Roo.data, + xtype : 'Store', + listeners : { + beforeload : function (_self, opts) + { + + if (!_this.langCombo || !_this.langCombo.getValue().length) { + return false; + } + if (!_this.modCombo || !_this.modCombo.getValue().length) { + return false; + } + opts.params = { + lang : _this.langCombo.getValue(), + module : _this.modCombo.getValue() + }; + }, + loadexception : function (self, ret, load, jsonData) + { + Roo.MessageBox.alert("Error", jsonData); + } + }, + items : [ + + ] + + }, + toolbar : { + '|xns' : 'Roo', + xns : Roo, + xtype : 'Toolbar', + items : [ + { + store : { + '|xns' : 'Roo.data', + data : (function() { + var modlist = []; + AppModules = typeof(AppModules) == 'undefined' ? '' : AppModules; + Roo.each( AppModules.split(','), function(mod) { + modlist.push( [ mod ] ); + }); + return modlist; + })(), + fields : ['module'], + xns : Roo.data, + xtype : 'SimpleStore' + }, + '|xns' : 'Roo.form', + displayField : 'module', + editable : false, + emptyText : _this._strings['b51c3fa7e0ae26a1d88bf1279f265bb4'], + mode : 'local', + selectOnFocus : true, + triggerAction : 'all', + typeAhead : false, + valueField : 'module', + width : 200, + xns : Roo.form, + xtype : 'ComboBox', + listeners : { + render : function (_self) + { + _this.modCombo = _self; + }, + select : function (combo, record, index) + { + _this.grid.getDataSource().reload(); + } + }, + items : [ + + ] + + }, + { + store : { + '|xns' : 'Roo.data', + data : [ [ 'zh_HK' , '\u7E41\u4E2D - Trad. Chin. (HK)' ], [ 'zh_CN', '\u7C21\u4E2D - Simp. Chin.' ] ], + fields : ['lang', 'ldisp'], + xns : Roo.data, + xtype : 'SimpleStore' + }, + '|xns' : 'Roo.form', + displayField : 'ldisp', + editable : false, + emptyText : _this._strings['83dad8107f9459efe2b4fabcf5b63108'], + mode : 'local', + selectOnFocus : true, + triggerAction : 'all', + typeAhead : false, + valueField : 'lang', + width : 200, + xns : Roo.form, + xtype : 'ComboBox', + listeners : { + render : function (_self) + { + _this.langCombo=_self; + }, + select : function (combo, record, index) + { + _this.grid.getDataSource().reload(); + } + }, + items : [ + + ] + + }, + { + '|xns' : 'Roo.Toolbar', + xns : Roo.Toolbar, + xtype : 'Fill' + }, + { + '|xns' : 'Roo.Toolbar', + text : _this._strings['801ab24683a4a8c433c6eb40c48bcd9d'], + xns : Roo.Toolbar, + xtype : 'Button', + listeners : { + click : function (_self, e) + { + new Pman.Download({ + grid: _this.grid + + }); + } + } + } + ] + + }, + '|xns' : 'Roo.grid', + autoExpandColumn : 'txt', + clicksToEdit : 1, + loadMask : true, + xns : Roo.grid, + xtype : 'EditorGrid', + colModel : [ + { + '|xns' : 'Roo.grid', + dataIndex : 'colname', + header : _this._strings['49ee3087348e8d44e1feda1917443987'], + renderer : function(v,x,r) { var c = '#666'; if (r.get('updated') < r.get('origupdated')) { c = 'red'; } return '
' +r.get('tableid')+ ':' + v + '
'; }, + width : 150, + xns : Roo.grid, + xtype : 'ColumnModel' + }, +{ + '|xns' : 'Roo.grid', + dataIndex : 'origtxt', + header : _this._strings['0a52da7a03a6de3beefe54f8c03ad80d'], + renderer : function(v,x,r) { var c = '#666'; if (r.get('updated') < r.get('origupdated')) { c = 'red'; } return '
' + Ext.util.Format.htmlEncode(v) + '
'; }, + width : 300, + xns : Roo.grid, + xtype : 'ColumnModel' + }, +{ + '|xns' : 'Roo.grid', + dataIndex : 'reset_tx', + header : _this._strings['526d688f37a86d3c3f27d0c5016eb71d'], + renderer : function(v,x,r) { + return ''; + }, + width : 50, + xns : Roo.grid, + xtype : 'ColumnModel' + }, +{ + editor : { + field : { + '|xns' : 'Roo.form', + xns : Roo.form, + xtype : 'TextField' + }, + '|xns' : 'Roo.grid', + xns : Roo.grid, + xtype : 'GridEditor', + items : [ + + ] + + }, + '|xns' : 'Roo.grid', + dataIndex : 'txt', + header : _this._strings['e2ade2e0b88406a390f59b5232abb328'], + renderer : function(v,x,r) { var c = '#666'; if (r.get('updated') < r.get('origupdated')) { c = 'red'; } return '
' + Ext.util.Format.htmlEncode(v) + '
'; }, + width : 150, + xns : Roo.grid, + xtype : 'ColumnModel', + items : [ + + ] + + } + ], + listeners : { + afteredit : function (e) + { + var saveRec = function(rec) + { + var g = _this.grid; + + //g.getView().el.mask('Saving'); + new Pman.Request({ + url : baseURL + '/Admin/Translations.php', + method: 'POST', + params : { + id : rec.get('id'), + txt : rec.get('txt'), + lang : _this.langCombo.getValue(), + module : _this.modCombo.getValue() + }, + success : function() + { + //g.getView().el.unmask(); + //g.getDataSource().reload(); + }, + failure : function() + { + Roo.MessageBox.alert("Error", "There was a problem saving the data - try reloading"); + // g.getView().el.unmask(); + } + + }); + }; + + saveRec.defer(1000, _this, [ e.record ]); + }, + beforeedit : function(e) { + console.log('beforeedit'); + //if (e.record.get('origtxt').indexOf('<') > -1) { + // console.log("HTML EDITOR!!"); + + // return false; + //} + if (e.record.get('txt').replace(/\s+/, '').length) { + return true; + } + if (e.record.get('suggest').length) { + e.record.set('txt', e.record.get('suggest')); + // _this.saveRec(e.record); + return; + } + + + + + var tl = e.record.get('id').split('/')[0]; + + tl = (tl == 'zh_HK') ? 'zh-TW' : tl; + tl = tl.replace('_', '-'); + var rec = e.record; + + + + Pman.gtranslate(e.record.get('origtxt'), 'en', tl, function(result) { + if (typeof(result) == 'object') { //error + return; } - rec = this.ds.getAt(rowIndex); - - var g = _this.grid; - new Pman.Request({ - url : baseURL + '/Admin/Translations.php', - method: 'POST', - params : { - id : rec.get('id'), - txt : '', - lang : _this.langCombo.getValue(), - module : _this.modCombo.getValue() - }, - success : function() - { - //g.getView().el.unmask(); - //g.getDataSource().reload(); - rec.set('txt', ''); - }, - failure : function() - { - Roo.MessageBox.alert("Error", "There was a problem saving the data - try reloading"); - // g.getView().el.unmask(); - } - - }); - - - } - }, - autoExpandColumn : 'txt', - clicksToEdit : 1, - loadMask : true, - dataSource : { - xtype: 'Store', - xns: Roo.data, - listeners : { - beforeload : function (_self, opts) - { - - if (!_this.langCombo || !_this.langCombo.getValue().length) { - return false; - } - if (!_this.modCombo || !_this.modCombo.getValue().length) { - return false; - } - opts.params = { - lang : _this.langCombo.getValue(), - module : _this.modCombo.getValue() - }; - }, - loadexception : function (self, ret, load, jsonData) - { - Roo.MessageBox.alert("Error", jsonData); - } - }, - reader : Pman.Readers.Category, - proxy : { - xtype: 'HttpProxy', - xns: Roo.data, - method : 'GET', - url : baseURL + '/Admin/Translations.php' - }, - reader : { - xtype: 'JsonReader', - xns: Roo.data, - 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' ] - } - }, - toolbar : { - xtype: 'Toolbar', - xns: Roo, - items : [ - { - xtype: 'ComboBox', - xns: Roo.form, - listeners : { - render : function (_self) - { - _this.modCombo = _self; - }, - select : function (combo, record, index) - { - _this.grid.getDataSource().reload(); - } - }, - valueField : 'module', - displayField : 'module', - width : 200, - typeAhead : false, - editable : false, - mode : 'local', - triggerAction : 'all', - emptyText : "Select Module", - selectOnFocus : true, - store : { - xtype: 'SimpleStore', - xns: Roo.data, - data : (function() { - var modlist = []; - AppModules = typeof(AppModules) == 'undefined' ? '' : AppModules; - Roo.each( AppModules.split(','), function(mod) { - modlist.push( [ mod ] ); - }); - return modlist; - })(), - fields : ['module'] - } - }, - { - xtype: 'ComboBox', - xns: Roo.form, - listeners : { - select : function (combo, record, index) - { - _this.grid.getDataSource().reload(); - }, - render : function (_self) - { - _this.langCombo=_self; - } - }, - valueField : 'lang', - displayField : 'ldisp', - width : 200, - typeAhead : false, - editable : false, - mode : 'local', - triggerAction : 'all', - emptyText : "Select Language", - selectOnFocus : true, - store : { - xtype: 'SimpleStore', - xns: Roo.data, - fields : ['lang', 'ldisp'], - data : [ [ 'zh_HK' , '\u7E41\u4E2D - Trad. Chin. (HK)' ], [ 'zh_CN', '\u7C21\u4E2D - Simp. Chin.' ] ] - } - }, - { - xtype: 'Fill', - xns: Roo.Toolbar - }, - { - xtype: 'Button', - xns: Roo.Toolbar, - listeners : { - click : function (_self, e) - { - new Pman.Download({ - grid: _this.grid - - }); - } - }, - text : "Download" - } - ] - }, - colModel : [ - { - xtype: 'ColumnModel', - xns: Roo.grid, - header : 'Name', - width : 150, - dataIndex : 'colname', - renderer : function(v,x,r) { var c = '#666'; if (r.get('updated') < r.get('origupdated')) { c = 'red'; } return '
' +r.get('tableid')+ ':' + v + '
'; } - }, - { - xtype: 'ColumnModel', - xns: Roo.grid, - header : 'Original', - width : 300, - dataIndex : 'origtxt', - renderer : function(v,x,r) { var c = '#666'; if (r.get('updated') < r.get('origupdated')) { c = 'red'; } return '
' + Ext.util.Format.htmlEncode(v) + '
'; } - }, - { - xtype: 'ColumnModel', - xns: Roo.grid, - dataIndex : 'reset_tx', - header : 'Reset', - width : 50, - renderer : function(v,x,r) { - return ''; - } - }, - { - xtype: 'ColumnModel', - xns: Roo.grid, - dataIndex : 'txt', - header : 'Translated (Click to Edit)', - width : 150, - renderer : function(v,x,r) { var c = '#666'; if (r.get('updated') < r.get('origupdated')) { c = 'red'; } return '
' + Ext.util.Format.htmlEncode(v) + '
'; }, - editor : { - xtype: 'GridEditor', - xns: Roo.grid, - field : { - xtype: 'TextField', - xns: Roo.form - } - } - } - ] - } - }, - { - xtype: 'GridPanel', - xns: Roo, - listeners : { - activate : function() { - _this.langpanel = this; - if (_this.langgrid) { - _this.langgrid.ds.load({}); - } + if (_this.grid.activeEditor) { + _this.grid.activeEditor.setValue(result); + } else { + rec.set('txt',result); + //_this.saveRec(rec); + } + + // + + + //console.log(result.translation); + }); + + + + return true; + }, + celldblclick : function (_self, rowIndex, columnIndex, e) + { + var di = this.colModel.config[columnIndex].dataIndex; + if (di != 'reset_tx') { + return; + } + rec = this.ds.getAt(rowIndex); + + var g = _this.grid; + + new Pman.Request({ + url : baseURL + '/Admin/Translations.php', + method: 'POST', + params : { + id : rec.get('id'), + txt : '', + lang : _this.langCombo.getValue(), + module : _this.modCombo.getValue() + }, + success : function() + { + //g.getView().el.unmask(); + //g.getDataSource().reload(); + rec.set('txt', ''); + }, + failure : function() + { + Roo.MessageBox.alert("Error", "There was a problem saving the data - try reloading"); + // g.getView().el.unmask(); + } + + }); + + + }, + render : function() { + _this.grid = this; + //_this.dialog = Pman.Dialog.FILL_IN + if (_this.panel.active) { + _this.grid.getDataSource().reload(); + } + } + }, + items : [ + + ] + + }, + '|xns' : 'Roo', + background : true, + fitContainer : true, + fitToframe : true, + region : 'center', + title : _this._strings['a1d1ae170f841c328acdc6052511ed8c'], + xns : Roo, + xtype : 'GridPanel', + listeners : { + activate : function() { + _this.panel = this; + if (_this.grid) { + _this.grid.getDataSource().reload(); + } + } + }, + items : [ + + ] + + }, + { + grid : { + dataSource : { + proxy : { + '|xns' : 'Roo.data', + method : 'GET', + url : baseURL + '/Roo/i18n.php', + xns : Roo.data, + xtype : 'HttpProxy' + }, + reader : { + '|xns' : 'Roo.data', + fields : [ + { + 'name': 'id', + 'type': 'int' + }, + { + 'name': 'ltype', + 'type': 'string' + }, + { + 'name': 'lkey', + 'type': 'string' + }, + { + 'name': 'inlang', + 'type': 'string' + }, + { + 'name': 'lval', + 'type': 'string' + } + ], + id : 'id', + root : 'data', + totalProperty : 'total', + xns : Roo.data, + xtype : 'JsonReader' + }, + '|xns' : 'Roo.data', + remoteSort : true, + sortInfo : { field : 'lkey', direction: 'ASC' }, + xns : Roo.data, + xtype : 'Store', + listeners : { + beforeload : function (_self, options) + { + options =options || {}; + options.params =options.params|| {}; + options.params.ltype = _this.langtypeCombo.getValue(); + options.params.inlang = _this.langgridCombo.getValue(); + options.params['query[_with_en]'] = 1; + if (!options.params.ltype.length || !options.params.inlang.length) { + return false; + } + + options.params.limit = 9999; + + } + }, + items : [ + + ] + + }, + toolbar : { + '|xns' : 'Roo', + xns : Roo, + xtype : 'Toolbar', + items : [ + { + store : { + '|xns' : 'Roo.data', + data : [ + [ 'l', 'Language Names' ], + [ 'c', 'Country Names' ], + [ 'm', 'Currency Names' ] + ], + fields : ['lkey','lval'], + xns : Roo.data, + xtype : 'SimpleStore' + }, + '|xns' : 'Roo.form', + displayField : 'lval', + editable : false, + emptyText : _this._strings['552bcc4e00cd663f09cc4efbaca1cd45'], + mode : 'local', + selectOnFocus : true, + triggerAction : 'all', + typeAhead : false, + valueField : 'lkey', + width : 200, + xns : Roo.form, + xtype : 'ComboBox', + listeners : { + render : function (_self) + { + _this.langtypeCombo = _self; + }, + select : function (combo, record, index) + { + _this.langgrid.getDataSource().reload(); + } + }, + items : [ + + ] + + }, + { + store : { + '|xns' : 'Roo.data', + data : [ [ 'zh_HK' , '\u7E41\u4E2D - Trad. Chin. (HK)' ], [ 'zh_CN', '\u7C21\u4E2D - Simp. Chin.' ] ], + fields : ['lang', 'ldisp'], + xns : Roo.data, + xtype : 'SimpleStore' + }, + '|xns' : 'Roo.form', + displayField : 'ldisp', + editable : false, + emptyText : _this._strings['83dad8107f9459efe2b4fabcf5b63108'], + mode : 'local', + selectOnFocus : true, + triggerAction : 'all', + typeAhead : false, + valueField : 'lang', + width : 200, + xns : Roo.form, + xtype : 'ComboBox', + listeners : { + render : function (_self) + { + _this.langgridCombo=_self; + }, + select : function (combo, record, index) + { + _this.langgrid.getDataSource().reload(); + } + }, + items : [ + + ] + + } + ] + + }, + '|xns' : 'Roo.grid', + autoExpandColumn : 'lval', + clicksToEdit : 1, + loadMask : true, + xns : Roo.grid, + xtype : 'EditorGrid', + colModel : [ + { + '|xns' : 'Roo.grid', + dataIndex : 'lkey', + header : _this._strings['ca0dbad92a874b2f69b549293387925e'], + renderer : function(v) { return String.format('{0}', v); }, + width : 50, + xns : Roo.grid, + xtype : 'ColumnModel' + }, +{ + '|xns' : 'Roo.grid', + dataIndex : 'lval_en', + header : _this._strings['78463a384a5aa4fad5fa73e2f506ecfc'], + renderer : function(v) { return String.format('{0}', v); }, + width : 150, + xns : Roo.grid, + xtype : 'ColumnModel' + }, +{ + editor : { + field : { + '|xns' : 'Roo.form', + xns : Roo.form, + xtype : 'TextField' + }, + '|xns' : 'Roo.grid', + xns : Roo.grid, + xtype : 'GridEditor', + items : [ + + ] + + }, + '|xns' : 'Roo.grid', + dataIndex : 'lval', + header : _this._strings['6dd08874f83507e9c7b23f1a46b7fa7c'], + renderer : function(v) { return String.format('{0}', v); }, + width : 200, + xns : Roo.grid, + xtype : 'ColumnModel', + items : [ + + ] + + }, +{ + '|xns' : 'Roo.grid', + dataIndex : 'is_active', + header : _this._strings['ae739a236065a45c64ad51aacb19498c'], + renderer : function(v,x,r) { + + return ''; + + + }, + width : 150, + xns : Roo.grid, + xtype : 'ColumnModel' + } + ], + listeners : { + afteredit : function (e) + { + var saveRec = function(rec) + { + var g = _this.grid; + + //g.getView().el.mask('Saving'); + Ext.Ajax.request({ + url : baseURL + '/Roo/I18n.php', + method: 'POST', + params : { + id : rec.get('id'), + lval : rec.get('lval') + }, + success : function() + { + //g.getView().el.unmask(); + //g.getDataSource().reload(); + }, + failure : function() + { + Ext.Msg.alert("Error", "There was a problem saving the data - try reloading"); + // g.getView().el.unmask(); + } + + }); + }; + + saveRec.defer(1000, _this, [ e.record ]); + }, + beforeedit : function(e) { + console.log('beforeedit'); + //if (e.record.get('origtxt').indexOf('<') > -1) { + // console.log("HTML EDITOR!!"); + + // return false; + //} + if (e.record.get('lval').replace(/\s+/, '').length) { + return true; + } + + + var tl = _this.langgridCombo.getValue(); + + tl = (tl == 'zh_HK') ? 'zh-TW' : tl; + tl = tl.replace('_', '-'); + var rec = e.record; + + + + Pman.gtranslate(e.record.get('lval_en'), 'en', tl, function(result) { + if (typeof(result) == 'object') { //error + return; } - }, - background : true, - fitContainer : true, - fitToframe : true, - region : 'center', - tableName : 'i18n', - title : "Languages and Countries", - grid : { - xtype: 'EditorGrid', - xns: Roo.grid, - listeners : { - render : function() - { - _this.langgrid = this; - //_this.dialog = Pman.Dialog.FILL_IN - if (_this.langpanel.active) { - this.ds.load({}); - } - }, - afteredit : function (e) - { - var saveRec = function(rec) - { - var g = _this.grid; - - //g.getView().el.mask('Saving'); - Ext.Ajax.request({ - url : baseURL + '/Roo/I18n.php', - method: 'POST', - params : { - id : rec.get('id'), - lval : rec.get('lval') - }, - success : function() - { - //g.getView().el.unmask(); - //g.getDataSource().reload(); - }, - failure : function() - { - Ext.Msg.alert("Error", "There was a problem saving the data - try reloading"); - // g.getView().el.unmask(); - } - - }); - }; - - saveRec.defer(1000, _this, [ e.record ]); - }, - beforeedit : function(e) { - console.log('beforeedit'); - //if (e.record.get('origtxt').indexOf('<') > -1) { - // console.log("HTML EDITOR!!"); - - // return false; - //} - if (e.record.get('lval').replace(/\s+/, '').length) { - return true; - } - - - var tl = _this.langgridCombo.getValue(); - - tl = (tl == 'zh_HK') ? 'zh-TW' : tl; - tl = tl.replace('_', '-'); - var rec = e.record; - - - - Pman.gtranslate(e.record.get('lval_en'), 'en', tl, function(result) { - if (typeof(result) == 'object') { //error - return; - } - - if (_this.grid.activeEditor) { - _this.grid.activeEditor.setValue(result); - } else { - rec.set('lval',result); - //_this.saveRec(rec); - } - - // - - - //console.log(result.translation); - }); - - - - return true; - }, - cellclick : function (_self, rowIndex, columnIndex, e) - { - if(_this.langgrid.colModel.getDataIndex(columnIndex) !== 'is_active'){ - return; - } - - var s = _this.langgrid.ds.getAt(rowIndex); - - if(!s || s.data.id * 1 < 0){ - return; - } - - s.set('is_active', s.data.is_active ? 0 : 1); - - new Pman.Request({ - url : baseURL+'/Roo/I18n', - method : 'POST', - params : { - id : s.data.id, - is_active : s.data.is_active - } - }); - - } - }, - autoExpandColumn : 'lval', - clicksToEdit : 1, - loadMask : true, - dataSource : { - xtype: 'Store', - xns: Roo.data, - listeners : { - beforeload : function (_self, options) - { - options =options || {}; - options.params =options.params|| {}; - options.params.ltype = _this.langtypeCombo.getValue(); - options.params.inlang = _this.langgridCombo.getValue(); - options.params['query[_with_en]'] = 1; - if (!options.params.ltype.length || !options.params.inlang.length) { - return false; - } - - options.params.limit = 9999; - - } - }, - remoteSort : true, - sortInfo : { field : 'lkey', direction: 'ASC' }, - proxy : { - xtype: 'HttpProxy', - xns: Roo.data, - method : 'GET', - url : baseURL + '/Roo/i18n.php' - }, - reader : { - xtype: 'JsonReader', - xns: Roo.data, - totalProperty : 'total', - root : 'data', - id : 'id', - fields : [ - { - 'name': 'id', - 'type': 'int' - }, - { - 'name': 'ltype', - 'type': 'string' - }, - { - 'name': 'lkey', - 'type': 'string' - }, - { - 'name': 'inlang', - 'type': 'string' - }, - { - 'name': 'lval', - 'type': 'string' - } - ] - } - }, - toolbar : { - xtype: 'Toolbar', - xns: Roo, - items : [ - { - xtype: 'ComboBox', - xns: Roo.form, - listeners : { - render : function (_self) - { - _this.langtypeCombo = _self; - }, - select : function (combo, record, index) - { - _this.langgrid.getDataSource().reload(); - } - }, - displayField : 'lval', - editable : false, - emptyText : "Select Translation of", - mode : 'local', - selectOnFocus : true, - triggerAction : 'all', - typeAhead : false, - valueField : 'lkey', - width : 200, - store : { - xtype: 'SimpleStore', - xns: Roo.data, - data : [ - [ 'l', 'Language Names' ], - [ 'c', 'Country Names' ], - [ 'm', 'Currency Names' ] - ], - fields : ['lkey','lval'] - } - }, - { - xtype: 'ComboBox', - xns: Roo.form, - listeners : { - select : function (combo, record, index) - { - _this.langgrid.getDataSource().reload(); - }, - render : function (_self) - { - _this.langgridCombo=_self; - } - }, - displayField : 'ldisp', - editable : false, - emptyText : "Select Language", - mode : 'local', - selectOnFocus : true, - triggerAction : 'all', - typeAhead : false, - valueField : 'lang', - width : 200, - store : { - xtype: 'SimpleStore', - xns: Roo.data, - fields : ['lang', 'ldisp'], - data : [ [ 'zh_HK' , '\u7E41\u4E2D - Trad. Chin. (HK)' ], [ 'zh_CN', '\u7C21\u4E2D - Simp. Chin.' ] ] - } - } - ] - }, - colModel : [ - { - xtype: 'ColumnModel', - xns: Roo.grid, - dataIndex : 'lkey', - header : 'Code', - width : 50, - renderer : function(v) { return String.format('{0}', v); } - }, - { - xtype: 'ColumnModel', - xns: Roo.grid, - dataIndex : 'lval_en', - header : 'English', - width : 150, - renderer : function(v) { return String.format('{0}', v); } - }, - { - xtype: 'ColumnModel', - xns: Roo.grid, - dataIndex : 'lval', - header : 'Translation', - width : 200, - renderer : function(v) { return String.format('{0}', v); }, - editor : { - xtype: 'GridEditor', - xns: Roo.grid, - field : { - xtype: 'TextField', - xns: Roo.form - } - } - }, - { - xtype: 'ColumnModel', - xns: Roo.grid, - dataIndex : 'is_active', - header : 'Active?', - width : 150, - renderer : function(v,x,r) { - - return ''; - - - } - } - ] - } - } - ], - center : { - xtype: 'LayoutRegion', - xns: Roo, - alwaysShowTabs : true, - tabPosition : 'top' - } + + if (_this.grid.activeEditor) { + _this.grid.activeEditor.setValue(result); + } else { + rec.set('lval',result); + //_this.saveRec(rec); + } + + // + + + //console.log(result.translation); + }); + + + + return true; + }, + cellclick : function (_self, rowIndex, columnIndex, e) + { + if(_this.langgrid.colModel.getDataIndex(columnIndex) !== 'is_active'){ + return; + } + + var s = _this.langgrid.ds.getAt(rowIndex); + + if(!s || s.data.id * 1 < 0){ + return; + } + + s.set('is_active', s.data.is_active ? 0 : 1); + + new Pman.Request({ + url : baseURL+'/Roo/I18n', + method : 'POST', + params : { + id : s.data.id, + is_active : s.data.is_active + } + }); + + }, + render : function() + { + _this.langgrid = this; + //_this.dialog = Pman.Dialog.FILL_IN + if (_this.langpanel.active) { + this.ds.load({}); + } + } + }, + items : [ + + ] + + }, + '|xns' : 'Roo', + background : true, + fitContainer : true, + fitToframe : true, + region : 'center', + tableName : 'i18n', + title : _this._strings['0a9e8bd9e8b301dfb2c21c355e0b377d'], + xns : Roo, + xtype : 'GridPanel', + listeners : { + activate : function() { + _this.langpanel = this; + if (_this.langgrid) { + _this.langgrid.ds.load({}); } - }; - } + } + }, + items : [ + + ] + + } + ] + + }, + '|xns' : 'Roo', + region : 'center', + title : _this._strings['4e7c16d320ae129cc81b296e05748b3a'], + xns : Roo, + xtype : 'NestedLayoutPanel', + items : [ + + ] + + }; } });