mirror of
https://github.com/coderaiser/cloudcmd.git
synced 2026-01-23 18:55:26 +00:00
feature(util) add asyncCall
This commit is contained in:
parent
21055537d8
commit
d22bef234c
2 changed files with 65 additions and 37 deletions
|
|
@ -416,46 +416,48 @@ var Util, DOM, CloudFunc, CloudCmd;
|
|||
lDir = DOM.getCurrentDirName(),
|
||||
|
||||
lName = DOM.getCurrentName(lCurrent),
|
||||
lWasRefresh_b = lPath[0].textContent === pJSON[0].path;
|
||||
lWasRefresh_b = lPath[0].textContent === pJSON[0].path,
|
||||
lFuncs = [
|
||||
CloudCmd.getFileTemplate,
|
||||
CloudCmd.getPathTemplate
|
||||
];
|
||||
|
||||
CloudCmd.getFileTemplate(function(pTemplate){
|
||||
CloudCmd.getPathTemplate(function(pPathTemplate){
|
||||
/* очищаем панель */
|
||||
var i = lElem.childNodes.length;
|
||||
|
||||
while(i--)
|
||||
lElem.removeChild(lElem.lastChild);
|
||||
|
||||
lElem.innerHTML = CloudFunc.buildFromJSON(pJSON, pTemplate, pPathTemplate);
|
||||
|
||||
/* если нажали на ссылку на верхний каталог*/
|
||||
var lFound;
|
||||
/* searching current file */
|
||||
if(lWasRefresh_b){
|
||||
var n = lElem.childNodes.length;
|
||||
for(i = 2; i < n ; i++){
|
||||
var lVarCurrent = lElem.childNodes[i],
|
||||
lVarName = DOM.getCurrentName(lVarCurrent);
|
||||
|
||||
lFound = lVarName === lName;
|
||||
|
||||
if(lFound){
|
||||
lCurrent = lElem.childNodes[i];
|
||||
break;
|
||||
}
|
||||
Util.asyncCall(lFuncs, function(pTemplate, pPathTemplate) {
|
||||
/* очищаем панель */
|
||||
var i = lElem.childNodes.length;
|
||||
|
||||
while(i--)
|
||||
lElem.removeChild(lElem.lastChild);
|
||||
|
||||
lElem.innerHTML = CloudFunc.buildFromJSON(pJSON, pTemplate, pPathTemplate);
|
||||
|
||||
/* если нажали на ссылку на верхний каталог*/
|
||||
var lFound;
|
||||
/* searching current file */
|
||||
if(lWasRefresh_b){
|
||||
var n = lElem.childNodes.length;
|
||||
for(i = 2; i < n ; i++){
|
||||
var lVarCurrent = lElem.childNodes[i],
|
||||
lVarName = DOM.getCurrentName(lVarCurrent);
|
||||
|
||||
lFound = lVarName === lName;
|
||||
|
||||
if(lFound){
|
||||
lCurrent = lElem.childNodes[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!lFound) /* .. */
|
||||
lCurrent = lElem.childNodes[2];
|
||||
|
||||
DOM.setCurrentFile(lCurrent);
|
||||
|
||||
Listeners.changeLinks(pElem);
|
||||
|
||||
if(lName === '..' && lDir !== '/')
|
||||
currentToParent(lDir);
|
||||
});
|
||||
});
|
||||
}
|
||||
if(!lFound) /* .. */
|
||||
lCurrent = lElem.childNodes[2];
|
||||
|
||||
DOM.setCurrentFile(lCurrent);
|
||||
|
||||
Listeners.changeLinks(pElem);
|
||||
|
||||
if(lName === '..' && lDir !== '/')
|
||||
currentToParent(lDir);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
26
lib/util.js
26
lib/util.js
|
|
@ -10,6 +10,32 @@ Util = exports || {};
|
|||
|
||||
var Scope = exports ? global : window;
|
||||
|
||||
Util.asyncCall = function(pFuncs, pOnLoad, pContext) {
|
||||
var i, element, name, func,
|
||||
n = pFuncs.length,
|
||||
count = 0,
|
||||
data = [];
|
||||
|
||||
for (i = 0; i < n; i++) {
|
||||
func = pFuncs[i];
|
||||
callCheckFunc(i, func);
|
||||
}
|
||||
|
||||
function checkFunc(pNum, pData) {
|
||||
++count;
|
||||
data[pNum] = pData;
|
||||
|
||||
if (count === n)
|
||||
pOnLoad.apply(pContext, data);
|
||||
}
|
||||
|
||||
function callCheckFunc(pNum, pFunc) {
|
||||
Util.exec(pFunc, function(pData){
|
||||
checkFunc(pNum, pData);
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
/** setting function context
|
||||
* @param {function} pFunction
|
||||
* @param {object} pContext
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue