/** * Config Function * @desc Función para crear el módulo/controlador/accion * @author myance */ var fn = { sinaction: 5, sinparametro: 6, conparametro: 7, module: function(path){ var module = path.split('/') return module[3] }, controller: function(path){ var controller = path.split('/') return controller[4] }, action: function(path){ var action = path.split('/') if(action.length == fn.sinaction) return "Index" if(action.length == fn.sinparametro) return action[5] if(action.length == fn.conparametro) return action[5] }, detectarPagina: function(menu){ for(var i in menu){ var data = menu[i].data var MOD = fn.convertirLetra(PATH__.MODULE) var CON = fn.convertirLetra(PATH__.CONTROLLER) var ACT = fn.convertirLetra(PATH__.ACTION) var url = "/"+MOD+"/"+CON+"/"+ACT for(var j in data){ if(data[j].url === url){ window.pageTitle = data[j].action break } } } }, convertirLetra: function(text){ if(text){ return text.charAt(0).toUpperCase() + text.slice(1); }else{ return ""; } if (typeof text === 'undefined'){ return ""; } return text.charAt(0).toUpperCase() + text.slice(1) } } /** * PATH * @context Global * @desc Rutas Generales del Proyecto * @author myance */ window.PATH__ = { ENVIROMENT : "", MODULE : fn.module(window.location.href), CONTROLLER : fn.controller(window.location.href), ACTION : fn.action(window.location.href), SERVER : "https://casillaelectronica.jne.gob.pe", SERVER2 : "/Content/js/AppConfig.aspx", CSS : "https://casillaelectronica.jne.gob.pe/Content/css", JS : "https://casillaelectronica.jne.gob.pe/Content/js/controllers", IMG : "https://casillaelectronica.jne.gob.pe/Content/images", LIBS : "https://casillaelectronica.jne.gob.pe/Content/libs" } /** * log * @context Global * @type Function * @desc Permite consolear solo cuando esté en ámbito desarrollo * @author myance */ window.log = function(){} if(PATH__.ENVIROMENT === "LOCAL"){ var count = 0; var bg = ["#ffa549","#e20e0e","#525252","#aa0000", "#0AC191"] window.log = function(msj){ var obj = typeof msj; if (obj == "object") console.log(msj) else{ if(count==bg.length) count = 0 console.log("%c"+msj+"", "background:"+bg[count]+"; color: #fff; padding:1px 3px; font-size:16px"); count++ } } } /** * Menu Navegación * @context Global * @type Function * @desc Permite consolear solo cuando esté en ámbito desarrollo * @author myance */ var xhr = new XMLHttpRequest(); xhr.open('GET', PATH__.SERVER+'/Content/_temp/menu.js'); xhr.onload = function() { if (xhr.status === 200) { var menu = JSON.parse(xhr.response); fn.detectarPagina(menu) var newmenu = [] Array.prototype.groupBy = function(name) { return this.reduce(function(groups, item) { var submodule = item[name]; groups[submodule] = groups[submodule] || []; groups[submodule].push(item); return groups; }, {}); } // Crear nombre corto, para llamar los Iconos de la Cabecera function shortName(name){ var short = name.split('.svg') return short[0] } // Recorrer toda la Data del Menú for(var i=0;i < menu.length; i++){ var dataModulo = menu[i].data var oSubmodulo = dataModulo.groupBy('submodule') var keys = Object.keys( oSubmodulo ) var submodule = [] for(var k=0;k < keys.length; k++){ var tempSubmodule = { "submodule" : keys[k], "data" : oSubmodulo[keys[k]] } submodule.push(tempSubmodule) } // Detectar Tamaños de Coolumnas var sizeModule = "small" if(keys.length > 2){ sizeModule = "large" } // Crear Objeto que se plasme en el HTML var oMenu = { "module" : menu[i].module, "idModule" : menu[i].idModule, "icoModule" : menu[i].icoModule, "sizeModule" : sizeModule, "shortModule" : shortName(menu[i].icoModule), "data" : submodule } newmenu.push(oMenu) } window.oMenu = newmenu } else { log('Error: ' + xhr.status); } }; xhr.send(); // var script = document.createElement( 'script' ); // script.src = PATH__.LIBS + "log/consolelog.min.js" // script.type = 'text/javascript'; // document.getElementsByTagName('head')[0].appendChild(script); // script.onload = function() { // // };