Magellan Linux

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

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

alx-src/branches/alx-web-050/show.php revision 1610 by niro, Thu Dec 2 23:02:19 2010 UTC alx-src/branches/alx-web-060/show.php revision 2636 by niro, Thu Jul 7 19:49:18 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   $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');  include('include/common-functions.php');
  $multi= array(    0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0);  
  $data = array();  
5    
6    // INCLUDE CURRENT-PROBLEMS
7    include('include/current-problems.php');
8    
9   // get alx version info for  $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   $alxinfo = sqlfirst('SELECT * FROM client_version WHERE serial='.$id);  $multi= array(    0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0);
11   $alxos = $alxinfo[os];  $data = array();
  $alxutils = $alxinfo[utils];  
12    
  if($kill==1)  
  {  
  foreach($tabs as $t) mysql_query('UPDATE '.$t.' SET serial=-serial WHERE serial='.$id);  
13    
14   echo '<body onload="window.setTimeout(\'window.close()\', 1750)">';  // get alx version info for
15   echo '<table width=100% height=100% style="border:solid black 1px; background-color:#d5e5ff"><tr><td valign=middle align=center>';  $alxinfo = sqlfirst('SELECT * FROM client_version WHERE serial='.$id);
16    $alxos = $alxinfo[os];
17    $alxutils = $alxinfo[utils];
18    
19   if($id<0) echo 'ACTIVATED #'.abs($id);  if($kill==1)
20   else echo 'DEACTIVATED #'.$id;  {
21     foreach($tabs as $t) mysql_query('UPDATE '.$t.' SET serial=-serial WHERE serial='.$id);
22    
23   echo '</td></tr></table>';   echo '<body onload="window.setTimeout(\'window.close()\', 1750)">';
24   return true;   echo '<table width=100% height=100% style="border:solid black 1px; background-color:#d5e5ff"><tr><td valign=middle align=center>';
  }  
25    
26   // FELD-DEFINITIONEN  (ARRAY=>DROPDOWN / HIDDEN / IGNORE / 1 / BOLD / PASSWORD / SHOW / SHOWTIME / MONITORID)   if($id<0) echo 'ACTIVATED #'.abs($id);
27   $drop = array();   else echo 'DEACTIVATED #'.$id;
  if($alxos >= '0.5.3')  
  {  
  $drop['cfg_graphic_module'] = array('vesa', 'ati', 'cirrus', 'i710', 'intel', 'nv', 'mga', 'r128', 'radeon', 's3', 's3virge', 'savage', 'sis', 'trident', 'tseng', 'via');  
  }  
  else  
  {  
  $drop['cfg_graphic_module'] = array('vesa', 'ati', 'cirrus', 'i810', 'i710', 'nv', 'mga', 'r128', 'radeon', 's3', 's3virge', 'savage', 'sis', 'trident', 'tseng', 'via');  
  }  
  $drop['resolution'] = array('640x480', '800x600', '1024x768', '1280x960', '1280x1024', '1360x768', '1366x768', '1400x1050', '1440x900', '1600x1200', '1680x1050');  
  $drop['depth'] = array('24', '16', '8');  
  $drop['mouse'] = array('Auto', 'IMPS/2', 'PS/2');  
  $drop['cfg_network_module'] = array('3c59x', '8139too', '8139cp', 'e100', 'ne2k-pci', 'pcnet32', 'sis900', 'via-rhine', 'zd1211', 'b44', 'bnx2', 'dl2k', 'e1000', 'r8169', 'sk98lin', 'tg3', 'via-velocity');  
  $drop['networking'] = array('dhcp', 'static');  
  $drop['port'] = array('lpt1', 'usb1', 'usb2', 'com1', 'com2', 'lpd', 'socket', 'ipp');  
  $drop['location'] = sqlarr('SELECT location FROM client_locations', '', 'location');  
  $drop['id'] = 'hidden';  
  $drop['flg_modified'] = '1';  
  $drop['serial'] = 'ignore';  
  if($alxos>='0.5.3')  
  {  
  $drop['monitorid'] = 'ignore';  
  $drop['refresh_rate'] = array('','60','75','85','100');  
  }  
  else  
  {  
  $drop['monitorid'] = 'monitorid';  
  $drop['refresh_rate'] = 'ignore';  
  }  
  $drop['hostname'] = 'bold';  
  $drop['session'] = 'bold';  
  $drop['cfg_autostart_session'] = 'filename';  
  $drop['mtime'] = 'showtime';  
  $drop['mac'] = 'show';  
  $drop['client_serials_serial'] = 'show';  
  $drop['password'] = 'password';  
  $drop['shell'] = 'password';  
  $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';  
28    
29   // GGF. NEUEN DATENSATZ EINFÜGEN   echo '</td></tr></table>';
30   if(isset($_POST['do_add']))   return true;
31   {  }
  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));  
  }  
   
   
  // GGF. SPEICHERN  
  if($_POST['do_upl'])  
  {  
  function postarr($prefix)  
  {  
  $prefix.='_';  
  $prelen = strlen($prefix);  
   
  $arr = array();  
  foreach($_POST as $k=>$v)  
  if((substr($k,0,$prelen)==$prefix) && ($v!='KEEPPASS'))  
  $arr[substr($k,$prelen)] = stripslashes($v);  
32    
33   return $arr;  // FELD-DEFINITIONEN  (ARRAY=>DROPDOWN / HIDDEN / IGNORE / 1 / BOLD / PASSWORD / SHOW / SHOWTIME / MONITORID)
34   }  $drop = array();
35    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');
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     for ($i=0; $i<999; $i++) { $drop['cfg_sessions_'.$i.'_session'] = $citrix_public_applications; }
133    }
134    else if($retval = 126) echo "pnabrowser-wrapper has no execute permission! please run chmod +x on ".$wwwroot."/pnabrowser-wrapper.";
135    else echo "pnabrowse-wrapper does not run successfully! retval->'".$retval."'<br>";
136    
137    // GGF. NEUEN DATENSATZ EINFÜGEN
138    if(isset($_POST['do_add']))
139    {
140     list($bla,$what) = explode(' ',$_POST['do_add']);
141     if($what=='COMMENT') sqladd('cfg_comments', array('serial'=>$id));
142     else if($what=='PRINTER') sqladd('cfg_printers', array('serial'=>$id));
143     else if($what=='MODULE') sqladd('cfg_modules', array('serial'=>$id));
144     else if($what=='SESSION') sqladd('cfg_sessions', array('domain'=>$citrix_domain_name, 'browseradrs'=>$citrix_browseradrs, 'serial'=>$id));
145     else if($what=='MENUITEM') sqladd('cfg_other_menuitems', array('serial'=>$id));
146    }
147    
148    
149    // GGF. SPEICHERN
150    if($_POST['do_upl'])
151    {
152     function postarr($prefix)
153     {
154     $prefix.='_';
155     $prelen = strlen($prefix);
156    
157     $arr = array();
158     foreach($_POST as $k=>$v)
159     if((substr($k,0,$prelen)==$prefix) && ($v!='KEEPPASS'))
160     $arr[substr($k,$prelen)] = stripslashes($v);
161    
162   foreach($tabs as $k=>$t)   return $arr;
  {  
  if(!$multi[$k]) mysql_query('UPDATE '.$t.' SET '.updatestr(postarr($t)).' WHERE serial='.$id);  
  else  
  {  
  $i=0;  
  while(isset($_POST[$t.'_'.$i.'_id']))  
  {  
  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++;  
  }  
  }  
  }  
163   }   }
164    
   
  // EINLESEN DER DATEN AUS SQL-TABELLEN  
165   foreach($tabs as $k=>$t)   foreach($tabs as $k=>$t)
166   {   {
167   if($multi[$k]) $data[$t] = sqlarr('SELECT * FROM '.$t.' WHERE serial='.$id);   if(!$multi[$k]) mysql_query('UPDATE '.$t.' SET '.updatestr(postarr($t)).' WHERE serial='.$id);
  else $data[$t] = sqlfirst('SELECT * FROM '.$t.' WHERE serial='.$id);  
  }  
   
  // ANZEIGEN - KLAPPFUNKTIONEN  
  $absnames = array();  
   
  function openabs($heading, $helpfile='')  
  {  
  global $absnames;  
  $absnames[] = $heading;  
   
  // <AufZuLink> <Bild/> <Heading/> </AufZuLink><BR/> <Absatz>  
   
  if( $_SESSION['openclose'][$heading] )  
  {  
  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($helpfile!='') echo ' <a href="JavaScript:showhelp(\''.$helpfile.'\')" title="HELP">[?]</a>';  
  echo '<br><div id="sch_absatz_'.$heading.'" style="top:0px; visibility:visible">';  
  }  
168   else   else
169   {   {
170   echo '<a href="JavaScript:openclose(\''.$heading.'\',1);"><img border="0" src="pics/plus.gif" title="OPEN" id="sch_bild_'.$heading.'"> <b>['.$heading.']</b></a>';   $i=0;
171   if($helpfile!='') echo ' <a href="JavaScript:showhelp(\''.$helpfile.'\')" title="HELP">[?]</a>';   while(isset($_POST[$t.'_'.$i.'_id']))
172   echo '<br><div id="sch_absatz_'.$heading.'" style="position:absolute; top:0px; visibility:hidden">';   {
173     if($_POST[$t.'_'.$i.'_delete'])
174     mysql_query('DELETE FROM '.$t.' WHERE serial='.$id.' AND id='.$_POST[$t.'_'.$i.'_id']);
175     else
176     mysql_query('UPDATE '.$t.' SET '.updatestr(postarr($t.'_'.$i)).' WHERE serial='.$id.' AND id='.$_POST[$t.'_'.$i.'_id']);
177     $i++;
178     }
179   }   }
180   }   }
181    
182     // reload site
183     header("location: show.php?id=".$id);
184    }
185    
186    // EINLESEN DER DATEN AUS SQL-TABELLEN
187    foreach($tabs as $k=>$t)
188    {
189     if($multi[$k]) $data[$t] = sqlarr('SELECT * FROM '.$t.' WHERE serial='.$id);
190     else $data[$t] = sqlfirst('SELECT * FROM '.$t.' WHERE serial='.$id);
191    }
192    
193    // ANZEIGEN - KLAPPFUNKTIONEN
194    $absnames = array();
195    
196    function openabs($heading, $helpfile='')
197    {
198     global $absnames;
199     $absnames[] = $heading;
200    
201   function closeabs()   // <AufZuLink> <Bild/> <Heading/> </AufZuLink><BR/> <Absatz>
202    
203     if( $_SESSION['openclose'][$heading] )
204   {   {
205   // </Absatz> <BR/>   echo '<a href="JavaScript:openclose(\''.$heading.'\',1);"><img border="0" src="pics/minus.gif" title="CLOSE" id="sch_bild_'.$heading.'"> <b>['.$heading.']</b></a>';
206     if($helpfile!='') echo ' <a href="JavaScript:showhelp(\''.$helpfile.'\')" title="HELP">[?]</a>';
207   echo '</div><br>';   echo '<br><div id="sch_absatz_'.$heading.'" style="top:0px; visibility:visible">';
208   }   }
209     else
210     {
211     echo '<a href="JavaScript:openclose(\''.$heading.'\',1);"><img border="0" src="pics/plus.gif" title="OPEN" id="sch_bild_'.$heading.'"> <b>['.$heading.']</b></a>';
212     if($helpfile!='') echo ' <a href="JavaScript:showhelp(\''.$helpfile.'\')" title="HELP">[?]</a>';
213     echo '<br><div id="sch_absatz_'.$heading.'" style="position:absolute; top:0px; visibility:hidden">';
214     }
215    }
216    
217    function closeabs()
218    {
219     // </Absatz> <BR/>
220    
221     echo '</div><br>';
222    }
223    
224   // ANZEIGEN  
225    // ANZEIGEN
226   function parsearr($name, $arr, $del=false, $wireless=false)  
227    function parsearr($name, $arr, $del=false, $wireless=false)
228    {
229     global $drop;
230     global $id;
231     global $alxos;
232    
233     $parts = explode('_',$name); $helpfile='help.php?page='.$parts[1];
234     openabs($name, $helpfile);
235     echo '<table class="keytab">';
236    
237     foreach($arr as $k=>$v)
238   {   {
239   global $drop;   if( (substr($k,0,9)=='wireless_') xor $wireless ) Continue;
240   global $id;  
241   global $alxos;   $d = $drop[$name.'_'.$k]; if($d==null) $d = $drop[$k];
242     $k = str_replace('wireless_', '', $k);
243   $parts = explode('_',$name); $helpfile='help.php?page='.$parts[1];   $k2 = $k;
  openabs($name, $helpfile);  
  echo '<table class="keytab">';  
244    
245   foreach($arr as $k=>$v)   //replace some drivers on 0.5.3 or higher
246     if($alxos >= '0.5.3')
247   {   {
248   if( (substr($k,0,9)=='wireless_') xor $wireless ) Continue;   if($v == 'i810')
   
  $d = $drop[$name.'_'.$k]; if($d==null) $d = $drop[$k];  
  $k = str_replace('wireless_', '', $k);  
  $k2 = $k;  
   
  //replace i810 with intel on 0.5.3 or higher  
  if($alxos >= '0.5.3' && $v == 'i810')  
249   {   {
250   echo '<br><font color="#FF0000">Replaced "i810" with "intel" - Please press SAVE!</font><br>';   echo '<br><font color="#FF0000">Replaced "i810" with "intel" - Please press SAVE!</font><br>';
251   $v='intel';   $v='intel';
252   }   }
253     if($v == 'r128')
254     {
255     echo '<br><font color="#FF0000">Replaced "r128" with "vesa" - Please press SAVE!</font><br>';
256     $v='vesa';
257     }
258    
259   if(is_array($d))   if($v == 'via')
260   {   {
261   echo '<tr><td class="key">'.$k2.'</td><td>= <select style="width:144px" name="'.$name.'_'.$k.'">';   echo '<br><font color="#FF0000">Replaced "via" with "openchrome" - Please press SAVE!</font><br>';
262   foreach($d as $di) if($v==$di) echo '<option selected>'.$di; else echo '<option>'.$di;   $v='openchrome';
  echo '</select></td></tr>';  
263   }   }
  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>';  
264   }   }
265    
266   if($del) echo '<tr><td class="key">delete</td><td>=<input type=checkbox name="'.$name.'_delete" value="1"></td></tr>';   # tell something about vesa
267   echo '</table>';   if ($v == 'vesa') echo '<br><font color="#FF0000">Warning: "vesa" graphic module doesn\'t support any resolutions higher than 1024x786x16@60hz!</font><br>';
  closeabs();  
   
  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);  
  }  
268    
269   ?><head>  
270   <title>ALX Config</title>   if(is_array($d))
271   <style>   {
272   body,table { font-family:Tahoma; font-size:10pt }   echo '<tr><td class="key">'.$k2.'</td><td>= <select style="width:144px" name="'.$name.'_'.$k.'">';
273   a { color:#000000; text-decoration:none; }   foreach($d as $di) if($v==$di) echo '<option selected>'.$di; else echo '<option>'.$di;
274   .key { width:85px }   echo '</select></td></tr>';
275   .keytab, input, textarea, select, option { font-size:8pt; font-family:Tahoma }   }
276   .but { font-size:10pt; font-family:Tahoma; height:23px }   else if($d=='hidden') echo '<tr><td colspan=2><input type=hidden name="'.$name.'_'.$k.'" value="'.$v.'"></td></tr>';
277   </style>   else if($d=='1') echo '<tr><td colspan=2><input type=hidden name="'.$name.'_'.$k.'" value="1"></td></tr>';
278   <script language="JavaScript" src="openclose_ajax.js"></script>   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>';
279   <script language="JavaScript">   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>';
280     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>';
281   function openclose(nummer, act)   else if($d=='show') echo '<tr><td class="key">'.$k2.'</td><td>= <b>'.$v.'</b></td></tr>';
282   {   else if($d=='showtime') echo '<tr><td class="key">'.$k2.'</td><td>= <b>'.date('d.m.y - H:i:s', $v).'</b></td></tr>';
283   var bild = document.images['sch_bild_'+nummer];   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>';
284   var absatz = document.all['sch_absatz_'+nummer].style;   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>';
285   var senden = false;   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>';
286     else if($d!='ignore') echo '<tr><td class="key">'.$k2.'</td><td>= <input style="width:144px" name="'.$name.'_'.$k.'" value="'.$v.'"></td></tr>';
287   if(bild.title == 'OPEN')   }
288    
289     if($del) echo '<tr><td class="key">delete</td><td>=<input type=checkbox name="'.$name.'_delete" value="1"></td></tr>';
290     echo '</table>';
291     closeabs();
292    
293     if($name=='cfg_network' && !$wireless) parsearr($name.'_wireless', $arr, $del, true);
294    }
295    function parsearrs($name, $arr)
296    {
297     foreach($arr as $k=>$a)
298     parsearr($name.'_'.$k, $a, true);
299    }
300    
301    ?><head>
302    <title>ALX Config</title>
303    <style>
304     body,table { font-family:Tahoma; font-size:10pt }
305     a { color:#000000; text-decoration:none; }
306     .key { width:85px }
307     .keytab, input, textarea, select, option { font-size:8pt; font-family:Tahoma }
308     .but { font-size:10pt; font-family:Tahoma; height:23px }
309    </style>
310    <script type="text/javascript" src="js/jquery-1.2.6.min.js"></script>
311    <script language="JavaScript" src="openclose_ajax.js"></script>
312    <script language="JavaScript">
313    
314     // opens an url and shows retval in a javascript-alert on current site
315     function urlopen(url,typ) {
316     var $url = url.split("?");
317     $.ajax({type:""+typ+"",url:$url[0],data:$url[1],cache:false,success:function(data){ alert(data); }});
318     }
319    
320    /* ignore this atm, not always working, sometime open does not work
321     function openclose(nummer, act)
322     {
323     var bild = document.images['sch_bild_'+nummer];
324     var absatz = document.all['sch_absatz_'+nummer].style;
325     var senden = false;
326    
327     $("#sch_absatz_"+nummer).toggle(0, function(){
328     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'});}
329     });
330     if(act<=1){ $("#sch_bild_"+nummer).attr({title:'CLOSE',src:'pics/minus.gif'}); }else{ $("#sch_bild_"+nummer).attr({title:'OPEN',src:'pics/plus.gif'}); };
331     }
332    */
333     function openclose(nummer, act)
334     {
335     var bild = document.images['sch_bild_'+nummer];
336     var absatz = document.all['sch_absatz_'+nummer].style;
337     var senden = false;
338    
339     if(bild.title == 'OPEN')
340     {
341     if(act<=1)
342   {   {
343   if(act<=1)   absatz.visibility = 'visible';
344   {   absatz.position = '';
345   absatz.visibility = 'visible';   bild.title = 'CLOSE';
346   absatz.position = '';   bild.src = 'pics/minus.gif';
347   bild.title = 'CLOSE';   senden = true;
348   bild.src = 'pics/minus.gif';   act = 0;
  senden = true;  
  act = 0;  
  }  
349   }   }
350   else   }
351     else
352     {
353     if(act>=1)
354   {   {
355   if(act>=1)   absatz.visibility = 'hidden';
356   {   absatz.position = 'absolute';
357   absatz.visibility = 'hidden';   bild.title = 'OPEN';
358   absatz.position = 'absolute';   bild.src = 'pics/plus.gif';
359   bild.title = 'OPEN';   senden = true;
360   bild.src = 'pics/plus.gif';   act = 2;
  senden = true;  
  act = 2;  
  }  
361   }   }
362     }
  if(senden) sendopenclose(nummer,act);  
  }  
   
  function showhelp(name)  
  { window.open(name, 'HelpWin', 'width=620,height=500,scrollbars=yes'); }  
   
  </script>  
  </head>  
   
  <body><?  
363    
364     if(senden) sendopenclose(nummer,act);
365   //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.'">';  
366    
367   // ANZEIGEN => NON-MULTI TABELLEN   function showhelp(name)
368   echo '<table><tr><td valign=top width="300">';   { window.open(name, 'HelpWin', 'width=620,height=500,scrollbars=yes'); }
369    
370   echo '<b style="font-size:6pt">';  </script>
371   echo '<a href="JavaScript:opencloseall(0);" title="OPEN ALL"><img src="pics/plus.gif" border="0"> OPEN...</a> ';  </head>
  echo '<a href="JavaScript:opencloseall(2);" title="CLOSE ALL"><img src="pics/minus.gif" border="0"> CLOSE...</a> ALL';  
  echo '</b><br><br>';  
372    
373   foreach($tabs as $k=>$t) if(!$multi[$k]) parsearr($t, $data[$t]);  <body><?
374    
375   // ANZEIGEN => MULTI TABELLEN  echo '<form action="show.php" method="post" onreset="return confirm(\'UNDO CHANGES?\')">';
376   echo '</td><td valign=top width="300">';  echo '<input type=hidden name="do_upl" value="1">';
377    echo '<input type=hidden name="id" value="'.$id.'">';
378    
379   foreach($tabs as $k=>$t) if($multi[$k]) parsearrs($t, $data[$t]);  // ANZEIGEN => NON-MULTI TABELLEN
380    echo '<table><tr><td valign=top width="300">';
  echo '<script language="JavaScript">';  
  echo 'function opencloseall(act) { ';  
   
  foreach($absnames as $absname)  
  echo 'openclose("'.$absname.'", act); ';  
   
  echo '}</script>';  
381    
382   // ANZEIGEN => NAVI   echo '<b style="font-size:6pt">';
383   echo '</td><td valign=top>';   echo '<a href="JavaScript:opencloseall(0);" title="OPEN ALL"><img src="pics/plus.gif" border="0"> OPEN...</a> ';
384     echo '<a href="JavaScript:opencloseall(2);" title="CLOSE ALL"><img src="pics/minus.gif" border="0"> CLOSE...</a> ALL';
385     echo '</b><br><br>';
386    
387   // STATUS BESTIMMEN (ON/OFF)   foreach($tabs as $k=>$t) if(!$multi[$k]) parsearr($t, $data[$t]);
388   $conn = sqlfirst('SELECT * FROM state_connected WHERE serial='.$id);  
389   $state = 'Off';  // ANZEIGEN => MULTI TABELLEN
390   if(count($conn)>0)  echo '</td><td valign=top width="300">';
391   {  
392  // passthru($pingcmd." ".$conn['ip']." &> /dev/null && exit 0 || exit 1",$retval);   foreach($tabs as $k=>$t) if($multi[$k]) parsearrs($t, $data[$t]);
393   if($retval==0) $state = 'On';  
394   }   echo '<script language="JavaScript">';
395     echo 'function opencloseall(act) { ';
396    
397     foreach($absnames as $absname)
398     echo 'openclose("'.$absname.'", act); ';
399    
400     echo '}</script>';
401    
402    // ANZEIGEN => NAVI
403    echo '</td><td valign=top>';
404    
405     // STATUS BESTIMMEN (ON/OFF)
406     $conn = sqlfirst('SELECT * FROM state_connected WHERE serial='.$id);
407     $state = 'Off';
408     if(count($conn)>0)
409     {
410     if($retval==0) $state = 'On';
411     }
412    
413     echo '<img src="pics/logo2.jpg"><br><br>';
414    
415     echo '<input class="but" type=submit value="SAVE" style="width:150px"><br><br>';
416    
417     echo '<input class="but" type=submit name="do_add" value="SAVE+ADD COMMENT" style="width:150px"><br>';
418     echo '<input class="but" type=submit name="do_add" value="SAVE+ADD PRINTER" style="width:150px"><br>';
419     echo '<input class="but" type=submit name="do_add" value="SAVE+ADD SESSION" style="width:150px"><br>';
420     echo '<input class="but" type=submit name="do_add" value="SAVE+ADD MODULE" style="width:150px"><br>';
421     echo '<input class="but" type=submit name="do_add" value="SAVE+ADD MENUITEM" style="width:150px"><br><br>';
422    
423    
424     if($id>0) $KILLCAP='DEACTIVATE'; else $KILLCAP='ACTIVATE';
425     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>';
426     echo '<input class="but" type=button value="IMPORT FROM..." style="width:150px" onclick="location.href=\'import.php?id='.$id.'\'"><br>';
427     echo '<input class="but" type=reset value="UNDO CHANGES" style="width:150px"><br><br>';
428    
429   echo '<img src="pics/logo2.jpg"><br><br>';   $davor  = sqlfirst('SELECT mac FROM client_serials WHERE serial='.($id-1),'mac')!=null; if($davor) $disdavor=''; else $disdavor = 'disabled=1';
430     $danach = sqlfirst('SELECT mac FROM client_serials WHERE serial='.($id+1),'mac')!=null; if($danach) $disdanach=''; else $disdanach = 'disabled=1';
431    
432   echo '<input class="but" type=submit value="SAVE" style="width:150px"><br><br>';   echo '<input class="but" type=button '.$disdavor.' value="<" style="width:30px" onclick="location.href=\'show.php?id='.($id-1).'\'">';
433     echo '<input class="but" type=button value="REFRESH" style="width:90px" onclick="location.href=\'show.php?id='.$id.'\'">';
434     echo '<input class="but" type=button '.$disdanach.' value=">" style="width:30px" onclick="location.href=\'show.php?id='.($id+1).'\'">';
435     echo '<br><input class="but" type=button value="INDEX" style="width:150px; font-weight:bold" onclick="location.href=\'index.php\'"><br><br>';
436    
437   echo '<input class="but" type=submit name="do_add" value="SAVE+ADD COMMENT" style="width:150px"><br>';   echo '<br>';
438   echo '<input class="but" type=submit name="do_add" value="SAVE+ADD PRINTER" style="width:150px"><br>';   echo '<div style="border:solid black 1px; padding:5px; background-color:#d5e5ff"><b>';
439   echo '<input class="but" type=submit name="do_add" value="SAVE+ADD SESSION" style="width:150px"><br>';   if($id<0) echo '<b>DEACTIVATED!</b><br><br>';
440   echo '<input class="but" type=submit name="do_add" value="SAVE+ADD MODULE" style="width:150px"><br>';   echo '<u>Serial:</u>&nbsp;&nbsp;#'.$id.'<br>';
441   echo '<input class="but" type=submit name="do_add" value="SAVE+ADD MENUITEM" style="width:150px"><br><br>';   echo '<u>Stand:</u>&nbsp;&nbsp;'.date('H:i:s').'<br>';
442     echo '<u>Status:</u> <img src="pics/'.strtolower($state).'line.gif" align=top> '.$state.'line<br>';
443     if($state=='On')
444   if($id>0) $KILLCAP='DEACTIVATE'; else $KILLCAP='ACTIVATE';   {
445   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>IP:</u> '.$conn['ip'].'<br><br>';
446   echo '<input class="but" type=button value="IMPORT FROM..." style="width:150px" onclick="location.href=\'import.php?id='.$id.'\'"><br>';   if($alxos >= '0.6.0')
447   echo '<input class="but" type=reset value="UNDO CHANGES" style="width:150px"><br><br>';   {
448     $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']);
449   $davor  = sqlfirst('SELECT mac FROM client_serials WHERE serial='.($id-1),'mac')!=null; if($davor) $disdavor=''; else $disdavor = 'disabled=1';   }
450   $danach = sqlfirst('SELECT mac FROM client_serials WHERE serial='.($id+1),'mac')!=null; if($danach) $disdanach=''; else $disdanach = 'disabled=1';   else
   
  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')  
451   {   {
452   echo '<u>IP:</u> '.$conn['ip'].'<br><br>';   $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']);
453   $pubkey = mysql_query('select public_key from ssh_auth_clients where serial='.$id.'');   }
454   while ($row = mysql_fetch_row ($pubkey)) {   $osver = explode(':',$osver[1]);
455   # schreiben der .ssh/known_hosts file mit dem public rsa key des client,   if($osver[0] == '') $osver[0]='unkown';
456   # um die "yes" abfrage zu vermeiden   if($osver[1] == '') $osver[1]='unkown';
  $hostfile = fopen ($home."/.ssh/known_hosts","w");  
  fwrite($hostfile,$conn['ip']." ".$row[0],strlen($row[0])+strlen($conn['ip'])+1);  
  fclose($hostfile);  
457    
458   $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
459   $osver = explode(':',$osver);   if($alxos == '' && $osver[0] >= '0.5.3')
460   }   {
461   if($osver[0] == '') $osver[0]='unkown';   mysql_query('insert into client_version(serial,os,utils) values("'.$id.'","'.$osver[0].'","'.$osver[1].'")
462   if($osver[1] == '') $osver[1]='unkown';   on duplicate key update os="'.$osver[0].'", utils="'.$osver[1].'"');
463                   echo '<u>OS:</u> '.$osver[0].'<br>';   # reload the site
464                   echo '<u>Utils:</u> '.$osver[1].'<br>';   echo '<script type="text/javascript">setTimeout(\'window.location.reload()\',0);</script>';
465     }
466    
467   if($osver[0] <> 'unkown')   echo '<u>OS:</u> '.$osver[0].'<br>';
468   {   echo '<u>Utils:</u> '.$osver[1].'<br>';
469   //write them to database  
470   }   if($osver[0] <> 'unkown')
471     {
472     //write them to database
473   }   }
474     }
475    
476   echo '</b></div>';   echo '</b></div>';
  //echo '<br><br>';  
477    
478   if($state=='On')   if($state=='On')
479     {
480     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>';
481     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>';
482     echo '<br>';
483    
484     if($alxos >= '0.6.0')
485   {   {
486   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>';
487   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>';
488   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\');">';
489                   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\');">';
490                  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\');">';
491   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 '<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\')"><br>';                                        
492   }   }
  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>';  
493    
494   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>';
495     echo 'Remote Shadow:</b></div>';
496     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>';
497     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>';
498     echo '<br>';
499     echo '<div style="border:solid black 1px; padding:5px; background-color:#d5e5ff" align="center"><b>';
500     echo 'Client Update:</b></div>';
501     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>';
502     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>';
503     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>';
504     }
505     else
506     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>';
507    
508     echo '<br><center><a href="share/ChangeLog.html" target="_blank">[ChangeLog]</a> <a href="share/FAQ.html" target="_blank">[FAQs]</a></center>';
509    
510   echo '</td></tr></table>';  echo '</td></tr></table>';
511   echo '</form>';  echo '</form>';
512  ?>  ?>

Legend:
Removed from v.1610  
changed lines
  Added in v.2636