| 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: Configurar.js | 
|---|
| 7 | // Descripción : | 
|---|
| 8 | //              Este fichero implementa las funciones javascript del fichero Configurar.php (Comandos) | 
|---|
| 9 | // ************************************************************************************************************************************************* | 
|---|
| 10 |  | 
|---|
| 11 | var atributos; // Variable global | 
|---|
| 12 |  | 
|---|
| 13 | //________________________________________________________________________________________________________ | 
|---|
| 14 | // | 
|---|
| 15 | //      Elimina una fila de una tabla de configuraciones perteneciente a las propiedades de una partición | 
|---|
| 16 | //      Parametros: | 
|---|
| 17 | //              icp: Identificador de la configuración-partición | 
|---|
| 18 | //              o: Objeto checkbox que invoca la función | 
|---|
| 19 | //________________________________________________________________________________________________________ | 
|---|
| 20 |  | 
|---|
| 21 | function eliminaParticion(icp,o) | 
|---|
| 22 | { | 
|---|
| 23 | var res=confirm(TbMsg[4]); // Pide confirmación | 
|---|
| 24 | if(!res){ | 
|---|
| 25 | o.checked=false; | 
|---|
| 26 | return; | 
|---|
| 27 | } | 
|---|
| 28 | var tbCfg = document.getElementById("tabla_conf"); // Recupera objeto <TABLE> | 
|---|
| 29 | var trCfg = document.getElementById("TR_"+icp); // Recupera <TR> de la fila a eliminar | 
|---|
| 30 | var tbodyObj=tbCfg.firstChild; // Recupera hijo <TBODY> del objeto <TABLE> | 
|---|
| 31 | tbodyObj.removeChild(trCfg); // Elimina nodo <TR> completo | 
|---|
| 32 | } | 
|---|
| 33 | //________________________________________________________________________________________________________ | 
|---|
| 34 |  | 
|---|
| 35 | function addParticion(objImg,cc) | 
|---|
| 36 | { | 
|---|
| 37 | var tbCfg = document.getElementById("tabla_conf"); // Recupera objeto <TABLE> | 
|---|
| 38 | var tbodyObj=tbCfg.firstChild; // Recupera hijo <TBODY> del objeto <TABLE> | 
|---|
| 39 |  | 
|---|
| 40 | var trImg=document.getElementById("TRIMG_"+cc); // Recupera <TR> de los botones para insertar antes | 
|---|
| 41 |  | 
|---|
| 42 | var k=objImg.getAttribute('value'); // Toma siguiente identificador de nodo | 
|---|
| 43 | var icp=cc+"_"+k; // Identificador de la configuración-partición | 
|---|
| 44 |  | 
|---|
| 45 | /* Crea objeto TR y lo añade al TBODY de la tabla*/ | 
|---|
| 46 | var nwTR = document.createElement('TR'); | 
|---|
| 47 | nwTR.setAttribute("id","TR_"+icp); | 
|---|
| 48 | tbodyObj.insertBefore(nwTR,trImg); // Inserta nodo <TR> completo | 
|---|
| 49 | var patron = document.getElementById("TR_patron"); // Recupera <TR> patron | 
|---|
| 50 | nwTR.innerHTML=patron.innerHTML; | 
|---|
| 51 | /* Actualiza objeto checkbox nuevo para que actue como los demás */ | 
|---|
| 52 | var nwCHK = document.getElementById("CHK_patron"); // Recupera reciente chekcbox | 
|---|
| 53 | var fclbk="eliminaParticion('"+icp+"');"; | 
|---|
| 54 | nwCHK.setAttribute("onclick",fclbk); | 
|---|
| 55 | nwCHK.removeAttribute("id"); | 
|---|
| 56 | /* Incrementa para siguiente identificador de nodo */ | 
|---|
| 57 | k++; | 
|---|
| 58 | objImg.setAttribute('value',k); | 
|---|
| 59 | } | 
|---|
| 60 | //________________________________________________________________________________________________________ | 
|---|
| 61 | // | 
|---|
| 62 | //      Confirma un bloque de configuración de particiones | 
|---|
| 63 | //      Parametros: | 
|---|
| 64 | //              idordenadores: Identificadores de los ordenadores a los que se aplicará el comando | 
|---|
| 65 | //              cc: Identificador de la configuración (bloque de particiones) | 
|---|
| 66 | //      Especificaciones: | 
|---|
| 67 | //              Cuando un comando se va a aplicar a un conjunto aleatorio de ordenaores, el código del | 
|---|
| 68 | //              ámbito será cero y la variable idambito contendrá la cadena con los identificadores de | 
|---|
| 69 | //              los oordenadores separados por coma (este dato aparece en esta función como promer parámetro) | 
|---|
| 70 | //________________________________________________________________________________________________________ | 
|---|
| 71 |  | 
|---|
| 72 | function Confirmar(cc) | 
|---|
| 73 | { | 
|---|
| 74 | if(comprobarDatos(cc)){ | 
|---|
| 75 | var RC="@"; | 
|---|
| 76 | var disco=1; // Siempre disco 1 | 
|---|
| 77 | atributos+=RC+"dsk="+disco+RC; // Le añade a la variable global el parámetro disco | 
|---|
| 78 | //alert(atributos) | 
|---|
| 79 | if(document.fdatosejecucion.ambito.value!=AMBITO_ORDENADORES){ | 
|---|
| 80 | var tbOrd= document.getElementById("tbOrd_"+cc); // Recupera tabla de ordenadores de la configuración | 
|---|
| 81 | var idordenadores=tbOrd.getAttribute('value'); // Toma identificadores de los ordenadores | 
|---|
| 82 | var cadenaid=document.fdatos.cadenaid.value; // Cadena de identificadores de todos los ordenadores del ámbito | 
|---|
| 83 | if(idordenadores!=cadenaid){ // Si no son iguales es que el ámbito de aplicación es restringido | 
|---|
| 84 | document.fdatosejecucion.ambito.value=0; // Ambito de aplicación restringido | 
|---|
| 85 | document.fdatosejecucion.idambito.value=idordenadores; | 
|---|
| 86 | } | 
|---|
| 87 | } | 
|---|
| 88 | document.fdatosejecucion.atributos.value=atributos; | 
|---|
| 89 | document.fdatosejecucion.submit(); | 
|---|
| 90 | } | 
|---|
| 91 | } | 
|---|
| 92 | //________________________________________________________________________________________________________ | 
|---|
| 93 | // | 
|---|
| 94 | //      Confirma un bloque de configuración de particiones | 
|---|
| 95 | //      Parametros: | 
|---|
| 96 | //              cc: Identificador de la configuración (bloque de particiones) | 
|---|
| 97 | //________________________________________________________________________________________________________ | 
|---|
| 98 |  | 
|---|
| 99 | function comprobarDatos(cc) | 
|---|
| 100 | { | 
|---|
| 101 | // Indices de campos a recuperar | 
|---|
| 102 | var ipar=1; | 
|---|
| 103 | var icodpar=2; | 
|---|
| 104 | var isysfi=3; | 
|---|
| 105 | var itama=4; | 
|---|
| 106 | var iope=6; | 
|---|
| 107 |  | 
|---|
| 108 | var SL="#"; | 
|---|
| 109 | var TB="$"; | 
|---|
| 110 |  | 
|---|
| 111 | var tbpar=new Array(); // Para control de particiones duplicadas | 
|---|
| 112 | atributos="cfg="; // Inicializa variable global de parámetros del comando | 
|---|
| 113 |  | 
|---|
| 114 | var trCfg = document.getElementById("TR_"+cc); // Recupera primer <TR> de la configuración | 
|---|
| 115 | trCfg=trCfg.nextSibling; // Primera fila de particiones | 
|---|
| 116 | while(trCfg.id!="TRIMG_"+cc){ | 
|---|
| 117 | var par=tomavalorDesple(trCfg.childNodes[ipar].childNodes[0]); // Partición | 
|---|
| 118 | if(par==0){ | 
|---|
| 119 | alert(TbMsg[1]); | 
|---|
| 120 | trCfg.childNodes[ipar].childNodes[0].focus(); | 
|---|
| 121 | return(false); | 
|---|
| 122 | } | 
|---|
| 123 | if(tbpar[par]==1){ // Existe ya una partición con ese número | 
|---|
| 124 | alert(TbMsg[0]); | 
|---|
| 125 | trCfg.childNodes[ipar].childNodes[0].focus(); | 
|---|
| 126 | return(false); | 
|---|
| 127 | } | 
|---|
| 128 | tbpar[par]=1; | 
|---|
| 129 | var codpar=tomavalorDesple(trCfg.childNodes[icodpar].childNodes[0]); // Tipo de partición | 
|---|
| 130 | if(codpar==0){ | 
|---|
| 131 | alert(TbMsg[2]); | 
|---|
| 132 | trCfg.childNodes[icodpar].childNodes[0].focus(); | 
|---|
| 133 | return(false); | 
|---|
| 134 | } | 
|---|
| 135 |  | 
|---|
| 136 | var sysfi=tomatextDesple(trCfg.childNodes[isysfi].childNodes[0]); // Sistema de ficheros | 
|---|
| 137 |  | 
|---|
| 138 | var tama=trCfg.childNodes[itama].childNodes[0].value; // Tamaño de partición | 
|---|
| 139 | if(tama==0){ | 
|---|
| 140 | alert(TbMsg[3]); | 
|---|
| 141 | trCfg.childNodes[itama].childNodes[0].focus(); | 
|---|
| 142 | return(false); | 
|---|
| 143 | } | 
|---|
| 144 | var ope=tomavalorDesple(trCfg.childNodes[iope].childNodes[0]); // Operación a realizar | 
|---|
| 145 |  | 
|---|
| 146 | trCfg=trCfg.nextSibling; // Primera fila de particiones | 
|---|
| 147 | /* Compone formato del comando */ | 
|---|
| 148 | atributos+="par="+par+TB+"cpt="+codpar+TB+"sfi="+sysfi+TB+"tam="+tama+TB+"ope="+ope+SL; | 
|---|
| 149 | } | 
|---|
| 150 | return(true); | 
|---|
| 151 | } | 
|---|
| 152 | //________________________________________________________________________________________________________ | 
|---|
| 153 | // | 
|---|
| 154 | // Devuelve el valor seleccionado de un desplegable cualquiera | 
|---|
| 155 | //________________________________________________________________________________________________________ | 
|---|
| 156 |  | 
|---|
| 157 | function tomavalorDesple(desplegable) | 
|---|
| 158 | { | 
|---|
| 159 | var idx=desplegable.selectedIndex; // Indice seleccionado en el desplegable | 
|---|
| 160 | var val=desplegable.options[idx].value; // Valor seleccionado en el desplegable | 
|---|
| 161 | return(val); | 
|---|
| 162 | } | 
|---|
| 163 | //________________________________________________________________________________________________________ | 
|---|
| 164 | // | 
|---|
| 165 | // Devuelve el valor seleccionado de un desplegable cualquiera | 
|---|
| 166 | //________________________________________________________________________________________________________ | 
|---|
| 167 |  | 
|---|
| 168 | function tomatextDesple(desplegable) | 
|---|
| 169 | { | 
|---|
| 170 | var idx=desplegable.selectedIndex; // Indice seleccionado en el desplegable | 
|---|
| 171 | var txt=desplegable.options[idx].text; // Valor seleccionado en el desplegable | 
|---|
| 172 | return(txt); | 
|---|
| 173 | } | 
|---|
| 174 |  | 
|---|