// ************************************************************************************************************************************************* // 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: Agosto-2010 // Nombre del fichero: Configurar.js // Descripción : // Este fichero implementa las funciones javascript del fichero Configurar.php (Comandos) // ************************************************************************************************************************************************* var atributos=""; // Variable global var swc=false; // Switch para detectar cache //________________________________________________________________________________________________________ // // Elimina una fila de una tabla de configuraciones perteneciente a las propiedades de una partición // Parámetros: // icp: Identificador de la configuración-partición // o: Objeto checkbox que invoca la función //________________________________________________________________________________________________________ function eliminaParticion(o,icp) { var res=confirm(TbMsg[4]); // Pide confirmación if(!res){ o.checked=false; return; } // Toma desplegable de tipo de partición var desplepar=o.parentNode.nextSibling.nextSibling.childNodes[0]; var tipar=tomavalorDesple(desplepar); // Partición if(tipar==="CACHE") swc=false; // Si es la caché se pone a false su switch var tbCfg = document.getElementById("tabla_conf"); // Recupera objeto var trCfg = document.getElementById("TR_"+icp); // Recupera de la fila a eliminar var tbodyObj=tbCfg.firstChild; // Recupera hijo del objeto
tbodyObj.removeChild(trCfg); // Elimina nodo completo } //________________________________________________________________________________________________________ function addParticion(objImg,cc) { var tbCfg = document.getElementById("tabla_conf"); // Recupera objeto
var tbodyObj=tbCfg.firstChild; // Recupera hijo del objeto
var trImg=document.getElementById("TRIMG_"+cc); // Recupera de los botones para insertar antes var k=objImg.getAttribute('value'); // Toma siguiente identificador de nodo var icp=cc+"_"+k; // Identificador de la configuración-partición /* Crea objeto TR y lo añade al TBODY de la tabla*/ var nwTR = document.createElement('TR'); nwTR.setAttribute("id","TR_"+icp); tbodyObj.insertBefore(nwTR,trImg); // Inserta nodo completo var patron = document.getElementById("TR_patron"); // Recupera patron nwTR.innerHTML=patron.innerHTML; /* Actualiza objeto checkbox nuevo para que actue como los demás */ var nwCHK = document.getElementById("CHK_patron"); // Recupera reciente chekcbox var fclbk="eliminaParticion(this,'"+icp+"');"; nwCHK.setAttribute("onclick",fclbk); nwCHK.removeAttribute("id"); /* Incrementa para siguiente identificador de nodo */ k++; objImg.setAttribute('value',k); } //________________________________________________________________________________________________________ // // Confirma un bloque de configuración de particiones // Parámetros: // idordenadores: Identificadores de los ordenadores a los que se aplicará el comando // cc: Identificador de la configuración (bloque de particiones) // Especificaciones: // Cuando un comando se va a aplicar a un conjunto aleatorio de ordenaores, el código del // ámbito será cero y la variable idambito contendrá la cadena con los identificadores de // los oordenadores separados por coma (este dato aparece en esta función como promer parámetro) //________________________________________________________________________________________________________ function Confirmar(cc) { if(comprobarDatos(cc)){ if(document.fdatosejecucion.ambito.value!=AMBITO_ORDENADORES){ var tbOrd= document.getElementById("tbOrd_"+cc); // Recupera tabla de ordenadores de la configuración var idordenadores=tbOrd.getAttribute('value'); // Toma identificadores de los ordenadores var cadenaid=document.fdatos.cadenaid.value; // Cadena de identificadores de todos los ordenadores del ámbito if(idordenadores!==cadenaid){ // Si no son iguales es que el ámbito de aplicación es restringido document.fdatosejecucion.ambito.value=0; // Ambito de aplicación restringido document.fdatosejecucion.idambito.value=idordenadores; } } document.fdatosejecucion.atributos.value=atributos; //alert(atributos) //filtrado(); document.fdatosejecucion.submit(); } } //________________________________________________________________________________________________________ // // Confirma un bloque de configuración de particiones // Parametros: // cc: Identificador de la configuración (bloque de particiones) // Version 1.1: 2015-02-25. Irina Gomez ETSII US. Se envian datos de cuarta particion. //________________________________________________________________________________________________________ function comprobarDatos(cc) { // Indices de campos a recuperar var ipar=1; var icodpar=2; var isysfi=3; var itama=4; var iope=6; var SL="%"; var TB="*"; var maxpar=0; var tbpar=[]; // Para control de particiones duplicadas var tbparam=[]; // Para control de configuración var npar; // Partición en formato integer var tch=0; // Tamaño de la caché var allpartsize=0; // Tamaño total de todas las particiones. var extsize=0; // Tamaño partición "EXTENDED" var allextsize=0; // Tamaño total de las particiones extendidas. var hdsize = document.getElementById("hdsize"+cc).value; var trCfg = document.getElementById("TR_"+cc); // Recupera primer de la configuración trCfg=trCfg.nextSibling; // Primera fila de particiones var swe = false; while(trCfg.id!=="TRIMG_"+cc){ var tama=trCfg.childNodes[itama].childNodes[0].value; // Tamaño de partición // Comprobar tamaño negativo. if (tama < 0) { alert(TbMsg[8]); trCfg.childNodes[ipar].childNodes[0].focus(); return(false); } var par=tomavalorDesple(trCfg.childNodes[ipar].childNodes[0]); // Partición npar=parseInt(par); if(maxpar 4) { alert(TbMsg[7]); return(false); } } else { if (allextsize > extsize) { alert(TbMsg["EXTSIZE"]); return(false); } allpartsize += extsize; } break; case "GPT": if (swe) { alert("Extended type not compatible with GPT"); return(false); } break; default: alert("Disk type not compatible"); return(false); break; } // Alerta si tamaño del disco menor que las particiones if (hdsize