Files
web-doc-editor/js/ui/task/UpdateSingleFolderTask.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

126 lines
3.4 KiB
JavaScript

Ext.namespace('ui','ui.task','ui.task._UpdateSingleFolderTask');
ui.task._UpdateSingleFolderTask.getUpdateFolderResponse = function(node)
{
XHR({
params : {
task: 'getUpdateFolderResponse'
},
success : function(r)
{
var o = Ext.util.JSON.decode(r.responseText);
ui.task._UpdateSingleFolderTask.afterUpdate(o, node);
}
});
}
ui.task._UpdateSingleFolderTask.poll = new Ext.util.DelayedTask(function()
{
var node = arguments[0],
u = node.attributes.id.split('/'),
FirstFolder, t = new Array();
u.shift();
FirstFolder = u[0];
t.push(node);
XHR({
params : {
task : 'checkLockFile',
lockFile : 'project_' + PhDOE.project + '_' + FirstFolder + '_lock_update_folder'
},
success : function()
{
ui.task._UpdateSingleFolderTask.poll.delay(5000, null, this, t);
},
failure : function(response)
{
var o = Ext.util.JSON.decode(response.responseText);
if (o && o.success === false) {
new ui.task._UpdateSingleFolderTask.getUpdateFolderResponse(node);
} else {
ui.task._UpdateSingleFolderTask.poll.delay(5000, null, this, t);
}
}
});
});
ui.task._UpdateSingleFolderTask.afterUpdate = function(o, node)
{
Ext.getBody().unmask();
// Re-enable TaskPing
ui.task.PingTask.getInstance().delay(30000);
// TODO: we must handle the response here
var r = Ext.util.JSON.decode(o.result);
// We reload and highlight the modified node
node.reload(function() {
Ext.iterate(r.newFiles, function(prop, val){
node.findChild('text', prop).getUI().addClass('treeFileUpdated');
});
}, this);
// Reload all store
PhDOE.reloadAllStore();
};
ui.task._UpdateSingleFolderTask.update = function(node)
{
var t = new Array();
t.push(node);
Ext.getBody().mask(
'<img src="themes/img/loading.gif" style="vertical-align: middle;" /> ' +
_('Please, wait until update this folder...')
);
// We need to stop ping test during this process
ui.task.PingTask.getInstance().cancel();
XHR({
params : {
task : 'updateFolder',
path : node.id
},
success : function(r)
{
var o = Ext.util.JSON.decode(r.responseText);
ui.task._UpdateSingleFolderTask.afterUpdate(o, node);
},
failure : function(r)
{
var o = Ext.util.JSON.decode(r.responseText);
if (o && o.success === false) {
// Re-enable TaskPing
ui.task.PingTask.getInstance().delay(30000);
Ext.getBody().unmask();
PhDOE.winForbidden();
} else {
// take over 30sec (max Keep-Alive time)
// poll every XX secondes if the update is finish
ui.task._UpdateSingleFolderTask.poll.delay(5000, null, this, t);
}
}
});
};
ui.task.UpdateSingleFolderTask = function(node)
{
// If the user don't have karma, we don't update anything
if (!PhDOE.user.haveKarma) {
Ext.getCmp('winVCSCommit').close();
PhDOE.winForbidden();
return;
}
ui.task._UpdateSingleFolderTask.update(node);
};