source: admin/WebConsole/asistentes/jscripts/asistentes.js @ 0390d46

918-git-images-111dconfigfileconfigure-oglivegit-imageslgromero-new-oglivemainmaint-cronmount-efivarfsmultivmmultivm-ogboot-installerogClonningEngineogboot-installer-jenkinsoglive-ipv6test-python-scriptsticket-301ticket-50ticket-50-oldticket-577ticket-585ticket-611ticket-612ticket-693ticket-700ubu24tplunification2use-local-agent-oglivevarios-instalacionwebconsole3
Last change on this file since 0390d46 was 2e69949, checked in by ramon <ramongomez@…>, 12 years ago

#601: Integrar código revisión r3853, con mejoras en asistente de particionado.

git-svn-id: https://opengnsys.es/svn/branches/version1.0@3854 a21b9725-9963-47de-94b9-378ad31fedc9

  • Property mode set to 100644
File size: 21.6 KB
Line 
1// ***********************************************************************************************************
2// Libreria de scripts de Javascript
3// Autor:
4// Fecha Creación: 2011
5// Fecha Última modificación: enero-2011
6// Nombre del fichero: asistentes.js
7// Descripción :
8//              Este fichero implementa las funciones javascript del fichero AsistentesEjecutarScripts.php (Comandos)
9// ***********************************************************************************************************
10
11function codeCloneRemotePartition(form){
12switch (form.idmetodo.value)
13{
14        case "MULTICAST":
15                protocol="MULTICAST " + form.mcastpuerto.value  + ":" + form.mcastmodo.value + ":" + form.mcastdireccion.value + ":" + form.mcastvelocidad.value + "M:" + form.mcastnclien.value + ":" + form.mcastseg.value + " ";
16                break;
17        case "UNICAST":
18                protocol="UNICAST " +  form.ucastport.value + ":" + form.ucastclient.value + " ";
19                break;
20}
21//form.codigo.value="cloneRemoteFromMaster " + form.ipMaster.value + " 1 " + form.PartOrigen.value + "  " + form.mcastpuerto.value  + ":" + form.mcastmodo.value + ":" + form.mcastdireccion.value + ":" + form.mcastvelocidad.value + "M:" + form.mcastnclien.value + ":" + form.mcastseg.value + " 1 " + form.PartOrigen.value + " " + form.tool.value + " " + form.compresor.value;
22command="cloneRemoteFromMaster " + form.ipMaster.value + " " + form.source.value + "  " + protocol  + " " + form.targetpart.value + " " + form.tool.value + " " + form.compresor.value;
23form.codigo.value="\
24echo \"[0] $MSG_SCRIPTS_TASK_START " + command + " \" | tee -a $OGLOGFILE $OGLOGSESSION \n " +
25command + " | tee -a $OGLOGCOMMAND \n ";
26//cloneRemoteFromMaster " + form.ipMaster.value + " " + form.source.value + "  " + protocol  + " " + form.targetpart.value + " " + form.tool.value + " " + form.compresor.value + " | tee -a $OGLOGCOMMAND \n";
27//form.codigo.value="cloneRemoteFromMaster " + form.ipMaster.value + " " + form.source.value + "  " + protocol  + " " + form.targetpart.value + " " + form.tool.value + " " + form.compresor.value;
28}
29
30function codeDeployImage(form){
31switch (form.idmetodo.value)
32{
33        case "MULTICAST":
34                protocol="MULTICAST " + form.mcastpuerto.value  + ":" + form.mcastmodo.value + ":" + form.mcastdireccion.value + ":" + form.mcastvelocidad.value + "M:" + form.mcastnclien.value + ":" + form.mcastseg.value + " ";
35                break;
36        case "TORRENT":
37                protocol=" TORRENT " +  form.modp2p.value + ":" + form.timep2p.value;
38                break;
39        case "UNICAST":
40                protocol=" UNICAST";
41                break;
42}
43//form.codigo.value="deployImage REPO /";
44if (form.modo[0].checked)
45{
46        // UHU - Distinguimos entre disco y particion, el valor de idparticion sera disco;particion. eje. 1;1
47        var diskPart = form.idparticion.value.split(";");
48        command="deployImage REPO /" + form.idimagen.value + " "+diskPart[0]+" " + diskPart[1] + " " + protocol  ;
49        form.codigo.value="\
50echo [0] $MSG_SCRIPTS_TASK_START " + command +" | tee -a $OGLOGSESSION \n \ " +
51command + " | tee -a $OGLOGCOMMAND";
52        //form.codigo.value="deployImage REPO /" + form.idimagen.value + " 1 " + form.idparticion.value + " " + protocol  ;
53}
54else
55{
56        command="updateCache REPO /" + form.idimagen.value + ".img" + " " + protocol  ;
57        form.codigo.value="\
58echo [0] $MSG_SCRIPTS_TASK_START " + command +" | tee -a $OGLOGSESSION \n \ " +
59command + " | tee -a $OGLOGCOMMAND";           
60        //form.codigo.value="updateCache REPO /" + form.idimagen.value + ".img" + " " + protocol  ;
61}
62
63}
64
65function codeParticionado(form){
66        var errorMsg = "¡El espacio libre en disco no puede ser menor que 0!";
67        var n_disk = form.n_disk.value;
68        var tipo_part_table = form.tipo_part_table.value;
69        // Comprobamos si la opcion elejida es GPT o MSDOS para llamar a una funcion u otra
70        if(tipo_part_table == "GPT"){
71                // Comprobamos que el espacio libre en el disco no sea negativo, si lo es, dar aviso
72                if(parseInt(document.getElementById("freediskGPT").value) < 0){
73                        alert(errorMsg);
74                }
75                else{
76                        codeParticionadoGPT(form);
77                }
78        }
79        else{
80                // Comprobamos que el espacio libre en el disco no sea negativo, si lo es, dar aviso
81                if(parseInt(document.getElementById("freedisk").value) < 0){
82                        alert(errorMsg);
83                }
84                else{
85                        codeParticionadoMSDOS(form);
86                }
87        }
88       
89}
90
91
92function codeParticionadoMSDOS (form) {
93        var partCode="";
94        var logicalCode="";
95        var cacheCode;
96        var cacheSize;
97        var extended=false;
98        var n_disk = form.n_disk.value;
99        var tipo_part_table = form.tipo_part_table.value;
100        var maxParts = 4;
101       
102        // Comprobamos si esta seleccionada la cuarta particion y no es CACHE
103        if(form.check4.checked && form.part4.value != "CACHE")
104                maxParts = 5;
105
106        for (var nPart=1; nPart<maxParts; nPart++) {
107                var partCheck=eval("form.check"+nPart);
108                if (partCheck.checked) {
109                        var partType=eval("form.part"+nPart);
110                        if (partType.value == "CUSTOM" ) {
111                                var partTypeCustom=eval("form.part"+nPart+"custom");
112                                partCode += " " + partTypeCustom.value;
113                                if (partTypeCustom.value == "EXTENDED") {
114                                        extended=true;
115                                }
116                        } else {
117                                partCode += " " + partType.value;
118                                if (partType.value == "EXTENDED") {
119                                        extended=true;
120                                }
121                        }
122                        var partSize=eval("form.size"+nPart);
123                        if (partSize.value == "CUSTOM" ) {
124                                var partSizeCustom=eval("form.size"+nPart+"custom");
125                                partCode += ":" + partSizeCustom.value;
126                        } else {
127                                partCode += ":" + partSize.value;
128                        }
129                } else {
130                        partCode += " EMPTY:0";
131                }
132        }
133
134        var cacheCode="";
135
136        // Si se selecciono la particion 4 y es CACHE
137        if(form.part4.value == "CACHE"){
138                if (form.check4.checked) {
139                        if (form.size4.value == "0") {
140                                cacheCode="\
141echo \"[20] $MSG_HELP_ogGetPartitionSize CACHE\" | tee -a $OGLOGSESSION \n \
142sizecache=`ogGetCacheSize` \n \
143echo \"[30] $MSG_HELP_ogDeletePartitionTable - $MSG_HELP_ogUpdatePartitionTable 1\" | tee -a $OGLOGSESSION \n \
144ogDeletePartitionTable "+n_disk+"  \n \
145ogUpdatePartitionTable "+n_disk+" | tee -a $OGLOGCOMMAND \n \
146echo \"[50] $MSG_HELP_ogCreateCache \" | tee -a $OGLOGSESSION \n \
147initCache "+n_disk+" $sizecache  &>/dev/null  | tee -a $OGLOGCOMMAND \n ";             
148                        } else {
149                                if (form.size4.value == "CUSTOM") {
150                                        cacheSize = form.size4custom.value;
151                                } else {
152                                        cacheSize = form.size4.value;
153                                }
154                                cacheCode="\
155echo \"[30] $MSG_HELP_ogDeletePartitionTable - $MSG_HELP_ogUpdatePartitionTable 1\" | tee -a $OGLOGSESSION \n \
156ogDeletePartitionTable "+n_disk+"  \n \
157ogUpdatePartitionTable "+n_disk+" \n \
158echo \"[50]  $MSG_HELP_ogCreateCache \" | tee -a $OGLOGSESSION \n \
159initCache " + n_disk + " " + cacheSize + " &>/dev/null  | tee -a $OGLOGCOMMAND";       
160                        }
161                } else {
162                        cacheCode="\
163echo \"[30] $MSG_HELP_ogDeletePartitionTable - $MSG_HELP_ogUpdatePartitionTable 1\" | tee -a $OGLOGSESSION \n \
164ogDeletePartitionTable "+n_disk+" \n \
165ogUpdatePartitionTable "+n_disk+" \n";
166partCode += " EMPTY:0";
167                }
168        }
169
170        if (extended) {
171                var lastLogical=5;
172                for (var nPart=9; nPart>5; nPart--) {
173                        if (eval ("form.check"+nPart+".checked")) {
174                                lastLogical = nPart;
175                                break;
176                        }
177                }
178                for (var nPart=5; nPart<=lastLogical; nPart++) {
179                        var partCheck=eval("form.check"+nPart);
180                        if (partCheck.checked) {
181                                var partType=eval("form.part"+nPart);
182                                if (partType.value == "CUSTOM" ) {
183                                        var partTypeCustom=eval("form.part"+nPart+"custom");
184                                        logicalCode += " " + partTypeCustom.value;
185                                } else {
186                                        logicalCode += " " + partType.value;
187                                }
188                                var partSize=eval("form.size"+nPart);
189                                if (partSize.value == "CUSTOM" ) {
190                                        var partSizeCustom=eval("form.size"+nPart+"custom");
191                                        logicalCode += ":" + partSizeCustom.value;
192                                } else {
193                                        logicalCode += ":" + partSize.value;
194                                }
195                        } else {
196                                logicalCode += " EMPTY:0";
197                        }
198                }
199                partCode += logicalCode;
200        }
201
202        form.codigo.value="\
203ogCreatePartitionTable "+n_disk+" "+tipo_part_table +" \n \
204echo \"[0]  $MSG_HELP_ogCreatePartitions \" | tee -a $OGLOGSESSION $OGLOGFILE \n \
205echo \"[10] $MSG_HELP_ogUnmountAll "+n_disk+"\" | tee -a $OGLOGSESSION \n \
206ogUnmountCache \n \
207ogUnmountAll "+n_disk+" \n  \
208" + cacheCode + " \n \
209echo \"[60] $MSG_HELP_ogListPartitions "+n_disk+"\" | tee -a $OGLOGSESSION \n \
210ogListPartitions "+n_disk+" | tee -a $OGLOGCOMMAND $OGLOGSESSION \n \
211echo \"[70] $MSG_HELP_ogCreatePartitions  " + partCode + " \" | tee -a $OGLOGSESSION \n \
212ogCreatePartitions "+n_disk+" " + partCode + " | tee -a $OGLOGCOMMAND \n \
213echo \"[80] $MSG_HELP_ogSetPartitionActive "+n_disk+" 1\" | tee -a $OGLOGSESSION \n \
214ogSetPartitionActive "+n_disk+" 1 \n \
215echo \"[100] $MSG_HELP_ogListPartitions  "+n_disk+"\" | tee -a $OGLOGSESSION $OGLOGFILE \n \
216ogUpdatePartitionTable "+n_disk+" \n \
217ms-sys /dev/sda | grep unknow && ms-sys /dev/sda \n \
218ogListPartitions "+n_disk+" | tee -a $OGLOGCOMMAND $OGLOGSESSION $OGLOGFILE \n \
219reboot \n";
220}
221
222
223function codeParticionadoGPT (form) {
224        var partCode="";
225        var logicalCode="";
226        var cacheCode="";
227        var cacheSize;
228        var extended=false;
229        var n_disk = form.n_disk.value;
230        var tipo_part_table = form.tipo_part_table.value;
231                numParts=document.getElementById("numGPTpartitions").value;
232               
233        for (var nPart=1; nPart <= numParts; nPart++) {
234                var partCheck=eval("form.checkGPT"+nPart);
235                if (partCheck.checked) {
236                        // Distinguimos entre cache y el resto de particiones
237                        // Solo tratamos la particion 4 como cache, si se selecciono este tipo
238                        if(nPart == 4 && form.partGPT4.value == "CACHE") {
239                                if (form.sizeGPT4.value == "0") {
240                                        cacheCode="\
241echo \"[20] $MSG_HELP_ogGetPartitionSize CACHE\" | tee -a $OGLOGSESSION \n \
242sizecache=`ogGetCacheSize` \n \
243echo \"[30] $MSG_HELP_ogDeletePartitionTable - $MSG_HELP_ogUpdatePartitionTable 1\" | tee -a $OGLOGSESSION \n \
244ogDeletePartitionTable "+n_disk+"  \n \
245ogUpdatePartitionTable "+n_disk+" | tee -a $OGLOGCOMMAND \n \
246echo \"[50] $MSG_HELP_ogCreateCache \" | tee -a $OGLOGSESSION \n \
247initCache "+ n_disk +" $sizecache  &>/dev/null  | tee -a $OGLOGCOMMAND \n ";
248                                } else {
249                                        if (form.sizeGPT4.value == "CUSTOM") {
250                                                cacheSize = form.sizeGPT4custom.value;
251                                        } else {
252                                                cacheSize = form.sizeGPT4.value;
253                                        }
254                                        cacheCode="\
255echo \"[30] $MSG_HELP_ogDeletePartitionTable - $MSG_HELP_ogUpdatePartitionTable 1\" | tee -a $OGLOGSESSION \n \
256ogDeletePartitionTable "+n_disk+"  \n \
257ogUpdatePartitionTable "+n_disk+" \n \
258echo \"[50]  $MSG_HELP_ogCreateCache \" | tee -a $OGLOGSESSION \n \
259initCache "  + n_disk +" "+ cacheSize + " &>/dev/null  | tee -a $OGLOGCOMMAND";
260                                }
261                        } else{
262                                var partType=eval("form.partGPT"+nPart);
263                                if (partType.value == "CUSTOM" ) {
264                                        var partTypeCustom=eval("form.partGPT"+nPart+"custom");
265                                        partCode += " " + partTypeCustom.value;
266                                } else {
267                                        partCode += " " + partType.value;
268                                }
269                                var partSize=eval("form.sizeGPT"+nPart);
270                                if (partSize.value == "CUSTOM" ) {
271                                        var partSizeCustom=eval("form.sizeGPT"+nPart+"custom");
272                                        partCode += ":" + partSizeCustom.value;
273                                } else {
274                                        partCode += ":" + partSize.value;
275                                }
276                        }
277                } else {
278                        if(nPart == 4){
279                                cacheCode="\
280echo \"[30] $MSG_HELP_ogDeletePartitionTable - $MSG_HELP_ogUpdatePartitionTable 1\" | tee -a $OGLOGSESSION \n \
281ogDeletePartitionTable "+n_disk+" \n \
282ogUpdatePartitionTable "+n_disk+" \n";
283partCode += " EMPTY:0";
284                        } else{
285                                partCode += " EMPTY:0";
286                        }
287                }
288        }
289        form.codigo.value="\
290ogCreatePartitionTable "+n_disk+" "+tipo_part_table +" \n \
291echo \"[0]  $MSG_HELP_ogCreatePartitions \" | tee -a $OGLOGSESSION $OGLOGFILE \n \
292echo \"[10] $MSG_HELP_ogUnmountAll "+n_disk+"\" | tee -a $OGLOGSESSION \n \
293ogUnmountCache \n \
294ogUnmountAll "+n_disk+" \n  \
295" + cacheCode + " \n \
296echo \"[60] $MSG_HELP_ogListPartitions "+n_disk+"\" | tee -a $OGLOGSESSION \n \
297ogListPartitions "+n_disk+" | tee -a $OGLOGCOMMAND $OGLOGSESSION \n \
298echo \"[70] $MSG_HELP_ogCreatePartitions  " + partCode + " \" | tee -a $OGLOGSESSION \n \
299ogCreatePartitions "+n_disk+" " + partCode + " | tee -a $OGLOGCOMMAND \n \
300echo \"[80] $MSG_HELP_ogSetPartitionActive "+n_disk+" 1\" | tee -a $OGLOGSESSION \n \
301ogSetPartitionActive "+n_disk+" 1 \n \
302echo \"[100] $MSG_HELP_ogListPartitions  "+n_disk+"\" | tee -a $OGLOGSESSION $OGLOGFILE \n \
303ogUpdatePartitionTable "+n_disk+" \n \
304ms-sys /dev/sda | grep unknow && ms-sys /dev/sda \n \
305ogListPartitions "+n_disk+" | tee -a $OGLOGCOMMAND $OGLOGSESSION $OGLOGFILE \n \
306reboot \n";
307}
308
309
310function showPartitionForm (tipo_table_part) {
311        document.getElementById("form"+tipo_table_part).style.display="inline";
312        if(tipo_table_part == "MSDOS"){
313                // De los dos tipos, se oculta el otro
314                document.getElementById("formGPT").style.display="none";
315        } else{
316                document.getElementById("formMSDOS").style.display="none";
317        }
318}
319
320
321// Código de pulsación de selección de partición.
322function clickPartitionCheckbox (form, npart, isGPT) {
323        // Si el parametro no esta definido, se toma como false
324        isGPT = (isGPT)?isGPT:"false";
325        if(isGPT == true){
326                prefix="GPT";
327        } else {
328                prefix="";
329        }
330        var partCheck=eval("form.check"+prefix+npart);
331        var partType=eval("form.part"+prefix+npart);
332        var partSize=eval("form.size"+prefix+npart);
333        var partTypeCustom=eval("form.part"+prefix+npart+"custom");
334        var partSizeCustom=eval("form.size"+prefix+npart+"custom");
335        var freeDisk=document.getElementById("freedisk"+prefix);
336        //var logical=document.getElementById("logicas"+prefix);
337        if (partCheck.checked) {
338                partType.disabled=false;
339                partSize.disabled=false;
340                if(npart != 4){
341                        if (partType.options[partType.selectedIndex].value == "CUSTOM") {
342                                partTypeCustom.disabled=false;
343                        }
344                }
345                if (partSize.options[partSize.selectedIndex].value == "CUSTOM") {
346                        partSizeCustom.disabled=false;
347                } else {
348                        partSizeCustom.disabled=true;
349                }
350        } else {
351                partType.disabled=true;
352                partSize.disabled=true;
353                // El campo TypeCustom no existe para la particion 4
354                if(npart != 4)
355                        partTypeCustom.disabled=true;
356                partSizeCustom.disabled=true;
357        }
358        if (npart <= 4) {
359                // Si el formulario es GPT no hay extendidas
360                if(isGPT != true){
361                        checkExtendedPartition(form);
362                }
363                calculateFreeDisk(form);
364        }
365}
366
367
368// Código para calcular el espacio libre del disco.
369function calculateFreeDisk(form) {
370        // Si esta seleccionada la opcion GPT, se llama a la funcion correspondiente
371        if(document.getElementById("tipo_part_table").value == "GPT"){
372                calculateFreeGPTDisk(form);
373        }
374        // Capturamos el disco seleccionado
375        var disk = document.getElementById("n_disk").value;
376        // Buscamos el input hidden para el disco seleccionado
377        var diskSize = document.getElementById("disksize_"+disk).value;
378               
379        var freeDisk=document.getElementById("freedisk");
380        freeDisk.value=diskSize;
381        for (npart=1; npart<=4; npart++) {
382                var partCheck=eval("form.check"+npart);
383                var partSize=eval("form.size"+npart);
384                var partSizeCustom=eval("form.size"+npart+"custom");
385                if (partCheck.checked) {
386                        if (partSize.options[partSize.selectedIndex].value == "CUSTOM") {
387                                freeDisk.value -= parseInt(partSizeCustom.value);
388                        } else {
389                                freeDisk.value -= parseInt(partSize.options[partSize.selectedIndex].value);
390                        }
391                }
392        }
393        if (parseInt(freeDisk.value) < 0) {
394                freeDisk.style.fontWeight = "bold";
395                freeDisk.style.fontStyle = "italic";
396        } else {
397                freeDisk.style.fontWeight = "normal";
398                freeDisk.style.fontStyle = "normal";
399        }
400        if (form.size4.value == 0) {
401                freeDisk.value += " (- cache)";         // Aviso de caché sin modificar.
402        }
403}
404
405// Código para calcular el espacio libre del disco. en el formulario GPT
406function calculateFreeGPTDisk(form) {
407        // Si esta seleccionada la opcion MSDOS, se llama a la funcion correspondiente
408    if(document.getElementById("tipo_part_table").value == "MSDOS"){
409            calculateFreeDisk(form);
410    }
411    // Capturamos el disco seleccionado
412        var disk = document.getElementById("n_disk").value;
413        // Buscamos el input hidden para el disco seleccionado
414        var diskSize = document.getElementById("disksize_"+disk).value;
415        document.getElementById('freediskGPT').value=diskSize;
416       
417        var freeDisk=document.getElementById("freediskGPT");
418        // Capturamos el numero de particiones que hay hechas
419        numParts=document.getElementById("numGPTpartitions").value;
420    for (npart=1; npart<=numParts; npart++) {
421            var partCheck=eval("form.checkGPT"+npart);
422            var partSize=eval("form.sizeGPT"+npart);
423            var partSizeCustom=eval("form.sizeGPT"+npart+"custom");
424            if (partCheck.checked) {
425                    if (partSize.options[partSize.selectedIndex].value == "CUSTOM") {
426                            freeDisk.value -= parseInt(partSizeCustom.value);
427                    } else {
428                            freeDisk.value -= parseInt(partSize.options[partSize.selectedIndex].value);
429                    }
430            }
431    }
432    if (parseInt(freeDisk.value) < 0) {
433            freeDisk.style.fontWeight = "bold";
434            freeDisk.style.fontStyle = "italic";
435    } else {
436            freeDisk.style.fontWeight = "normal";
437            freeDisk.style.fontStyle = "normal";
438    }
439    if (form.size4.value == 0) {
440            freeDisk.value += " (- cache)";         // Aviso de caché sin modificar.
441    }
442}
443
444// Agrega una nueva fila a la tabla de particiones con una nueva particion
445function addGPTPartition(){
446        var partitionTypes = "";
447        partitionTypes+='<OPTION value="WINDOWS"> Windows </OPTION>';
448        partitionTypes+='<OPTION value="WIN-RESERV"> Windows Reserved </OPTION>';
449        partitionTypes+='<OPTION value="LINUX"> Linux </OTION>';
450        partitionTypes+='<OPTION value="LINUX-RESERV"> Linux Reserved </OPTION>';
451        partitionTypes+='<OPTION value="LINUX-SWAP"> Linux Swap </OPTION>';
452        partitionTypes+='<OPTION value="LINUX-RAID"> Linux RAID </OPTION>';
453        partitionTypes+='<OPTION value="LINUX-LVM"> Linux LVM </OPTION>';
454        partitionTypes+='<OPTION value="CHROMEOS"> ChromeOS </OTION>';
455        partitionTypes+='<OPTION value="CHROMEOS-KRN"> ChromeOS Kernel </OPTION>';
456        partitionTypes+='<OPTION value="CHROMEOS-RESERV"> ChromeOS Reserved </OPTION>';
457        partitionTypes+='<OPTION value="HFS"> MacOS HFS </OPTION>';
458        partitionTypes+='<OPTION value="HFS-RAID"> MacOS HFS RAID </OPTION>';
459        partitionTypes+='<OPTION value="FREEBSD"> FreeBSD </OPTION>';
460        partitionTypes+='<OPTION value="FREEBSD-DISK"> FreeBSD Disk </OPTION>';
461        partitionTypes+='<OPTION value="FREEBSD-BOOT"> FreeBSD Boot </OPTION>';
462        partitionTypes+='<OPTION value="FREEBSD-SWAP"> FreeBSD Swap </OPTION>';
463        partitionTypes+='<OPTION value="SOLARIS"> Solaris </OPTION>';
464        partitionTypes+='<OPTION value="SOLARIS-DISK"> Solaris Disk </OPTION>';
465        partitionTypes+='<OPTION value="SOLARIS-BOOT"> Solaris Boot </OPTION>';
466        partitionTypes+='<OPTION value="SOLARIS-SWAP"> Solaris Swap </OPTION>';
467        partitionTypes+='<OPTION value="EFI"> EFI </OPTION>';
468        partitionTypes+='<OPTION value="MBR"> MBR </OPTION>';
469        partitionTypes+='<OPTION value="BIOS-BOOT"> BIOS Boot </OPTION>';
470
471
472        table = document.getElementById("particionesGPT");
473        // Capturamos el numero de particiones, antes incrementamos
474        document.getElementById("numGPTpartitions").value = parseInt(document.getElementById("numGPTpartitions").value)+1
475        numPart=document.getElementById("numGPTpartitions").value;
476        partitionRow = table.insertRow(-1);
477        partitionRow.id = "trPartition"+numPart;
478        partitionRow.innerHTML="<td> \
479<input type='checkbox' name='checkGPT"+numPart+"' value='checkGPT"+numPart+"' onclick='clickPartitionCheckbox(this.form, "+numPart+",true);' /> Partici&oacute;n "+numPart+"</td> \
480<td>\
481<select name='partGPT"+numPart+"' id='partGPT"+numPart+"' style='width:220' disabled='true' onclick=' \
482        if (this.options[this.selectedIndex].value == \'CUSTOM\') { \
483                this.form.partGPT"+numPart+"custom.disabled=false; \
484        } else { \
485                this.form.partGPT"+numPart+"custom.disabled=true; \
486        }'><option value='CUSTOM'> Personalizar </option> \
487</select> \
488<br> \
489<select name='partGPT"+numPart+"custom' id='partGPT"+numPart+"custom' style='width:220' disabled='true' >"+partitionTypes+"</select> \
490</td> \
491<td> \
492<select name='sizeGPT"+numPart+"' id='sizeGPT"+numPart+"' style='width:220' disabled='true' onclick=' \
493        if (this.form.size"+numPart+".options[this.form.size"+numPart+".selectedIndex].value == \'CUSTOM\') { \
494                this.form.sizeGPT"+numPart+"custom.disabled=false; \
495        } else { \
496                this.form.sizeGPT"+numPart+"custom.disabled=true; \
497        } \
498' onchange='calculateFreeGPTDisk(this.form);'>0<option value='CUSTOM'> Personalizar </option> \
499</select> \
500<br /> \
501<input type='text' style='width:100' name='sizeGPT"+numPart+"custom' value='0' disabled='true' onchange='calculateFreeDisk(this.form);' /> \
502</td>"
503
504}
505
506// Agrega una nueva fila a la tabla de particiones con una nueva particion
507function deleteGPTPartition(){
508        table = document.getElementById("particionesGPT");
509        // Capturamos el numero de particiones
510        numPart=document.getElementById("numGPTpartitions").value;
511        // Si ya solo quedan 4 particiones, no se elimina ni se decrementa el contador
512        if(numPart > 4){
513                partitionRow = document.getElementById("trPartition"+numPart);
514                table.deleteRow(partitionRow.rowIndex);
515                // Decrementamos el numero de particiones
516                document.getElementById("numGPTpartitions").value = parseInt(document.getElementById("numGPTpartitions").value)-1;
517        }
518}
519
520// Código para comprobar si hay partición extendida activa para mostrar las lógicas.
521function checkExtendedPartition(form) {
522        var logical=document.getElementById("logicas");
523        var visible=false;
524        for (npart=1; npart<=4; npart++) {
525                var partCheck=eval("form.check"+npart);
526                var partType=eval("form.part"+npart);
527                var partTypeCustom=eval("form.part"+npart+"custom");
528                if (partCheck.checked) {
529                        partType.style.fontWeight = "normal";
530
531                        if (partType.value == "EXTENDED") {
532                                visible=true;
533                                partType.style.fontWeight = "bold";
534                        }
535                        // La particion 4 no tiene partTypeCustom
536                        if(npart != 4){
537                                partTypeCustom.style.fontWeight = "normal";
538                                if (partType.value == "CUSTOM" && partTypeCustom.value == "EXTENDED") {
539                                        visible=true;
540                                        partTypeCustom.style.fontWeight = "bold";
541                                }
542                        }
543                }
544        }
545        if (visible) {
546                logical.style.visibility="visible";
547        } else {
548                logical.style.visibility="hidden";
549        }
550}
551
Note: See TracBrowser for help on using the repository browser.