Magellan Linux

Diff of /alx-src/branches/alx-web-070/show.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2017 by niro, Mon May 9 16:31:38 2011 UTC revision 2638 by niro, Thu Jul 7 20:01:30 2011 UTC
# Line 1  Line 1 
1  <?  <?
2   // INCLUDE UND TABELLEN-DEFINITIONEN  // INCLUDE UND TABELLEN-DEFINITIONEN
3   include('include/basesql.php');  include('include/basesql.php');
4    include('include/common-functions.php');
5    
6   // INCLUDE CURRENT-PROBLEMS  // INCLUDE CURRENT-PROBLEMS
7   include('include/current-problems.php');  include('include/current-problems.php');
8    
9   $tabs = array('cfg_graphic', 'cfg_network', 'cfg_input', 'client_auth', 'cfg_autostart', 'client_serials', 'cfg_comments', 'cfg_printers', 'cfg_sessions', 'cfg_modules', 'cfg_other_menuitems', 'cfg_screensaver', 'client_version');  $tabs = array('cfg_graphic', 'cfg_network', 'cfg_input', 'client_auth', 'cfg_autostart', 'client_serials', 'cfg_comments', 'cfg_printers', 'cfg_sessions', 'cfg_modules', 'cfg_other_menuitems', 'cfg_screensaver', 'client_version');
10   $multi= array(    0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0);  $multi= array(    0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0);
11   $data = array();  $data = array();
12    
13    
14   // get alx version info for  // get alx version info for
15   $alxinfo = sqlfirst('SELECT * FROM client_version WHERE serial='.$id);  $alxinfo = sqlfirst('SELECT * FROM client_version WHERE serial='.$id);
16   $alxos = $alxinfo[os];  $alxos = $alxinfo[os];
17   $alxutils = $alxinfo[utils];  $alxutils = $alxinfo[utils];
18    
19   if($kill==1)  if($kill==1)
20   {  {
21   foreach($tabs as $t) mysql_query('UPDATE '.$t.' SET serial=-serial WHERE serial='.$id);   foreach($tabs as $t) mysql_query('UPDATE '.$t.' SET serial=-serial WHERE serial='.$id);
22    
23   echo '<body onload="window.setTimeout(\'window.close()\', 1750)">';   echo '<body onload="window.setTimeout(\'window.close()\', 1750)">';
24   echo '<table width=100% height=100% style="border:solid black 1px; background-color:#d5e5ff"><tr><td valign=middle align=center>';   echo '<table width=100% height=100% style="border:solid black 1px; background-color:#d5e5ff"><tr><td valign=middle align=center>';
25    
26   if($id<0) echo 'ACTIVATED #'.abs($id);   if($id<0) echo 'ACTIVATED #'.abs($id);
27   else echo 'DEACTIVATED #'.$id;   else echo 'DEACTIVATED #'.$id;
28    
29   echo '</td></tr></table>';   echo '</td></tr></table>';
30   return true;   return true;
31   }  }
32    
33   // FELD-DEFINITIONEN  (ARRAY=>DROPDOWN / HIDDEN / IGNORE / 1 / BOLD / PASSWORD / SHOW / SHOWTIME / MONITORID)  // FELD-DEFINITIONEN  (ARRAY=>DROPDOWN / HIDDEN / IGNORE / 1 / BOLD / PASSWORD / SHOW / SHOWTIME / MONITORID)
34   $drop = array();  $drop = array();
35   if($alxos >= '0.5.3')  if($alxos >= '0.5.3')
36   {  {
37   $drop['cfg_graphic_module'] = array('vesa', 'ati', 'cirrus', 'i710', 'intel', 'nv', 'mach64', 'mga', 'openchrome', 'radeon', 's3', 's3virge', 'savage', 'sis', 'trident', 'tseng');   $drop['cfg_graphic_module'] = array('vesa', 'ati', 'cirrus', 'i710', 'intel', 'nv', 'mach64', 'mga', 'openchrome', 'radeon', 's3', 's3virge', 'savage', 'sis', 'trident', 'tseng');
38    }
39    else
40    {
41     $drop['cfg_graphic_module'] = array('vesa', 'ati', 'cirrus', 'i810', 'i710', 'nv', 'mga', 'r128', 'radeon', 's3', 's3virge', 'savage', 'sis', 'trident', 'tseng', 'via');
42    }
43    $drop['resolution'] = array('640x480', '800x600', '1024x768', '1280x960', '1280x1024', '1360x768', '1366x768', '1400x1050', '1440x900', '1600x1200', '1680x1050', '1280x720', '1920x1080');
44    $drop['depth'] = array('24', '16', '8');
45    $drop['mouse'] = array('Auto', 'IMPS/2', 'PS/2');
46    $drop['keyboard'] = array('PC105');
47    if($alxos >= '0.6.0')
48    {
49     $drop['cfg_network_module'] = array('3c509', '3c59x', '8139cp', '8139too', '8390', 'amd8111e', 'atl1c', 'atl1e', 'atl1', 'atl2', 'b44', 'bnx2', 'cnic', 'e100', 'e1000', 'e1000e', 'forcedeth', 'igb', 'ipg', 'jme', 'natsemi', 'ne2k-pci', 'ns83820', 'pcnet32', 'qla3xxx', 'r8169', 'sis190', 'sis900', 'skge', 'sky2', 'tg3', 'typhoon', 'via-rhine', 'via-velocity', 'adm8211', 'airo', 'at76c50x-usb', 'ar9170usb', 'ath5k', 'ath9k', 'atmel', 'b43', 'b43legacy', 'hostap_pci', 'hostap_plx', 'ipw2100', 'ipw2200', 'iwl3945', 'usb8xxx', 'libertas_tf', 'libertas_tf_usb', 'mwl8k', 'orinoco', 'orinoco_nortel', 'orinoco_plx', 'orinoco_tmd', 'orinoco_usb', 'p54pci', 'p54usb', 'prism54', 'rndis_wlan', 'rt2400pci', 'rt2500pci', 'rt2500usb', 'rt2800pci', 'rt2800usb', 'rt61pci', 'rt73usb', 'rtl8180', 'rtl8187', 'wl1251', 'wl1271', 'zd1201', 'zd1211rw');
50    }
51    else
52    {
53     $drop['cfg_network_module'] = array('3c59x', '8139too', '8139cp', 'e100', 'ne2k-pci', 'pcnet32', 'sis900', 'via-rhine', 'zd1211', 'b44', 'bnx2', 'dl2k', 'e1000', 'forcedeth', 'r8169', 'sk98lin', 'tg3', 'via-velocity');
54    }
55    $drop['networking'] = array('dhcp', 'static');
56    // 0.6.0 does not support lpd, ipp and socket printing atm
57    if($alxos>='0.6.0')
58    {
59     $drop['port'] = array('lpt1', 'usb1', 'usb2', 'com1', 'com2');
60     for ($i=0; $i<999; $i++) { $drop['cfg_printers_'.$i.'_ip'] = 'ignore'; }
61     $drop['share'] = 'ignore';
62    }
63    else
64    {
65     $drop['cfg_printers_port'] = array('lpt1', 'usb1', 'usb2', 'com1', 'com2', 'lpd', 'socket', 'ipp');
66    }
67    $drop['location'] = sqlarr('SELECT location FROM client_locations', '', 'location');
68    $drop['id'] = 'hidden';
69    $drop['flg_modified'] = '1';
70    $drop['serial'] = 'ignore';
71    if($alxos>='0.5.3')
72    {
73     $drop['monitorid'] = 'ignore';
74     $drop['refresh_rate'] = array('','60','75','85','100');
75    }
76    else
77    {
78     $drop['monitorid'] = 'monitorid';
79     $drop['refresh_rate'] = 'ignore';
80    }
81    $drop['hostname'] = 'bold';
82    $drop['session'] = 'bold';
83    if($alxos>='0.6.0')
84    {
85     $drop['cfg_autostart_session'] = array('');
86     $drop['cfg_autostart_session'] += sqlarr('SELECT filename FROM cfg_sessions where serial='.$id, 'array', 'filename');
87    }
88    else
89    {
90     $drop['cfg_autostart_session'] = 'filename';
91    }
92    $drop['mtime'] = 'showtime';
93    $drop['mac'] = 'show';
94    $drop['client_serials_serial'] = 'show';
95    $drop['password'] = 'password';
96    $drop['shell'] = 'password';
97    $drop['vnc'] = 'password';
98    $drop['samba'] = 'password';
99    $drop['station'] = 'password';
100    $drop['txt'] = 'txt';
101    $drop['screensaver'] = array('','blank', 'random', 'ant', 'ant3d', 'apollonian', 'ball', 'bat', 'blot', 'bomb', 'bouboule',
102     'bounce', 'braid', 'bubble', 'bug', 'clock', 'coral', 'crystal', 'daisy', 'dclock', 'decay', 'deco',
103     'demon', 'dilemma', 'discrete', 'dragon', 'drift', 'euler2d', 'eyes', 'fadeplot', 'fiberlamp', 'flag',
104     'flame', 'flow', 'forest', 'galaxy', 'goop', 'grav', 'helix', 'hop', 'hyper', 'ico', 'ifs', 'image',
105     'juggle', 'julia', 'kaleid', 'kumppa', 'laser', 'life', 'life1d', 'life3d', 'lightning', 'lisa', 'lissie',
106     'loop', 'lyapunov', 'mandelbrot', 'marquee', 'matrix', 'maze', 'mountain', 'munch', 'nose', 'pacman',
107     'penrose', 'petal', 'petri', 'polyominoes', 'puzzle',  'pyro', 'qix', 'roll',  'rotor', 'scooter', 'shape',
108     'sierpinski', 'slip', 'solitare', 'space', 'sphere', 'spiral', 'spline', 'star', 'starfish', 'strange',
109     'swarm', 'swirl', 't3d', 'tetris', 'thornbird', 'tik_tak', 'toneclock', 'triangle', 'tube', 'turtle',
110     'vines', 'voters', 'wator', 'wire', 'world', 'worm', 'xcl', 'xjack');
111    $drop['iface'] = array('eth0', 'wlan0');
112    $drop['client_version_os'] = 'show';
113    $drop['client_version_utils'] = 'show';
114    
115    // ACHTUNG!!! wlan_-Felder heißen eigentlich wireless_
116    $drop['wireless_mode'] = array('', 'managed', 'ad-hoc', 'master', 'repeater', 'secondary', 'monitor', 'auto');
117    $drop['wireless_auth_mode'] = array('', 'wep', 'wpa', 'wpa2', 'off');
118    $drop['wireless_key_length'] = array('', '64', '128', '256');
119    $drop['wireless_channel'] = array('', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14');
120    $drop['wireless_frequency'] = array('', '2.412G', '2.417G', '2.422G', '2.427G', '2.432G', '2.437G', '2.442G',
121     '2.447G', '2.452G', '2.457G', '2.462G', '2.467G', '2.472G', '2.484G');
122    $drop['wireless_key'] = 'password';
123    $drop['wireless_key_ascii'] = 'password';
124    
125    // get current citrix sessions
126    // split all citrix server into an array to get the first server from list
127    $citrix_query_browser = split(";", $citrix_browseradrs);
128    exec($wwwroot.'/pnabrowse-wrapper -A '.$citrix_query_browser[0], $returned_citrix_sessions, $retval);
129    if ($retval == 0)
130    {
131     $citrix_public_applications = str_replace("'", "", $returned_citrix_sessions);
132     // add an empty value add the first position of the array as session-default
133     array_unshift($citrix_public_applications, "");
134     for ($i=0; $i<999; $i++) { $drop['cfg_sessions_'.$i.'_session'] = $citrix_public_applications; }
135    }
136    else if($retval = 126) echo "pnabrowser-wrapper has no execute permission! please run chmod +x on ".$wwwroot."/pnabrowser-wrapper.";
137    else echo "pnabrowse-wrapper does not run successfully! retval->'".$retval."'<br>";
138    
139    // GGF. NEUEN DATENSATZ EINFÜGEN
140    if(isset($_POST['do_add']))
141    {
142     list($bla,$what) = explode(' ',$_POST['do_add']);
143     if($what=='COMMENT') sqladd('cfg_comments', array('serial'=>$id));
144     else if($what=='PRINTER') sqladd('cfg_printers', array('serial'=>$id));
145     else if($what=='MODULE') sqladd('cfg_modules', array('serial'=>$id));
146     else if($what=='SESSION') sqladd('cfg_sessions', array('domain'=>$citrix_domain_name, 'browseradrs'=>$citrix_browseradrs, 'serial'=>$id));
147     else if($what=='MENUITEM') sqladd('cfg_other_menuitems', array('serial'=>$id));
148    }
149    
150    
151    // GGF. SPEICHERN
152    if($_POST['do_upl'])
153    {
154     function postarr($prefix)
155     {
156     $prefix.='_';
157     $prelen = strlen($prefix);
158    
159     $arr = array();
160     foreach($_POST as $k=>$v)
161     if((substr($k,0,$prelen)==$prefix) && ($v!='KEEPPASS'))
162     $arr[substr($k,$prelen)] = stripslashes($v);
163    
164     return $arr;
165   }   }
166   else  
167     foreach($tabs as $k=>$t)
168   {   {
169   $drop['cfg_graphic_module'] = array('vesa', 'ati', 'cirrus', 'i810', 'i710', 'nv', 'mga', 'r128', 'radeon', 's3', 's3virge', 'savage', 'sis', 'trident', 'tseng', 'via');   if(!$multi[$k]) mysql_query('UPDATE '.$t.' SET '.updatestr(postarr($t)).' WHERE serial='.$id);
170     else
171     {
172     $i=0;
173     while(isset($_POST[$t.'_'.$i.'_id']))
174     {
175     if($_POST[$t.'_'.$i.'_delete'])
176     mysql_query('DELETE FROM '.$t.' WHERE serial='.$id.' AND id='.$_POST[$t.'_'.$i.'_id']);
177     else
178     mysql_query('UPDATE '.$t.' SET '.updatestr(postarr($t.'_'.$i)).' WHERE serial='.$id.' AND id='.$_POST[$t.'_'.$i.'_id']);
179     $i++;
180     }
181     }
182   }   }
183   $drop['resolution'] = array('640x480', '800x600', '1024x768', '1280x960', '1280x1024', '1360x768', '1366x768', '1400x1050', '1440x900', '1600x1200', '1680x1050', '1280x720', '1920x1080');  
184   $drop['depth'] = array('24', '16', '8');   // reload site
185   $drop['mouse'] = array('Auto', 'IMPS/2', 'PS/2');   header("location: show.php?id=".$id);
186   $drop['keyboard'] = array('PC105');  }
187   $drop['cfg_network_module'] = array('3c59x', '8139too', '8139cp', 'e100', 'ne2k-pci', 'pcnet32', 'sis900', 'via-rhine', 'zd1211', 'b44', 'bnx2', 'dl2k', 'e1000', 'forcedeth', 'r8169', 'sk98lin', 'tg3', 'via-velocity');  
188   $drop['networking'] = array('dhcp', 'static');  // EINLESEN DER DATEN AUS SQL-TABELLEN
189   $drop['port'] = array('lpt1', 'usb1', 'usb2', 'com1', 'com2', 'lpd', 'socket', 'ipp');  foreach($tabs as $k=>$t)
190   $drop['location'] = sqlarr('SELECT location FROM client_locations', '', 'location');  {
191   $drop['id'] = 'hidden';   if($multi[$k]) $data[$t] = sqlarr('SELECT * FROM '.$t.' WHERE serial='.$id);
192   $drop['flg_modified'] = '1';   else $data[$t] = sqlfirst('SELECT * FROM '.$t.' WHERE serial='.$id);
193   $drop['serial'] = 'ignore';  }
194   if($alxos>='0.5.3')  
195    // ANZEIGEN - KLAPPFUNKTIONEN
196    $absnames = array();
197    
198    function openabs($heading, $helpfile='')
199    {
200     global $absnames;
201     $absnames[] = $heading;
202    
203     // <AufZuLink> <Bild/> <Heading/> </AufZuLink><BR/> <Absatz>
204    
205     if( $_SESSION['openclose'][$heading] )
206   {   {
207   $drop['monitorid'] = 'ignore';   echo '<a href="JavaScript:openclose(\''.$heading.'\',1);"><img border="0" src="pics/minus.gif" title="CLOSE" id="sch_bild_'.$heading.'"> <b>['.$heading.']</b></a>';
208   $drop['refresh_rate'] = array('','60','75','85','100');   if($helpfile!='') echo ' <a href="JavaScript:showhelp(\''.$helpfile.'\')" title="HELP">[?]</a>';
209     echo '<br><div id="sch_absatz_'.$heading.'" style="top:0px; visibility:visible">';
210   }   }
211   else   else
212   {   {
213   $drop['monitorid'] = 'monitorid';   echo '<a href="JavaScript:openclose(\''.$heading.'\',1);"><img border="0" src="pics/plus.gif" title="OPEN" id="sch_bild_'.$heading.'"> <b>['.$heading.']</b></a>';
214   $drop['refresh_rate'] = 'ignore';   if($helpfile!='') echo ' <a href="JavaScript:showhelp(\''.$helpfile.'\')" title="HELP">[?]</a>';
215   }   echo '<br><div id="sch_absatz_'.$heading.'" style="position:absolute; top:0px; visibility:hidden">';
216   $drop['hostname'] = 'bold';   }
217   $drop['session'] = 'bold';  }
218   $drop['cfg_autostart_session'] = 'filename';  
219   $drop['mtime'] = 'showtime';  function closeabs()
220   $drop['mac'] = 'show';  {
221   $drop['client_serials_serial'] = 'show';   // </Absatz> <BR/>
222   $drop['password'] = 'password';  
223   $drop['shell'] = 'password';   echo '</div><br>';
224   $drop['vnc'] = 'password';  }
  $drop['samba'] = 'password';  
  $drop['station'] = 'password';  
  $drop['txt'] = 'txt';  
  $drop['screensaver'] = array('','blank', 'random', 'ant', 'ant3d', 'apollonian', 'ball', 'bat', 'blot', 'bomb', 'bouboule',  
  'bounce', 'braid', 'bubble', 'bug', 'clock', 'coral', 'crystal', 'daisy', 'dclock', 'decay', 'deco',  
  'demon', 'dilemma', 'discrete', 'dragon', 'drift', 'euler2d', 'eyes', 'fadeplot', 'fiberlamp', 'flag',  
  'flame', 'flow', 'forest', 'galaxy', 'goop', 'grav', 'helix', 'hop', 'hyper', 'ico', 'ifs', 'image',  
  'juggle', 'julia', 'kaleid', 'kumppa', 'laser', 'life', 'life1d', 'life3d', 'lightning', 'lisa', 'lissie',  
  'loop', 'lyapunov', 'mandelbrot', 'marquee', 'matrix', 'maze', 'mountain', 'munch', 'nose', 'pacman',  
  'penrose', 'petal', 'petri', 'polyominoes', 'puzzle',  'pyro', 'qix', 'roll',  'rotor', 'scooter', 'shape',  
  'sierpinski', 'slip', 'solitare', 'space', 'sphere', 'spiral', 'spline', 'star', 'starfish', 'strange',  
  'swarm', 'swirl', 't3d', 'tetris', 'thornbird', 'tik_tak', 'toneclock', 'triangle', 'tube', 'turtle',  
  'vines', 'voters', 'wator', 'wire', 'world', 'worm', 'xcl', 'xjack');  
  $drop['iface'] = array('eth0', 'wlan0');  
  $drop['client_version_os'] = 'show';  
  $drop['client_version_utils'] = 'show';  
   
  // ACHTUNG!!! wlan_-Felder heißen eigentlich wireless_  
  $drop['wireless_mode'] = array('', 'managed', 'ad-hoc', 'master', 'repeater', 'secondary', 'monitor', 'auto');  
  $drop['wireless_auth_mode'] = array('', 'wep', 'wpa', 'off');  
  $drop['wireless_key_length'] = array('', '64', '128', '256');  
  $drop['wireless_channel'] = array('', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14');  
  $drop['wireless_frequency'] = array('', '2.412G', '2.417G', '2.422G', '2.427G', '2.432G', '2.437G', '2.442G',  
  '2.447G', '2.452G', '2.457G', '2.462G', '2.467G', '2.472G', '2.484G');  
  $drop['wireless_key'] = 'password';  
  $drop['wireless_key_ascii'] = 'password';  
225    
  // GGF. NEUEN DATENSATZ EINFÜGEN  
  if(isset($_POST['do_add']))  
  {  
  list($bla,$what) = explode(' ',$_POST['do_add']);  
  if($what=='COMMENT') sqladd('cfg_comments', array('serial'=>$id));  
  else if($what=='PRINTER') sqladd('cfg_printers', array('serial'=>$id));  
  else if($what=='MODULE') sqladd('cfg_modules', array('serial'=>$id));  
  else if($what=='SESSION') sqladd('cfg_sessions', array('domain'=>'DOM_AKA_NT', 'browseradrs'=>'128.20.50.50;128.20.50.66;128.20.50.71;128.20.50.46;128.20.100.31;128.20.100.32', 'serial'=>$id));  
  else if($what=='MENUITEM') sqladd('cfg_other_menuitems', array('serial'=>$id));  
  }  
226    
227    // ANZEIGEN
228    
229   // GGF. SPEICHERN  function parsearr($name, $arr, $del=false, $wireless=false)
230   if($_POST['do_upl'])  {
231   {   global $drop;
232   function postarr($prefix)   global $id;
233   {   global $alxos;
  $prefix.='_';  
  $prelen = strlen($prefix);  
234    
235   $arr = array();   $parts = explode('_',$name); $helpfile='help.php?page='.$parts[1];
236   foreach($_POST as $k=>$v)   openabs($name, $helpfile);
237   if((substr($k,0,$prelen)==$prefix) && ($v!='KEEPPASS'))   echo '<table class="keytab">';
  $arr[substr($k,$prelen)] = stripslashes($v);  
238    
239   return $arr;   foreach($arr as $k=>$v)
240   }   {
241     if( (substr($k,0,9)=='wireless_') xor $wireless ) Continue;
242    
243     $d = $drop[$name.'_'.$k]; if($d==null) $d = $drop[$k];
244     $k = str_replace('wireless_', '', $k);
245     $k2 = $k;
246    
247   foreach($tabs as $k=>$t)   //replace some drivers on 0.5.3 or higher
248     if($alxos >= '0.5.3')
249   {   {
250   if(!$multi[$k]) mysql_query('UPDATE '.$t.' SET '.updatestr(postarr($t)).' WHERE serial='.$id);   if($v == 'i810')
251   else   {
252     echo '<br><font color="#FF0000">Replaced "i810" with "intel" - Please press SAVE!</font><br>';
253     $v='intel';
254     }
255     if($v == 'r128')
256     {
257     echo '<br><font color="#FF0000">Replaced "r128" with "vesa" - Please press SAVE!</font><br>';
258     $v='vesa';
259     }
260    
261     if($v == 'via')
262   {   {
263   $i=0;   echo '<br><font color="#FF0000">Replaced "via" with "openchrome" - Please press SAVE!</font><br>';
264   while(isset($_POST[$t.'_'.$i.'_id']))   $v='openchrome';
265   {   }
  if($_POST[$t.'_'.$i.'_delete'])  
  mysql_query('DELETE FROM '.$t.' WHERE serial='.$id.' AND id='.$_POST[$t.'_'.$i.'_id']);  
  else  
  mysql_query('UPDATE '.$t.' SET '.updatestr(postarr($t.'_'.$i)).' WHERE serial='.$id.' AND id='.$_POST[$t.'_'.$i.'_id']);  
  $i++;  
  }  
  }  
266   }   }
  }  
267    
268     # tell something about vesa
269     if ($v == 'vesa') echo '<br><font color="#FF0000">Warning: "vesa" graphic module doesn\'t support any resolutions higher than 1024x786x16@60hz!</font><br>';
270    
  // EINLESEN DER DATEN AUS SQL-TABELLEN  
  foreach($tabs as $k=>$t)  
  {  
  if($multi[$k]) $data[$t] = sqlarr('SELECT * FROM '.$t.' WHERE serial='.$id);  
  else $data[$t] = sqlfirst('SELECT * FROM '.$t.' WHERE serial='.$id);  
  }  
271    
272   // ANZEIGEN - KLAPPFUNKTIONEN   if(is_array($d))
273   $absnames = array();   {
274     echo '<tr><td class="key">'.$k2.'</td><td>= <select style="width:144px" name="'.$name.'_'.$k.'">';
275   function openabs($heading, $helpfile='')   foreach($d as $di) if($v==$di) echo '<option selected>'.$di; else echo '<option>'.$di;
276   {   echo '</select></td></tr>';
277   global $absnames;   }
278   $absnames[] = $heading;   else if($d=='hidden') echo '<tr><td colspan=2><input type=hidden name="'.$name.'_'.$k.'" value="'.$v.'"></td></tr>';
279     else if($d=='1') echo '<tr><td colspan=2><input type=hidden name="'.$name.'_'.$k.'" value="1"></td></tr>';
280   // <AufZuLink> <Bild/> <Heading/> </AufZuLink><BR/> <Absatz>   else if($d=='monitorid') echo '<tr><td class="key">'.$k2.'</td><td>= <input type=button style="width:24px" onclick="window.open(\'monitor.php?id='.$id.'\', \'MonitorWin\', \'width=350,height=200\')" value="..."></td>';
281     else if($d=='bold') echo '<tr><td class="key">'.$k2.'</td><td>= <input style="width:144px;font-weight:bold" name="'.$name.'_'.$k.'" value="'.$v.'"></td></tr>';
282     else if($d=='filename') echo '<tr><td class="key">filename</td><td>= <input style="width:144px;font-weight:bold" name="'.$name.'_'.$k.'" value="'.$v.'"></td></tr>';
283     else if($d=='show') echo '<tr><td class="key">'.$k2.'</td><td>= <b>'.$v.'</b></td></tr>';
284     else if($d=='showtime') echo '<tr><td class="key">'.$k2.'</td><td>= <b>'.date('d.m.y - H:i:s', $v).'</b></td></tr>';
285     else if($d=='password' && $v=='') echo '<tr><td class="key">'.$k2.'</td><td>= <input type=password style="width:144px" name="'.$name.'_'.$k.'" value=""></td></tr>';
286     else if($d=='password') echo '<tr><td class="key">'.$k2.'</td><td>= <input type=password style="width:144px" name="'.$name.'_'.$k.'" value="KEEPPASS"></td></tr>';
287     else if($d=='txt') echo '<tr><td colspan=2><textarea style="width:240px; background-color:#d5e5ff" rows=4 name="'.$name.'_'.$k.'">'.$v.'</textarea></td></tr>';
288     else if($d!='ignore') echo '<tr><td class="key">'.$k2.'</td><td>= <input style="width:144px" name="'.$name.'_'.$k.'" value="'.$v.'"></td></tr>';
289     }
290    
291     if($del) echo '<tr><td class="key">delete</td><td>=<input type=checkbox name="'.$name.'_delete" value="1"></td></tr>';
292     echo '</table>';
293     closeabs();
294    
295     if($name=='cfg_network' && !$wireless) parsearr($name.'_wireless', $arr, $del, true);
296    }
297    function parsearrs($name, $arr)
298    {
299     foreach($arr as $k=>$a)
300     parsearr($name.'_'.$k, $a, true);
301    }
302    
303    ?><head>
304    <title>ALX Config</title>
305    <style>
306     body,table { font-family:Tahoma; font-size:10pt }
307     a { color:#000000; text-decoration:none; }
308     .key { width:85px }
309     .keytab, input, textarea, select, option { font-size:8pt; font-family:Tahoma }
310     .but { font-size:10pt; font-family:Tahoma; height:23px }
311    </style>
312    <script type="text/javascript" src="js/jquery-1.2.6.min.js"></script>
313    <script language="JavaScript" src="openclose_ajax.js"></script>
314    <script language="JavaScript">
315    
316     // opens an url and shows retval in a javascript-alert on current site
317     function urlopen(url,typ) {
318     var $url = url.split("?");
319     $.ajax({type:""+typ+"",url:$url[0],data:$url[1],cache:false,success:function(data){ alert(data); }});
320     }
321    
322    /* ignore this atm, not always working, sometime open does not work
323     function openclose(nummer, act)
324     {
325     var bild = document.images['sch_bild_'+nummer];
326     var absatz = document.all['sch_absatz_'+nummer].style;
327     var senden = false;
328    
329     $("#sch_absatz_"+nummer).toggle(0, function(){
330     if($(this).css("display")=="none"){$("#sch_bild_"+nummer).attr({title:'OPEN',src:'pics/plus.gif'});}else{$("#sch_bild_"+nummer).attr({title:'CLOSE',src:'pics/minus.gif'});}
331     });
332     if(act<=1){ $("#sch_bild_"+nummer).attr({title:'CLOSE',src:'pics/minus.gif'}); }else{ $("#sch_bild_"+nummer).attr({title:'OPEN',src:'pics/plus.gif'}); };
333     }
334    */
335     function openclose(nummer, act)
336     {
337     var bild = document.images['sch_bild_'+nummer];
338     var absatz = document.all['sch_absatz_'+nummer].style;
339     var senden = false;
340    
341   if( $_SESSION['openclose'][$heading] )   if(bild.title == 'OPEN')
342   {   {
343   echo '<a href="JavaScript:openclose(\''.$heading.'\',1);"><img border="0" src="pics/minus.gif" title="CLOSE" id="sch_bild_'.$heading.'"> <b>['.$heading.']</b></a>';   if(act<=1)
344   if($helpfile!='') echo ' <a href="JavaScript:showhelp(\''.$helpfile.'\')" title="HELP">[?]</a>';   {
345   echo '<br><div id="sch_absatz_'.$heading.'" style="top:0px; visibility:visible">';   absatz.visibility = 'visible';
346     absatz.position = '';
347     bild.title = 'CLOSE';
348     bild.src = 'pics/minus.gif';
349     senden = true;
350     act = 0;
351     }
352   }   }
353   else   else
354   {   {
355   echo '<a href="JavaScript:openclose(\''.$heading.'\',1);"><img border="0" src="pics/plus.gif" title="OPEN" id="sch_bild_'.$heading.'"> <b>['.$heading.']</b></a>';   if(act>=1)
356   if($helpfile!='') echo ' <a href="JavaScript:showhelp(\''.$helpfile.'\')" title="HELP">[?]</a>';   {
357   echo '<br><div id="sch_absatz_'.$heading.'" style="position:absolute; top:0px; visibility:hidden">';   absatz.visibility = 'hidden';
358     absatz.position = 'absolute';
359     bild.title = 'OPEN';
360     bild.src = 'pics/plus.gif';
361     senden = true;
362     act = 2;
363     }
364   }   }
  }  
   
  function closeabs()  
  {  
  // </Absatz> <BR/>  
365    
366   echo '</div><br>';   if(senden) sendopenclose(nummer,act);
367   }   }
   
368    
369   // ANZEIGEN   function showhelp(name)
370     { window.open(name, 'HelpWin', 'width=620,height=500,scrollbars=yes'); }
  function parsearr($name, $arr, $del=false, $wireless=false)  
  {  
  global $drop;  
  global $id;  
  global $alxos;  
   
  $parts = explode('_',$name); $helpfile='help.php?page='.$parts[1];  
  openabs($name, $helpfile);  
  echo '<table class="keytab">';  
371    
372   foreach($arr as $k=>$v)  </script>
373   {  </head>
  if( (substr($k,0,9)=='wireless_') xor $wireless ) Continue;  
   
  $d = $drop[$name.'_'.$k]; if($d==null) $d = $drop[$k];  
  $k = str_replace('wireless_', '', $k);  
  $k2 = $k;  
374    
375   //replace some drivers on 0.5.3 or higher  <body><?
  if($alxos >= '0.5.3')  
  {  
  if($v == 'i810')  
  {  
  echo '<br><font color="#FF0000">Replaced "i810" with "intel" - Please press SAVE!</font><br>';  
  $v='intel';  
  }  
  if($v == 'r128')  
  {  
  echo '<br><font color="#FF0000">Replaced "r128" with "vesa" - Please press SAVE!</font><br>';  
  $v='vesa';  
  }  
   
  if($v == 'via')  
  {  
  echo '<br><font color="#FF0000">Replaced "via" with "openchrome" - Please press SAVE!</font><br>';  
  $v='openchrome';  
  }  
  }  
   
  # tell something about vesa  
  if ($v == 'vesa') echo '<br><font color="#FF0000">Warning: "vesa" graphic module doesn\'t support any resolutions higher than 1024x786x16@60hz!</font><br>';  
376    
377    echo '<form action="show.php" method="post" onreset="return confirm(\'UNDO CHANGES?\')">';
378    echo '<input type=hidden name="do_upl" value="1">';
379    echo '<input type=hidden name="id" value="'.$id.'">';
380    
381   if(is_array($d))  // ANZEIGEN => NON-MULTI TABELLEN
382   {  echo '<table><tr><td valign=top width="300">';
  echo '<tr><td class="key">'.$k2.'</td><td>= <select style="width:144px" name="'.$name.'_'.$k.'">';  
  foreach($d as $di) if($v==$di) echo '<option selected>'.$di; else echo '<option>'.$di;  
  echo '</select></td></tr>';  
  }  
  else if($d=='hidden') echo '<tr><td colspan=2><input type=hidden name="'.$name.'_'.$k.'" value="'.$v.'"></td></tr>';  
  else if($d=='1') echo '<tr><td colspan=2><input type=hidden name="'.$name.'_'.$k.'" value="1"></td></tr>';  
  else if($d=='monitorid') echo '<tr><td class="key">'.$k2.'</td><td>= <input type=button style="width:24px" onclick="window.open(\'monitor.php?id='.$id.'\', \'MonitorWin\', \'width=350,height=200\')" value="..."></td>';  
  else if($d=='bold') echo '<tr><td class="key">'.$k2.'</td><td>= <input style="width:144px;font-weight:bold" name="'.$name.'_'.$k.'" value="'.$v.'"></td></tr>';  
  else if($d=='filename') echo '<tr><td class="key">filename</td><td>= <input style="width:144px;font-weight:bold" name="'.$name.'_'.$k.'" value="'.$v.'"></td></tr>';  
  else if($d=='show') echo '<tr><td class="key">'.$k2.'</td><td>= <b>'.$v.'</b></td></tr>';  
  else if($d=='showtime') echo '<tr><td class="key">'.$k2.'</td><td>= <b>'.date('d.m.y - H:i:s', $v).'</b></td></tr>';  
  else if($d=='password' && $v=='') echo '<tr><td class="key">'.$k2.'</td><td>= <input type=password style="width:144px" name="'.$name.'_'.$k.'" value=""></td></tr>';  
  else if($d=='password') echo '<tr><td class="key">'.$k2.'</td><td>= <input type=password style="width:144px" name="'.$name.'_'.$k.'" value="KEEPPASS"></td></tr>';  
  else if($d=='txt') echo '<tr><td colspan=2><textarea style="width:240px; background-color:#d5e5ff" rows=4 name="'.$name.'_'.$k.'">'.$v.'</textarea></td></tr>';  
  else if($d!='ignore') echo '<tr><td class="key">'.$k2.'</td><td>= <input style="width:144px" name="'.$name.'_'.$k.'" value="'.$v.'"></td></tr>';  
  }  
383    
384   if($del) echo '<tr><td class="key">delete</td><td>=<input type=checkbox name="'.$name.'_delete" value="1"></td></tr>';   echo '<b style="font-size:6pt">';
385   echo '</table>';   echo '<a href="JavaScript:opencloseall(0);" title="OPEN ALL"><img src="pics/plus.gif" border="0"> OPEN...</a> ';
386   closeabs();   echo '<a href="JavaScript:opencloseall(2);" title="CLOSE ALL"><img src="pics/minus.gif" border="0"> CLOSE...</a> ALL';
387     echo '</b><br><br>';
  if($name=='cfg_network' && !$wireless) parsearr($name.'_wireless', $arr, $del, true);  
  }  
  function parsearrs($name, $arr)  
  {  
  foreach($arr as $k=>$a)  
  parsearr($name.'_'.$k, $a, true);  
  }  
388    
389   ?><head>   foreach($tabs as $k=>$t) if(!$multi[$k]) parsearr($t, $data[$t]);
  <title>ALX Config</title>  
  <style>  
  body,table { font-family:Tahoma; font-size:10pt }  
  a { color:#000000; text-decoration:none; }  
  .key { width:85px }  
  .keytab, input, textarea, select, option { font-size:8pt; font-family:Tahoma }  
  .but { font-size:10pt; font-family:Tahoma; height:23px }  
  </style>  
  <script language="JavaScript" src="openclose_ajax.js"></script>  
  <script language="JavaScript">  
   
  function openclose(nummer, act)  
  {  
  var bild = document.images['sch_bild_'+nummer];  
  var absatz = document.all['sch_absatz_'+nummer].style;  
  var senden = false;  
   
  if(bild.title == 'OPEN')  
  {  
  if(act<=1)  
  {  
  absatz.visibility = 'visible';  
  absatz.position = '';  
  bild.title = 'CLOSE';  
  bild.src = 'pics/minus.gif';  
  senden = true;  
  act = 0;  
  }  
  }  
  else  
  {  
  if(act>=1)  
  {  
  absatz.visibility = 'hidden';  
  absatz.position = 'absolute';  
  bild.title = 'OPEN';  
  bild.src = 'pics/plus.gif';  
  senden = true;  
  act = 2;  
  }  
  }  
   
  if(senden) sendopenclose(nummer,act);  
  }  
   
  function showhelp(name)  
  { window.open(name, 'HelpWin', 'width=620,height=500,scrollbars=yes'); }  
   
  </script>  
  </head>  
   
  <body><?  
   
   
  //echo '<body style="background-image:URL(logo.jpg);background-repeat:no-repeat; background-position:0px 0px; margin-top:25px">';  
  echo '<form action="show.php" method=post onreset="return confirm(\'UNDO CHANGES?\')">';  
  echo '<input type=hidden name="do_upl" value="1">';  
  echo '<input type=hidden name="id" value="'.$id.'">';  
390    
391   // ANZEIGEN => NON-MULTI TABELLEN  // ANZEIGEN => MULTI TABELLEN
392   echo '<table><tr><td valign=top width="300">';  echo '</td><td valign=top width="300">';
393    
394   echo '<b style="font-size:6pt">';   foreach($tabs as $k=>$t) if($multi[$k]) parsearrs($t, $data[$t]);
  echo '<a href="JavaScript:opencloseall(0);" title="OPEN ALL"><img src="pics/plus.gif" border="0"> OPEN...</a> ';  
  echo '<a href="JavaScript:opencloseall(2);" title="CLOSE ALL"><img src="pics/minus.gif" border="0"> CLOSE...</a> ALL';  
  echo '</b><br><br>';  
395    
396   foreach($tabs as $k=>$t) if(!$multi[$k]) parsearr($t, $data[$t]);   echo '<script language="JavaScript">';
397     echo 'function opencloseall(act) { ';
398    
399   // ANZEIGEN => MULTI TABELLEN   foreach($absnames as $absname)
400   echo '</td><td valign=top width="300">';   echo 'openclose("'.$absname.'", act); ';
401    
402   foreach($tabs as $k=>$t) if($multi[$k]) parsearrs($t, $data[$t]);   echo '}</script>';
   
  echo '<script language="JavaScript">';  
  echo 'function opencloseall(act) { ';  
   
  foreach($absnames as $absname)  
  echo 'openclose("'.$absname.'", act); ';  
   
  echo '}</script>';  
403    
404   // ANZEIGEN => NAVI  // ANZEIGEN => NAVI
405   echo '</td><td valign=top>';  echo '</td><td valign=top>';
406    
407   // STATUS BESTIMMEN (ON/OFF)   // STATUS BESTIMMEN (ON/OFF)
408   $conn = sqlfirst('SELECT * FROM state_connected WHERE serial='.$id);   $conn = sqlfirst('SELECT * FROM state_connected WHERE serial='.$id);
409   $state = 'Off';   $state = 'Off';
410   if(count($conn)>0)   if(count($conn)>0)
411   {   {
412  // passthru($pingcmd." ".$conn['ip']." &> /dev/null && exit 0 || exit 1",$retval);   if($retval==0) $state = 'On';
413   if($retval==0) $state = 'On';   }
414   }  
415     echo '<img src="pics/logo2.jpg"><br><br>';
416    
417     echo '<input class="but" type=submit value="SAVE" style="width:150px"><br><br>';
418    
419     echo '<input class="but" type=submit name="do_add" value="SAVE+ADD COMMENT" style="width:150px"><br>';
420     echo '<input class="but" type=submit name="do_add" value="SAVE+ADD PRINTER" style="width:150px"><br>';
421     echo '<input class="but" type=submit name="do_add" value="SAVE+ADD SESSION" style="width:150px"><br>';
422     echo '<input class="but" type=submit name="do_add" value="SAVE+ADD MODULE" style="width:150px"><br>';
423     echo '<input class="but" type=submit name="do_add" value="SAVE+ADD MENUITEM" style="width:150px"><br><br>';
424    
425    
426   echo '<img src="pics/logo2.jpg"><br><br>';   if($id>0) $KILLCAP='DEACTIVATE'; else $KILLCAP='ACTIVATE';
427     echo '<input class="but" type=button value="'.$KILLCAP.'" style="width:150px" onclick="if(confirm(\''.$KILLCAP.' CLIENT #'.abs($id).' ?\')) { window.open(\'show.php?id='.$id.'&kill=1\', \'DeactWin\', \'width=200,height=100\'); location.href=\'index.php\'; }"><br>';
428     echo '<input class="but" type=button value="IMPORT FROM..." style="width:150px" onclick="location.href=\'import.php?id='.$id.'\'"><br>';
429     echo '<input class="but" type=reset value="UNDO CHANGES" style="width:150px"><br><br>';
430    
431   echo '<input class="but" type=submit value="SAVE" style="width:150px"><br><br>';   $davor  = sqlfirst('SELECT mac FROM client_serials WHERE serial='.($id-1),'mac')!=null; if($davor) $disdavor=''; else $disdavor = 'disabled=1';
432     $danach = sqlfirst('SELECT mac FROM client_serials WHERE serial='.($id+1),'mac')!=null; if($danach) $disdanach=''; else $disdanach = 'disabled=1';
433    
434   echo '<input class="but" type=submit name="do_add" value="SAVE+ADD COMMENT" style="width:150px"><br>';   echo '<input class="but" type=button '.$disdavor.' value="<" style="width:30px" onclick="location.href=\'show.php?id='.($id-1).'\'">';
435   echo '<input class="but" type=submit name="do_add" value="SAVE+ADD PRINTER" style="width:150px"><br>';   echo '<input class="but" type=button value="REFRESH" style="width:90px" onclick="location.href=\'show.php?id='.$id.'\'">';
436   echo '<input class="but" type=submit name="do_add" value="SAVE+ADD SESSION" style="width:150px"><br>';   echo '<input class="but" type=button '.$disdanach.' value=">" style="width:30px" onclick="location.href=\'show.php?id='.($id+1).'\'">';
437   echo '<input class="but" type=submit name="do_add" value="SAVE+ADD MODULE" style="width:150px"><br>';   echo '<br><input class="but" type=button value="INDEX" style="width:150px; font-weight:bold" onclick="location.href=\'index.php\'"><br><br>';
438   echo '<input class="but" type=submit name="do_add" value="SAVE+ADD MENUITEM" style="width:150px"><br><br>';  
439     echo '<br>';
440     echo '<div style="border:solid black 1px; padding:5px; background-color:#d5e5ff"><b>';
441   if($id>0) $KILLCAP='DEACTIVATE'; else $KILLCAP='ACTIVATE';   if($id<0) echo '<b>DEACTIVATED!</b><br><br>';
442   echo '<input class="but" type=button value="'.$KILLCAP.'" style="width:150px" onclick="if(confirm(\''.$KILLCAP.' CLIENT #'.abs($id).' ?\')) { window.open(\'show.php?id='.$id.'&kill=1\', \'DeactWin\', \'width=200,height=100\'); location.href=\'index.php\'; }"><br>';   echo '<u>Serial:</u>&nbsp;&nbsp;#'.$id.'<br>';
443   echo '<input class="but" type=button value="IMPORT FROM..." style="width:150px" onclick="location.href=\'import.php?id='.$id.'\'"><br>';   echo '<u>Stand:</u>&nbsp;&nbsp;'.date('H:i:s').'<br>';
444   echo '<input class="but" type=reset value="UNDO CHANGES" style="width:150px"><br><br>';   echo '<u>Status:</u> <img src="pics/'.strtolower($state).'line.gif" align=top> '.$state.'line<br>';
445     if($state=='On')
446   $davor  = sqlfirst('SELECT mac FROM client_serials WHERE serial='.($id-1),'mac')!=null; if($davor) $disdavor=''; else $disdavor = 'disabled=1';   {
447   $danach = sqlfirst('SELECT mac FROM client_serials WHERE serial='.($id+1),'mac')!=null; if($danach) $disdanach=''; else $disdanach = 'disabled=1';   echo '<u>IP:</u> '.$conn['ip'].'<br><br>';
448     if($alxos >= '0.6.0')
  echo '<input class="but" type=button '.$disdavor.' value="<" style="width:30px" onclick="location.href=\'show.php?id='.($id-1).'\'">';  
  echo '<input class="but" type=button value="REFRESH" style="width:90px" onclick="location.href=\'show.php?id='.$id.'\'">';  
  echo '<input class="but" type=button '.$disdanach.' value=">" style="width:30px" onclick="location.href=\'show.php?id='.($id+1).'\'">';  
  echo '<br><input class="but" type=button value="INDEX" style="width:150px; font-weight:bold" onclick="location.href=\'index.php\'"><br><br>';  
   
  echo '<br><br>';  
  echo '<div style="border:solid black 1px; padding:5px; background-color:#d5e5ff"><b>';  
  if($id<0) echo '<b>DEACTIVATED!</b><br><br>';  
  echo '<u>Serial:</u>&nbsp;&nbsp;#'.$id.'<br>';  
  echo '<u>Stand:</u>&nbsp;&nbsp;'.date('H:i:s').'<br>';  
  echo '<u>Status:</u> <img src="pics/'.strtolower($state).'line.gif" align=top> '.$state.'line<br>';  
  if($state=='On')  
449   {   {
450   echo '<u>IP:</u> '.$conn['ip'].'<br><br>';   $osver = sshdo('os_ver=$(</etc/mageversion);cfg_ver=$(/sbin/magequery -n alxconfig-ng | cut -d" " -f5);pname=${cfg_ver%-*-*};cfg_ver=${cfg_ver/${pname}-};echo "${os_ver}:${cfg_ver}"', $conn['ip']);
451   $pubkey = mysql_query('select public_key from ssh_auth_clients where serial='.$id.'');   }
452   while ($row = mysql_fetch_row ($pubkey)) {   else
453   # schreiben der .ssh/known_hosts file mit dem public rsa key des client,   {
454   # um die "yes" abfrage zu vermeiden   $osver = sshdo('os_ver=$(</etc/mageversion);cfg_ver=$(/sbin/magequery -n alxconfig-ng-alx | cut -d" " -f5);pname=${cfg_ver%-*-*};cfg_ver=${cfg_ver/${pname}-};echo "${os_ver}:${cfg_ver}"', $conn['ip']);
455   $hostfile = fopen ($home."/.ssh/known_hosts","w");   }
456   fwrite($hostfile,$conn['ip']." ".$row[0],strlen($row[0])+strlen($conn['ip'])+1);   $osver = explode(':',$osver[1]);
457   fclose($hostfile);   if($osver[0] == '') $osver[0]='unkown';
458     if($osver[1] == '') $osver[1]='unkown';
459    
460   $osver = exec($sshcmd.' '.$conn['ip'].' \'os_ver=$(</etc/mageversion);cfg_ver=$(/sbin/magequery -n alxconfig-ng-alx|cut -d" " -f5);pname=${cfg_ver%-*-*};cfg_ver=${cfg_ver/${pname}-};echo "${os_ver}:${cfg_ver}"\'');   # update os string in database
461   $osver = explode(':',$osver);   if($alxos == '' && $osver[0] >= '0.5.3')
462   }   {
463   if($osver[0] == '') $osver[0]='unkown';   mysql_query('insert into client_version(serial,os,utils) values("'.$id.'","'.$osver[0].'","'.$osver[1].'")
464   if($osver[1] == '') $osver[1]='unkown';   on duplicate key update os="'.$osver[0].'", utils="'.$osver[1].'"');
465     # reload the site
466   # update os string in database   echo '<script type="text/javascript">setTimeout(\'window.location.reload()\',0);</script>';
467   if($alxos == '' && $osver[0] >= '0.5.3')   }
  {  
  mysql_query('insert into client_version(serial,os,utils) values("'.$id.'","'.$osver[0].'","'.$osver[1].'")  
  on duplicate key update os="'.$osver[0].'", utils="'.$osver[1].'"');  
  # reload the site  
  echo '<script type="text/javascript">setTimeout(\'window.location.reload()\',0);</script>';  
  }  
468    
469   echo '<u>OS:</u> '.$osver[0].'<br>';   echo '<u>OS:</u> '.$osver[0].'<br>';
470   echo '<u>Utils:</u> '.$osver[1].'<br>';   echo '<u>Utils:</u> '.$osver[1].'<br>';
471    
472   if($osver[0] <> 'unkown')   if($osver[0] <> 'unkown')
473   {   {
474   //write them to database   //write them to database
  }  
475   }   }
476     }
477    
478   echo '</b></div>';   echo '</b></div>';
  //echo '<br><br>';  
479    
480   if($state=='On')   if($state=='On')
481     {
482     echo '<input class="but" type=button value="REBOOT" style="width:150px" onclick="if(confirm(\'REBOOT CLIENT #'.$id.' ?\')) window.open(\'reboot.php?client='.$id.'&ip='.$conn['ip'].'&op=reboot\', \'ShutdownWin\', \'width=200,height=100\')"><br>';
483     echo '<input class="but" type=button value="SHUTDOWN" style="width:150px" onclick="if(confirm(\'SHUTDOWN CLIENT #'.$id.' ?\')) window.open(\'reboot.php?client='.$id.'&ip='.$conn['ip'].'&op=halt\', \'ShutdownWin\', \'width=200,height=100\')"><br>';
484     echo '<br>';
485    
486     if($alxos >= '0.6.0')
487   {   {
488   echo '<input class="but" type=button value="REBOOT" style="width:150px" onclick="if(confirm(\'REBOOT CLIENT #'.$id.' ?\')) window.open(\'reboot.php?client='.$id.'&ip='.$conn['ip'].'&op=reboot\', \'ShutdownWin\', \'width=200,height=100\')"><br>';   echo '<div style="border:solid black 1px; padding:5px; background-color:#d5e5ff" align="center"><b>';
489   echo '<input class="but" type=button value="SHUTDOWN" style="width:150px" onclick="if(confirm(\'SHUTDOWN CLIENT #'.$id.' ?\')) window.open(\'reboot.php?client='.$id.'&ip='.$conn['ip'].'&op=halt\', \'ShutdownWin\', \'width=200,height=100\')"><br>';   echo 'Hardware Detection:</b></div>';
490   echo '<br>';   echo '<input class="but" type=button value="LAN" style="width:50px" onclick="javascript:urlopen(\'include/hwinfo.php?ip='.$conn['ip'].'&cmd=lan\',\'POST\');">';
491                   echo '<div style="border:solid black 1px; padding:5px; background-color:#d5e5ff" align="center"><b>';   echo '<input class="but" type=button value="WLAN" style="width:50px" onclick="javascript:urlopen(\'include/hwinfo.php?ip='.$conn['ip'].'&cmd=wlan\',\'POST\');">';
492                  echo 'Remote Shadow:</b></div>';   echo '<input class="but" type=button value="VGA" style="width:50px" onclick="javascript:urlopen(\'include/hwinfo.php?ip='.$conn['ip'].'&cmd=vga\',\'POST\');">';
493   echo '<input class="but" type=button value="VNC" style="width:150px" onclick="window.open(\'vncviewer.php?ip='.$conn['ip'].'\', \'VncViewer\', \'width=200,height=100\')"><br>';   echo '<br><br>';
  echo '<input class="but" type=button value="SSH" style="width:150px" onclick="window.open(\'mindterm.php?ip='.$conn['ip'].'\', \'MindTerm\', \'width=200,height=100\')"><br>';  
  echo '<br>';  
                  echo '<div style="border:solid black 1px; padding:5px; background-color:#d5e5ff" align="center"><b>';  
                 echo 'Client Update:</b></div>';  
  echo '<input class="but" type=button value="UPDATE MAGE DB" style="width:150px" onclick="if(confirm(\'UPDATE DB ON CLIENT #'.$id.' ?\')) window.open(\'mageupgrade.php?client='.$id.'&ip='.$conn['ip'].'&op=update\', \'ShutdownWin\', \'width=800,height=600\')"><br>';  
  echo '<input class="but" type=button value="CALC DEPS" style="width:150px" onclick="if(confirm(\'CALC DEPS FOR CLIENT #'.$id.' ?\')) window.open(\'mageupgrade.php?client='.$id.'&ip='.$conn['ip'].'&op=calc\', \'ShutdownWin\', \'width=800,height=600\')"><br>';  
  echo '<input class="but" type=button value="UPGRADE CLIENT" style="width:150px" onclick="if(confirm(\'UPGRADE ALL PACKAGES ON CLIENT #'.$id.' ?\')) window.open(\'mageupgrade.php?client='.$id.'&ip='.$conn['ip'].'&op=upgrade\', \'ShutdownWin\', \'width=800,height=600\');setTimeout(\'window.location.reload()\',0);"><br>';  
494   }   }
  else  
  echo '<input class="but" type=button value="WAKE ON LAN" style="width:150px" onclick="if(confirm(\'WAKE CLIENT #'.$id.' ?\')) window.open(\'wake_on_lan.php?mac='.$data['client_serials']['mac'].'\', \'WakeWin\', \'width=200,height=100\')"><br>';  
495    
496   echo '<br><center><a href="share/ChangeLog.html" target="_blank">[ChangeLog]</a> <a href="share/FAQ.html" target="_blank">[FAQs]</a></center>';   echo '<div style="border:solid black 1px; padding:5px; background-color:#d5e5ff" align="center"><b>';
497     echo 'Remote Shadow:</b></div>';
498     echo '<input class="but" type=button value="VNC" style="width:150px" onclick="window.open(\'vncviewer.php?ip='.$conn['ip'].'\', \'VncViewer\', \'width=200,height=100\')"><br>';
499     echo '<input class="but" type=button value="SSH" style="width:150px" onclick="window.open(\'mindterm.php?ip='.$conn['ip'].'\', \'MindTerm\', \'width=200,height=100\')"><br>';
500     echo '<br>';
501     echo '<div style="border:solid black 1px; padding:5px; background-color:#d5e5ff" align="center"><b>';
502     echo 'Client Update:</b></div>';
503     echo '<input class="but" type=button value="UPDATE MAGE DB" style="width:150px" onclick="if(confirm(\'UPDATE DB ON CLIENT #'.$id.' ?\')) window.open(\'mageupgrade.php?client='.$id.'&ip='.$conn['ip'].'&op=update\', \'ShutdownWin\', \'width=800,height=600\')"><br>';
504     echo '<input class="but" type=button value="CALC DEPS" style="width:150px" onclick="if(confirm(\'CALC DEPS FOR CLIENT #'.$id.' ?\')) window.open(\'mageupgrade.php?client='.$id.'&ip='.$conn['ip'].'&op=calc\', \'ShutdownWin\', \'width=800,height=600\')"><br>';
505     echo '<input class="but" type=button value="UPGRADE CLIENT" style="width:150px" onclick="if(confirm(\'UPGRADE ALL PACKAGES ON CLIENT #'.$id.' ?\')) window.open(\'mageupgrade.php?client='.$id.'&ip='.$conn['ip'].'&op=upgrade\', \'ShutdownWin\', \'width=800,height=600\');setTimeout(\'window.location.reload()\',0);"><br>';
506     }
507     else
508     echo '<input class="but" type=button value="WAKE ON LAN" style="width:150px" onclick="if(confirm(\'WAKE CLIENT #'.$id.' ?\')) window.open(\'wake_on_lan.php?mac='.$data['client_serials']['mac'].'\', \'WakeWin\', \'width=200,height=100\')"><br>';
509    
510     echo '<br><center><a href="share/ChangeLog.html" target="_blank">[ChangeLog]</a> <a href="share/FAQ.html" target="_blank">[FAQs]</a></center>';
511    
512   echo '</td></tr></table>';  echo '</td></tr></table>';
513   echo '</form>';  echo '</form>';
514  ?>  ?>

Legend:
Removed from v.2017  
changed lines
  Added in v.2638