finalizing the init stage of the app, reading the module list and
authoranthony <astalarico@gmail.com>
Wed, 13 Jun 2018 01:29:04 +0000 (21:29 -0400)
committeranthony <astalarico@gmail.com>
Wed, 13 Jun 2018 01:29:04 +0000 (21:29 -0400)
building the initial app state

setup/renderer.js
setup/setup.css

index 8cbe6fd..59e900c 100644 (file)
@@ -3,6 +3,7 @@ const fs            = require('fs');
 const merge         = require('merge-stream');
 const dir           = require('node-dir');
 const appState      = {};
+
 // PHP Functions File Libraries index file
 var functionsFileReader = require('readline').createInterface({
     input: require('fs').createReadStream('dev/modules.php')
@@ -45,7 +46,6 @@ function getModules(){
 }
 function updateModule(appState){
     let allMods = getModules();
-    let newMods = getModuleByName(appState.name);
     allMods[appState.modType].forEach(function(mod, index){
         if(mod.name === appState.name){
             allMods[appState.modType][index] = appState;
@@ -74,56 +74,69 @@ function getDevDirs(){
        console.log(item)
     });
 }
-function buildList(){
-    getModuleTypes(getModules()).forEach(function(modType){
-        $(`<h2 id="${modType}-title">${modType} </h2>`).appendTo( $("#module-list-container"));
-        $(`<ul class="module-list" id="${modType}-modules" />`).insertAfter( $(`#${modType}-title`));
-        getModulesByType(modType).forEach(function(mod){
-            $('<li>', {
-                text        : mod.name,
-                class       : `module-item module-active`,
-                id          : `${mod.name}-module`,
-                "data-type" : modType
-            }).appendTo( $(`#${modType}-modules`) );
-        })
+function generateListItems(modType){
+    $(`<h2 id="${modType}-title">${modType} </h2>`).appendTo( $("#module-list-container"));
+    $(`<ul class="module-list" id="${modType}-modules" />`).insertAfter( $(`#${modType}-title`));
+    getModulesByType(modType).forEach(function(mod){
+        $('<li>', {
+            text        : mod.name,
+            class       : `module-item module-active-${mod.active}`,
+            id          : `${mod.name}-module`,
+            "data-type" : modType
+        }).appendTo( $(`#${modType}-modules`) );
     })
 }
-function scanDev(){
-    ['dev/core', 'dev/custom'].forEach(function(dirPath) {
-        let modType = dirPath.stringFromToken('after', "/");
-        let fullPath = path.join(__dirname, `../${dirPath}`);
-        let mods = [];
-        fs.readdir(fullPath, function(err, item) {
-            item.forEach(function(modName){
-                let reference = `${fullPath}/${modName}`.stringFromToken('after',"dev/", false, true);
-                mods.push({
-                    name: modName, 
-                    modType: modType,
-                    active: true, 
-                    path: `${fullPath}/${modName}`, 
-                    sass: `${reference}/${modName}`,
-                    functions: `${reference}/functions/${modName}.php`,
-                    reference:reference 
+function buildList(modType){
+    if(modType){
+        generateListItems(modType)
+    }else{
+        getModuleTypes(getModules()).forEach(function(modType){
+            generateListItems(modType);
+        })
+    }    
+}
+function scanDevDir(){
+    if(getModules() === null){
+        ['dev/core', 'dev/custom'].forEach(function(dirPath) {
+            let modType = dirPath.stringFromToken('after', "/");
+            let fullPath = path.join(__dirname, `../${dirPath}`);
+            let mods = [];
+            fs.readdir(fullPath, function(err, item) {
+                item.forEach(function(modName){
+                    let reference = `${fullPath}/${modName}`.stringFromToken('after',"dev/", false, true);
+                    mods.push({
+                        name: modName, 
+                        modType: modType,
+                        active: true,
+                        path: `${fullPath}/${modName}`, 
+                        sass: `${reference}/${modName}`,
+                        functions: `${reference}/functions/${modName}.php`,
+                        reference:reference 
+                    });
                 });
+                storeModules(setModules(modType,mods));    
+                console.log(modType)
+                buildList(modType);
             });
-            storeModules(setModules(modType,mods));    
-        });
-    })
+        })
+    }else{
+        buildList()
+    }
 }
 $(document).on("click", '.module-item', function(){
     _ = $(this);
     let modName     = _.attr('id').stringFromToken('before', '-', true);
     let modType    = _.data('type');
     let thisModule  = getModuleByName(modName);
-    if( _.hasClass('module-active') ){
-        _.removeClass('module-active');
+    if( _.hasClass('module-active-true') ){
+        _.removeClass('module-active-true');
+        _.addClass("module-active-false");
         thisModule.active = false;
     }else{
-        _.addClass("module-active");
+        _.addClass("module-active-true");
+        _.removeClass("module-active-false");
         thisModule.active = true;
     }
-
     updateModule(thisModule)
 });
-scanDev();
-buildList();
\ No newline at end of file
+scanDevDir();
\ No newline at end of file
index 0e90998..e97cabc 100644 (file)
 #module-list-container ul.module-list li.module-item:hover{
     cursor: pointer;
 }
-#module-list-container ul.module-list li.module-item.module-active{
+#module-list-container ul.module-list li.module-item.module-active-true{
     background: lightgreen;
     
 }
-#module-list-container ul.module-list li.module-item{
+#module-list-container ul.module-list li.module-item.module-active-false{
     background: tomato;
 }
\ No newline at end of file