{
- "name" : "Pman.Dialog.AdminEnumType",
- "parent" : "",
- "title" : "",
- "path" : "/home/michael/gitlive/Pman.Admin/Pman.Dialog.AdminEnumType.bjs",
- "permname" : "",
- "modOrder" : "001",
- "items" : [
+ "name" : "Pman.Dialog.AdminEnumType",
+ "parent" : "",
+ "title" : "",
+ "path" : "/home/alan/gitlive/Pman.Admin/Pman.Dialog.AdminEnumType.bjs",
+ "permname" : "",
+ "modOrder" : "001",
+ "strings" : {
+ "7dce122004969d56ae2e0245cb754d35" : "Edit",
+ "b48968e1c912da07df5e8d6d246291ec" : "Display Name",
+ "ea4788705e6873b424c65e91c2846b19" : "Cancel",
+ "49ee3087348e8d44e1feda1917443987" : "Name",
+ "c9cc8cce247e49bae79f15173ce97354" : "Save"
+ },
+ "named_strings" : {
+ "display_name_fieldLabel" : "b48968e1c912da07df5e8d6d246291ec",
+ "name_fieldLabel" : "49ee3087348e8d44e1feda1917443987"
+ },
+ "items" : [
+ {
+ "Boolean modal" : true,
+ "Number width" : 480,
+ "xtype" : "LayoutDialog",
+ "Number height" : 160,
+ "Boolean resizable" : false,
+ "$ xns" : "Roo",
+ "String title" : "Edit",
+ "items" : [
+ {
+ "xtype" : "LayoutRegion",
+ "$ xns" : "Roo",
+ "* prop" : "center\n"
+ },
+ {
+ "xtype" : "ContentPanel",
+ "$ xns" : "Roo",
+ "String region" : "center",
+ "items" : [
+ {
+ "listeners" : {
+ "|actioncomplete" : "function (_self, action)\n{\n if(action.type == 'submit'){\n _this.dialog.hide();\n \n if(_this.callback){\n _this.callback.call(_this, _this.form.getValues());\n }\n return\n }\n}",
+ "rendered" : "function (form)\n{\n _this.form = this;\n}"
+ },
+ "$ url" : "baseURL + '/Roo/Core_enum'",
+ "xtype" : "Form",
+ "$ xns" : "Roo.form",
+ "items" : [
{
- "Boolean modal" : true,
- "Number width" : 480,
- "xtype" : "LayoutDialog",
- "Number height" : 160,
- "Boolean resizable" : false,
- "$ xns" : "Roo",
- "String title" : "Edit",
- "items" : [
- {
- "xtype" : "LayoutRegion",
- "$ xns" : "Roo",
- "* prop" : "center\n"
- },
- {
- "xtype" : "ContentPanel",
- "String region" : "center",
- "$ xns" : "Roo",
- "items" : [
- {
- "listeners" : {
- "rendered" : "function (form)\n{\n _this.form = this;\n}",
- "|actioncomplete" : "function (_self, action)\n{\n if(action.type == 'submit'){\n _this.dialog.hide();\n \n if(_this.callback){\n _this.callback.call(_this, _this.form.getValues());\n }\n return\n }\n}"
- },
- "$ url" : "baseURL + '/Roo/Core_enum'",
- "xtype" : "Form",
- "$ xns" : "Roo.form",
- "items" : [
- {
- "Boolean allowBlank" : false,
- "String name" : "name",
- "Number width" : 270,
- "xtype" : "TextField",
- "String fieldLabel" : "Name",
- "$ xns" : "Roo.form"
- },
- {
- "String name" : "id",
- "xtype" : "Hidden",
- "$ xns" : "Roo.form"
- },
- {
- "String name" : "etype",
- "xtype" : "Hidden",
- "$ xns" : "Roo.form"
- },
- {
- "String name" : "display_name",
- "Number width" : 270,
- "xtype" : "TextField",
- "String fieldLabel" : "Display Name",
- "$ xns" : "Roo.form"
- }
- ]
- }
- ]
- },
- {
- "listeners" : {
- "click" : "function (_self, e)\n{\n //this.url = baseURL + '/Roo/Core_enum.php';\n //_this.dialog.el.mask(\"Saving\");\n _this.form.doAction(\"submit\");\n}"
- },
- "xtype" : "Button",
- "String text" : "Save",
- "$ xns" : "Roo",
- "* prop" : "buttons[]"
- },
- {
- "listeners" : {
- "click" : "function (_self, e)\n{\n _this.dialog.hide();\n}"
- },
- "xtype" : "Button",
- "String text" : "Cancel",
- "$ xns" : "Roo",
- "* prop" : "buttons[]"
- }
- ]
+ "Boolean allowBlank" : false,
+ "String name" : "name",
+ "Number width" : 270,
+ "xtype" : "TextField",
+ "String fieldLabel" : "Name",
+ "$ xns" : "Roo.form"
+ },
+ {
+ "String name" : "id",
+ "xtype" : "Hidden",
+ "$ xns" : "Roo.form"
+ },
+ {
+ "String name" : "etype",
+ "xtype" : "Hidden",
+ "$ xns" : "Roo.form"
+ },
+ {
+ "String name" : "display_name",
+ "Number width" : 270,
+ "xtype" : "TextField",
+ "String fieldLabel" : "Display Name",
+ "$ xns" : "Roo.form"
}
- ]
+ ]
+ }
+ ]
+ },
+ {
+ "listeners" : {
+ "click" : "function (_self, e)\n{\n //this.url = baseURL + '/Roo/Core_enum.php';\n //_this.dialog.el.mask(\"Saving\");\n _this.form.doAction(\"submit\");\n}"
+ },
+ "xtype" : "Button",
+ "String text" : "Save",
+ "$ xns" : "Roo",
+ "* prop" : "buttons[]"
+ },
+ {
+ "listeners" : {
+ "click" : "function (_self, e)\n{\n _this.dialog.hide();\n}"
+ },
+ "xtype" : "Button",
+ "String text" : "Cancel",
+ "$ xns" : "Roo",
+ "* prop" : "buttons[]"
+ }
+ ]
+ }
+ ]
}
\ No newline at end of file
Pman.Dialog.AdminEnumType = {
- dialog : false,
- callback: false,
+ _strings : {
+ '7dce122004969d56ae2e0245cb754d35' :"Edit",
+ 'b48968e1c912da07df5e8d6d246291ec' :"Display Name",
+ 'ea4788705e6873b424c65e91c2846b19' :"Cancel",
+ '49ee3087348e8d44e1feda1917443987' :"Name",
+ 'c9cc8cce247e49bae79f15173ce97354' :"Save"
+ },
+ _named_strings : {
+ 'display_name_fieldLabel' : 'b48968e1c912da07df5e8d6d246291ec' /* Display Name */ ,
+ 'name_fieldLabel' : '49ee3087348e8d44e1feda1917443987' /* Name */
+ },
- 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 });
- }
-
- },
+ dialog : false,
+ callback: false,
- create : function()
- {
- var _this = this;
- this.dialog = Roo.factory({
- center
- : {
- '|xns' : 'Roo',
- xtype : 'LayoutRegion',
- xns : Roo
- },
- '|xns' : 'Roo',
- modal : true,
- width : 480,
- xtype : 'LayoutDialog',
- height : 160,
- resizable : false,
- xns : Roo,
- title : "Edit",
- buttons : [
- {
- '|xns' : 'Roo',
- xtype : 'Button',
- text : "Save",
- xns : Roo,
- listeners : {
- click : function (_self, e)
- {
- //this.url = baseURL + '/Roo/Core_enum.php';
- //_this.dialog.el.mask("Saving");
- _this.form.doAction("submit");
- }
- }
- },
-{
- '|xns' : 'Roo',
- xtype : 'Button',
- text : "Cancel",
- xns : Roo,
- listeners : {
- click : function (_self, e)
- {
- _this.dialog.hide();
- }
- }
- }
- ],
- items : [
- {
- '|xns' : 'Roo',
- xtype : 'ContentPanel',
- region : 'center',
- xns : Roo,
- items : [
- {
- '|xns' : 'Roo.form',
- url : baseURL + '/Roo/Core_enum',
- xtype : 'Form',
- xns : Roo.form,
- listeners : {
- rendered : function (form)
- {
- _this.form = this;
- },
- actioncomplete : function (_self, action)
- {
- if(action.type == 'submit'){
- _this.dialog.hide();
-
- if(_this.callback){
- _this.callback.call(_this, _this.form.getValues());
- }
- return
- }
- }
- },
- items : [
- {
- '|xns' : 'Roo.form',
- allowBlank : false,
- name : 'name',
- width : 270,
- xtype : 'TextField',
- fieldLabel : 'Name',
- xns : Roo.form
- },
- {
- '|xns' : 'Roo.form',
- name : 'id',
- xtype : 'Hidden',
- xns : Roo.form
- },
- {
- '|xns' : 'Roo.form',
- name : 'etype',
- xtype : 'Hidden',
- xns : Roo.form
- },
- {
- '|xns' : 'Roo.form',
- name : 'display_name',
- width : 270,
- xtype : 'TextField',
- fieldLabel : 'Display Name',
- xns : Roo.form
- }
- ]
+ 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',
+ height : 160,
+ modal : true,
+ resizable : false,
+ title : _this._strings['7dce122004969d56ae2e0245cb754d35'] /* Edit */,
+ width : 480,
+ xns : Roo,
+ '|xns' : 'Roo',
+ center
+ : {
+ xtype : 'LayoutRegion',
+ xns : Roo,
+ '|xns' : 'Roo'
+ },
+ buttons : [
+ {
+ xtype : 'Button',
+ text : _this._strings['c9cc8cce247e49bae79f15173ce97354'] /* Save */,
+ listeners : {
+ click : function (_self, e)
+ {
+ //this.url = baseURL + '/Roo/Core_enum.php';
+ //_this.dialog.el.mask("Saving");
+ _this.form.doAction("submit");
+ }
+ },
+ xns : Roo,
+ '|xns' : 'Roo'
+ },
+ {
+ xtype : 'Button',
+ text : _this._strings['ea4788705e6873b424c65e91c2846b19'] /* Cancel */,
+ listeners : {
+ click : function (_self, e)
+ {
+ _this.dialog.hide();
+ }
+ },
+ xns : Roo,
+ '|xns' : 'Roo'
+ }
+ ],
+ items : [
+ {
+ xtype : 'ContentPanel',
+ region : 'center',
+ xns : Roo,
+ '|xns' : 'Roo',
+ items : [
+ {
+ xtype : 'Form',
+ url : baseURL + '/Roo/Core_enum',
+ listeners : {
+ actioncomplete : function (_self, action)
+ {
+ if(action.type == 'submit'){
+ _this.dialog.hide();
+
+ if(_this.callback){
+ _this.callback.call(_this, _this.form.getValues());
+ }
+ return
+ }
+ },
+ rendered : function (form)
+ {
+ _this.form = this;
+ }
+ },
+ xns : Roo.form,
+ '|xns' : 'Roo.form',
+ items : [
+ {
+ xtype : 'TextField',
+ allowBlank : false,
+ fieldLabel : _this._strings['49ee3087348e8d44e1feda1917443987'] /* Name */,
+ name : 'name',
+ width : 270,
+ xns : Roo.form,
+ '|xns' : 'Roo.form'
+ },
+ {
+ xtype : 'Hidden',
+ name : 'id',
+ xns : Roo.form,
+ '|xns' : 'Roo.form'
+ },
+ {
+ xtype : 'Hidden',
+ name : 'etype',
+ xns : Roo.form,
+ '|xns' : 'Roo.form'
+ },
+ {
+ xtype : 'TextField',
+ fieldLabel : _this._strings['b48968e1c912da07df5e8d6d246291ec'] /* Display Name */,
+ name : 'display_name',
+ width : 270,
+ xns : Roo.form,
+ '|xns' : 'Roo.form'
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ });
+ }
};
--- /dev/null
+{
+ "name" : "Pman.Dialog.AdminLanguagePick",
+ "parent" : "",
+ "title" : "",
+ "path" : "/home/alan/gitlive/Pman.Admin/Pman.Dialog.AdminLanguagePick.bjs",
+ "permname" : "",
+ "modOrder" : "001",
+ "strings" : {
+ "4994a8ffeba4ac3140beb89e8d41f174" : "Language",
+ "ea4788705e6873b424c65e91c2846b19" : "Cancel",
+ "052ca52fc8eb1bdff3e34de3fa735e35" : "Select a Language",
+ "e0aa021e21dddbd6d8cecec71e9cf564" : "OK"
+ },
+ "named_strings" : {
+ "language_name_fieldLabel" : "4994a8ffeba4ac3140beb89e8d41f174"
+ },
+ "items" : [
+ {
+ "modal" : true,
+ "collapsible" : false,
+ "title" : "Select a Language",
+ "xtype" : "LayoutDialog",
+ "width" : 400,
+ "$ xns" : "Roo",
+ "closable" : false,
+ "resizable" : false,
+ "height" : 120,
+ "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 //_this.dialog.el.mask(\"Loading\");\n //this.load({ method: 'GET', params: { '_id' : _this.data.id }});\n return;\n }\n if (action.type == 'load') {\n _this.dialog.el.unmask();\n return;\n }\n if (action.type =='submit') {\n \n _this.dialog.el.unmask();\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}\n",
+ "|rendered" : "function (form)\n{\n _this.form= form;\n}\n"
+ },
+ "$ url" : "baseURL + '/Roo/INGORE.php'",
+ "xtype" : "Form",
+ "method" : "GET",
+ "style" : "margin:10px;",
+ "$ xns" : "Roo.form",
+ "items" : [
+ {
+ "alwaysQuery" : true,
+ "listWidth" : 200,
+ "triggerAction" : "all",
+ "fieldLabel" : "Language",
+ "displayField" : "title",
+ "hiddenName" : "lang",
+ "valueField" : "code",
+ "xtype" : "ComboBox",
+ "allowBlank" : false,
+ "editable" : false,
+ "width" : 200,
+ "$ xns" : "Roo.form",
+ "name" : "language_name",
+ "items" : [
+ {
+ "listeners" : {
+ "beforeload" : "function (_self, o)\n{\n o.params['!code'] = 'en'; // exclude english from the list (it's the default?)\n}"
+ },
+ "xtype" : "Store",
+ "$ xns" : "Roo.data",
+ "* prop" : "store",
+ "items" : [
+ {
+ "$ url" : "baseURL + '/Core/I18n/Lang'",
+ "xtype" : "HttpProxy",
+ "method" : "GET",
+ "$ xns" : "Roo.data",
+ "* prop" : "proxy"
+ },
+ {
+ "id" : "code",
+ "root" : "data",
+ "xtype" : "JsonReader",
+ "$ fields" : "[\n {\n 'name': 'code',\n 'type': 'string'\n },\n {\n 'name': 'title',\n 'type': 'string'\n }\n]",
+ "$ xns" : "Roo.data",
+ "* prop" : "reader",
+ "totalProperty" : "total"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "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 var data = _this.form.getValues();\n \n if (!data.lang.length) {\n \n Roo.MessageBox.alert(\"Error\", \"Select language\");\n return;\n \n }\n _this.dialog.hide();\n \n var callbackData = data.lang;\n // Roo.log(_this.data);\n if(_this.data._with_name == true){\n callbackData = {'lang' : data.lang , 'lang_name' : _this.form.findField('lang').lastSelectionText};\n }\n \n _this.callback(callbackData);\n \n\n}"
+ },
+ "text" : "OK",
+ "xtype" : "Button",
+ "$ xns" : "Roo",
+ "* prop" : "buttons[]"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
--- /dev/null
+//<script type="text/javascript">
+
+// Auto generated file - created by app.Builder.js- do not edit directly (at present!)
+
+Roo.namespace('Pman.Dialog');
+
+Pman.Dialog.AdminLanguagePick = {
+
+ _strings : {
+ '4994a8ffeba4ac3140beb89e8d41f174' :"Language",
+ 'ea4788705e6873b424c65e91c2846b19' :"Cancel",
+ '052ca52fc8eb1bdff3e34de3fa735e35' :"Select a Language",
+ 'e0aa021e21dddbd6d8cecec71e9cf564' :"OK"
+ },
+ _named_strings : {
+ 'language_name_fieldLabel' : '4994a8ffeba4ac3140beb89e8d41f174' /* Language */
+ },
+
+ dialog : false,
+ callback: false,
+
+ 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',
+ closable : false,
+ collapsible : false,
+ height : 120,
+ modal : true,
+ resizable : false,
+ title : _this._strings['052ca52fc8eb1bdff3e34de3fa735e35'] /* Select a Language */,
+ width : 400,
+ 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['e0aa021e21dddbd6d8cecec71e9cf564'] /* OK */,
+ listeners : {
+ click : function (_self, e)
+ {
+ // do some checks?
+
+ var data = _this.form.getValues();
+
+ if (!data.lang.length) {
+
+ Roo.MessageBox.alert("Error", "Select language");
+ return;
+
+ }
+ _this.dialog.hide();
+
+ var callbackData = data.lang;
+ // Roo.log(_this.data);
+ if(_this.data._with_name == true){
+ callbackData = {'lang' : data.lang , 'lang_name' : _this.form.findField('lang').lastSelectionText};
+ }
+
+ _this.callback(callbackData);
+
+
+ }
+ },
+ xns : Roo,
+ '|xns' : 'Roo'
+ }
+ ],
+ items : [
+ {
+ xtype : 'ContentPanel',
+ region : 'center',
+ xns : Roo,
+ '|xns' : 'Roo',
+ items : [
+ {
+ xtype : 'Form',
+ method : 'GET',
+ style : 'margin:10px;',
+ url : baseURL + '/Roo/INGORE.php',
+ listeners : {
+ actioncomplete : function(_self,action)
+ {
+ if (action.type == 'setdata') {
+ //_this.dialog.el.mask("Loading");
+ //this.load({ method: 'GET', params: { '_id' : _this.data.id }});
+ return;
+ }
+ if (action.type == 'load') {
+ _this.dialog.el.unmask();
+ return;
+ }
+ if (action.type =='submit') {
+
+ _this.dialog.el.unmask();
+ _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 : 'ComboBox',
+ allowBlank : false,
+ alwaysQuery : true,
+ displayField : 'title',
+ editable : false,
+ fieldLabel : _this._strings['4994a8ffeba4ac3140beb89e8d41f174'] /* Language */,
+ hiddenName : 'lang',
+ listWidth : 200,
+ name : 'language_name',
+ triggerAction : 'all',
+ valueField : 'code',
+ width : 200,
+ xns : Roo.form,
+ '|xns' : 'Roo.form',
+ store : {
+ xtype : 'Store',
+ listeners : {
+ beforeload : function (_self, o)
+ {
+ o.params['!code'] = 'en'; // exclude english from the list (it's the default?)
+ }
+ },
+ xns : Roo.data,
+ '|xns' : 'Roo.data',
+ proxy : {
+ xtype : 'HttpProxy',
+ method : 'GET',
+ url : baseURL + '/Core/I18n/Lang',
+ xns : Roo.data,
+ '|xns' : 'Roo.data'
+ },
+ reader : {
+ xtype : 'JsonReader',
+ fields : [
+ {
+ 'name': 'code',
+ 'type': 'string'
+ },
+ {
+ 'name': 'title',
+ 'type': 'string'
+ }
+ ],
+ id : 'code',
+ root : 'data',
+ totalProperty : 'total',
+ xns : Roo.data,
+ '|xns' : 'Roo.data'
+ }
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ });
+ }
+};
--- /dev/null
+{
+ "name" : "Pman.Dialog.AdminTranslateTemplates",
+ "parent" : "",
+ "title" : "",
+ "path" : "/home/alan/gitlive/Pman.Admin/Pman.Dialog.AdminTranslateTemplates.bjs",
+ "permname" : "",
+ "modOrder" : "001",
+ "strings" : {
+ "0a52da7a03a6de3beefe54f8c03ad80d" : "Original",
+ "d41d8cd98f00b204e9800998ecf8427e" : "",
+ "6dd08874f83507e9c7b23f1a46b7fa7c" : "Translation",
+ "ea4788705e6873b424c65e91c2846b19" : "Cancel",
+ "305253475cc868103805068f45a90468" : "Edit Translation",
+ "e0aa021e21dddbd6d8cecec71e9cf564" : "OK"
+ },
+ "named_strings" : {
+ "src_id_txt_fieldLabel" : "0a52da7a03a6de3beefe54f8c03ad80d",
+ "src_id_txt_value" : "d41d8cd98f00b204e9800998ecf8427e",
+ "txt_fieldLabel" : "6dd08874f83507e9c7b23f1a46b7fa7c"
+ },
+ "items" : [
+ {
+ "modal" : true,
+ "collapsible" : false,
+ "background" : true,
+ "title" : "Edit Translation",
+ "xtype" : "LayoutDialog",
+ "width" : 800,
+ "$ xns" : "Roo",
+ "closable" : false,
+ "resizable" : true,
+ "height" : 450,
+ "items" : [
+ {
+ "xtype" : "LayoutRegion",
+ "$ xns" : "Roo",
+ "* prop" : "center",
+ "titlebar" : true,
+ "$ title" : "\"Note: If the original text contains template variables like {TEMPLATE_VARIABLE} <br/>Be careful to retain them otherwise the translation may not work\""
+ },
+ {
+ "region" : "center",
+ "fitToFrame" : true,
+ "background" : true,
+ "xtype" : "ContentPanel",
+ "$ xns" : "Roo",
+ "items" : [
+ {
+ "listeners" : {
+ "|actionfailed" : "function (_self, action)\n{\n _this.dialog.el.unmask();\n Pman.standardActionFailed(_self, action);\n}\n",
+ "|actioncomplete" : "function (_self, action)\n{\n \n if (action.type == 'setdata') {\n //_this.dialog.el.mask(\"Loading\");\n \n Roo.log(_this.data);\n return;\n }\n if (action.type == 'load') {\n return;\n }\n if (action.type =='submit') {\n _this.dialog.hide();\n if (_this.callback) {\n _this.callback.call(_this, _this.form.getValues());\n }\n _this.form.reset();\n return;\n }\n}\n",
+ "|rendered" : "function (form)\n{\n _this.form = form;\n}"
+ },
+ "style" : "margin: 5px",
+ "xtype" : "Form",
+ "method" : "POST",
+ "$ xns" : "Roo.form",
+ "items" : [
+ {
+ "labelAlign" : "top",
+ "xtype" : "Row",
+ "$ xns" : "Roo.form",
+ "items" : [
+ {
+ "fieldLabel" : "Original",
+ "xtype" : "TextArea",
+ "value" : "",
+ "readOnly" : true,
+ "width" : 750,
+ "$ xns" : "Roo.form",
+ "height" : 150,
+ "name" : "src_id_txt"
+ }
+ ]
+ },
+ {
+ "labelAlign" : "top",
+ "xtype" : "Row",
+ "$ xns" : "Roo.form",
+ "items" : [
+ {
+ "fieldLabel" : "Translation",
+ "xtype" : "TextArea",
+ "width" : 750,
+ "$ xns" : "Roo.form",
+ "name" : "txt",
+ "height" : 150
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "listeners" : {
+ "|click" : "function() {\n _this.form.reset();\n _this.dialog.hide();\n}"
+ },
+ "text" : "Cancel",
+ "xtype" : "Button",
+ "$ xns" : "Roo",
+ "* prop" : "buttons[]"
+ },
+ {
+ "listeners" : {
+ "|click" : "function() {\n _this.dialog.el.mask(\"Saving\");\n //_this.form.doAction('submit');\n _this.dialog.hide();\n if (_this.callback) {\n _this.callback.call(_this, _this.form.getValues());\n }\n _this.dialog.el.unmask();\n _this.form.reset();\n}"
+ },
+ "text" : "OK",
+ "xtype" : "Button",
+ "$ xns" : "Roo",
+ "* prop" : "buttons[]"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
--- /dev/null
+//<script type="text/javascript">
+
+// Auto generated file - created by app.Builder.js- do not edit directly (at present!)
+
+Roo.namespace('Pman.Dialog');
+
+Pman.Dialog.AdminTranslateTemplates = {
+
+ _strings : {
+ '0a52da7a03a6de3beefe54f8c03ad80d' :"Original",
+ 'd41d8cd98f00b204e9800998ecf8427e' :"",
+ '6dd08874f83507e9c7b23f1a46b7fa7c' :"Translation",
+ 'ea4788705e6873b424c65e91c2846b19' :"Cancel",
+ '305253475cc868103805068f45a90468' :"Edit Translation",
+ 'e0aa021e21dddbd6d8cecec71e9cf564' :"OK"
+ },
+ _named_strings : {
+ 'src_id_txt_fieldLabel' : '0a52da7a03a6de3beefe54f8c03ad80d' /* Original */ ,
+ 'src_id_txt_value' : 'd41d8cd98f00b204e9800998ecf8427e' /* */ ,
+ 'txt_fieldLabel' : '6dd08874f83507e9c7b23f1a46b7fa7c' /* Translation */
+ },
+
+ dialog : false,
+ callback: false,
+
+ 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',
+ background : true,
+ closable : false,
+ collapsible : false,
+ height : 450,
+ modal : true,
+ resizable : true,
+ title : _this._strings['305253475cc868103805068f45a90468'] /* Edit Translation */,
+ width : 800,
+ xns : Roo,
+ '|xns' : 'Roo',
+ center : {
+ xtype : 'LayoutRegion',
+ title : "Note: If the original text contains template variables like {TEMPLATE_VARIABLE} <br/>Be careful to retain them otherwise the translation may not work",
+ titlebar : true,
+ xns : Roo,
+ '|xns' : 'Roo'
+ },
+ buttons : [
+ {
+ xtype : 'Button',
+ text : _this._strings['ea4788705e6873b424c65e91c2846b19'] /* Cancel */,
+ listeners : {
+ click : function() {
+ _this.form.reset();
+ _this.dialog.hide();
+ }
+ },
+ xns : Roo,
+ '|xns' : 'Roo'
+ },
+ {
+ xtype : 'Button',
+ text : _this._strings['e0aa021e21dddbd6d8cecec71e9cf564'] /* OK */,
+ listeners : {
+ click : function() {
+ _this.dialog.el.mask("Saving");
+ //_this.form.doAction('submit');
+ _this.dialog.hide();
+ if (_this.callback) {
+ _this.callback.call(_this, _this.form.getValues());
+ }
+ _this.dialog.el.unmask();
+ _this.form.reset();
+ }
+ },
+ xns : Roo,
+ '|xns' : 'Roo'
+ }
+ ],
+ items : [
+ {
+ xtype : 'ContentPanel',
+ background : true,
+ fitToFrame : true,
+ region : 'center',
+ xns : Roo,
+ '|xns' : 'Roo',
+ items : [
+ {
+ xtype : 'Form',
+ method : 'POST',
+ style : 'margin: 5px',
+ listeners : {
+ actioncomplete : function (_self, action)
+ {
+
+ if (action.type == 'setdata') {
+ //_this.dialog.el.mask("Loading");
+
+ Roo.log(_this.data);
+ return;
+ }
+ if (action.type == 'load') {
+ return;
+ }
+ if (action.type =='submit') {
+ _this.dialog.hide();
+ if (_this.callback) {
+ _this.callback.call(_this, _this.form.getValues());
+ }
+ _this.form.reset();
+ return;
+ }
+ },
+ actionfailed : function (_self, action)
+ {
+ _this.dialog.el.unmask();
+ Pman.standardActionFailed(_self, action);
+ },
+ rendered : function (form)
+ {
+ _this.form = form;
+ }
+ },
+ xns : Roo.form,
+ '|xns' : 'Roo.form',
+ items : [
+ {
+ xtype : 'Row',
+ labelAlign : 'top',
+ xns : Roo.form,
+ '|xns' : 'Roo.form',
+ items : [
+ {
+ xtype : 'TextArea',
+ fieldLabel : _this._strings['0a52da7a03a6de3beefe54f8c03ad80d'] /* Original */,
+ height : 150,
+ name : 'src_id_txt',
+ readOnly : true,
+ value : _this._strings['d41d8cd98f00b204e9800998ecf8427e'] /* */,
+ width : 750,
+ xns : Roo.form,
+ '|xns' : 'Roo.form'
+ }
+ ]
+ },
+ {
+ xtype : 'Row',
+ labelAlign : 'top',
+ xns : Roo.form,
+ '|xns' : 'Roo.form',
+ items : [
+ {
+ xtype : 'TextArea',
+ fieldLabel : _this._strings['6dd08874f83507e9c7b23f1a46b7fa7c'] /* Translation */,
+ height : 150,
+ name : 'txt',
+ width : 750,
+ xns : Roo.form,
+ '|xns' : 'Roo.form'
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ });
+ }
+};
"modOrder" : "950",
"strings" : {
"0a52da7a03a6de3beefe54f8c03ad80d" : "Original",
- "4994a8ffeba4ac3140beb89e8d41f174" : "Language",
- "ae739a236065a45c64ad51aacb19498c" : "Active?",
- "d41d8cd98f00b204e9800998ecf8427e" : "",
+ "0b8d92bc19b720bb1065649535463409" : "Translations",
+ "69fd71b6f79260924a32a45850a13ab7" : "Translations (rescan this to update strings)",
+ "9d1ead73e678fa2f51a70a933b0bf017" : "Not Found",
"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"
- },
- "named_strings" : {
- "language_title_value" : "d41d8cd98f00b204e9800998ecf8427e",
- "language_title_qtip" : "83dad8107f9459efe2b4fabcf5b63108",
- "language_title_fieldLabel" : "4994a8ffeba4ac3140beb89e8d41f174"
+ "e3d388b2c43e5ba0905702620ae2abc1" : "Search for",
+ "e2f9d206562d8f5ea421ad51100f7151" : "Displaying petition_entry{0} - {1} of {2}",
+ "cd6ae20e52d83f601c5fa12b66f0f6d0" : "Rescan",
+ "4d1c8263ba1036754f8db14a98f9f006" : "Reload",
+ "f2a6c498fb90ee345d997f888fce3b18" : "Delete",
+ "03c2e7e41ffc181a4e84080b4710e81e" : "New",
+ "193cfc9be3b995831c6af2fea6650e60" : "Page",
+ "1bc29b36f623ba82aaf6724fd3b16718" : "md5"
},
"items" : [
{
"region" : "center",
"xtype" : "NestedLayoutPanel",
- "title" : "Translate App",
+ "title" : "Translations",
"$ xns" : "Roo",
"items" : [
{
"* prop" : "layout",
"items" : [
{
- "alwaysShowTabs" : true,
"xtype" : "LayoutRegion",
- "tabPosition" : "top",
+ "width" : 450,
+ "$ xns" : "Roo",
+ "split" : true,
+ "* prop" : "west"
+ },
+ {
+ "xtype" : "LayoutRegion",
"$ xns" : "Roo",
"* prop" : "center"
},
{
"listeners" : {
- "|activate" : "function() {\n _this.panel = this;\n if (_this.grid) {\n _this.grid.getDataSource().reload(); \n }\n}"
+ "render" : "function (_self)\n{\n _this.treepanel = _self;\n}"
},
- "fitToframe" : true,
- "background" : true,
- "region" : "center",
- "title" : "Text in interface",
- "xtype" : "GridPanel",
- "fitContainer" : true,
+ "region" : "west",
+ "xtype" : "TreePanel",
"$ 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}",
- "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",
+ "xtype" : "Toolbar",
+ "$ xns" : "Roo",
+ "* prop" : "toolbar",
"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}"
+ "click" : "function (_self, e)\n{\n Pman.Dialog.AdminLanguagePick.show( { }, function(lang) {\n \n new Pman.Request({\n url : baseURL + '/Roo/core_templatestr',\n method : 'POST',\n params : {\n _rescan : lang\n }, \n success : function()\n {\n _this.treepanel.tree.getRootNode().reload();\n }\n });\n \n });\n \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"
- }
- ]
+ "text" : "New",
+ "xtype" : "Button",
+ "$ xns" : "Roo.Toolbar"
},
{
- "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" : "Separator",
+ "$ xns" : "Roo.Toolbar"
},
{
- "xtype" : "ColumnModel",
- "width" : 150,
- "header" : "Name",
- "$ renderer" : "function(v,x,r) { \n var c = '#666'; \n if (r.get('updated') < r.get('origupdated')) { \n c = 'red'; \n \n } \n return '<div style=\"color:'+c+'\";>' +r.get('tableid')+ ':' + v + '</div>'; \n }",
- "$ xns" : "Roo.grid",
- "* prop" : "colModel[]",
- "dataIndex" : "colname"
+ "listeners" : {
+ "click" : "function (_self, e)\n{\n var tree = _this.treepanel.tree;\n var sn = tree.getSelectionModel().getSelectedNode();\n\n if (!sn || typeof(sn.attributes.language) == 'undefined' || !sn.attributes.language) {\n Roo.MessageBox.alert(\"Error\", \"Select a language\");\n return;\n }\n\n Roo.MessageBox.confirm(\"Confirm\", \"Are sure you want to delete the language\", function (v){\n if (v != 'yes') {\n return;\n }\n Roo.MessageBox.alert(\"Not yet\", \"not done yet\");\n return;\n \n \n \n \n });\n}"
+ },
+ "text" : "Delete",
+ "xtype" : "Button",
+ "$ xns" : "Roo.Toolbar"
},
{
- "xtype" : "ColumnModel",
- "width" : 300,
- "header" : "Original",
- "$ 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>'; }",
- "$ xns" : "Roo.grid",
- "* prop" : "colModel[]",
- "dataIndex" : "origtxt"
+ "xtype" : "Separator",
+ "$ xns" : "Roo.Toolbar"
},
{
- "xtype" : "ColumnModel",
- "header" : "Reset",
- "width" : 50,
- "$ renderer" : "function(v,x,r) { \n return '<img src=\"' + rootURL + '/Pman/templates/images/edit-clear.gif' + '\" width=\"16\" height=\"16\">';\n}",
- "$ xns" : "Roo.grid",
- "* prop" : "colModel[]",
- "dataIndex" : "reset_tx"
+ "listeners" : {
+ "click" : "function (_self, e)\n{\n var tree = _this.treepanel.tree;\n Roo.log(tree);\n var sn = tree.getSelectionModel().getSelectedNode();\n\n if (!sn) {\n Roo.MessageBox.alert(\"Error\", \"Select a node\");\n return;\n }\n \n var syncTemplate = function(){\n new Pman.Request({\n url : baseURL + '/Admin/UpdateBjsTemplates',\n method : 'GET',\n mask : 'Processing...',\n timeout : 9000000,\n success : function()\n {\n _this.treepanel.tree.getRootNode().reload();\n }\n });\n \n };\n \n \n var syncLanguage = function(){\n new Pman.Request({\n url : baseURL + '/Roo/Core_templatestr',\n method : 'POST',\n mask : 'Processing...',\n params : {\n _rescan : sn.attributes.id.split(':')[1]\n }, \n success : function()\n {\n _this.treepanel.tree.getRootNode().reload();\n }\n });\n };\n \n if(typeof(sn.isRoot) != 'undefined' && sn.isRoot){\n syncTemplate();\n return;\n }\n \n if(typeof(sn.attributes.language) != 'undefined' && sn.attributes.language){\n syncLanguage();\n return;\n }\n \n \n \n \n \n}"
+ },
+ "text" : "Rescan",
+ "xtype" : "Button",
+ "$ xns" : "Roo.Toolbar"
},
{
- "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 '<div style=\"color:' + c+ '\">' + Ext.util.Format.htmlEncode(v) + '</div>'; }",
- "$ xns" : "Roo.grid",
- "* prop" : "colModel[]",
- "dataIndex" : "txt",
- "items" : [
- {
- "xtype" : "GridEditor",
- "$ xns" : "Roo.grid",
- "* prop" : "editor",
- "items" : [
- {
- "xtype" : "TextField",
- "$ xns" : "Roo.form",
- "* prop" : "field"
- }
- ]
- }
- ]
+ "xtype" : "Fill",
+ "$ xns" : "Roo.Toolbar"
+ },
+ {
+ "listeners" : {
+ "click" : "function (_self, e)\n{\n var tree = _this.treepanel.tree;\n\n var sn = tree.getSelectionModel().getSelectedNode();\n \n p = {\n csvCols : 'src_id_mdsum,template_id_view_name,template_id_template,src_id_txt,lang,txt',\n csvTitles : 'Code,Module,Template,Original,Language,Translation',\n limit : 9999,\n sort: 'template_id_view_name,template_id_template,src_id_txt',\n dir: 'ASC'\n };\n if (!sn || sn.id == 'transtree') {\n Roo.MessageBox.alert(\"Error\", \"Select language, module or page\");\n return;\n }\n if (typeof(sn.id) == 'number') {\n p.template_id = sn.id;\n\n }\n if (sn.id.match(/^view:/)) {\n var sns = sn.id.split(':');\n p.lang = sns[1];\n p.template_id_view_name = sns[2];\n }\n if (sn.id.match(/^lang:/)) {\n var sns = sn.id.split(':');\n p.lang = sns[1];\n\n }\n // transtree\n // view: {lang} : {view_name}\n // lang:\n \n new Pman.Download({\n url : baseURL + '/Roo/Core_templatestr',\n params : p,\n method : 'GET' \n });\n \n \n \n \n \n}"
+ },
+ "text" : "Download",
+ "xtype" : "Button",
+ "$ xns" : "Roo.Toolbar"
+ },
+ {
+ "xtype" : "Separator",
+ "$ xns" : "Roo.Toolbar"
+ },
+ {
+ "listeners" : {
+ "click" : "function (_self, e)\n{\n _this.treepanel.tree.getRootNode().reload();\n \n}"
+ },
+ "text" : "Reload",
+ "xtype" : "Button",
+ "$ xns" : "Roo.Toolbar"
+ }
+ ]
+ },
+ {
+ "xtype" : "TreePanel",
+ "rootVisible" : true,
+ "$ xns" : "Roo.tree",
+ "containerScroll" : false,
+ "* prop" : "tree",
+ "items" : [
+ {
+ "listeners" : {
+ "loadexception" : "function (This, node, response)\n{\n Roo.MessageBox.alert(\"Error\", \"Problem loading tree\");\n}",
+ "beforeload" : "function (This, node, callback)\n{\n // set some params.\n Roo.log(node);\n this.baseParams._tree = 1;\n \n //this.baseParams.category = node.attributes.category;\n}"
+ },
+ "$ baseParams" : "{ _tree : 1 }",
+ "xtype" : "TreeLoader",
+ "requestMethod" : "GET",
+ "$ xns" : "Roo.tree",
+ "* prop" : "loader",
+ "$ dataUrl" : "baseURL + '/Roo/Core_templatestr'"
+ },
+ {
+ "id" : "transtree",
+ "text" : "Translations (rescan this to update strings)",
+ "xtype" : "AsyncTreeNode",
+ "$ xns" : "Roo.tree",
+ "* prop" : "root"
+ },
+ {
+ "listeners" : {
+ "selectionchange" : "function (_self, node)\n{\n Roo.log(node);\n \n //if (node.id.split('/').length < 2) {\n // return;\n // }\n (function() {\n _this.grid.footer.onClick('first');\n }).defer(100);\n \n}"
+ },
+ "xtype" : "DefaultSelectionModel",
+ "$ xns" : "Roo.tree",
+ "* prop" : "selModel"
}
]
}
},
{
"listeners" : {
- "|activate" : "function() {\n _this.langpanel = this;\n if (_this.langgrid) {\n _this.langgrid.ds.load({});\n }\n}"
+ "|activate" : "function() {\n _this.panel = this;\n if (_this.grid) {\n _this.grid.footer.onClick('first');\n }\n}"
},
- "fitToframe" : true,
- "background" : true,
+ "background" : false,
"region" : "center",
- "title" : "Languages and Countries",
+ "fitToframe" : true,
+ "title" : "Page",
"xtype" : "GridPanel",
"fitContainer" : true,
"$ xns" : "Roo",
- "tableName" : "i18n",
+ "tableName" : "Page",
"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 ltype : rec.get('ltype')\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{ \n /*if (e.record.data.src_id_txt.indexOf('<') > -1) {\n // console.log(\"HTML EDITOR!!\");\n Pman.Dialog.CmsTranslateEditor.show(e.record);\n return false;\n }*/\n \n var str=e.record.data.src_id_txt;\n var patt=/{(.*?)}/g;\n \n Roo.log(str.length);\n \n \n if(patt.test(str)){\n e.cancel = true;\n Pman.Dialog.AdminTranslateTemplates.show(e.record.data, function(v){\n Roo.log(v);\n e.value = v.txt;\n e.record.set('txt', v.txt);\n e.record.commit();\n });\n /*\n Roo.MessageBox.prompt('WARNING', 'This text is with {TEMPLATE VARIABLE}, PLEASE BE CAREFUL EDITING. What\\'s change? '+str, function(btn, text){\n if (btn == 'ok'){\n e.value = text;\n e.record.set('txt', text);\n e.record.commit();\n }\n });*/\n return;\n }\n \n if(str.length > 150){\n e.cancel = true;\n Pman.Dialog.AdminTranslateTemplates.show(e.record.data, function(v){\n e.value = v.txt;\n e.record.set('txt', v.txt);\n e.record.commit();\n });\n /*\n Roo.MessageBox.prompt('WARNING', 'This text is with {TEMPLATE VARIABLE}, PLEASE BE CAREFUL EDITING. What\\'s change? '+str, function(btn, text){\n if (btn == 'ok'){\n e.value = text;\n e.record.set('txt', text);\n e.record.commit();\n }\n });*/\n return;\n }\n \n\n if (e.record.data.txt.replace(/\\s+/, '').length) {\n return true;\n }\n \n var tl = _this.treepanel.tree.getSelectionModel().getSelectedNode().parentNode.attributes.id;\n // mapping?\n \n tl = (tl == 'zh_HK') ? 'zh-TW' : tl;\n \n if (tl == 'en' && !e.value.length) {\n\n e.value = e.record.data.src_id_txt;\n e.record.set('txt', e.record.data.src_id_txt);\n return true;\n }\n \n Pman.GoogleTranslate(e.record.data.src_id_txt, \"en\", tl, function(result) {\n // Roo.log(result);\n _this.grid.activeEditor.setValue(result);\n //console.log(result.translation);\n });\n \n\n \n return true;\n}",
+ "|rowdblclick" : "function (_self, rowIndex, e)\n{\n if (!_this.dialog) {\n return;\n }\n _this.dialog.show( this.getDataSource().getAt(rowIndex).data, function() {\n _this.grid.footer.onClick('first');\n }); \n}\n",
+ "|render" : "function() \n{\n _this.grid = this; \n //_this.dialog = Pman.Dialog.FILL_IN\n if (_this.panel.active) {\n this.footer.onClick('first');\n // this.ds.onc.onClick('first');\n }\n}",
+ "afteredit" : "function (e)\n{\n e.record.commit();\n}"
},
- "autoExpandColumn" : "lval",
+ "autoExpandColumn" : "txt",
"xtype" : "EditorGrid",
"loadMask" : true,
"clicksToEdit" : 1,
"$ xns" : "Roo.grid",
"* prop" : "grid",
"items" : [
+ {
+ "xtype" : "Toolbar",
+ "$ xns" : "Roo",
+ "* prop" : "toolbar",
+ "items" : [
+ {
+ "listeners" : {
+ "specialkey" : "function (_self, e)\n{\n_this.grid.footer.onClick('first');\n}",
+ "render" : "function (_self)\n{\n _this.searchBox = this;\n}"
+ },
+ "xtype" : "TextField",
+ "String emptyText" : "Search for",
+ "$ xns" : "Roo.form"
+ },
+ {
+ "listeners" : {
+ "|click" : "function (_self, e)\n{\n_this.grid.footer.onClick('first');\n}"
+ },
+ "xtype" : "Button",
+ "cls" : "x-btn-icon",
+ "$ icon" : "rootURL + '/Pman/templates/images/search.gif'",
+ "$ xns" : "Roo.Toolbar"
+ },
+ {
+ "listeners" : {
+ "|click" : "function (_self, e)\n{\n _this.searchBox.setValue('');\n \n _this.grid.footer.onClick('first');\n}"
+ },
+ "xtype" : "Button",
+ "cls" : "x-btn-icon",
+ "$ icon" : "rootURL + '/Pman/templates/images/edit-clear.gif'",
+ "$ xns" : "Roo.Toolbar"
+ }
+ ]
+ },
+ {
+ "pageSize" : 100,
+ "xtype" : "PagingToolbar",
+ "emptyMsg" : "Not Found",
+ "$ xns" : "Roo",
+ "displayMsg" : "Displaying petition_entry{0} - {1} of {2}",
+ "displayInfo" : true,
+ "* prop" : "footer"
+ },
{
"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}"
+ "update" : "function (_self, rec, operation)\n{\n Roo.log(operation);\n \n if (operation != 'commit') {\n return;\n }\n \n\n _this.grid.getView().el.mask(\"Saving\");\n new Pman.Request({\n url : baseURL + '/Roo/Core_templatestr',\n method: 'POST',\n params : {\n id : rec.get('id'),\n txt : rec.get('txt')\n },\n success : function()\n {\n _this.grid.getView().el.unmask();\n //g.getDataSource().reload();\n },\n failure : function()\n {\n _this.grid.getView().el.unmask();\n Roo.MessageBox.alert(\"Error\", \"There was a problem saving the data - try reloading\");\n }\n \n });\n \n}",
+ "beforeload" : "function (_self, o)\n{\n \n var sn = _this.treepanel.tree.getSelectionModel().getSelectedNode();\n\n if (!sn || typeof(sn.attributes) == 'undefined' || typeof(sn.attributes.leaf) == 'undefined' || !sn.attributes.leaf) { \n _this.grid.ds.removeAll();\n return false;\n }\n\n o.params = o.params || {};\n o.params.lang = sn.parentNode.attributes.id.split(':')[1];\n o.params.template_id = sn.attributes.id * 1;\n o.params.active = 1;\n o.params['!src_id'] = 0;\n \n if (_this.searchBox && _this.searchBox.getValue().length) { \n o.params['_search_txt'] = _this.searchBox.getValue();\n }\n \n \n if(sn.attributes.on_table){\n o.params.on_table = sn.attributes.on_table;\n }\n \n}\n\n\n"
},
"xtype" : "Store",
"remoteSort" : true,
- "$ sortInfo" : "{ field : 'lkey', direction: 'ASC' }",
+ "$ sortInfo" : "{ field : 'src_id_txt', direction: 'ASC' }",
"$ xns" : "Roo.data",
"* prop" : "dataSource",
"items" : [
{
- "$ url" : "baseURL + '/Roo/i18n.php'",
- "method" : "GET",
+ "$ url" : "baseURL + '/Roo/Core_templatestr.php'",
"xtype" : "HttpProxy",
+ "method" : "GET",
"$ xns" : "Roo.data",
"* prop" : "proxy"
},
"id" : "id",
"root" : "data",
"xtype" : "JsonReader",
+ "$ fields" : "[\n {\n 'name': 'id',\n 'type': 'int'\n },\n {\n 'name': 'shortname',\n 'type': 'string'\n }\n \n]",
"$ 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}"
- },
- "listWidth" : 300,
- "Number pageSize" : 400,
- "triggerAction" : "all",
- "Number minChars" : 2,
- "fieldLabel" : "Language",
- "selectOnFocus" : true,
- "String queryParam" : "query[name_starts]",
- "displayField" : "title",
- "hiddenName" : "language",
- "value" : "",
- "valueField" : "code",
- "xtype" : "ComboBox",
- "allowBlank" : false,
- "typeAhead" : true,
- "editable" : true,
- "width" : 200,
- "$ xns" : "Roo.form",
- "name" : "language_title",
- "qtip" : "Select Language",
- "items" : [
- {
- "listeners" : {
- "beforeload" : "function (_self, options)\n{\n options =options || {};\n options.params =options.params|| {};\n options.params.ltype = 'l';\n options.params.inlang = 'en';\n \n options.params._as_code_and_title = 1;\n \n}"
- },
- "$ Object sortInfo" : "{ field : 'title', direction: 'ASC' }",
- "xtype" : "Store",
- "$ xns" : "Roo.data",
- "* prop" : "store",
- "items" : [
- {
- "$ url" : "baseURL + '/Roo/i18n.php'",
- "xtype" : "HttpProxy",
- "method" : "GET",
- "$ 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" : "ColumnModel",
- "header" : "Code",
- "width" : 50,
- "$ renderer" : "function(v) { return String.format('{0}', v); }",
- "$ xns" : "Roo.grid",
- "Boolean sortable" : true,
- "* prop" : "colModel[]",
- "dataIndex" : "lkey"
- },
{
"xtype" : "ColumnModel",
- "header" : "English",
- "width" : 150,
- "$ renderer" : "function(v) { return String.format('{0}', v); }",
+ "width" : 300,
+ "header" : "Original",
+ "$ renderer" : "function(v,x,r) \n{\n var c = '#666';\n if (r.data.updated < r.data.src_id_updated) {\n c = 'red';\n }\n \n return String.format('<div style=\"color:'+c+'\";>{0}</div>', v)\n\n}",
"$ xns" : "Roo.grid",
- "Boolean sortable" : true,
- "* prop" : "colModel[]",
- "dataIndex" : "lval_en"
+ "* prop" : "cm[]",
+ "dataIndex" : "src_id_txt"
},
{
"xtype" : "ColumnModel",
- "header" : "Translation",
"width" : 200,
- "$ renderer" : "function(v) { return String.format('{0}', v); }",
+ "header" : "Translation",
+ "$ renderer" : "function(v,x,r) \n{ \n\n var c = '#666';\n if (r.data.updated < r.data.src_id_updated) {\n c = 'red';\n }\n \n return String.format('<div style=\"color:'+c+'\";>{0}</div>', v)\n\n}",
"$ xns" : "Roo.grid",
- "Boolean sortable" : true,
- "* prop" : "colModel[]",
- "dataIndex" : "lval",
+ "* prop" : "cm[]",
+ "dataIndex" : "txt",
"items" : [
{
"xtype" : "GridEditor",
"items" : [
{
"xtype" : "TextField",
+ "allowBlank" : false,
"$ xns" : "Roo.form",
"* prop" : "field"
}
},
{
"xtype" : "ColumnModel",
- "header" : "Active?",
- "width" : 150,
- "$ renderer" : "function(v,x,r) { \n\n return '<img class=\"x-grid-check-icon' + (v*1 ? '-checked' : '') + '\" src=\"' + Roo.BLANK_IMAGE_URL + '\"/>';\n \n \n}",
+ "width" : 250,
+ "header" : "md5",
+ "$ renderer" : "function(v,x,r) \n{\n return v ? v : '';\n\n}",
"$ xns" : "Roo.grid",
- "* prop" : "colModel[]",
- "dataIndex" : "is_active"
+ "* prop" : "cm[]",
+ "Boolean hidden" : true,
+ "dataIndex" : "src_id_mdsum"
}
]
}
_strings : {
'0a52da7a03a6de3beefe54f8c03ad80d' :"Original",
- '4994a8ffeba4ac3140beb89e8d41f174' :"Language",
- 'ae739a236065a45c64ad51aacb19498c' :"Active?",
- 'd41d8cd98f00b204e9800998ecf8427e' :"",
+ '0b8d92bc19b720bb1065649535463409' :"Translations",
+ '69fd71b6f79260924a32a45850a13ab7' :"Translations (rescan this to update strings)",
+ '9d1ead73e678fa2f51a70a933b0bf017' :"Not Found",
'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"
- },
- _named_strings : {
- 'language_title_value' : 'd41d8cd98f00b204e9800998ecf8427e' /* */ ,
- 'language_title_qtip' : '83dad8107f9459efe2b4fabcf5b63108' /* Select Language */ ,
- 'language_title_fieldLabel' : '4994a8ffeba4ac3140beb89e8d41f174' /* Language */
+ 'e3d388b2c43e5ba0905702620ae2abc1' :"Search for",
+ 'e2f9d206562d8f5ea421ad51100f7151' :"Displaying petition_entry{0} - {1} of {2}",
+ 'cd6ae20e52d83f601c5fa12b66f0f6d0' :"Rescan",
+ '4d1c8263ba1036754f8db14a98f9f006' :"Reload",
+ 'f2a6c498fb90ee345d997f888fce3b18' :"Delete",
+ '03c2e7e41ffc181a4e84080b4710e81e' :"New",
+ '193cfc9be3b995831c6af2fea6650e60' :"Page",
+ '1bc29b36f623ba82aaf6724fd3b16718' :"md5"
},
part : ["Admin", "Translations" ],
return {
xtype : 'NestedLayoutPanel',
region : 'center',
- title : _this._strings['4e7c16d320ae129cc81b296e05748b3a'] /* Translate App */,
+ title : _this._strings['0b8d92bc19b720bb1065649535463409'] /* Translations */,
xns : Roo,
'|xns' : 'Roo',
layout : {
'|xns' : 'Roo',
center : {
xtype : 'LayoutRegion',
- alwaysShowTabs : true,
- tabPosition : 'top',
+ xns : Roo,
+ '|xns' : 'Roo'
+ },
+ west : {
+ xtype : 'LayoutRegion',
+ split : true,
+ width : 450,
xns : Roo,
'|xns' : 'Roo'
},
items : [
{
- xtype : 'GridPanel',
- background : true,
- fitContainer : true,
- fitToframe : true,
- region : 'center',
- title : _this._strings['a1d1ae170f841c328acdc6052511ed8c'] /* Text in interface */,
+ xtype : 'TreePanel',
+ region : 'west',
listeners : {
- activate : function() {
- _this.panel = this;
- if (_this.grid) {
- _this.grid.getDataSource().reload();
- }
+ render : function (_self)
+ {
+ _this.treepanel = _self;
}
},
xns : Roo,
'|xns' : 'Roo',
- grid : {
- xtype : 'EditorGrid',
- autoExpandColumn : 'txt',
- clicksToEdit : 1,
- loadMask : true,
- 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;
- }
-
- 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();
- }
- }
- },
- xns : Roo.grid,
- '|xns' : 'Roo.grid',
- toolbar : {
- xtype : 'Toolbar',
- xns : Roo,
- '|xns' : 'Roo',
- items : [
- {
- xtype : 'ComboBox',
- displayField : 'module',
- editable : false,
- emptyText : _this._strings['b51c3fa7e0ae26a1d88bf1279f265bb4'] /* Select Module */,
- mode : 'local',
- selectOnFocus : true,
- triggerAction : 'all',
- typeAhead : false,
- valueField : 'module',
- width : 200,
- listeners : {
- render : function (_self)
- {
- _this.modCombo = _self;
- },
- select : function (combo, record, index)
- {
- _this.grid.getDataSource().reload();
- }
- },
- xns : Roo.form,
- '|xns' : 'Roo.form',
- store : {
- xtype : 'SimpleStore',
- 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,
- '|xns' : 'Roo.data'
- }
- },
- {
- xtype : 'ComboBox',
- displayField : 'ldisp',
- editable : false,
- emptyText : _this._strings['83dad8107f9459efe2b4fabcf5b63108'] /* Select Language */,
- mode : 'local',
- selectOnFocus : true,
- triggerAction : 'all',
- typeAhead : false,
- valueField : 'lang',
- width : 200,
- listeners : {
- render : function (_self)
- {
- _this.langCombo=_self;
- },
- select : function (combo, record, index)
- {
- _this.grid.getDataSource().reload();
- }
- },
- xns : Roo.form,
- '|xns' : 'Roo.form',
- store : {
- xtype : 'SimpleStore',
- data : [ [ 'zh_HK' , '\u7E41\u4E2D - Trad. Chin. (HK)' ], [ 'zh_CN', '\u7C21\u4E2D - Simp. Chin.' ] ],
- fields : ['lang', 'ldisp'],
- xns : Roo.data,
- '|xns' : 'Roo.data'
- }
+ toolbar : {
+ xtype : 'Toolbar',
+ xns : Roo,
+ '|xns' : 'Roo',
+ items : [
+ {
+ xtype : 'Button',
+ text : _this._strings['03c2e7e41ffc181a4e84080b4710e81e'] /* New */,
+ 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();
+ }
+ });
+
+ });
+
+ }
},
- {
- xtype : 'Fill',
- xns : Roo.Toolbar,
- '|xns' : 'Roo.Toolbar'
+ xns : Roo.Toolbar,
+ '|xns' : 'Roo.Toolbar'
+ },
+ {
+ xtype : 'Separator',
+ xns : Roo.Toolbar,
+ '|xns' : 'Roo.Toolbar'
+ },
+ {
+ xtype : 'Button',
+ text : _this._strings['f2a6c498fb90ee345d997f888fce3b18'] /* Delete */,
+ 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;
+
+
+
+
+ });
+ }
},
- {
- xtype : 'Button',
- text : _this._strings['801ab24683a4a8c433c6eb40c48bcd9d'] /* Download */,
- listeners : {
- click : function (_self, e)
- {
- new Pman.Download({
- grid: _this.grid
-
- });
- }
- },
- xns : Roo.Toolbar,
- '|xns' : 'Roo.Toolbar'
- }
- ]
- },
- dataSource : {
- xtype : 'Store',
- reader : Pman.Readers.Category,
- 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);
- }
+ xns : Roo.Toolbar,
+ '|xns' : 'Roo.Toolbar'
},
- xns : Roo.data,
- '|xns' : 'Roo.data',
- proxy : {
- xtype : 'HttpProxy',
- method : 'GET',
- url : baseURL + '/Admin/Translations.php',
- xns : Roo.data,
- '|xns' : 'Roo.data'
+ {
+ xtype : 'Separator',
+ xns : Roo.Toolbar,
+ '|xns' : 'Roo.Toolbar'
},
- reader : {
- xtype : 'JsonReader',
- 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,
- '|xns' : 'Roo.data'
- }
- },
- colModel : [
{
- xtype : 'ColumnModel',
- dataIndex : 'colname',
- header : _this._strings['49ee3087348e8d44e1feda1917443987'] /* Name */,
- 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>';
- },
- width : 150,
- xns : Roo.grid,
- '|xns' : 'Roo.grid'
+ xtype : 'Button',
+ text : _this._strings['cd6ae20e52d83f601c5fa12b66f0f6d0'] /* Rescan */,
+ 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 syncTemplate = function(){
+ new Pman.Request({
+ url : baseURL + '/Admin/UpdateBjsTemplates',
+ method : 'GET',
+ mask : 'Processing...',
+ timeout : 9000000,
+ success : function()
+ {
+ _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();
+ }
+ });
+ };
+
+ if(typeof(sn.isRoot) != 'undefined' && sn.isRoot){
+ syncTemplate();
+ return;
+ }
+
+ if(typeof(sn.attributes.language) != 'undefined' && sn.attributes.language){
+ syncLanguage();
+ return;
+ }
+
+
+
+
+
+ }
+ },
+ xns : Roo.Toolbar,
+ '|xns' : 'Roo.Toolbar'
},
{
- xtype : 'ColumnModel',
- dataIndex : 'origtxt',
- header : _this._strings['0a52da7a03a6de3beefe54f8c03ad80d'] /* Original */,
- 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>'; },
- width : 300,
- xns : Roo.grid,
- '|xns' : 'Roo.grid'
+ xtype : 'Fill',
+ xns : Roo.Toolbar,
+ '|xns' : 'Roo.Toolbar'
},
{
- xtype : 'ColumnModel',
- dataIndex : 'reset_tx',
- header : _this._strings['526d688f37a86d3c3f27d0c5016eb71d'] /* Reset */,
- renderer : function(v,x,r) {
- return '<img src="' + rootURL + '/Pman/templates/images/edit-clear.gif' + '" width="16" height="16">';
+ xtype : 'Button',
+ text : _this._strings['801ab24683a4a8c433c6eb40c48bcd9d'] /* Download */,
+ 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'
+ };
+ 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 (sn.id.match(/^view:/)) {
+ var sns = sn.id.split(':');
+ p.lang = sns[1];
+ p.template_id_view_name = sns[2];
+ }
+ if (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'
+ });
+
+
+
+
+
+ }
},
- width : 50,
- xns : Roo.grid,
- '|xns' : 'Roo.grid'
+ xns : Roo.Toolbar,
+ '|xns' : 'Roo.Toolbar'
},
{
- xtype : 'ColumnModel',
- dataIndex : 'txt',
- header : _this._strings['e2ade2e0b88406a390f59b5232abb328'] /* Translated (Click to Edit) */,
- 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>'; },
- width : 150,
- xns : Roo.grid,
- '|xns' : 'Roo.grid',
- editor : {
- xtype : 'GridEditor',
- xns : Roo.grid,
- '|xns' : 'Roo.grid',
- field : {
- xtype : 'TextField',
- xns : Roo.form,
- '|xns' : 'Roo.form'
- }
- }
+ xtype : 'Separator',
+ xns : Roo.Toolbar,
+ '|xns' : 'Roo.Toolbar'
+ },
+ {
+ xtype : 'Button',
+ text : _this._strings['4d1c8263ba1036754f8db14a98f9f006'] /* Reload */,
+ listeners : {
+ click : function (_self, e)
+ {
+ _this.treepanel.tree.getRootNode().reload();
+
+ }
+ },
+ xns : Roo.Toolbar,
+ '|xns' : 'Roo.Toolbar'
}
]
+ },
+ tree : {
+ xtype : 'TreePanel',
+ containerScroll : false,
+ rootVisible : true,
+ xns : Roo.tree,
+ '|xns' : 'Roo.tree',
+ root : {
+ xtype : 'AsyncTreeNode',
+ id : 'transtree',
+ text : _this._strings['69fd71b6f79260924a32a45850a13ab7'] /* Translations (rescan this to update strings) */,
+ xns : Roo.tree,
+ '|xns' : 'Roo.tree'
+ },
+ selModel : {
+ xtype : 'DefaultSelectionModel',
+ listeners : {
+ selectionchange : function (_self, node)
+ {
+ Roo.log(node);
+
+ //if (node.id.split('/').length < 2) {
+ // return;
+ // }
+ (function() {
+ _this.grid.footer.onClick('first');
+ }).defer(100);
+
+ }
+ },
+ xns : Roo.tree,
+ '|xns' : 'Roo.tree'
+ },
+ loader : {
+ xtype : 'TreeLoader',
+ baseParams : { _tree : 1 },
+ dataUrl : baseURL + '/Roo/Core_templatestr',
+ requestMethod : 'GET',
+ 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");
+ }
+ },
+ xns : Roo.tree,
+ '|xns' : 'Roo.tree'
+ }
}
},
{
xtype : 'GridPanel',
- background : true,
+ background : false,
fitContainer : true,
fitToframe : true,
region : 'center',
- tableName : 'i18n',
- title : _this._strings['0a9e8bd9e8b301dfb2c21c355e0b377d'] /* Languages and Countries */,
+ tableName : 'Page',
+ title : _this._strings['193cfc9be3b995831c6af2fea6650e60'] /* Page */,
listeners : {
activate : function() {
- _this.langpanel = this;
- if (_this.langgrid) {
- _this.langgrid.ds.load({});
+ _this.panel = this;
+ if (_this.grid) {
+ _this.grid.footer.onClick('first');
}
}
},
'|xns' : 'Roo',
grid : {
xtype : 'EditorGrid',
- autoExpandColumn : 'lval',
+ autoExpandColumn : 'txt',
clicksToEdit : 1,
loadMask : true,
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'),
- ltype : rec.get('ltype')
- },
- 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();
+ 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;
+ }
- 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;
+ 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();
}
-
-
- 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 (e.record.data.txt.replace(/\s+/, '').length) {
+ return true;
+ }
+
+ var tl = _this.treepanel.tree.getSelectionModel().getSelectedNode().parentNode.attributes.id;
+ // mapping?
- if(!s || s.data.id * 1 < 0){
- return;
+ 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;
}
- s.set('is_active', s.data.is_active ? 0 : 1);
+ Pman.GoogleTranslate(e.record.data.src_id_txt, "en", tl, function(result) {
+ // Roo.log(result);
+ _this.grid.activeEditor.setValue(result);
+ //console.log(result.translation);
+ });
- new Pman.Request({
- url : baseURL+'/Roo/I18n',
- method : 'POST',
- params : {
- id : s.data.id,
- is_active : s.data.is_active
- }
- });
+
+ return true;
},
render : function()
{
- _this.langgrid = this;
+ _this.grid = this;
//_this.dialog = Pman.Dialog.FILL_IN
- if (_this.langpanel.active) {
- this.ds.load({});
+ 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');
+ });
}
},
xns : Roo.grid,
'|xns' : 'Roo.grid',
+ footer : {
+ xtype : 'PagingToolbar',
+ displayInfo : true,
+ displayMsg : _this._strings['e2f9d206562d8f5ea421ad51100f7151'] /* Displaying petition_entry{0} - {1} of {2} */,
+ emptyMsg : _this._strings['9d1ead73e678fa2f51a70a933b0bf017'] /* Not Found */,
+ pageSize : 100,
+ xns : Roo,
+ '|xns' : 'Roo'
+ },
toolbar : {
xtype : 'Toolbar',
xns : Roo,
'|xns' : 'Roo',
items : [
{
- xtype : 'ComboBox',
- displayField : 'lval',
- editable : false,
- emptyText : _this._strings['552bcc4e00cd663f09cc4efbaca1cd45'] /* Select Translation of */,
- mode : 'local',
- selectOnFocus : true,
- triggerAction : 'all',
- typeAhead : false,
- valueField : 'lkey',
- width : 200,
+ xtype : 'TextField',
+ emptyText : _this._strings['e3d388b2c43e5ba0905702620ae2abc1'] /* Search for */,
listeners : {
render : function (_self)
{
- _this.langtypeCombo = _self;
+ _this.searchBox = this;
},
- select : function (combo, record, index)
+ specialkey : function (_self, e)
{
- _this.langgrid.getDataSource().reload();
+ _this.grid.footer.onClick('first');
}
},
xns : Roo.form,
- '|xns' : 'Roo.form',
- store : {
- xtype : 'SimpleStore',
- data : [
- [ 'l', 'Language Names' ],
- [ 'c', 'Country Names' ],
- [ 'm', 'Currency Names' ]
- ],
- fields : ['lkey','lval'],
- xns : Roo.data,
- '|xns' : 'Roo.data'
- }
+ '|xns' : 'Roo.form'
},
{
- xtype : 'ComboBox',
- allowBlank : false,
- displayField : 'title',
- editable : true,
- fieldLabel : _this._strings['4994a8ffeba4ac3140beb89e8d41f174'] /* Language */,
- hiddenName : 'language',
- listWidth : 300,
- minChars : 2,
- name : 'language_title',
- pageSize : 400,
- qtip : _this._strings['83dad8107f9459efe2b4fabcf5b63108'] /* Select Language */,
- queryParam : 'query[name_starts]',
- selectOnFocus : true,
- triggerAction : 'all',
- typeAhead : true,
- value : _this._strings['d41d8cd98f00b204e9800998ecf8427e'] /* */,
- valueField : 'code',
- width : 200,
+ xtype : 'Button',
+ cls : 'x-btn-icon',
+ icon : rootURL + '/Pman/templates/images/search.gif',
listeners : {
- render : function (_self)
- {
- _this.langgridCombo=_self;
- },
- select : function (combo, record, index)
+ click : function (_self, e)
{
- _this.langgrid.getDataSource().reload();
+ _this.grid.footer.onClick('first');
}
},
- xns : Roo.form,
- '|xns' : 'Roo.form',
- store : {
- xtype : 'Store',
- sortInfo : { field : 'title', direction: 'ASC' },
- listeners : {
- beforeload : function (_self, options)
- {
- options =options || {};
- options.params =options.params|| {};
- options.params.ltype = 'l';
- options.params.inlang = 'en';
-
- options.params._as_code_and_title = 1;
+ xns : Roo.Toolbar,
+ '|xns' : 'Roo.Toolbar'
+ },
+ {
+ xtype : 'Button',
+ cls : 'x-btn-icon',
+ icon : rootURL + '/Pman/templates/images/edit-clear.gif',
+ listeners : {
+ click : function (_self, e)
+ {
+ _this.searchBox.setValue('');
- }
- },
- xns : Roo.data,
- '|xns' : 'Roo.data',
- proxy : {
- xtype : 'HttpProxy',
- method : 'GET',
- url : baseURL + '/Roo/i18n.php',
- xns : Roo.data,
- '|xns' : 'Roo.data'
- },
- reader : {
- xtype : 'JsonReader',
- 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,
- '|xns' : 'Roo.data'
- }
- }
+ _this.grid.footer.onClick('first');
+ }
+ },
+ xns : Roo.Toolbar,
+ '|xns' : 'Roo.Toolbar'
}
]
},
dataSource : {
xtype : 'Store',
remoteSort : true,
- sortInfo : { field : 'lkey', direction: 'ASC' },
+ sortInfo : { field : 'src_id_txt', direction: 'ASC' },
listeners : {
- beforeload : function (_self, options)
+ beforeload : function (_self, o)
{
- 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;
+ 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.template_id = sn.attributes.id * 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;
+ }
+
+ },
+ 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");
+ }
+
+ });
+
}
},
xns : Roo.data,
proxy : {
xtype : 'HttpProxy',
method : 'GET',
- url : baseURL + '/Roo/i18n.php',
+ url : baseURL + '/Roo/Core_templatestr.php',
xns : Roo.data,
'|xns' : 'Roo.data'
},
'type': 'int'
},
{
- 'name': 'ltype',
- 'type': 'string'
- },
- {
- 'name': 'lkey',
- 'type': 'string'
- },
- {
- 'name': 'inlang',
- 'type': 'string'
- },
- {
- 'name': 'lval',
+ 'name': 'shortname',
'type': 'string'
}
+
],
id : 'id',
root : 'data',
'|xns' : 'Roo.data'
}
},
- colModel : [
+ cm : [
{
xtype : 'ColumnModel',
- dataIndex : 'lkey',
- header : _this._strings['ca0dbad92a874b2f69b549293387925e'] /* Code */,
- renderer : function(v) { return String.format('{0}', v); },
- sortable : true,
- width : 50,
- xns : Roo.grid,
- '|xns' : 'Roo.grid'
- },
- {
- xtype : 'ColumnModel',
- dataIndex : 'lval_en',
- header : _this._strings['78463a384a5aa4fad5fa73e2f506ecfc'] /* English */,
- renderer : function(v) { return String.format('{0}', v); },
- sortable : true,
- width : 150,
+ dataIndex : 'src_id_txt',
+ header : _this._strings['0a52da7a03a6de3beefe54f8c03ad80d'] /* Original */,
+ 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)
+
+ },
+ width : 300,
xns : Roo.grid,
'|xns' : 'Roo.grid'
},
{
xtype : 'ColumnModel',
- dataIndex : 'lval',
+ dataIndex : 'txt',
header : _this._strings['6dd08874f83507e9c7b23f1a46b7fa7c'] /* Translation */,
- renderer : function(v) { return String.format('{0}', v); },
- sortable : true,
+ 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)
+
+ },
width : 200,
xns : Roo.grid,
'|xns' : 'Roo.grid',
'|xns' : 'Roo.grid',
field : {
xtype : 'TextField',
+ allowBlank : false,
xns : Roo.form,
'|xns' : 'Roo.form'
}
},
{
xtype : 'ColumnModel',
- dataIndex : 'is_active',
- header : _this._strings['ae739a236065a45c64ad51aacb19498c'] /* Active? */,
- renderer : function(v,x,r) {
+ dataIndex : 'src_id_mdsum',
+ header : _this._strings['1bc29b36f623ba82aaf6724fd3b16718'] /* md5 */,
+ hidden : true,
+ renderer : function(v,x,r)
+ {
+ return v ? v : '';
- return '<img class="x-grid-check-icon' + (v*1 ? '-checked' : '') + '" src="' + Roo.BLANK_IMAGE_URL + '"/>';
-
-
},
- width : 150,
+ width : 250,
xns : Roo.grid,
'|xns' : 'Roo.grid'
}
<?php
+die("NOT USED!?");
+// see core_template code..
+
/**
* Pman_Admin_Translation:
$module = $_REQUEST['module'];
- $this->loadOriginalStrings($module); // what needs translating..
+ $this->loadOriginalStrings($module); // what needs translating..
$ff = $this->bootLoader;
if (empty($ff->Pman['public_cache_dir'])) {
foreach($this->original as $k=>$ar) {
foreach($ar as $tr=>$trv) {
// $hint = isset($hints[$tr]) ? $hints[$tr] : '';
- $key = md5($k.'-'.$tr);
+ $key = $trv;
$ret[] = array(
'id' => $lang.'/'.$key,
'msum' => $key,
// since this can handle errors better.!!?
$info = $this->moduleJavascriptFilesInfo($module);
//print_r($info);
- $tfile =$info->basedir . '/'. $info->translation_data;
+
+
+
+ $this->original = array();
+ $tfile = $info->basedir . '/'. $info->translation_data;
//var_dump($tfile);
- if (empty($tfile) || !file_exists($tfile)) {
- return array();
- }
+ //if (empty($tfile) || !file_exists($tfile)) {
+
+ foreach($info->filesmtime as $f =>$mt) {
+ $bjs = preg_replace('/\.js$/','.bjs', $f);
+ if (!file_exists($bjs)) {
+ continue;
+ }
+ $jd = json_decode(file_get_contents($bjs));
+ if (empty($jd->strings)) {
+ continue;
+ }
+ foreach($jd->strings as $tkey => $val) {
+ $line = array(
+ 'module' => $module,
+ 'tfile' => preg_replace('/\.js$/','', basename($bjs)),
+ )
+
+
+ }
+
+ $this->original[str_replace('.bjs', '', basename($bjs)) ] = array_flip((array)$jd->strings);
+ }
+
+ file_put_contents($tfile, json_encode($this->original));
+
+
+ //}
- require_once 'Services/JSON.php';
- $j = new Services_JSON();
- $this->original = (array) $j->decode('{'. file_get_contents($tfile).'}');
+ print_R($this->original);exit;
+
+
+ $this->original = (array) json_decode( file_get_contents($tfile) );
ksort($this->original);
$this->originalKeys = array();
--- /dev/null
+<?php
+
+/**
+ *
+
+ *
+ */
+
+require_once 'Pman.php';
+class Pman_Admin_UpdateBjsTemplates extends Pman
+{
+
+ static $cli_desc = "Update BJS Templates";
+
+ static $cli_opts = array();
+
+ var $cli = false;
+
+ var $opts;
+
+ function getAuth() {
+
+
+ $ff = HTML_FlexyFramework::get();
+ if (!empty($ff->cli)) {
+ $this->cli = true;
+ return true;
+ }
+
+ return true;
+ }
+
+ function get($tbl, $opts=array())
+ {
+ PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, array($this, 'onPearError'));
+ $this->opts = $opts;
+ $this->updateData();
+ }
+
+ function updateData()
+ {
+ $this->scanProjectBJS();
+ $this->scanPmanBJS();
+ $this->scanPmanTemplates();
+
+ $this->scanTables();
+ $this->syncLanguage();
+
+ $this->jok('OK');
+
+ }
+
+ function scanProjectBJS()
+ {
+ $ff = HTML_FlexyFramework::get();
+
+ if (empty($ff->Pman_Core)) {
+ $this->jerr("config[Pman_Core] is not set");
+ }
+ if (!empty($ff->Pman_Core['project_name'])) {
+ $base = $ff->Pman_Core['project_name'];
+
+ $dh = opendir($base);
+
+ $ret = array();
+
+ if(!$dh){
+ $this->jerr("could not open dir: config[Pman_Core] = " . $base);
+ return $ret; // something went wrong!?
+ }
+
+ while (($fn = readdir($dh)) !== false) {
+
+ if(empty($fn) || $fn[0] == '.' || !preg_match('/\.bjs$/', $fn)){
+ continue;
+ }
+
+ if($this->cli){
+ echo "Processing {$fn} \n";
+ }
+
+ $template = DB_DataObject::factory('core_template');
+ $template->setFrom(array(
+ 'template' => $fn,
+ 'lang' => 'en',
+ 'view_name' => $base
+ ));
+
+ $o = false;
+
+ if($template->find(true)){
+ $o = clone ($template);
+ }
+
+ $template->updated = $template->sqlValue("NOW()");
+
+ (empty($o)) ? $template->insert() : $template->update($o);
+
+ $data = json_decode(file_get_contents($base . '/' . $fn), true);
+
+ $template->words = empty($data['strings']) ? array() : $data['strings'];
+
+ $x = DB_DataObject::Factory('core_templatestr');
+ $x->syncTemplateWords($template, false);
+ }
+ }
+
+ }
+
+ function scanPmanBJS()
+ {
+ foreach ($this->modules() as $m){
+ $view_name = "Pman.$m";
+
+ $dh = opendir("Pman/$m");
+
+ $ret = array();
+
+ if(!$dh){
+ continue;
+ }
+
+ while (($fn = readdir($dh)) !== false) {
+
+ if(empty($fn) || $fn[0] == '.' || !preg_match('/\.bjs$/', $fn)){
+ continue;
+ }
+
+ if($this->cli){
+ echo "Processing {$fn} \n";
+ }
+
+ $template = DB_DataObject::factory('core_template');
+ $template->setFrom(array(
+ 'template' => $fn,
+ 'lang' => 'en',
+ 'view_name' => $view_name
+ ));
+
+ $o = false;
+
+ if($template->find(true)){
+ $o = clone ($template);
+ }
+
+ $template->updated = $template->sqlValue("NOW()");
+
+ (empty($o)) ? $template->insert() : $template->update($o);
+
+ $data = json_decode(file_get_contents('Pman' . '/' . $m . '/' . $fn), true);
+
+ $template->words = empty($data['strings']) ? array() : $data['strings'];
+
+ $x = DB_DataObject::Factory('core_templatestr');
+ $x->syncTemplateWords($template, false);
+ }
+ }
+
+ }
+
+ function scanTables()
+ {
+ $ff = HTML_FlexyFramework::get();
+
+ if (empty($ff->Pman_Core)) {
+ $this->jerr("config[Pman_Core] is not set");
+ }
+
+ if(isset($ff->Pman_Core['DataObjects_Core_templatestr']['tables'])){
+ $cts = DB_DataObject::factory('core_templatestr');
+
+ if($this->cli){
+ echo "Sync tables.....\n";
+ }
+
+ foreach($ff->Pman_Core['DataObjects_Core_templatestr']['tables'] as $table=>$cols){
+ $t = DB_DataObject::factory($table);
+ foreach($t->fetchAll() as $d) {
+ $cts->onTableChange($this, $d, 'update');
+ }
+ }
+ }
+ }
+
+ function syncLanguage()
+ {
+ $ff = HTML_FlexyFramework::get();
+
+ if (empty($ff->Pman_Core)) {
+ $this->jerr("config[Pman_Core] is not set");
+ }
+
+ $opt_lang = empty($ff->Pman_Core_I18n) ? array( 'l' => array()) : $ff->Pman_Core_I18n;
+
+ if($this->cli){
+ echo "Sync the Languages template.....\n";
+ }
+
+ foreach($opt_lang['l'] as $l) {
+ if($this->cli){
+ echo "Sync $l Language.....\n";
+ }
+
+ $tps = DB_DataObject::factory('core_templatestr');
+ $tps->syncLang($l); /// this should be configured somewhere..
+ }
+ }
+
+ function scanPmanTemplates()
+ {
+ // the CMS stuff scanned the PHP code looking for references to templates..
+ $tp = DB_DAtaObject::Factory('core_template');
+
+ foreach ($this->modules() as $m){
+
+ // templates...
+ $ar = $this->scanDir(array(
+ 'tdir' => "Pman/$m/templates",
+ 'subdir' => '',
+ 'match' => '/\.(html|txt|abw)$/',
+ 'skipdir' => array('images','css','js'),
+
+ ));
+
+
+ foreach($ar as $pg) {
+
+
+ $tp->syncTemplatePage(array(
+ 'base' =>'Pman.'.$m,
+ 'template_dir' => "Pman/$m/templates",
+ 'template' => $pg
+ ));
+ }
+ // should clean up old templates..
+ // php files..
+ $ar = $this->scanDir(array(
+ 'tdir' => "Pman/$m",
+ 'subdir' => '',
+ 'match' => '/\.(php)$/',
+ 'skipdir' => array('templates'),
+
+ ));
+
+
+ foreach($ar as $pg) {
+
+ $tp->syncPhpGetText(array(
+ 'base' =>'Pman.'.$m,
+ 'template_dir' => "Pman/$m",
+ 'template' => $pg
+ ));
+ }
+
+
+
+
+
+ //$tp->syncTemplatePage($pg);
+ }
+
+
+ }
+
+
+
+ function scanDir($cfg) //$view, $tdir , $subdir='', $match)
+ {
+ //echo "TSCAN base= $base subdir =$subdir\n ";
+ $ff = HTML_FlexyFramework::get();
+
+ $subdir = $cfg['subdir'];
+ $scandir = $cfg['tdir']. (empty($subdir) ? '' : '/') . $subdir;
+
+ if (in_array($subdir, $cfg['skipdir'])) {
+ return array();
+ }
+ // skip dom_templates
+
+ if (!file_exists($scandir)) {
+ return array();
+ }
+ $dh = opendir($scandir);
+ if(!$dh){
+ return array(); // something went wrong!?
+ }
+ $ret = array();
+
+ while (($fn = readdir($dh)) !== false) {
+ // do we care that it will try and parse the template directory??? - not really..
+ // as we are only looking for php files..
+ if(empty($fn) || $fn[0] == '.'){
+ continue;
+ }
+
+ $fullpath = $scandir.(empty($scandir) ? '' : "/").$fn;
+ // echo "filename: $fullpath \n";
+
+ if (is_link($fullpath)) {
+ continue;
+ }
+
+ if(is_dir($fullpath)){
+ // then recursively call self...
+ $cfg['subdir'] = $subdir . (empty($subdir) ? '' : '/') . $fn;
+ $children = $this->scanDir($cfg);
+ if (count($children)) {
+ $ret = array_merge($ret, $children);
+
+ }
+ continue;
+
+ }
+
+ if (!preg_match($cfg['match'], $fn) || !is_file($fullpath)) {
+ continue;
+ }
+
+
+
+ $ret[] = $subdir . (empty($subdir) ? '' : '/'). $fn; /// this used to be strtolower?? why???
+
+
+
+ }
+// print_r($ret);
+
+ return $ret;
+
+
+
+
+ }
+
+}