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
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
|
// *************************************************************************************************************************************************
// Libreria de scripts de Javascript
// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
// Fecha Creación: 2009-2010
// Fecha Última modificación: Marzo-2006
// Nombre del fichero: comunes.js
// Descripción :
// Este fichero implementa funciones de uso comn a varios fichechos
// *************************************************************************************************************************************************
var corte_currentNodo; // Copia del Nodo actual para mover y colocar
var currentTipo=null; // Tipo de Nodo
//____________________________________________________________________________
//
// Recupera el navegador utilizado
//____________________________________________________________________________
var IE=(navigator.appName=="Microsoft Internet Explorer");
var NS=(navigator.appName=="Netscape");
//document.body.addEventListener("contextmenu",killClick,true);
//document.oncontextmenu=function(){ return(false);}
//window.oncontextmenu = function () { alert("pepe"); }
//________________________________________________________________________________________________________
//
// Inserta un nuevo grupo
//________________________________________________________________________________________________________
function insertar_grupos(tipo,literaltipo,swi,idu){
reset_contextual(-1,-1); // Oculta menu contextual
var identificador=currentNodo.toma_identificador();
if(swi!=null && swi==1) identificador=0;
if(identificador==null) identificador=0;
if(literaltipo==LITAMBITO_AULAS) // Nuevo grupo de ordenador hijo de un aula
var wurl="../propiedades/propiedades_grupos.php?opcion="+op_alta+"&grupoid=0"+"&idaula="+identificador+"&tipo="+AMBITO_GRUPOSORDENADORES +"&literaltipo="+LITAMBITO_GRUPOSORDENADORES;
else
if(literaltipo==LITAMBITO_GRUPOSORDENADORES) // Nuevo grupo de ordenador hijo de un grupo de ordenadores
var wurl="../propiedades/propiedades_grupos.php?opcion="+op_alta+"&grupoid="+identificador+"&idaula=0"+"&tipo="+AMBITO_GRUPOSORDENADORES +"&literaltipo="+LITAMBITO_GRUPOSORDENADORES;
else
var wurl="../propiedades/propiedades_grupos.php?opcion="+op_alta+"&grupoid="+identificador+"&tipo="+tipo +"&literaltipo="+literaltipo;
if(idu!=null && idu==1) wurl+="&iduniversidad="+idu;
window.open(wurl,"frame_contenidos")
}
//________________________________________________________________________________________________________
//
// Devuelve el resultado de insertar un nuevo grupo
// Par�etros:
// - resul: resultado de la operaci�(true si tuvo �ito)
// - descrierror: Descripción del error en su caso
// - nwid: Identificador asignado al nuevo registro
// - tablanodo: Tabla nodo generada para el nuevo registro (árbol de un s�o un elemento)
//________________________________________________________________________________________________________
function resultado_insertar_grupos(resul,descrierror,nwid,tablanodo){
reset_contextual(-1,-1); // Oculta menu contextual
if (!resul){ // Ha habido algn error en la inserci�
alert(descrierror);
return
}
InsertaNodo(currentNodo,tablanodo);
}
//________________________________________________________________________________________________________
//
// Modifica el nombre de un grupo
//________________________________________________________________________________________________________
function modificar_grupos(){
reset_contextual(-1,-1); // Oculta menu contextual
var identificador=currentNodo.toma_identificador();
var literaltipo=currentNodo.toma_sufijo();
wurl="../propiedades/propiedades_grupos.php?opcion="+op_modificacion+"&idgrupo="+identificador+"&literaltipo="+literaltipo;
window.open(wurl,"frame_contenidos")
}
//________________________________________________________________________________________________________
//
// Devuelve el resultado de modificar el nombre de un grupo de aulas
// Par�etros:
// - resul: resultado de la operaci� ( true si tuvo �ito)
// - descrierror: Descripción del error en su caso
// - lit: Nuevo nombre del grupo
//________________________________________________________________________________________________________
function resultado_modificar_grupos(resul,descrierror,lit){
if (!resul){
alert(descrierror);
return;
}
currentNodo.pone_infonodo(lit);
alert(CTbMsg[2]);
}
//________________________________________________________________________________________________________
//
// Elimina un grupo
//________________________________________________________________________________________________________
function eliminar_grupos(){
reset_contextual(-1,-1); // Oculta menu contextual
if (currentNodo.TieneHijos()){
var resul=window.confirm(CTbMsg[0]);
if (!resul)return;
}
var identificador=currentNodo.toma_identificador();
var literaltipo=currentNodo.toma_sufijo();
wurl="../propiedades/propiedades_grupos.php?opcion="+op_eliminacion+"&idgrupo="+identificador+"&literaltipo="+literaltipo;
window.open(wurl,"frame_contenidos");
}
//________________________________________________________________________________________________________
//
// Devuelve el resultado de eliminar un grupo
// Par�etros:
// - resul: resultado de la operaci� ( true si tuvo �ito)
// - descrierror: Descripción del error en su caso
// - id: Identificador del registro
//________________________________________________________________________________________________________
function resultado_eliminar_grupos(resul,descrierror,id){
if (!resul){
alert(descrierror);
return
}
var nvp=currentNodo.PapaNodo();
var ncel=nvp.CeldaVista;
EliminaNodo(currentNodo); // Elimina el nodo del árbol
var nwcurrentNodo=TomaDatosNodo(ncel);
resalta(nwcurrentNodo);
alert(CTbMsg[3]);
}
//________________________________________________________________________________________________________
//
// Muestra el formulario de captura de datos para insertar
//________________________________________________________________________________________________________
function insertar(l,t,w,h,pages,swi,idu){
reset_contextual(-1,-1); // Oculta menu contextual
var identificador=currentNodo.toma_identificador();
var literaltipo=currentNodo.toma_sufijo();
if(swi!=null && swi==1) identificador=0; // Nodos directos (sin pertenencia a grupo)
if(identificador==null) identificador=0;
if(literaltipo==LITAMBITO_AULAS){ // Nuevo grupo de ordenador hijo de un aula
if(pages=="../propiedades/propiedades_ordenadores.php" || pages=="../propiedades/propiedades_proyectores.php")
var whref=pages+"?opcion="+op_alta+"&grupoid=0"+"&idaula="+identificador;
else
var whref=pages+"&opcion="+op_alta+"&idambito="+identificador;;
}
else{
if(literaltipo==LITAMBITO_GRUPOSORDENADORES) // Nuevo grupo de ordendor hijo de un grupo de ordenadores
var whref="../propiedades/propiedades_ordenadores.php?opcion="+op_alta+"&grupoid="+identificador+"&idaula=0";
else{
var auxsplit= pages.split('?'); // La variable pages lleva parametros
if(auxsplit[1]!=null)
var whref=pages+"&";
else
var whref=pages+"?";
whref+="opcion="+op_alta+"&grupoid="+identificador;
}
}
if(idu!=null){
switch(idu){
case 1:
whref+="&iduniversidad="+idu;
break;
case 2:
whref+="&identidad="+identificador;
break;
case 3:
whref+="&idambito="+identificador;
break;
}
}
window.open(whref,"frame_contenidos");
}
//________________________________________________________________________________________________________
//
// Devuelve el resultado de insertar datos
// Par�etros:
// - resul: resultado de la operaci�(true si tuvo �ito)
// - descrierror: Descripción del error en su caso
// - nwid: Identificador asignado al nuevo registro
// - tablanodo: Tabla nodo generada para el nuevo registro (árbol de un s�o un elemento)
//________________________________________________________________________________________________________
function resultado_insertar(resul,descrierror,nwid,tablanodo){
if (!resul){
alert(descrierror);
return;
}
InsertaNodo(currentNodo,tablanodo);
alert(CTbMsg[4]);
}
//________________________________________________________________________________________________________
//
// Muestra el formulario de captura de datos para modificaci�
//________________________________________________________________________________________________________
function modificar(l,t,w,h,pages){
reset_contextual(-1,-1); // Oculta menu contextual
var identificador=currentNodo.toma_identificador();
if (!identificador) identificador=0;
var whref=pages+"?opcion="+op_modificacion+"&identificador="+identificador;
window.open(whref,"frame_contenidos");
}
//________________________________________________________________________________________________________
//
// Devuelve el resultado de modificar datos
// Par�etros:
// - resul: resultado de la operaci� ( true si tuvo �ito)
// - descrierror: Descripción del error en su caso
// - lit: Nuevo nombre del grupo
//________________________________________________________________________________________________________
function resultado_modificar(resul,descrierror,lit){
if (!resul){
alert(descrierror);
return;
}
currentNodo.pone_infonodo(lit);
alert(CTbMsg[5]);
}
//________________________________________________________________________________________________________
//
// Muestra el formulario de captura de datos para eliminaci�
//________________________________________________________________________________________________________
function eliminar(l,t,w,h,pages){
reset_contextual(-1,-1); // Oculta menu contextual
var identificador=currentNodo.toma_identificador();
var whref=pages+"?opcion="+op_eliminacion+"&identificador="+identificador;
window.open(whref,"frame_contenidos");
}
//________________________________________________________________________________________________________
//
// Devuelve el resultado de eliminar un grupo
// Parámetros:
// - resul: resultado de la operación (true si tuvo éxito)
// - descrierror: Descripción del error en su caso
// - id: Identificador del registro
//________________________________________________________________________________________________________
function resultado_eliminar(resul,descrierror,id){
if (!resul){
alert(descrierror);
return
}
var nvp=currentNodo.PapaNodo();
var ncel=nvp.CeldaVista;
EliminaNodo(currentNodo); // Elimina el nodo del árbol
var nwcurrentNodo=TomaDatosNodo(ncel);
resalta(nwcurrentNodo);
alert(CTbMsg[6]);
}
//________________________________________________________________________________________________________
//
// Copia al buffer un nodo para moverlo posteriormente
//________________________________________________________________________________________________________
function mover(tipo){
reset_contextual(-1,-1);
corte_currentNodo=currentNodo;
currentTipo=tipo
}
//________________________________________________________________________________________________________
//
// Mueve de sitio un nodo desde un grupo a otro o a la raiz
//________________________________________________________________________________________________________
function colocar(pages,tipo){
reset_contextual(-1,-1);
if (!corte_currentNodo || tipo!=currentTipo) {
alert(CTbMsg[7]);
corte_currentNodo=null;
currentTipo=null;
return
}
var identificadorgrupo=currentNodo.toma_identificador();
if (!identificadorgrupo) identificadorgrupo=0;
var identificador=corte_currentNodo.toma_identificador();
if (!identificador) identificador=0; // Se trata de la raiz
var wurl=pages;
var prm="opcion="+op_movida+"&grupoid="+identificadorgrupo+"&identificador="+identificador;
CallPage(wurl,prm,"retornoColocar","POST");
}
//______________________________________________________________________________________________________
function retornoColocar(iHTML){
//alert(iHTML)
if(iHTML.length>0){
eval(iHTML)
}
}
//________________________________________________________________________________________________________
//
// Devuelve el resultado de cambiar un nodo de sitio
// Par�etros:
// - resul: resultado de la operaci�( true si tuvo �ito)
// - descrierror: Descripción del error en su caso
// - id: Identificador del registro
//________________________________________________________________________________________________________
function resultado_mover(resul,descrierror,id){
if (!resul){
alert(descrierror);
return
}
var ncel=corte_currentNodo.CeldaVista;
var celdaHTML=ncel.parentNode.innerHTML; // Recupera celda del nodo
if(IE)
var patron = new RegExp("<TD width=16><SPAN><IMG","gi");
else
if(NS)
var patron = new RegExp("<TD width=\"16px\"><SPAN><IMG","gi");
var p=celdaHTML.search(patron);
if(p<0) return; // Ha habido algn problema
var nwceldaHTML='<TABLE border="0" cellspacing="0" cellpadding="0"><TBODY><TR height=16><TD width=3></TD>';
nwceldaHTML+=celdaHTML.substring(p);
InsertaNodo(currentNodo,nwceldaHTML);
EliminaNodo(corte_currentNodo); // Elimina el nodo
corte_currentNodo=null;
}
//________________________________________________________________________________________________________
//
// Esta funci� muestra un menu contextual
// Los par�etros recibidos son:
// - o: Objeto TD literal del nodo
// - idmnctx: Identificador del DIV que contiene el menu contextual
//________________________________________________________________________________________________________
function menu_contextual(o,idmnctx){
var menuctx=document.getElementById(idmnctx); // Toma objeto DIV
if(o!=null)
clickLiteralNodo(o);
muestra_contextual(ClickX,ClickY,menuctx) // muestra menu
}
//________________________________________________________________________________________________________
//
// Calcula el codigo ambito a partir del literal
//________________________________________________________________________________________________________
function calAmbito(literal)
{
var ambito;
switch(literal){
case LITAMBITO_CENTROS :
ambito=AMBITO_CENTROS;
break;
case LITAMBITO_GRUPOSAULAS :
ambito=AMBITO_GRUPOSAULAS;
break;
case LITAMBITO_AULAS :
ambito=AMBITO_AULAS;
break;
case LITAMBITO_GRUPOSORDENADORES :
ambito=AMBITO_GRUPOSORDENADORES;
break;
case LITAMBITO_ORDENADORES :
ambito=AMBITO_ORDENADORES;
break;
}
return(ambito);
}
//________________________________________________________________________________________________________
//
// Comprueba si un dato es numérico
//________________________________________________________________________________________________________
function IsNumeric(sText)
{
var ValidChars = "0123456789.";
var IsNumber=true;
var Char;
for (i = 0; i < sText.length && IsNumber == true; i++)
{
Char = sText.charAt(i);
if (ValidChars.indexOf(Char) == -1)
{
IsNumber = false;
}
}
return IsNumber;
}
|