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 1612 by niro, Fri Dec 3 14:06:48 2010 UTC alx-src/branches/alx-web-060/show.php revision 2637 by niro, Thu Jul 7 20:00:42 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>';  
13    
14   if($id<0) echo 'ACTIVATED #'.abs($id);  // get alx version info for
15   else echo 'DEACTIVATED #'.$id;  $alxinfo = sqlfirst('SELECT * FROM client_version WHERE serial='.$id);
16    $alxos = $alxinfo[os];
17   echo '</td></tr></table>';  $alxutils = $alxinfo[utils];
  return true;  
  }  
   
  // 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', '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';  
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['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   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++;  
  }  
  }  
  }  
165   }   }
166    
   
  // EINLESEN DER DATEN AUS SQL-TABELLEN  
167   foreach($tabs as $k=>$t)   foreach($tabs as $k=>$t)
168   {   {
169   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">';  
  }  
170   else   else
171   {   {
172   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;
173   if($helpfile!='') echo ' <a href="JavaScript:showhelp(\''.$helpfile.'\')" title="HELP">[?]</a>';   while(isset($_POST[$t.'_'.$i.'_id']))
174   echo '<br><div id="sch_absatz_'.$heading.'" style="position:absolute; top:0px; visibility:hidden">';   {
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    
184     // reload site
185     header("location: show.php?id=".$id);
186    }
187    
188    // EINLESEN DER DATEN AUS SQL-TABELLEN
189    foreach($tabs as $k=>$t)
190    {
191     if($multi[$k]) $data[$t] = sqlarr('SELECT * FROM '.$t.' WHERE serial='.$id);
192     else $data[$t] = sqlfirst('SELECT * FROM '.$t.' WHERE serial='.$id);
193    }
194    
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   function closeabs()   if( $_SESSION['openclose'][$heading] )
206   {   {
207   // </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>';
208     if($helpfile!='') echo ' <a href="JavaScript:showhelp(\''.$helpfile.'\')" title="HELP">[?]</a>';
209   echo '</div><br>';   echo '<br><div id="sch_absatz_'.$heading.'" style="top:0px; visibility:visible">';
210   }   }
211     else
212     {
213     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     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     }
217    }
218    
219    function closeabs()
220    {
221     // </Absatz> <BR/>
222    
223     echo '</div><br>';
224    }
225    
226   // ANZEIGEN  
227    // ANZEIGEN
228   function parsearr($name, $arr, $del=false, $wireless=false)  
229    function parsearr($name, $arr, $del=false, $wireless=false)
230    {
231     global $drop;
232     global $id;
233     global $alxos;
234    
235     $parts = explode('_',$name); $helpfile='help.php?page='.$parts[1];
236     openabs($name, $helpfile);
237     echo '<table class="keytab">';
238    
239     foreach($arr as $k=>$v)
240   {   {
241   global $drop;   if( (substr($k,0,9)=='wireless_') xor $wireless ) Continue;
242   global $id;  
243   global $alxos;   $d = $drop[$name.'_'.$k]; if($d==null) $d = $drop[$k];
244     $k = str_replace('wireless_', '', $k);
245   $parts = explode('_',$name); $helpfile='help.php?page='.$parts[1];   $k2 = $k;
  openabs($name, $helpfile);  
  echo '<table class="keytab">';  
246    
247   foreach($arr as $k=>$v)   //replace some drivers on 0.5.3 or higher
248     if($alxos >= '0.5.3')
249   {   {
250   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')  
251   {   {
252   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>';
253   $v='intel';   $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(is_array($d))   if($v == 'via')
262   {   {
263   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>';
264   foreach($d as $di) if($v==$di) echo '<option selected>'.$di; else echo '<option>'.$di;   $v='openchrome';
  echo '</select></td></tr>';  
265   }   }
  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>';  
266   }   }
267    
268   if($del) echo '<tr><td class="key">delete</td><td>=<input type=checkbox name="'.$name.'_delete" value="1"></td></tr>';   # tell something about vesa
269   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);  
  }  
270    
271   ?><head>  
272   <title>ALX Config</title>   if(is_array($d))
273   <style>   {
274   body,table { font-family:Tahoma; font-size:10pt }   echo '<tr><td class="key">'.$k2.'</td><td>= <select style="width:144px" name="'.$name.'_'.$k.'">';
275   a { color:#000000; text-decoration:none; }   foreach($d as $di) if($v==$di) echo '<option selected>'.$di; else echo '<option>'.$di;
276   .key { width:85px }   echo '</select></td></tr>';
277   .keytab, input, textarea, select, option { font-size:8pt; font-family:Tahoma }   }
278   .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>';
279   </style>   else if($d=='1') echo '<tr><td colspan=2><input type=hidden name="'.$name.'_'.$k.'" value="1"></td></tr>';
280   <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>';
281   <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>';
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   function openclose(nummer, act)   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   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>';
286   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>';
287   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>';
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   if(bild.title == 'OPEN')   }
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(bild.title == 'OPEN')
342     {
343     if(act<=1)
344   {   {
345   if(act<=1)   absatz.visibility = 'visible';
346   {   absatz.position = '';
347   absatz.visibility = 'visible';   bild.title = 'CLOSE';
348   absatz.position = '';   bild.src = 'pics/minus.gif';
349   bild.title = 'CLOSE';   senden = true;
350   bild.src = 'pics/minus.gif';   act = 0;
  senden = true;  
  act = 0;  
  }  
351   }   }
352   else   }
353     else
354     {
355     if(act>=1)
356   {   {
357   if(act>=1)   absatz.visibility = 'hidden';
358   {   absatz.position = 'absolute';
359   absatz.visibility = 'hidden';   bild.title = 'OPEN';
360   absatz.position = 'absolute';   bild.src = 'pics/plus.gif';
361   bild.title = 'OPEN';   senden = true;
362   bild.src = 'pics/plus.gif';   act = 2;
  senden = true;  
  act = 2;  
  }  
363   }   }
364     }
  if(senden) sendopenclose(nummer,act);  
  }  
   
  function showhelp(name)  
  { window.open(name, 'HelpWin', 'width=620,height=500,scrollbars=yes'); }  
   
  </script>  
  </head>  
   
  <body><?  
365    
366     if(senden) sendopenclose(nummer,act);
367   //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.'">';  
368    
369   // ANZEIGEN => NON-MULTI TABELLEN   function showhelp(name)
370   echo '<table><tr><td valign=top width="300">';   { window.open(name, 'HelpWin', 'width=620,height=500,scrollbars=yes'); }
371    
372   echo '<b style="font-size:6pt">';  </script>
373   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>';  
374    
375   foreach($tabs as $k=>$t) if(!$multi[$k]) parsearr($t, $data[$t]);  <body><?
376    
377   // ANZEIGEN => MULTI TABELLEN  echo '<form action="show.php" method="post" onreset="return confirm(\'UNDO CHANGES?\')">';
378   echo '</td><td valign=top width="300">';  echo '<input type=hidden name="do_upl" value="1">';
379    echo '<input type=hidden name="id" value="'.$id.'">';
380    
381   foreach($tabs as $k=>$t) if($multi[$k]) parsearrs($t, $data[$t]);  // ANZEIGEN => NON-MULTI TABELLEN
382    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>';  
383    
384   // ANZEIGEN => NAVI   echo '<b style="font-size:6pt">';
385   echo '</td><td valign=top>';   echo '<a href="JavaScript:opencloseall(0);" title="OPEN ALL"><img src="pics/plus.gif" border="0"> OPEN...</a> ';
386     echo '<a href="JavaScript:opencloseall(2);" title="CLOSE ALL"><img src="pics/minus.gif" border="0"> CLOSE...</a> ALL';
387     echo '</b><br><br>';
388    
389   // STATUS BESTIMMEN (ON/OFF)   foreach($tabs as $k=>$t) if(!$multi[$k]) parsearr($t, $data[$t]);
390   $conn = sqlfirst('SELECT * FROM state_connected WHERE serial='.$id);  
391   $state = 'Off';  // ANZEIGEN => MULTI TABELLEN
392   if(count($conn)>0)  echo '</td><td valign=top width="300">';
393   {  
394  // passthru($pingcmd." ".$conn['ip']." &> /dev/null && exit 0 || exit 1",$retval);   foreach($tabs as $k=>$t) if($multi[$k]) parsearrs($t, $data[$t]);
395   if($retval==0) $state = 'On';  
396   }   echo '<script language="JavaScript">';
397     echo 'function opencloseall(act) { ';
398    
399     foreach($absnames as $absname)
400     echo 'openclose("'.$absname.'", act); ';
401    
402     echo '}</script>';
403    
404    // ANZEIGEN => NAVI
405    echo '</td><td valign=top>';
406    
407     // STATUS BESTIMMEN (ON/OFF)
408     $conn = sqlfirst('SELECT * FROM state_connected WHERE serial='.$id);
409     $state = 'Off';
410     if(count($conn)>0)
411     {
412     if($retval==0) $state = 'On';
413     }
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    
  echo '<img src="pics/logo2.jpg"><br><br>';  
425    
426   echo '<input class="but" type=submit value="SAVE" style="width:150px"><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 name="do_add" value="SAVE+ADD COMMENT" style="width:150px"><br>';   $davor  = sqlfirst('SELECT mac FROM client_serials WHERE serial='.($id-1),'mac')!=null; if($davor) $disdavor=''; else $disdavor = 'disabled=1';
432   echo '<input class="but" type=submit name="do_add" value="SAVE+ADD PRINTER" style="width:150px"><br>';   $danach = sqlfirst('SELECT mac FROM client_serials WHERE serial='.($id+1),'mac')!=null; if($danach) $disdanach=''; else $disdanach = 'disabled=1';
433   echo '<input class="but" type=submit name="do_add" value="SAVE+ADD SESSION" style="width:150px"><br>';  
434   echo '<input class="but" type=submit name="do_add" value="SAVE+ADD MODULE" 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 MENUITEM" style="width:150px"><br><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=button '.$disdanach.' value=">" style="width:30px" onclick="location.href=\'show.php?id='.($id+1).'\'">';
437     echo '<br><input class="but" type=button value="INDEX" style="width:150px; font-weight:bold" onclick="location.href=\'index.php\'"><br><br>';
438   if($id>0) $KILLCAP='DEACTIVATE'; else $KILLCAP='ACTIVATE';  
439   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 '<br>';
440   echo '<input class="but" type=button value="IMPORT FROM..." style="width:150px" onclick="location.href=\'import.php?id='.$id.'\'"><br>';   echo '<div style="border:solid black 1px; padding:5px; background-color:#d5e5ff"><b>';
441   echo '<input class="but" type=reset value="UNDO CHANGES" style="width:150px"><br><br>';   if($id<0) echo '<b>DEACTIVATED!</b><br><br>';
442     echo '<u>Serial:</u>&nbsp;&nbsp;#'.$id.'<br>';
443   $davor  = sqlfirst('SELECT mac FROM client_serials WHERE serial='.($id-1),'mac')!=null; if($davor) $disdavor=''; else $disdavor = 'disabled=1';   echo '<u>Stand:</u>&nbsp;&nbsp;'.date('H:i:s').'<br>';
444   $danach = sqlfirst('SELECT mac FROM client_serials WHERE serial='.($id+1),'mac')!=null; if($danach) $disdanach=''; else $disdanach = 'disabled=1';   echo '<u>Status:</u> <img src="pics/'.strtolower($state).'line.gif" align=top> '.$state.'line<br>';
445     if($state=='On')
446   echo '<input class="but" type=button '.$disdavor.' value="<" style="width:30px" onclick="location.href=\'show.php?id='.($id-1).'\'">';   {
447   echo '<input class="but" type=button value="REFRESH" style="width:90px" onclick="location.href=\'show.php?id='.$id.'\'">';   echo '<u>IP:</u> '.$conn['ip'].'<br><br>';
448   echo '<input class="but" type=button '.$disdanach.' value=">" style="width:30px" onclick="location.href=\'show.php?id='.($id+1).'\'">';   if($alxos >= '0.6.0')
  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 '<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.1612  
changed lines
  Added in v.2637