init
[Pman.Admin] / Pman.Tab.AdminTranslations.js
1 //<script type="text/javascript">
2
3 // Auto generated file - created by Builder Module - do not edit directly
4
5
6
7 // register the module first
8 Pman.on('beforeload', function()
9 {
10     var disabled = false;
11     if (disabled) {
12         return; 
13     }
14     Pman.register({
15         modKey : '999-pman_tab_admintranslations',
16         module : Pman.Tab.AdminTranslations,
17         region : 'center',
18         parent : Pman.Tab.Admin,
19         name : "Admin - Translations"
20     });
21 });
22 Pman.Tab.AdminTranslations = new Roo.util.Observable({
23
24     panel : false,
25     disabled : false,
26     parentLayout:  false,
27
28     add : function(parentLayout, region)
29     {
30
31         var _this = this;
32         this.parentLayout = parentLayout;
33
34         this.panel = parentLayout.addxtype({
35             xtype : 'GridPanel',
36             title : "Translations",
37             fitToframe : true,
38             fitContainer : true,
39             background : true,
40             listeners : {
41                 activate: function() {
42                     _this.panel = this;
43                     if (_this.grid) {
44                        _this.grid.getDataSource().reload(); 
45                     }
46                 }
47             },
48             grid : {
49                 xtype : 'EditorGrid',
50                 autoExpandColumn : 'txt',
51                 loadMask : true,
52                 listeners : {
53                     render: function() { 
54                         _this.grid = this; 
55                         //_this.dialog = Pman.Dialog.FILL_IN
56                         if (_this.panel.active) {
57                           _this.grid.getDataSource().reload(); 
58                         }
59                     },
60                     beforeedit: function(e) {
61                         console.log('beforeedit');
62                         //if (e.record.get('origtxt').indexOf('<') > -1) {
63                                            // console.log("HTML EDITOR!!");
64                                          
65                                         //    return false;
66                                         //}
67                                         if (e.record.get('txt').replace(/\s+/, '').length) {
68                                             return true;
69                                         }
70                                         if (e.record.get('suggest').length) {
71                                             e.record.set('txt', e.record.get('suggest'));
72                                         //    _this.saveRec(e.record);
73                                             return;
74                                         }
75                                         
76                                         
77                                         
78                                        
79                                         var tl = e.record.get('id').split('/')[0];
80                                       
81                                         tl = (tl == 'zh_HK') ? 'zh-TW' : tl; 
82                                         tl = tl.replace('_', '-');
83                                         var rec = e.record;
84                                         
85                                         
86                                         
87                                         Pman.gtranslate(e.record.get('origtxt'), 'en', tl, function(result) { 
88                                             if (typeof(result) == 'object') { //error
89                                                 return; 
90                                                }
91                                             
92                                             if (_this.grid.activeEditor) {
93                                                 _this.grid.activeEditor.setValue(result);
94                                             } else {
95                                                 rec.set('txt',result);
96                                                 //_this.saveRec(rec);
97                                             }
98                     
99                                             //
100                                             
101                                             
102                                             //console.log(result.translation);
103                                         });
104                                         
105                                        
106                                         
107                                         return true;
108                                     } ,
109                     afteredit: function (e)
110                     {
111                         var saveRec  = function(rec)
112                         {
113                             var g = _this.grid;
114                     
115                             //g.getView().el.mask('Saving');
116                             Ext.Ajax.request({
117                                 url : baseURL + '/Admin/Translations.php',
118                                 method: 'POST',
119                                 params : {
120                                     id : rec.get('id'),
121                                     txt : rec.get('txt'),
122                                     lang :  _this.langCombo.getValue(),
123                                     module :  _this.modCombo.getValue()
124                                 },
125                                 success : function()
126                                 {
127                                     //g.getView().el.unmask();
128                                     //g.getDataSource().reload();
129                                 },
130                                 failure : function()
131                                 {
132                                     Ext.Msg.alert("Error", "There was a problem saving the data - try reloading");
133                                    // g.getView().el.unmask();
134                                 }
135                                 
136                         });
137                             };
138                         
139                         saveRec.defer(1000, _this, [ e.record ]);
140                     }
141                 },
142                 clicksToEdit : 1,
143                 xns: Roo.Grid,
144                 dataSource : {
145                     xtype : 'Store',
146                     reader: Pman.Readers.Category,
147                     listeners : {
148                         beforeload: function (_self, opts)
149                         {
150                         
151                                                 if (!_this.langCombo || !_this.langCombo.getValue().length) {
152                                                     return false;
153                                                 }
154                                                 if (!_this.modCombo || !_this.modCombo.getValue().length) {
155                                                     return false;
156                                                 }
157                                                 opts.params = {
158                                                     lang :  _this.langCombo.getValue(),
159                                                     module :  _this.modCombo.getValue()
160                                                 };
161                         }
162                     },
163                     proxy : {
164                         xtype : 'HttpProxy',
165                         method : 'GET',
166                         url: baseURL + '/Admin/Translations.php'
167                     },
168                     reader : {
169                         xtype : 'JsonReader',
170                         xns: Roo.data,
171                         root : 'data',
172                         totalProperty : 'total',
173                         id : 'id',
174                         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'                  ]
175                     }
176                 },
177                 colModel : [
178                     {
179                         header : 'Name',
180                         width : 150,
181                         dataIndex : 'colname',
182                         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>';                                              }
183                     },
184                     {
185                         header : 'Original',
186                         width : 300,
187                         dataIndex : 'origtxt',
188                         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>';                                              }
189                     },
190                     {
191                         header : 'Translated (Click to Edit)',
192                         width : 150,
193                         dataIndex : 'txt',
194                         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>';                     },
195                         editor : {
196                             xtype : 'GridEditor',
197                             xns: Roo.grid,
198                             field : {
199                                 xtype : 'TextField',
200                                 xns: Roo.form
201                             }
202                         }
203                     }
204                 ],
205                 toolbar : {
206                     xtype : 'Toolbar',
207                     items : [
208                         {
209                             xtype : 'ComboBox',
210                             listeners : {
211                                 render: function (_self)
212                                 {
213                                   _this.modCombo = _self;
214                                 },
215                                 select: function (combo, record, index)
216                                 {
217                                   _this.grid.getDataSource().reload(); 
218                                 }
219                             },
220                             valueField : 'module',
221                             displayField : 'module',
222                             width : 200,
223                             typeAhead : false,
224                             editable : false,
225                             mode : 'local',
226                             triggerAction : 'all',
227                             emptyText : "Select Module",
228                             selectOnFocus : true,
229                             store : {
230                                 xtype : 'SimpleStore',
231                                 xns: Roo.data,
232                                 fields: ['module'],
233                                 data: (function() {             var modlist = [];             Roo.each( AppModules.split(','), function(mod) {            
234                                          modlist.push( [ mod ] );             });             return modlist;         })()
235                             }
236                         },
237                         {
238                             xtype : 'ComboBox',
239                             listeners : {
240                                 select: function (combo, record, index)
241                                 {
242                                   _this.grid.getDataSource().reload(); 
243                                 },
244                                 render: function (_self)
245                                 {
246                                   _this.langCombo=_self;
247                                 }
248                             },
249                             valueField : 'lang',
250                             displayField : 'ldisp',
251                             width : 200,
252                             typeAhead : false,
253                             editable : false,
254                             mode : 'local',
255                             triggerAction : 'all',
256                             emptyText : "Select Language",
257                             selectOnFocus : true,
258                             store : {
259                                 xtype : 'SimpleStore',
260                                 xns: Roo.data,
261                                 fields: ['lang', 'ldisp'],
262                                 data: [                                                [ 'zh_HK' , '\u7E41\u4E2D - Trad. Chin. (HK)' ],                         [ 'zh_CN', '\u7C21\u4E2D - Simp. Chin.' ]                     ]
263                             }
264                         }
265                     ]
266                 }
267             },
268             region : 'center'
269         });
270     }
271 });
272 /*
273 --SOURCE--
274 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
311 */