mirror of
https://github.com/php/web-doc-editor.git
synced 2026-03-24 17:22:08 +01:00
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
169 lines
6.1 KiB
JavaScript
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
|
|
);
|
|
}
|
|
};
|