From 6ad6a3bcc5749bc982335764f5e871c7643f61ac Mon Sep 17 00:00:00 2001 From: coderaiser Date: Wed, 12 Nov 2014 07:01:11 -0500 Subject: [PATCH] feature(dom) loadRemote options: add name --- lib/client/dom.js | 105 ++++++++++++++++++++++++++-------------------- 1 file changed, 59 insertions(+), 46 deletions(-) diff --git a/lib/client/dom.js b/lib/client/dom.js index 14d6a922..5c437012 100644 --- a/lib/client/dom.js +++ b/lib/client/dom.js @@ -238,8 +238,8 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; * Function search element by id * @param Id - id */ - this.getById = function(pId) { - return document.getElementById(pId); + this.getById = function(id, element) { + return (element || document).querySelector('#' + id); }; /** @@ -340,51 +340,54 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; if (!callback) callback = options; - Files.get(['config', 'modules'], function(error, config, modules) { - var remoteTmpls, local, remote, - load = DOM.load, - prefix = CloudCmd.PREFIX, - online = config.online && navigator.onLine, + if (window[o.name]) + callback(); + else + Files.get(['config', 'modules'], function(error, config, modules) { + var remoteTmpls, local, remote, + load = DOM.load, + prefix = CloudCmd.PREFIX, + online = config.online && navigator.onLine, + + remoteObj = Util.findObjByNameInArr(modules, 'remote'), + module = Util.findObjByNameInArr(remoteObj, name), + + isArray = Util.type.array(module.local), + version = module.version, + + funcON = function() { + load.parallel(remote, function(error) { + if (error) + funcOFF(); + else + callback(); + }); + }, + + funcOFF = function() { + load.parallel(local, callback); + }; + + if (isArray) { + remoteTmpls = module.remote; + local = module.local; + } else { + remoteTmpls = [module.remote]; + local = [module.local]; + } - remoteObj = Util.findObjByNameInArr(modules, 'remote'), - module = Util.findObjByNameInArr(remoteObj, name), - - isArray = Util.type.array(module.local), - version = module.version, - - funcON = function() { - load.parallel(remote, function(error) { - if (error) - funcOFF(); - else - callback(); - }); - }, - - funcOFF = function() { - load.parallel(local, callback); - }; - - if (isArray) { - remoteTmpls = module.remote; - local = module.local; - } else { - remoteTmpls = [module.remote]; - local = [module.local]; - } - - local = local.map(function(url) { - return o.noPrefix ? url : prefix + url; - }); - - remote = remoteTmpls.map(function(tmpl) { - return Util.render(tmpl, { - version: version + local = local.map(function(url) { + return o.noPrefix ? url : prefix + url; }); + + remote = remoteTmpls.map(function(tmpl) { + return Util.render(tmpl, { + version: version + }); + }); + + Util.exec.if(online, funcON, funcOFF); }); - - Util.exec.if(online, funcON, funcOFF); - }); return DOM; }; @@ -394,11 +397,21 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; * @param callback */ this.loadJquery = function(callback) { - return DOM.loadRemote('jquery', callback); + DOM.loadRemote('jquery', { + name : '$', + noPrefix: true + }, callback); + + return DOM; }; this.loadSocket = function(callback) { - return DOM.loadRemote('socket', {noPrefix: true}, callback); + DOM.loadRemote('socket', { + name : 'io', + noPrefix: true + }, callback); + + return DOM; }; /** function loads css and js of Menu