Ext.namespace('ui','ui.task'); // config - { ftype, fpath, fname, noConfirm } ui.task.ClearLocalChangeTask = function(config) { Ext.apply(this, config); var ftype = this.ftype, fpath = this.fpath, fname = this.fname; goClear = function() { Ext.getBody().mask( ' ' + _('Please, wait...') ); // Before clear local change, we close the file if there is open var panel = ["FNT", "FNU", "FE", "FNR", "FNIEN", "AF"]; for( var i=0; i < panel.length; i++) { if (Ext.getCmp('main-panel').findById(panel[i] + '-' + Ext.util.md5(panel[i] + '-' + fpath + fname))) { Ext.getCmp('main-panel').remove( panel[i] + '-' + Ext.util.md5(panel[i] + '-' + fpath + fname)); } } XHR({ params : { task : 'clearLocalChange', FileType : ftype, FilePath : fpath, FileName : fname }, success : function(r) { var o = Ext.util.JSON.decode(r.responseText), node; // We delete this record from the work in progress module ui.cmp.WorkTreeGrid.getInstance().delRecord(o.oldIdDB); // .. and Patches module ui.cmp.PatchesTreeGrid.getInstance().delRecord(o.oldIdDB); /** Common action for EN and LANG file **/ // find open node in All Files modules node = false; node = ui.cmp.RepositoryTree.getInstance().getNodeById('/'+fpath+fname); if (node) { node.getUI().removeClass(['fileModifiedByMe','fileModifiedByAnother']); } /** Action for EN file **/ if( o.lang === 'en' && ftype === 'update' ) { // trow StaleFile store ui.cmp.StaleFileGrid.getInstance().store.each( function(record) { if ((record.data.path) === '/'+o.path && record.data.name === o.name ) { record.set('fileModifiedEN', false); record.set('en_revision', o.revision); record.commit(); } }, this); // Browse FileError ui.cmp.ErrorFileGrid.getInstance().store.each( function(record) { if ((PhDOE.user.lang+record.data.path) === fpath && record.data.name === fname ) { record.set('fileModifiedEN', false); } }, this); Ext.getBody().unmask(); return; } /** All after this is only available for LANG file **/ // We try to search in others stores if this file is marked as needCommit // Browse PendingTranslate store ui.cmp.PendingTranslateGrid.getInstance().store.each( function(record) { if ((PhDOE.user.lang+record.data.path) === fpath && record.data.name === fname ) { record.set('fileModified', false); record.commit(); } }, this); // Browse StaleFile store ui.cmp.StaleFileGrid.getInstance().store.each( function(record) { if ((PhDOE.user.lang+record.data.path) === fpath && record.data.name === fname ) { record.set('fileModifiedLang', false); record.set('revision', o.revision); record.set('maintainer', o.maintainer); record.commit(); } }, this); // Browse FileError ui.cmp.ErrorFileGrid.getInstance().store.each( function(record) { if ((PhDOE.user.lang+record.data.path) === fpath && record.data.name === fname ) { record.set('fileModifiedLang', false); record.commit(); } }, this); // Browse storeFilesNeedReviewed ui.cmp.PendingReviewGrid.getInstance().store.each( function(record) { if ((PhDOE.user.lang+record.data.path) === fpath && record.data.name === fname ) { record.set('fileModifiedLang', false); record.commit(); } }, this); // Browse storeNotInEn ui.cmp.NotInENGrid.getInstance().store.each( function(record) { if ((PhDOE.user.lang+record.data.path) === fpath && record.data.name === fname ) { record.set('fileModified', false); } }, this); Ext.getBody().unmask(); }, failure : function(r) { Ext.getBody().unmask(); var o = Ext.util.JSON.decode(r.responseText); if( o.err ) { PhDOE.winForbidden(o.err); } } }); }; if( Ext.isDefined(this.noConfirm) ) { goClear(); } else { Ext.MessageBox.confirm( _('Confirm'), _('This action will clear your local modification and take back this file from his original stats.
You need confirm.'), function(btn) { if (btn === 'yes') { goClear(); } }, this ); } };