1 | // ************************************************************************************************************************************************* |
---|
2 | // Libreria de scripts de Javascript |
---|
3 | // Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla |
---|
4 | // Fecha Creación: 2009-2010 |
---|
5 | // Fecha Última modificación: Agosto-2010 |
---|
6 | // Nombre del fichero: colasacciones.js |
---|
7 | // Descripción : |
---|
8 | // Este fichero implementa las funciones javascript del fichero colasacciones.php |
---|
9 | // ************************************************************************************************************************************************* |
---|
10 | var currentCol; |
---|
11 | var currentAcc; |
---|
12 | var iresul; |
---|
13 | var ifechafin; |
---|
14 | var ihorafin; |
---|
15 | var ifechareg; |
---|
16 | var ihorareg; |
---|
17 | var iiconamb; |
---|
18 | var iamb; |
---|
19 | var iinfor; |
---|
20 | var isitu; |
---|
21 | var iporcen; |
---|
22 | var curentwprg; |
---|
23 | //________________________________________________________________________________________________________ |
---|
24 | |
---|
25 | function resaltar(o){ |
---|
26 | o.style.color="#999999"; |
---|
27 | o.style.fontWeight="bold" |
---|
28 | |
---|
29 | } |
---|
30 | //________________________________________________________________________________________________________ |
---|
31 | |
---|
32 | function desresaltar(o){ |
---|
33 | o.style.color="#999999"; |
---|
34 | o.style.fontWeight="normal" |
---|
35 | } |
---|
36 | //________________________________________________________________________________________________________ |
---|
37 | |
---|
38 | function marcalinea(o){ |
---|
39 | } |
---|
40 | //________________________________________________________________________________________________________ |
---|
41 | |
---|
42 | function chgdespleestados(o) |
---|
43 | { |
---|
44 | |
---|
45 | var dplResultados=document.fdatos.resultado; |
---|
46 | var op=o.selectedIndex; |
---|
47 | switch(op){ |
---|
48 | case ACCION_DETENIDA: |
---|
49 | dplResultados.selectedIndex=ACCION_SINRESULTADO; |
---|
50 | break; |
---|
51 | case ACCION_INICIADA: |
---|
52 | dplResultados.selectedIndex=ACCION_SINRESULTADO; |
---|
53 | break; |
---|
54 | case ACCION_FINALIZADA: |
---|
55 | dplResultados.selectedIndex=ACCION_EXITOSA; |
---|
56 | break; |
---|
57 | } |
---|
58 | } |
---|
59 | //________________________________________________________________________________________________________ |
---|
60 | |
---|
61 | function chgdespleresultados(o) |
---|
62 | { |
---|
63 | var dplEstados=document.fdatos.estado; |
---|
64 | var op=o.selectedIndex; |
---|
65 | switch(op){ |
---|
66 | case ACCION_SINRESULTADO: |
---|
67 | //dplEstados.selectedIndex=0; // Todos |
---|
68 | break; |
---|
69 | case ACCION_EXITOSA: |
---|
70 | dplEstados.selectedIndex=ACCION_FINALIZADA; |
---|
71 | break; |
---|
72 | case ACCION_FALLIDA: |
---|
73 | dplEstados.selectedIndex=ACCION_FINALIZADA; |
---|
74 | break; |
---|
75 | } |
---|
76 | } |
---|
77 | //________________________________________________________________________________________________________ |
---|
78 | |
---|
79 | function vertabla_calendario(ofecha) |
---|
80 | { |
---|
81 | currentFecha=ofecha; |
---|
82 | url="../varios/calendario_ventana.php?fecha="+ofecha.value; |
---|
83 | window.open(url,"vf","top=160,left=250,height=220,width=160,scrollbars=no") |
---|
84 | } |
---|
85 | //________________________________________________________________________________________________________ |
---|
86 | |
---|
87 | function vertabla_horario(ohora) |
---|
88 | { |
---|
89 | currentHora=ohora; |
---|
90 | url="../varios/horario_ventana.php?hora="+ohora.value; |
---|
91 | window.open(url,"vh","top=120,left=115,height=180,width=590,scrollbars=no") |
---|
92 | } |
---|
93 | //________________________________________________________________________________________________________ |
---|
94 | |
---|
95 | function anade_fecha(fecha) |
---|
96 | { |
---|
97 | currentFecha.value=fecha |
---|
98 | } |
---|
99 | //________________________________________________________________________________________________________ |
---|
100 | |
---|
101 | function anade_hora(hora) |
---|
102 | { |
---|
103 | currentHora.value=hora |
---|
104 | } |
---|
105 | //________________________________________________________________________________________________________ |
---|
106 | // |
---|
107 | // Procesa operaciones sobre acciones |
---|
108 | // |
---|
109 | // Parámetros: |
---|
110 | // op: Código de operacion |
---|
111 | // 1- Eliminar |
---|
112 | // 2.-Reiniciar |
---|
113 | // 3.- Parar |
---|
114 | // 4.- Reanudar |
---|
115 | // o: Es nulo si se eligen las opraciones globales, en caso de ser operaciones locales no lo es |
---|
116 | // y la cadena con el formato "tipoaccion,idtipoaccio,sesion,idaccion;" se encuentra en el atributo value |
---|
117 | // |
---|
118 | // Especificaciones; |
---|
119 | // |
---|
120 | // La forma de procesar las operaciones sobre acciones es a través de identificadores con el formato: |
---|
121 | // "tipoaccion,idtipoaccio,sesion,idaccion" separados cada tripla por ";" el gestor recibe esta cadena |
---|
122 | // y el tipo de operación. |
---|
123 | // |
---|
124 | // En caso de que idaccion sea cero se actua atendiendo a la sesion en caso contrario con la propia idaccion |
---|
125 | //________________________________________________________________________________________________________ |
---|
126 | |
---|
127 | function eleccion(op,o) |
---|
128 | { |
---|
129 | reset_contextual(-1,-1); |
---|
130 | if(o==null) |
---|
131 | var acciones=document.facciones.acciones.value; |
---|
132 | else |
---|
133 | var acciones=o.value; |
---|
134 | |
---|
135 | switch(op){ |
---|
136 | case 1: // Eliminar |
---|
137 | if(confirm(TbMsg[1])) |
---|
138 | gestionaAccion(op,acciones); |
---|
139 | |
---|
140 | break; |
---|
141 | case 2: // Reiniciar |
---|
142 | if(confirm(TbMsg[2])) |
---|
143 | gestionaAccion(op,acciones); |
---|
144 | break; |
---|
145 | case 3: // Detener |
---|
146 | if(confirm(TbMsg[3])) |
---|
147 | gestionaAccion(op,acciones); |
---|
148 | break; |
---|
149 | case 4: // Reanudar |
---|
150 | if(confirm(TbMsg[4])) |
---|
151 | gestionaAccion(op,acciones); |
---|
152 | break; |
---|
153 | case 5: // Finalizar sin errores |
---|
154 | if(confirm(TbMsg[5])) |
---|
155 | gestionaAccion(op,acciones); |
---|
156 | break; |
---|
157 | case 6: // Finalizar con errores |
---|
158 | if(confirm(TbMsg[6])) |
---|
159 | gestionaAccion(op,acciones); |
---|
160 | break; |
---|
161 | } |
---|
162 | } |
---|
163 | //________________________________________________________________________________________________________ |
---|
164 | |
---|
165 | function gestionaAccion(op,acciones){ |
---|
166 | currentAcc=acciones; |
---|
167 | /* LLamada a la gestión */ |
---|
168 | var wurl="../gestores/gestor_colasacciones.php"; |
---|
169 | var prm="opcion="+op+"&acciones="+acciones; |
---|
170 | CallPage(wurl,prm,"retornoGestion","POST"); |
---|
171 | } |
---|
172 | //______________________________________________________________________________________________________ |
---|
173 | |
---|
174 | function retornoGestion(op) |
---|
175 | { |
---|
176 | //alert("Retorno:"+op) |
---|
177 | var opcion=parseInt(op); |
---|
178 | if(opcion==0){ // Error en el proceso anterior |
---|
179 | alert(TbMsg[0]); |
---|
180 | return; |
---|
181 | } |
---|
182 | var tipoaccion; |
---|
183 | var idtipoaccion; |
---|
184 | var sesion; |
---|
185 | var idaccion; |
---|
186 | var tbAcciones=currentAcc.split(";"); |
---|
187 | |
---|
188 | /* Busca nodos afectados y los coloca en array para proceso posterior */ |
---|
189 | for(i=0;i<tbAcciones.length-1;i++){ |
---|
190 | var tbAccion=tbAcciones[i].split(","); |
---|
191 | tipoaccion=tbAccion[0]; |
---|
192 | idtipoaccion=tbAccion[1]; |
---|
193 | sesion=tbAccion[2]; |
---|
194 | idaccion=tbAccion[3]; |
---|
195 | var oTB=document.getElementById("tbAcciones"); |
---|
196 | var oTRs=new Array(); |
---|
197 | var oTIs=new Array(); |
---|
198 | var k=r=0; |
---|
199 | for(var j=0;j<oTB.childNodes.length;j++){ // Recopila nodos |
---|
200 | if(idaccion>0){ // Operación sobre un ordenador concreto |
---|
201 | if(k==0) |
---|
202 | oTRs[k++]=document.getElementById(idaccion).parentNode; |
---|
203 | if(oTB.childNodes[j].id==sesion) |
---|
204 | oTIs[r++]=oTB.childNodes[j]; |
---|
205 | } |
---|
206 | else{ |
---|
207 | if(oTB.childNodes[j].id==sesion) |
---|
208 | oTRs[k++]=oTB.childNodes[j]; |
---|
209 | } |
---|
210 | } |
---|
211 | for( var j=0;j<k;j++){ // Recorre nodos afectados |
---|
212 | switch(opcion){ |
---|
213 | case 1: |
---|
214 | oTB.removeChild(oTRs[j]); // Elimina nodo <TR> completo |
---|
215 | break; |
---|
216 | case 2: |
---|
217 | cambioReinicio(oTRs[j]); // Coloca icono de accion iniciada |
---|
218 | break; |
---|
219 | case 3: |
---|
220 | cambioParada(oTRs[j]); // Coloca icono de accion parada a las que estén activas |
---|
221 | break; |
---|
222 | case 4: |
---|
223 | cambioReanudacion(oTRs[j]); // Coloca icono de accion iniciada a las que estén paradas |
---|
224 | break; |
---|
225 | case 5: |
---|
226 | cambioFinalizar(oTRs[j],true); // Coloca icono de accion finalizada sin errores |
---|
227 | break; |
---|
228 | case 6: |
---|
229 | cambioFinalizar(oTRs[j],false); // Coloca icono de accion finalizada con errores |
---|
230 | break; |
---|
231 | } |
---|
232 | } |
---|
233 | // Recalculo de porcentaje |
---|
234 | if(opcion==2 || opcion==5 || opcion==6){ |
---|
235 | if(idaccion>0) // Si es reinicio de un sólo ordenador |
---|
236 | recalculaAccion(oTIs,r,op); |
---|
237 | else |
---|
238 | recalculaAccion(oTRs,k,op); |
---|
239 | } |
---|
240 | } |
---|
241 | alert(TbMsg[10]); |
---|
242 | } |
---|
243 | //______________________________________________________________________________________________________ |
---|
244 | // |
---|
245 | // Gestiona todas las operaciones posteriores al reinicio de la acción |
---|
246 | //______________________________________________________________________________________________________ |
---|
247 | |
---|
248 | function cambioReinicio(nodo) |
---|
249 | { |
---|
250 | if(nodo.getAttribute('value')!="D") return; // Sólo nodos de notificaciones |
---|
251 | |
---|
252 | setIndices(nodo); |
---|
253 | |
---|
254 | nodo.childNodes[ifechafin].innerHTML=" "; |
---|
255 | nodo.childNodes[ihorafin].innerHTML=" "; |
---|
256 | nodo.childNodes[iinfor].innerHTML=" "; |
---|
257 | |
---|
258 | //if(nodo.childNodes[isitu].childNodes[0].getAttribute('value')==ACCION_FINALIZADA){ |
---|
259 | nodo.childNodes[isitu].childNodes[0].setAttribute("src","../images/iconos/acIniciada.gif"); |
---|
260 | nodo.childNodes[isitu].childNodes[0].setAttribute("value",ACCION_INICIADA); |
---|
261 | nodo.childNodes[iresul].childNodes[0].setAttribute("value",ACCION_SINRESULTADO); |
---|
262 | nodo.childNodes[iresul].childNodes[0].setAttribute("src","../images/iconos/nada.gif"); |
---|
263 | nodo.childNodes[iporcen].innerHTML=" " |
---|
264 | //} |
---|
265 | } |
---|
266 | //______________________________________________________________________________________________________ |
---|
267 | // |
---|
268 | // Gestiona todas las operaciones posteriores a la detención de la acción |
---|
269 | //______________________________________________________________________________________________________ |
---|
270 | |
---|
271 | function cambioParada(nodo) |
---|
272 | { |
---|
273 | if(nodo.getAttribute('value')!="D") return; // Sólo nodos de notificaciones |
---|
274 | setIndices(nodo); |
---|
275 | if(nodo.childNodes[isitu].childNodes[0].getAttribute('value')==ACCION_INICIADA){ |
---|
276 | nodo.childNodes[isitu].childNodes[0].setAttribute("src","../images/iconos/acDetenida.gif"); |
---|
277 | nodo.childNodes[isitu].childNodes[0].setAttribute("value",ACCION_DETENIDA) |
---|
278 | } |
---|
279 | } |
---|
280 | //______________________________________________________________________________________________________ |
---|
281 | // |
---|
282 | // Gestiona todas las operaciones posteriores a la reanudación de la acción |
---|
283 | //______________________________________________________________________________________________________ |
---|
284 | |
---|
285 | function cambioReanudacion(nodo) |
---|
286 | { |
---|
287 | if(nodo.getAttribute('value')!="D") return; // Sólo nodos de notificaciones |
---|
288 | setIndices(nodo); |
---|
289 | if(nodo.childNodes[isitu].childNodes[0].getAttribute('value')==ACCION_DETENIDA){ |
---|
290 | nodo.childNodes[isitu].childNodes[0].setAttribute("src","../images/iconos/acIniciada.gif"); |
---|
291 | nodo.childNodes[isitu].childNodes[0].setAttribute("value",ACCION_INICIADA) |
---|
292 | } |
---|
293 | } |
---|
294 | //______________________________________________________________________________________________________ |
---|
295 | // |
---|
296 | // Gestiona todas las operaciones posteriores a la finalización de la acción |
---|
297 | //______________________________________________________________________________________________________ |
---|
298 | |
---|
299 | function cambioFinalizar(nodo,sw) |
---|
300 | { |
---|
301 | if(nodo.getAttribute('value')!="D") return; // Sólo nodos de notificaciones |
---|
302 | setIndices(nodo); |
---|
303 | if(nodo.childNodes[isitu].childNodes[0].getAttribute('value')==ACCION_INICIADA){ |
---|
304 | nodo.childNodes[isitu].childNodes[0].setAttribute("value",ACCION_FINALIZADA); |
---|
305 | nodo.childNodes[isitu].childNodes[0].setAttribute("src","../images/iconos/nada.gif"); |
---|
306 | if(sw){ |
---|
307 | nodo.childNodes[iresul].childNodes[0].setAttribute("value",ACCION_EXITOSA); |
---|
308 | nodo.childNodes[iresul].childNodes[0].setAttribute("src","../images/iconos/acExitosa.gif"); |
---|
309 | nodo.childNodes[iinfor].innerHTML=LITACCION_EXITOSA; } |
---|
310 | else{ |
---|
311 | nodo.childNodes[iresul].childNodes[0].setAttribute("value",ACCION_FALLIDA); |
---|
312 | nodo.childNodes[iresul].childNodes[0].setAttribute("src","../images/iconos/acFallida.gif"); |
---|
313 | nodo.childNodes[iinfor].innerHTML=LITACCION_FALLIDA; |
---|
314 | } |
---|
315 | var ahora = new Date(); |
---|
316 | nodo.childNodes[ifechafin].innerHTML=ahora.getDate() + "-" + (ahora.getMonth() + 1) + "-" + ahora.getFullYear(); |
---|
317 | nodo.childNodes[ihorafin].innerHTML=ahora.getHours() + ":" + (ahora.getMinutes() + 1) + ":" + ahora.getSeconds(); |
---|
318 | } |
---|
319 | } |
---|
320 | |
---|
321 | //______________________________________________________________________________________________________ |
---|
322 | // |
---|
323 | // Configura indices para acceo a nodos |
---|
324 | //______________________________________________________________________________________________________ |
---|
325 | |
---|
326 | function setIndices(nodo) |
---|
327 | { |
---|
328 | if(nodo.getAttribute('value')=="C") |
---|
329 | iresul=2; // Nodo cabecera de sesion |
---|
330 | else{ |
---|
331 | if(nodo.getAttribute('value')=="D") |
---|
332 | iresul=1; // Nodo detalle de sesion |
---|
333 | else |
---|
334 | return; // Nodo de cambio de ámbito |
---|
335 | } |
---|
336 | ifechafin=iresul+1; |
---|
337 | ihorafin=ifechafin+1; |
---|
338 | ifechareg=ihorafin+1; |
---|
339 | ihorareg=ifechareg+1; |
---|
340 | iiconamb=ihorareg+1; |
---|
341 | iamb=iiconamb+1; |
---|
342 | iinfor=iamb+1; |
---|
343 | isitu=iinfor+1; |
---|
344 | iporcen=isitu+1; |
---|
345 | } |
---|
346 | //______________________________________________________________________________________________________ |
---|
347 | // |
---|
348 | // Recalcula porcentaje después de reinicios |
---|
349 | // |
---|
350 | // Especificaciones: |
---|
351 | // El parámetro sw indica si finaliza sin errores (true) o con errore (false) |
---|
352 | //______________________________________________________________________________________________________ |
---|
353 | |
---|
354 | function recalculaAccion(nodos,r,op) |
---|
355 | { |
---|
356 | var c,nt,nn; |
---|
357 | nt=nf=0; |
---|
358 | var resultado=ACCION_EXITOSA; |
---|
359 | |
---|
360 | for(var j=0;j<r;j++){ // Recorre nodo para recalcular porcentaje |
---|
361 | if(nodos[j].getAttribute('value')=="C") |
---|
362 | c=j; // Guarda indice nodo cabecera de sesión |
---|
363 | else{ |
---|
364 | if(nodos[j].getAttribute('value')=="D"){ |
---|
365 | nf++; |
---|
366 | if(nf==1) setIndices(nodos[j]); // Sólo la primera vez |
---|
367 | if(nodos[j].childNodes[isitu].childNodes[0].getAttribute("value")==ACCION_FINALIZADA) |
---|
368 | nt++; |
---|
369 | if(nodos[j].childNodes[iresul].childNodes[0].getAttribute("value")==ACCION_FALLIDA) |
---|
370 | resultado=ACCION_FALLIDA; |
---|
371 | if(nodos[j].childNodes[iresul].childNodes[0].getAttribute("value")==ACCION_SINRESULTADO){ |
---|
372 | if(resultado==ACCION_EXITOSA) |
---|
373 | resultado=ACCION_SINRESULTADO; |
---|
374 | } |
---|
375 | } |
---|
376 | } |
---|
377 | } |
---|
378 | var porcen=0; |
---|
379 | if(nf>0) |
---|
380 | porcen=nt*100/nf; // Calcula porcentaje de finalización |
---|
381 | setIndices(nodos[c]); |
---|
382 | nodos[c].childNodes[iporcen].innerHTML=Math.floor(porcen)+"%"; |
---|
383 | switch(resultado){ |
---|
384 | case ACCION_EXITOSA: |
---|
385 | nodos[c].childNodes[iresul].childNodes[0].setAttribute("value",ACCION_EXITOSA); |
---|
386 | nodos[c].childNodes[iresul].childNodes[0].setAttribute("src","../images/iconos/acExitosa.gif"); |
---|
387 | break; |
---|
388 | |
---|
389 | case ACCION_FALLIDA: |
---|
390 | nodos[c].childNodes[iresul].childNodes[0].setAttribute("value",ACCION_FALLIDA); |
---|
391 | nodos[c].childNodes[iresul].childNodes[0].setAttribute("src","../images/iconos/acFallida.gif"); |
---|
392 | break; |
---|
393 | case ACCION_SINRESULTADO: |
---|
394 | nodos[c].childNodes[iresul].childNodes[0].setAttribute("value",ACCION_SINRESULTADO); |
---|
395 | nodos[c].childNodes[iresul].childNodes[0].setAttribute("src","../images/iconos/nada.gif"); |
---|
396 | break; |
---|
397 | } |
---|
398 | } |
---|
399 | //______________________________________________________________________________________________________ |
---|
400 | // |
---|
401 | // Filtra según una determinada accion o bien elimina ese filtro |
---|
402 | // |
---|
403 | // Parámetros: |
---|
404 | // sw: Indica si hay que filtrar o hay que eliminar el filtro por acción |
---|
405 | //______________________________________________________________________________________________________ |
---|
406 | |
---|
407 | function filtroAccion(sw) |
---|
408 | { |
---|
409 | if(sw==0){ // Quitar filtro |
---|
410 | document.fdatos.sesion.value=0; |
---|
411 | document.fdatos.visuprm.checked=false; |
---|
412 | document.fdatos.visucmd.checked=true; |
---|
413 | document.fdatos.visupro.checked=false; |
---|
414 | } |
---|
415 | else{ // Filtrar |
---|
416 | document.fdatos.sesion.value=document.facciones.sesion.value; |
---|
417 | document.fdatos.visuprm.checked=true; |
---|
418 | document.fdatos.visucmd.checked=true; |
---|
419 | document.fdatos.visupro.checked=true; |
---|
420 | } |
---|
421 | document.fdatos.submit(); |
---|
422 | } |
---|
423 | //________________________________________________________________________________________________________ |
---|
424 | // |
---|
425 | // Muestra formulario de programaciones para acciones |
---|
426 | //________________________________________________________________________________________________________ |
---|
427 | |
---|
428 | function programacion(idcmd,sesion,descripcion) |
---|
429 | { |
---|
430 | reset_contextual(-1,-1); |
---|
431 | var whref="../varios/programaciones.php?idcomando="+idcmd+"&sesion="+sesion; |
---|
432 | whref+="&descripcioncomando="+descripcion+"&tipoaccion="+EJECUCION_COMANDO; |
---|
433 | if(curentwprg) |
---|
434 | curentwprg.close(); |
---|
435 | curentwprg=window.open(whref,"wprg","left=50,top=20,height=520,width=480,scrollbars=no") |
---|
436 | } |
---|
437 | |
---|