refactor(client) createFileTable

This commit is contained in:
coderaiser 2014-02-17 10:11:32 -05:00
parent 86eac9dc83
commit 1cf4f0a146

View file

@ -410,60 +410,57 @@ var Util, DOM, CloudFunc;
* Функция строит файловую таблицу
* @param pJSON - данные о файлах
*/
this.createFileTable = function(pJSON) {
this.createFileTable = function(json) {
var files,
panel = DOM.getPanel(),
/* getting current element if was refresh */
lPath = DOM.getCurrentDirPath(panel),
path = DOM.getCurrentDirPath(panel),
lCurrent = DOM.getCurrentFile(),
lDir = DOM.getCurrentDirName(),
current = DOM.getCurrentFile(),
dir = DOM.getCurrentDirName(),
lName = DOM.getCurrentName(lCurrent),
wasRefresh = lPath === pJSON.path,
lFuncs = [
name = DOM.getCurrentName(current),
wasRefresh = path === json.path,
funcs = [
CloudCmd.getFileTemplate,
CloudCmd.getPathTemplate,
CloudCmd.getLinkTemplate
];
Util.asyncCall(lFuncs, function(pTemplate, pPathTemplate, pLinkTemplate) {
/* очищаем панель */
var n, found,
Util.asyncCall(funcs, function(templFile, templPath, templLink) {
var n, found, varCurrent, varName,
i = panel.childNodes.length;
while(i--)
panel.removeChild(panel.lastChild);
panel.innerHTML = CloudFunc.buildFromJSON(pJSON, pTemplate, pPathTemplate, pLinkTemplate);
files = DOM.getFiles(panel);
panel.innerHTML = CloudFunc.buildFromJSON(json, templFile, templPath, templLink);
files = DOM.getFiles(panel);
/* searching current file */
if (wasRefresh) {
n = files.length;
for (i = 0; i < n ; i++) {
var lVarCurrent = files[i],
lVarName = DOM.getCurrentName(lVarCurrent);
found = lVarName === lName;
varCurrent = files[i],
varName = DOM.getCurrentName(varCurrent);
found = varName === name;
if (found) {
lCurrent = files[i];
current = files[i];
break;
}
}
}
if (!found) /* .. */
lCurrent = files[0];
current = files[0];
DOM.setCurrentFile(lCurrent);
DOM.setCurrentFile(current);
Listeners.changeLinks(panel.id);
if (lName === '..' && lDir !== '/')
currentToParent(lDir);
if (name === '..' && dir !== '/')
currentToParent(dir);
});
};