source: admin/WebConsole/comandos/includes/FiltradoAmbito.php @ 5249c5d

Last change on this file since 5249c5d was 756b483, checked in by OpenGnSys Support Team <soporte-og@…>, 5 years ago

#980 Add Virtual status

Since version 1.2.0, OpenGnsys supports ogVDI hypervisor OS. This commit
a new status which indicates that clients are running ogVDI

  • Property mode set to 100644
File size: 12.5 KB
Line 
1<?php
2// ******************************************************************************************************************
3// Aplicación WEB: ogAdmWebCon
4// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
5// Fecha Creación: Año 2012
6// Fecha última modificación: Febrero-2012
7// Nombre del fichero: FiltradoAmbito.php
8// Descripción:
9//              Colección de funciones en php y javascript que implementan la posibilidad de aplicar filtro de selección
10//              a un determinado grupo de ordenadores dentro de un aula para aplicarles comandos.
11//
12// ********************************************************************************************************************
13//
14include_once("../idiomas/php/".$idioma."/estados_".$idioma.".php");
15
16$cadenaip="";
17$cid=0; // Identificadores para tablas de ordenadores
18switch($ambito)
19{
20        case $AMBITO_CENTROS :
21                $cmd->texto="SELECT idcentro,nombrecentro FROM centros WHERE idcentro=".$idambito;
22                RecorriendoCentro($cmd);
23                break;
24        case $AMBITO_GRUPOSAULAS :
25                $cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE tipo=".$AMBITO_GRUPOSAULAS." AND idgrupo=".$idambito;
26                RecorriendoGruposAulas($cmd);
27                break;
28        case $AMBITO_AULAS :
29                $cmd->texto="SELECT idaula,nombreaula FROM aulas WHERE idaula=".$idambito;
30                RecorriendoAulas($cmd);
31                break;
32        case $AMBITO_GRUPOSORDENADORES :
33                $cmd->texto="SELECT idgrupo,nombregrupoordenador FROM gruposordenadores WHERE idgrupo=".$idambito;
34                RecorriendoGruposOrdenadores($cmd);
35                break;
36}
37echo '<P><INPUT type="hidden" id="cadenaip" value="'.$cadenaip.'"></P>';
38//________________________________________________________________________________________________________
39//
40function RecorriendoCentro($cmd)
41{
42        global $AMBITO_GRUPOSAULAS;
43        global $TbMsg;
44
45        $rs=new Recordset;
46        $rs->Comando=&$cmd;
47        if (!$rs->Abrir()) return; // Error al abrir recordset
48        $rs->Primero();
49        if(!$rs->EOF){
50                $idcentro=$rs->campos["idcentro"];
51                $nombrecentro=$rs->campos["nombrecentro"];
52
53                $urlimg='../images/iconos/centros.gif';
54                $ambito=$TbMsg[0];
55                echo '<p align=center><IMG src="'.$urlimg.'">&nbsp;&nbsp;
56                <span class=subcabeceras><U>'.$ambito.':'.$nombrecentro.'</U></span></p>';
57
58                $cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE idcentro=".$idcentro." AND grupoid=0
59                                                AND tipo=".$AMBITO_GRUPOSAULAS." ORDER BY nombregrupo ";
60                RecorriendoGruposAulas($cmd);
61                $cmd->texto="SELECT idaula,nombreaula FROM aulas WHERE idcentro=".$idcentro." AND grupoid=0 ORDER BY nombreaula";
62                RecorriendoAulas($cmd);
63        }
64        $rs->Cerrar();
65}
66//________________________________________________________________________________________________________
67//
68function RecorriendoGruposAulas($cmd)
69{
70        global $AMBITO_GRUPOSAULAS;
71        global $TbMsg;
72
73        $rs=new Recordset;
74        $rs->Comando=&$cmd;
75        if (!$rs->Abrir()) return; // Error al abrir recordset
76        $rs->Primero();
77        while (!$rs->EOF){
78                $idgrupo=$rs->campos["idgrupo"];
79                $nombregrupo=$rs->campos["nombregrupo"];
80
81                $urlimg='../images/iconos/carpeta.gif';
82                $ambito=$TbMsg[1];
83                echo '<p align=center><IMG src="'.$urlimg.'">&nbsp;&nbsp;
84                <span class=subcabeceras><U>'.$ambito.':'.$nombregrupo.'</U></span></p>';
85
86                $cmd->texto="SELECT idgrupo,nombregrupo FROM grupos WHERE grupoid=".$idgrupo."
87                                                AND tipo=".$AMBITO_GRUPOSAULAS." ORDER BY nombregrupo";
88                RecorriendoGruposAulas($cmd);
89                $cmd->texto="SELECT idaula,nombreaula FROM aulas WHERE  grupoid=".$idgrupo." ORDER BY nombreaula";
90                RecorriendoAulas($cmd);
91                $rs->Siguiente();
92        }
93        $rs->Cerrar();
94}
95//________________________________________________________________________________________________________
96//
97function RecorriendoAulas($cmd)
98{
99        global $TbMsg;
100
101        $rs=new Recordset;
102        $rs->Comando=&$cmd;
103        if (!$rs->Abrir()) return; // Error al abrir recordset
104        $rs->Primero();
105        while (!$rs->EOF){
106                $idaula=$rs->campos["idaula"];
107                $nombreaula=$rs->campos["nombreaula"];
108
109                $urlimg='../images/iconos/aula.gif';
110                $ambito=$TbMsg[2];
111                echo '<p align=center><IMG src="'.$urlimg.'">&nbsp;&nbsp;
112                <span class=subcabeceras><U>'.$ambito.':'.$nombreaula.'</U></span></p>';
113
114                $cmd->texto="SELECT idordenador,nombreordenador,ip,mac FROM ordenadores WHERE  idaula=".$idaula;
115                RecorriendoOrdenadores($cmd);
116                $rs->Siguiente();
117        }
118        $rs->Cerrar();
119}
120//________________________________________________________________________________________________________
121//
122function RecorriendoGruposOrdenadores($cmd)
123{
124        global $TbMsg;
125
126        $rs=new Recordset;
127        $rs->Comando=&$cmd;
128        if (!$rs->Abrir()) return; // Error al abrir recordset
129        $rs->Primero();
130        while (!$rs->EOF){
131                $idgrupo=$rs->campos["idgrupo"];
132                $nombregrupo=$rs->campos["nombregrupo"];
133
134                $urlimg='../images/iconos/carpeta.gif';
135                $ambito=$TbMsg[3];
136                echo '<p align=center><IMG src="'.$urlimg.'">&nbsp;&nbsp;
137                <span class=subcabeceras><U>'.$ambito.':'.$nombregrupo.'</U></span></p>';
138
139                $cmd->texto="SELECT idgrupo,nombregrupoordenador FROM gruposOrdenadores WHERE grupoid=".$idgrupo." ORDER BY nombregrupoordenador";
140                RecorriendoGruposOrdenadores($cmd);
141                $cmd->texto="SELECT idordenador,nombreordenador,ip,mac FROM ordenadores WHERE  grupoid=".$idgrupo;
142                RecorriendoOrdenadores($cmd);
143                $rs->Siguiente();
144        }
145        $rs->Cerrar();
146}
147//____________________________________________________________________________________________________
148//
149function RecorriendoOrdenadores($cmd)
150{
151        global $TbMsg;
152        global $cadenaip;
153        global $cid;
154
155        $cid++;
156        $cmd->texto.= " ORDER BY nombreordenador";
157        $rs=new Recordset;
158        $rs->Comando=&$cmd;
159        if (!$rs->Abrir()) return; // Error al abrir recordset
160        $rs->Primero();
161        $htmlCode="";
162        $con=0;
163
164        $htmlCode.='
165<TABLE border=0 class="tabla_busquedas" align=center>
166<TR>
167
168<TD align="center">'.$TbMsg["STATUS_OFF"].'</TD>
169<TD><INPUT  type="checkbox" checked onclick="selector(this,1,'.$cid.')"></TD>
170
171<TD align="center">'.$TbMsg["STATUS_BSY"].'</TD>
172<TD><INPUT   type="checkbox" checked onclick="selector(this,2,'.$cid.')"></TD>
173
174<TD align="center">'.$TbMsg["STATUS_OPG"].'</TD>
175<TD><INPUT  type="checkbox" checked onclick="selector(this,3,'.$cid.')"></TD>
176</TR>
177
178<TR>
179<TD align="center">'.$TbMsg["STATUS_WIN"].'</TD>
180<TD><INPUT  type="checkbox" checked onclick="selector(this,4,'.$cid.')"></TD>
181
182<TD align="center">'.$TbMsg["STATUS_WINS"].'</TD>
183<TD><INPUT  type="checkbox" checked onclick="selector(this,5,'.$cid.')"></TD>
184
185<TD align="center">'.$TbMsg["STATUS_LNX"].'</TD>
186<TD><INPUT  type="checkbox" checked onclick="selector(this,6,'.$cid.')"></TD>
187
188<TD align="center">'.$TbMsg["STATUS_LNXS"].'</TD>
189<TD><INPUT  type="checkbox" checked onclick="selector(this,7,'.$cid.')"></TD>
190
191<TD align="center">'.$TbMsg["STATUS_OSX"].'</TD>
192<TD><INPUT  type="checkbox" checked onclick="selector(this,8,'.$cid.')"></TD>
193
194<TD align="center">'.$TbMsg["STATUS_VDI"].'</TD>
195<TD><INPUT  type="checkbox" checked onclick="selector(this,9,'.$cid.')"></TD>
196
197</TR>
198</TABLE>';
199
200        $htmlCode.='<BR>';
201        $htmlCode.='<TABLE id="tbo-'.$cid.'" border=0 align=center>';
202        $htmlCode.='<TR>';
203
204        while (!$rs->EOF){
205                $htmlCode.= '<TD style="border: 1px solid #999999;">';
206                $nombreordenador=$rs->campos["nombreordenador"];
207                $ip=$rs->campos["ip"];
208                $cadenaip.=$ip.";";
209                $htmlCode.='<TABLE  cellspacing=1 cellpadding=0>';
210                $htmlCode.='    <TR><TD align="center"><img sondeo="ordenador_OFF.png" id="img-'.$ip.'" width=24 src="../images/ordenador_OFF.png"></TD></TR>';
211                $htmlCode.='    <TR><TD align="center"><SPAN style="FONT-SIZE:9px;      COLOR: #4f4f4f;">'.$nombreordenador.'</SPAN></TD></TR>';
212                $htmlCode.='    <TR><TD align="center"><SPAN style="FONT-SIZE:8px;      COLOR: #4f4f4f;">'.$ip.'</SPAN></TD></TR>';
213                $htmlCode.='    <TR><TD align="center"><INPUT id="chk-'.$ip.'" type="checkbox" checked></TD></TR>';
214                $htmlCode.='</TABLE>';
215                $htmlCode.='</TD>';
216                $con++;
217                if($con>15){
218                        $htmlCode.='</TR>';
219                        $htmlCode.='<TR>';
220                        $con=0;
221                }
222                $rs->Siguiente();
223        }
224        $htmlCode.='</TR>';
225        $htmlCode.='</TABLE>';
226        echo $htmlCode;
227}
228//______________________________________________________________________________________________________
229//
230echo '<SCRIPT language="javascript">';
231echo 'var cid='.$cid.';';
232echo '</SCRIPT>';
233?>
234<SCRIPT language="javascript">
235function Sondeo(){
236        var ambito=<?php echo $ambito?>;
237        var idambito=<?php echo $idambito?>;
238        var wurl="../principal/sondeo.php";
239        var prm="ambito="+ambito+"&idambito="+idambito+"&sw=1";
240        CallPage(wurl,prm,"retornoSondeo","POST");
241        setTimeout("respuestaSondeo();",100);
242}
243//______________________________________________________________________________________________________
244//
245function retornoSondeo(resul)
246{
247        // No se hace nada
248}
249//________________________________________________________________________________________________________
250//
251function respuestaSondeo(){
252        var ambito=<?php echo $ambito?>;
253        var idambito=<?php echo $idambito?>;
254        var wurl="../principal/sondeo.php";
255        var prm="ambito="+ambito+"&idambito="+idambito+"&sw=2";
256        CallPage(wurl,prm,"retornorespuestaSondeo","POST");
257        setTimeout("respuestaSondeo();",5000);
258}
259//______________________________________________________________________________________________________
260//
261function retornorespuestaSondeo(resul)
262{
263        if(resul.length>0){
264                var ip=""; // Dirección IP del ordenador
265                var so=""; // Sistema operativo activo
266                var objOrd=null; // Objeto ordenador
267                var imgOrd="";
268                var cadena=resul.split(";");
269                for (var i=0;i<cadena.length;i++){
270                        var dual=cadena[i].split("/");
271                        ip=dual[0].replace(/\n*/,"");
272                        so=dual[1];
273                        objOrd=document.getElementById("img-"+ip);
274                        if(objOrd){
275                                        imgOrd=soIMG(so);
276                                        if(objOrd.getAttribute("sondeo")!=imgOrd){
277                                                objOrd.setAttribute("src", "../images/"+imgOrd);
278                                                objOrd.setAttribute("sondeo",imgOrd);
279                                                var objChk=document.getElementById("chk-"+ip);
280                                                if(objChk)
281                                                        objChk.checked=true;
282                                        }
283                        }
284                }
285        }
286}
287//______________________________________________________________________________________________________
288//
289function soIMG(so)
290{
291        var MimgOrdenador="";
292        switch(so){
293                case 'INI':
294                        MimgOrdenador="ordenador_INI.png";  // Cliente iniciando
295                        break;
296                case 'BSY':
297                        MimgOrdenador="ordenador_BSY.png";  // Cliente ocupado
298                        break;
299                case 'OPG':
300                        MimgOrdenador="ordenador_OPG.png";  // Cliente OpenGnsys
301                        break;
302                case 'WIN':
303                case 'WXP':
304                        MimgOrdenador="ordenador_WIN.png";  // Windows
305                        break;
306                case 'WINS':
307                        MimgOrdenador="ordenador_WINS.png"; // Sesión Windows
308                        break;
309                case 'LNX':
310                        MimgOrdenador="ordenador_LNX.png";  // Linux
311                        break;
312                case 'LNXS':
313                        MimgOrdenador="ordenador_LNXS.png"; // Sesión Linux
314                        break;
315                case 'OSX':
316                        MimgOrdenador="ordenador_OSX.png";  // macOS
317                        break;
318                case 'VDI':
319                        MimgOrdenador="ordenador_VDI.png";  // macOS
320                        break;
321                default:
322                        MimgOrdenador="ordenador_OFF.png";  // Apagado
323                        break;
324        }
325        return(MimgOrdenador);
326}
327//______________________________________________________________________________________________________
328//
329function selector(oSLCT,op,id)
330{
331        var sw=oSLCT.checked;
332        var objTB=document.getElementById("tbo-"+id);
333
334                if(objTB){
335                        var imagenes = objTB.getElementsByTagName('img');
336                        for(var i=0;i<imagenes.length;i++){
337                                var ip=imagenes[i].id.split("-")[1];
338                                var estado=imagenes[i].getAttribute("sondeo");
339                                var oCHK = document.getElementById('chk-'+ip); // Recupera checkbox
340
341                                switch(parseInt(op)){
342                                        case 1: // Apagados
343                                                if(estado=="ordenador_OFF.png")
344                                                        oCHK.checked=sw;
345                                                break; 
346                                        case 2: // Ocupados
347                                                if(estado=="ordenador_BSY.png")
348                                                        oCHK.checked=sw;
349                                                break;
350                                        case 3: // OpenGnsys
351                                                if(estado=="ordenador_OPG.png")
352                                                        oCHK.checked=sw;
353                                                break;
354                                        case 4: // Windows
355                                                if(estado=="ordenador_WIN.png")
356                                                        oCHK.checked=sw;
357                                                break;
358                                        case 5: // Sesión Windows
359                                                if(estado=="ordenador_WINS.png")
360                                                        oCHK.checked=sw;
361                                                break;
362                                        case 6: // Linux
363                                                if(estado=="ordenador_LNX.png")
364                                                        oCHK.checked=sw;
365                                                break;
366                                        case 7: // Sesión Linux
367                                                if(estado=="ordenador_LNXS.png")
368                                                        oCHK.checked=sw;
369                                                break;
370                                        case 8: // macOS
371                                                if(estado=="ordenador_OSX.png")
372                                                        oCHK.checked=sw;
373                                                break;
374                                        case 9: // Virtual
375                                                if(estado=="ordenador_VDI.png")
376                                                        oCHK.checked=sw;
377                                                break;
378                                }
379                        }
380                }
381}
382
383//______________________________________________________________________________________________________
384//
385function filtrado()
386{
387        var ipes="";
388        for(var j=1; j<=cid; j++){
389
390                var objTB=document.getElementById("tbo-"+j);
391                if(objTB){
392                        var imagenes = objTB.getElementsByTagName('img');
393                        for(var i=0;i<imagenes.length;i++){
394                                var ip=imagenes[i].id.split("-")[1];
395                                var oCHK = document.getElementById('chk-'+ip); // Recupera checkbox
396                                if(oCHK.checked){
397                                        ipes+=ip+";";
398                                }
399                        }
400                }
401        }
402        var preipes=document.getElementById("cadenaip").value;
403        if(preipes!=ipes)
404                document.fdatosejecucion.filtro.value=ipes;
405        else
406                document.fdatosejecucion.filtro.value="";
407}
408</SCRIPT>
409
Note: See TracBrowser for help on using the repository browser.