Files
web-doc-editor/js/ui/task/ClearLocalChangeTask.js
Peter Kokot f06fee3640 Sync final newlines
This patch adds some missing newlines and trims multiple final newlines
into a single newline.

According to POSIX, a line is a sequence of zero or more non-' <newline>'
characters plus a terminating '<newline>' character. [1] Files should
normally have at least one final newline character.

C89 [2] and later standards [3] mention a final newline:
"A source file that is not empty shall end in a new-line character,
which shall not be immediately preceded by a backslash character."

Although it is not mandatory for all files to have a final newline
fixed, a more consistent and homogeneous approach brings less of commit
differences issues and a better development experience in certain text
editors and IDEs.

[1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206
[2] https://port70.net/~nsz/c/c89/c89-draft.html#2.1.1.2
[3] https://port70.net/~nsz/c/c99/n1256.html#5.1.1.2
2018-10-02 03:44:40 +02:00

169 lines
6.1 KiB
JavaScript

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(
'<img src="themes/img/loading.gif" style="vertical-align: middle;" /> ' +
_('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.<br/>You need confirm.'),
function(btn)
{
if (btn === 'yes') {
goClear();
}
}, this
);
}
};