var newLabelWin; Ext.onReady(function(){ Ext.QuickTips.init(); var store = new Ext.data.Store( { autoLoad: true, proxy : new Ext.data.HttpProxy({ url: 'ajaxListener?action=getList&start=0&limit=20' }), reader : new Ext.data.JsonReader( { totalProperty: 'totalCount', root: 'data', fields : [ {name : 'TRN_ID'}, {name : 'TRN_CATEGORY'}, {name : 'TRN_LANG'}, {name : 'TRN_VALUE'}, {name : 'TRN_UPDATE_DATE'} ] }) }); store.setBaseParam('dateFrom', dateFrom.getValue()); store.setBaseParam('dateTo', dateTo.getValue()); store.load({params:{start : 0 , limit : 20}}); //store.load({params:{ start : 0 , limit : pageSize }}); var comboCategory = new Ext.form.ComboBox({ fieldLabel : 'Category', name : 'category', allowBlank : true, store : new Ext.data.ArrayStore({ fields: ['CATEGORY_UID', 'CATEGORY_NAME'], data : [] }), valueField : 'CATEGORY_NAME', displayField : 'CATEGORY_NAME', typeAhead : true, //mode : 'local', triggerAction : 'all', editable: true, forceSelection: true, selectOnFocus : true }); var grid = new Ext.grid.GridPanel( { id: 'grid', //autoHeight:true, //autoScroll:true, //width:'300', title : '', stateful : true, stateId : 'gridTooldMain', enableColumnResize: true, enableHdMenu: true, //frame:false, //cls : '', //columnLines: true, viewConfig: { forceFit:true }, clicksToEdit: 1, cm: new Ext.grid.ColumnModel({ defaults: { width: 200, sortable: true }, columns: [ {header: 'ID', id:'TRN_ID', dataIndex: 'TRN_ID', hidden:false, hideable:true, width: 350, editor: new Ext.form.TextField({allowBlank: true, readOnly:true}) } , {header: 'Value', dataIndex: 'TRN_VALUE', width: 300, renderer:function(v,p,r){ var label = v.length > 20 ? v.substring(0, 20) + '...' : v; return String.format("{0}", label); }}, {header: 'Lang', dataIndex: 'TRN_LANG', width: 300}, {header: 'Category', dataIndex: 'TRN_CATEGORY', width: 300}, {header: 'Date', dataIndex: 'TRN_UPDATE_DATE', width: 300} ] }), store: store, tbar:[ { text:_('ID_ADD'), iconCls: 'button_menu_ext ss_sprite ss_add', handler: function(){ Ext.getCmp('id').setValue(''); Ext.getCmp('label').setValue(''); newLabelWin.show(); } },{ text:_('ID_REMOVE'), iconCls: 'button_menu_ext ss_sprite ss_delete', handler: removeLabel },{ text: ' Rebuild', icon: '/images/trigger.gif', handler: rebuild }, //{ // text: ' Export', // icon: '/images/export.png', // handler: rebuild // }, ' ',' ',' ',' ' , 'From', dateFrom, ' ', ' To ',//TRANSLATIONS.ID_TO, dateTo, new Ext.Button ({ text: 'Filter By', handler: function(){ store.setBaseParam('dateFrom', dateFrom.getValue()); store.setBaseParam('dateTo', dateTo.getValue()); store.load({params:{start : 0 , limit : 20}}); //store.load({params:{ start : 0 , limit : pageSize }}); } }),'->', new Ext.form.TextField ({ id: 'searchTxt', ctCls:'pm_search_text_field', allowBlank: true, width: 150, emptyText: _('ID_ENTER_SEARCH_TERM'),//'enter search term', listeners: { specialkey: function(f,e){ if (e.getKey() == e.ENTER) { doSearch(); } } } }) ], bbar: new Ext.PagingToolbar({ pageSize: 15, store: store, displayInfo: true, displayMsg: _('ID_GRID_PAGE_DISPLAYING_ITEMS'), emptyMsg: "", items:[ ] }), listeners: { rowdblclick: function(){}, render: function(){ this.loadMask = new Ext.LoadMask(this.body, {msg:_('ID_LOADING')}); this.ownerCt.doLayout(); } } }); grid.getSelectionModel().on('rowselect', function(){ var rowSelected = grid.getSelectionModel().getSelected(); Ext.getCmp('editValue').setValue(rowSelected.data.TRN_VALUE); Ext.getCmp('label1').setValue(rowSelected.data.TRN_ID); }); Ext.getCmp('grid').store.on('load', function(){ //Ext.getCmp('grid').getSelectionModel().selectRow(Ext.getCmp('grid').getSelectionModel().lastActive); //Ext.getCmp('grid').fireEvent('rowclick', Ext.getCmp('grid'), Ext.getCmp('grid').getSelectionModel().lastActive) }, this, { single: true }); centerPanel = new Ext.Panel({ layout: 'fit', region: 'center', // a center region is ALWAYS required for border layout //deferredRender: false, items: [grid] }); var southPanel = new Ext.Panel({ id:'southPanel', region: 'south', layout: 'fit', //width: 200, height: 120, minSize: 100, maxSize: 400, split: true, collapsible: true, collapseMode: 'mini', margins: '0 0 0 2', items: [{ id: 'editValue', xtype:'textarea' } ], tbar:[ new Ext.form.TextField ({ id: 'label1', allowBlank: true, width: 600, readOnly: true })], bbar: [{ text: _('ID_SAVE'), iconCls: 'ss_sprite ss_disk', handler: saveEdit }] }); var viewport = new Ext.Viewport({ layout: 'border', items: [ centerPanel,southPanel] }); }); var edit = function(){ var rowSelected = Ext.getCmp('grid').getSelectionModel().getSelected(); rowSelected.data.TRN_ID Ext.Ajax.request({ url : 'ajaxListener' , params : {action:'get', ID : rowSelected.data.TRN_ID }, success: function ( result, request ) { store.reload(); var activator = Ext.getCmp('activator'); activator.setDisabled(true); activator.setText('Status'); activator.setIcon(''); }, failure: function ( result, request) { Ext.MessageBox.alert( _('ID_FAILED') , result.responseText); } }); } // var dateFrom = new Ext.form.DateField({ id:'dateFrom', format: 'Y-m-d', width: 120, value: '' }); var dateTo = new Ext.form.DateField({ id:'dateTo', format: 'Y-m-d', width: 120, value: '' }); // var frm = new Ext.FormPanel( { id: 'formNew', labelAlign : 'right', labelWidth : 100, width : 400, items : [ { id: 'id', fieldLabel: 'ID', xtype:'textfield', width: 350 }, { id: 'label', fieldLabel: _('ID_LABEL'), xtype:'textarea', width: 350, height: 50 } ], buttons : [{ text : _('ID_SAVE'), handler : saveNew },{ text : _('ID_CANCEL'), handler : function() { newLabelWin.hide(); } }] }); newLabelWin = new Ext.Window({ title: _('ID_NEW_TRANSLATION'), layout:'fit', title: _('ID_NEW'), width: 490, height: 150, closeAction:'hide', plain: true, items: [frm] }); function doSearch(){ var filter = Ext.getCmp('searchTxt').getValue(); var store = Ext.getCmp('grid').store; store.setBaseParam('search', filter); store.load({params:{search: filter, start : 0 , limit : 25 }}); } function saveNew() { var id = Ext.getCmp('id').getValue(); var label = Ext.getCmp('label').getValue(); Ext.getCmp('formNew').getForm().submit( { url : 'ajaxListener?action=save&id'+id+'&label='+label, waitMsg : _('ID_SAVING'), waitTitle : " ", timeout : 36000, success : function(obj, resp) { Ext.getCmp('grid').store.reload(); PMExt.notify('SAVE', resp.result.msg); newLabelWin.hide(); }, failure: function(obj, resp) { Ext.Msg.alert( _('ID_ERROR'), resp.result.msg); } }); } function saveEdit() { var rows = Ext.getCmp('grid').getSelectionModel().getSelections(); if( rows.length == 1 ){ Ext.Ajax.request({ url : 'ajaxListener', success: function(response) { Ext.MessageBox.hide(); result = Ext.util.JSON.decode(response.responseText); if(result.success){ var grid = Ext.getCmp('grid'); PMExt.notify('SAVE EDIT', result.msg); grid.store.reload(); setTimeout('selectRow()', 1100); } else PMExt.error( _('ID_ERROR'), result.msg); }, params: {action:'save', id: rows[0].get('TRN_ID'), label: Ext.getCmp('editValue').getValue()} }); } else PMExt.error( _('ID_ERROR'), _('ID_SELECT_ONE_ITEM_FROM_LIST')); } function removeLabel() { var rows = Ext.getCmp('grid').getSelectionModel().getSelections(); if( rows.length > 0 ) { ids = Array(); for(i=0; i'; //text += 'JS Cache file: ' + result.cacheFileJS + '
'; text += _('ID_ROWS')+': ' + result.rows + '
'; //text += 'JS ROws: ' + result.rowsJS + '
'; //PMExt.info('Result', text); PMExt.notify('REBUILD SUCCESS', text); } else PMExt.error( _('ID_ERROR'), result.msg); } }); } function selectRow(){ Ext.getCmp('grid').getSelectionModel().selectRow(Ext.getCmp('grid').getSelectionModel().lastActive); Ext.getCmp('grid').fireEvent('rowclick', Ext.getCmp('grid'), Ext.getCmp('grid').getSelectionModel().lastActive) }