--- /dev/null
+const modLib = (function() {
+ return {
+
+ setModules: function(modType,modName){
+ appState[modType] = modName;
+ return appState;
+ },
+ storeModules: function(appState){
+ localStorage.setItem("app", JSON.stringify(appState));
+ },
+ getModuleTypes: function(modules){
+ return Object.keys(modules)
+ },
+ getModules: function(){
+ return JSON.parse(localStorage.getItem("app"));
+ },
+ updateModule: function(appState){
+ let allMods = modLib.getModules();
+ allMods[appState.modType].forEach(function(mod, index){
+ if(mod.name === appState.name){
+ allMods[appState.modType][index] = appState;
+ }
+ })
+ localStorage.setItem("app", JSON.stringify(allMods));
+ },
+ getModuleByName: function(modName){
+ let mods = JSON.parse(localStorage.getItem("app")), newMods = [];
+ for(modType in mods){
+ newMods.push(modLib.getModulesByType(modType).filter(function(mod){
+ return mod.name == modName;
+ }))
+ }
+ return newMods[0].concat(newMods[1])[0];
+ },
+
+ // Returns an array of Modules
+ getModulesByType: function(moduleType){
+ let appState = JSON.parse(localStorage.getItem("app"));
+ return appState[moduleType];
+ },
+ getDevDirs: function(){
+ let fullPath = path.join(__dirname, `../dev`);
+ fs.readdir(fullPath, function(err, item) {
+ console.log(item)
+ });
+ },
+ generateListItems: function(modType){
+ $(`<h2 id="${modType}-title">${modType} </h2>`).appendTo( $("#module-list-container"));
+ $(`<ul class="module-list" id="${modType}-modules" />`).insertAfter( $(`#${modType}-title`));
+ modLib.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`) );
+ })
+ },
+ buildList: function(modType){
+ if(modType){
+ modLib.generateListItems(modType)
+ }else{
+ modLib.getModuleTypes(modLib.getModules()).forEach(function(modType){
+ modLib.generateListItems(modType);
+ })
+ }
+ },
+ scanDevDir: function(){
+ if(modLib.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
+ });
+ });
+ modLib.storeModules(modLib.setModules(modType,mods));
+ console.log(modType)
+ modLib.buildList(modType);
+ });
+ })
+ }else{
+ modLib.buildList()
+ }
+ }
+ }
+})()
+module.exports = modLib;
\ No newline at end of file
const merge = require('merge-stream');
const dir = require('node-dir');
const appState = {};
+const lib = require('./moduleLib');
// PHP Functions File Libraries index file
var functionsFileReader = require('readline').createInterface({
String.prototype.stripSlashes = function(){
return this.replace(/\\(.)/mg, "$1");
}
-function setModules(modType,modName){
- appState[modType] = modName;
- return appState;
-}
-function storeModules(appState){
- localStorage.setItem("app", JSON.stringify(appState));
-}
-function getModuleTypes(modules){
- return Object.keys(modules)
-}
-function getModules(){
- return JSON.parse(localStorage.getItem("app"));
-}
-function updateModule(appState){
- let allMods = getModules();
- allMods[appState.modType].forEach(function(mod, index){
- if(mod.name === appState.name){
- allMods[appState.modType][index] = appState;
- }
- })
- localStorage.setItem("app", JSON.stringify(allMods));
-}
-function getModuleByName(modName){
- let mods = JSON.parse(localStorage.getItem("app")), newMods = [];
- for(modType in mods){
- newMods.push(getModulesByType(modType).filter(function(mod){
- return mod.name == modName;
- }))
- }
- return newMods[0].concat(newMods[1])[0];
-}
-// Returns an array of Modules
-function getModulesByType(moduleType){
- let appState = JSON.parse(localStorage.getItem("app"));
- return appState[moduleType];
-}
-function getDevDirs(){
- let fullPath = path.join(__dirname, `../dev`);
- fs.readdir(fullPath, function(err, item) {
- console.log(item)
- });
-}
-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 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);
- });
- })
- }else{
- buildList()
- }
-}
$(document).on("click", '.module-item', function(){
_ = $(this);
let modName = _.attr('id').stringFromToken('before', '-', true);
let modType = _.data('type');
- let thisModule = getModuleByName(modName);
+ let thisModule = lib.getModuleByName(modName);
if( _.hasClass('module-active-true') ){
_.removeClass('module-active-true');
_.addClass("module-active-false");
_.removeClass("module-active-false");
thisModule.active = true;
}
- updateModule(thisModule)
+ lib.updateModule(thisModule)
});
-scanDevDir();
\ No newline at end of file
+lib.scanDevDir();
\ No newline at end of file