summaryrefslogtreecommitdiffstats
path: root/admin/WebConsole/jscripts/arbol.js
blob: ce9ceae23b9e7d0ffd592e3ef052839b28354689 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
/**
 * @file includes/arbol.js
 * Funciones para mostrar y ocultar el menú contextual del frame izquierdo.
 *
 * @note Nomenclatura menú:
 *         Inicial menu-tipo-N , menu-grupo-N, menu-N.
 *         mostrar_menu le incluye el identificador del elemento después de un subrayado:
 *             menu-tipo-N_M , menu-grupo-N_M, menu-N_M
 *         ocultar_menu vuelve a su nombre original.
 */


/*
 * Los tipos de objetos tiene asociados una serie de identificadores y constantes que no coinciden enten sí.
 *      mysql tabla grupos: 		ej: procedimientos campo tipo 51
 *      constantes php			ej: procedimientos $AMBITO_GRUPOSPROCEDIMIENTOS=0x33;
 *      constantes js			ej: procedimientos var AMBITO_GRUPOSPROCEDIMIENTOS=0x32;
 */

/**
 * Hace visible el menú elegido
 *
 * @param[event]   Evento del ratón para determinar posición del menú
 * @param[tipo]    int identificador del tipo de nodo
 * @param[id]      int identificador del elemento
 * @param[menu_id] str Identificador del menú en la página
 */
function mostrar_menu(event, tipo, id, menu_id) {
	//console.log("mostrar_menu");
   var posX, posY, span; // Declaracion de variables

   posX = event.pageX; // Obtenemos pocision X del cursor
   posY = event.pageY; // Obtenemos pocision Y del cursor

   // Flecha que indica submenues
   //span = $('#' + menu_id + " span");
   //span.html("»");

   // Editando el codigo CSS para ciertos elementos

   $('#' + menu_id).css({position: 'absolute',display: 'block',top: posY,left: posX,cursor: 'default',width: '200px',height: 'auto',padding: '2px 9px 2px 2px',listStyle: 'none',listStyleType: 'none'});
$('#' + menu_id + " li ul").css({listStyle:'none',listStyleType:'none',cursor:'default',position:'absolute',left:'212px',marginTop:'-20px',width:'200px',height:'auto',padding:'2px 9px 2px 2px'});
   //$('#' + menu_id).css({position: 'absolute',display: 'block',top: posY,left: posX,cursor: 'default',height: 'auto',padding: '2px 9px 2px 2px',listStyle: 'none',listStyleType: 'none'});
   //$('#' + menu_id + " li ul").css({listStyle:'none',listStyleType:'none',cursor:'default',position:'absolute',left:'212px',marginTop:'-20px',height:'auto',padding:'2px 9px 2px 2px'});

         //console.log($('#' + menu_id));
  // Incluyo el tipo de imagen y el id en el ientificador
  $('#' + menu_id ).attr("id", menu_id + "_" + tipo + "_" + id);

         //console.log($('#' + menu_id+ "_" + tipo + "_" + id));
  }

/**
 * Oculta todos los menús o los de comando, sincronizadas y aistentes 
 *
 * @param[tipo_menu]    str [ comandos| ""] 
 * @note La página aulas tiene dos niveles de menús, el del elemento y el de comandos.
 */
function ocultar_menu(tipo_menu="") {
            //console.log("ocultar menu");
	var menus = "";
	if (tipo_menu == 'comandos'){
            menus += "[id|='menu-comandos']"+",";
            menus += "[id|='menu-sincronizadas']"+",";
            menus += "[id|='menu-asistentes']";
	} else {
	    menus += "[id|='menu']";
	}
   	$(menus).hide();
	$(menus).each(function(){
	    old_id = $(this).attr('id')+"_";
	    $(this).attr('id',old_id.substring(0,old_id.indexOf('_')));
	});
}

$(function() {
    // Mostrar información del menú
    $("[id^='showInfoNode']").on ('click', function() {
        // Id menu-node-tipoNodo_tipoNodo_idNodo
        var id=$(this).parent().attr('id').split("_");
        var description=$('#nodo-'+id[1]+'_'+id[2]).find('a').text().trim();
	    console.log("tipo: "+id[1]+" nodo; "+id[2]);
	// url según tipo de nodo
	switch(id[1]) {
            case '56':
                // hardware
		var url="../varios/informacion_perfileshardware.php?idperfil="+id[2]+"&descripcionperfil="+description;
                break;
            case '64':
                // menus
                var url="../varios/informacion_menus.php?idmenu="+id[2]+"&descripcionmenu="+description;
                break;
            case '57':
                // perfil de software
                var url="../varios/informacion_perfilessoftware.php?idperfil="+id[2]+"&descripcionperfil="+description;
                break;
            case '51':
                // procedimientos
                var tipoaccion=33; // constantes.php AMBITO_GRUPOSPROCEDIMIENTOS
                var url="../varios/informacion_acciones.php?idtipoaccion="+id[2]+"&descripcionaccion="+description+"&tipoaccion="+tipoaccion;
                break;
            case '65':
                // repositorios
                var url="../varios/informacion_repositorios.php?idrepositorio="+id[2]+"&descripcionrepositorio='"+description+"'";
                break;
            case '52':
                // tareas
                var tipoaccion=34; // constantes.php AMBITO_GRUPOSTAREAS
                var url="../varios/informacion_acciones.php?idtipoaccion="+id[2]+"&descripcionaccion="+description+"&tipoaccion="+tipoaccion;
                break;
	    default:
		console.log("case default");
                break;
	}
        console.log("id:" +url);
        window.open(url,"frame_contenidos")
    });

    // Getionar nodo
    $("[id^='manageNode']").on ('click', function() {
        // Id menu-node-tipoNodo_tipoNodo_idNodo
        var id=$(this).parent().attr('id').split("_");
        var description=$('#nodo-'+id[1]+'_'+id[2]).find('a').text().trim();
	    console.log("tipo: "+id[1]+" nodo; "+id[2]);
	// url según tipo de nodo
	switch(id[1]) {
            case '56':
                // hardware
                var url="../varios/perfilcomponente_hard.php?idperfilhard="+id[2]+"&descripcionperfil="+description;
                break;
            case '64':
                // menus
                var url="../varios/accionmenu.php?idmenu="+id[2]+"&descripcionmenu="+description;
                break;
            case '57':
                // perfil de software
                var url="../varios/perfilcomponente_soft.php?idperfilsoft="+id[2]+"&descripcionperfil="+description;
                break;
            case '51':
                // procedimientos
                var tipoaccion=33; // constantes.php AMBITO_GRUPOSPROCEDIMIENTOS
                var url="../varios/inclusionacciones.php?idtipoaccion="+id[2]+"&descripcionaccion="+description+"&tipoaccion="+tipoaccion;
                break;
            case '52':
                // tareas
                var tipoaccion=34; // constantes.php AMBITO_GRUPOSTAREAS
                var url="../varios/inclusionacciones.php?idtipoaccion="+id[2]+"&descripcionaccion="+description+"&tipoaccion="+tipoaccion;
                break;
	    default:
		console.log("case default");
                break;
	}
        console.log("id:" +url);
        window.open(url,"frame_contenidos")
   });

});