From 5d9b96f7c3e65e787a8fc536e44378b2d8b1c3b3 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Thu, 17 Jan 2013 08:02:16 -0500 Subject: [PATCH] improved modules.json format and parsing --- ChangeLog | 2 ++ lib/client.js | 44 +++++++++++++++++++++++++++++--------------- modules.json | 26 ++++++++++++++++++++------ 3 files changed, 51 insertions(+), 21 deletions(-) diff --git a/ChangeLog b/ChangeLog index c81f2d7e..1e4ff7f6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -85,6 +85,8 @@ clicked on menu item. * Updated jquery to v1.9.0. +* Improved modules.json format and parsing. + 2012.12.12, Version 0.1.8 diff --git a/lib/client.js b/lib/client.js index 5fb44638..43af1e94 100644 --- a/lib/client.js +++ b/lib/client.js @@ -239,7 +239,9 @@ function initModules(pCallBack){ }); CloudCmd.getModules(function(pModules){ - var lStorage = 'storage/', + pModules = pModules || []; + + var lStorage = 'storage', lShowLoadFunc = Util.retFunc( DOM.Images.showLoad ), lDisableMenuFunc = function(){ var lFunc = document.oncontextmenu; @@ -255,24 +257,36 @@ function initModules(pCallBack){ 'viewer' : lShowLoadFunc }, - lNames = {}; - lNames[lStorage + '_dropbox'] = 'DropBox', - lNames[lStorage + '_github' ] = 'GitHub', - lNames[lStorage + '_gdrive' ] = 'GDrive', - lNames[lStorage + '_vk' ] = 'VK', + lLoad = function(pName, pPath, pDoBefore){ + loadModule({ + path : pPath, + name : pName, + dobefore : pDoBefore + }); + }; lDisableMenuFunc(); - if( Util.isArray(pModules) ) - for(var i = 0, n = pModules.length; i < n ; i++){ - var lModule = pModules[i]; - - loadModule({ - path : lModule, - dobefore : lDoBefore[lModule], - name : lNames[lModule] - }); + + + for(var i = 0, n = pModules.length; i < n ; i++){ + var lModule = pModules[i]; + + if(Util.isObject(lModule)){ + for(var lProp in lModule) + if(lProp === lStorage){ + var m = lModule[lProp].length, + lMod = lModule[lProp]; + + for(var j = 0; j < m; j++) + lLoad(lMod[j].name, lStorage + '/' + lMod[j].path); + + break; + } } + else + lLoad(null, lModule, lDoBefore[lModule]); + } Util.exec(pCallBack); }); diff --git a/modules.json b/modules.json index d7c68ff6..73595b98 100644 --- a/modules.json +++ b/modules.json @@ -2,10 +2,24 @@ "editor/_codemirror", "menu", "viewer", - "storage/_github", - "storage/_dropbox", - "storage/_dropbox_chooser", - "storage/_gdrive", - "storage/_vk", - "terminal" + "terminal",{ + "storage":[ + { + "name":"DropBox", + "path":"_dropbox" + }, + { + "name":"GitHub", + "path":"_github" + }, + { + "name":"GDrive", + "path":"_gdrive" + }, + { + "name":"VK", + "path":"_vk" + } + ] + } ] \ No newline at end of file