Magellan Linux

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

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

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

Legend:
Removed from v.1628  
changed lines
  Added in v.2604