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 1650 by niro, Fri Jan 21 00:01:27 2011 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;
28   if($alxos >= '0.5.3')  
29   {   echo '</td></tr></table>';
30   $drop['cfg_graphic_module'] = array('vesa', 'ati', 'cirrus', 'i710', 'intel', 'nv', 'mach64', 'mga', 'openchrome', 'radeon', 's3', 's3virge', 'savage', 'sis', 'trident', 'tseng');   return true;
31    }
32    
33    // 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     return $arr;
163   }   }
164   else  
165     foreach($tabs as $k=>$t)
166   {   {
167   $drop['cfg_graphic_module'] = array('vesa', 'ati', 'cirrus', 'i810', 'i710', 'nv', 'mga', 'r128', 'radeon', 's3', 's3virge', 'savage', 'sis', 'trident', 'tseng', 'via');   if(!$multi[$k]) mysql_query('UPDATE '.$t.' SET '.updatestr(postarr($t)).' WHERE serial='.$id);
168     else
169     {
170     $i=0;
171     while(isset($_POST[$t.'_'.$i.'_id']))
172     {
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   $drop['resolution'] = array('640x480', '800x600', '1024x768', '1280x960', '1280x1024', '1360x768', '1366x768', '1400x1050', '1440x900', '1600x1200', '1680x1050');  
182   $drop['depth'] = array('24', '16', '8');   // reload site
183   $drop['mouse'] = array('Auto', 'IMPS/2', 'PS/2');   header("location: show.php?id=".$id);
184   $drop['keyboard'] = array('PC105');  }
185   $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');  
186   $drop['networking'] = array('dhcp', 'static');  // EINLESEN DER DATEN AUS SQL-TABELLEN
187   $drop['port'] = array('lpt1', 'usb1', 'usb2', 'com1', 'com2', 'lpd', 'socket', 'ipp');  foreach($tabs as $k=>$t)
188   $drop['location'] = sqlarr('SELECT location FROM client_locations', '', 'location');  {
189   $drop['id'] = 'hidden';   if($multi[$k]) $data[$t] = sqlarr('SELECT * FROM '.$t.' WHERE serial='.$id);
190   $drop['flg_modified'] = '1';   else $data[$t] = sqlfirst('SELECT * FROM '.$t.' WHERE serial='.$id);
191   $drop['serial'] = 'ignore';  }
192   if($alxos>='0.5.3')  
193    // ANZEIGEN - KLAPPFUNKTIONEN
194    $absnames = array();
195    
196    function openabs($heading, $helpfile='')
197    {
198     global $absnames;
199     $absnames[] = $heading;
200    
201     // <AufZuLink> <Bild/> <Heading/> </AufZuLink><BR/> <Absatz>
202    
203     if( $_SESSION['openclose'][$heading] )
204   {   {
205   $drop['monitorid'] = 'ignore';   echo '<a href="JavaScript:openclose(\''.$heading.'\',1);"><img border="0" src="pics/minus.gif" title="CLOSE" id="sch_bild_'.$heading.'"> <b>['.$heading.']</b></a>';
206   $drop['refresh_rate'] = array('','60','75','85','100');   if($helpfile!='') echo ' <a href="JavaScript:showhelp(\''.$helpfile.'\')" title="HELP">[?]</a>';
207     echo '<br><div id="sch_absatz_'.$heading.'" style="top:0px; visibility:visible">';
208   }   }
209   else   else
210   {   {
211   $drop['monitorid'] = 'monitorid';   echo '<a href="JavaScript:openclose(\''.$heading.'\',1);"><img border="0" src="pics/plus.gif" title="OPEN" id="sch_bild_'.$heading.'"> <b>['.$heading.']</b></a>';
212   $drop['refresh_rate'] = 'ignore';   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   $drop['hostname'] = 'bold';   }
215   $drop['session'] = 'bold';  }
216   $drop['cfg_autostart_session'] = 'filename';  
217   $drop['mtime'] = 'showtime';  function closeabs()
218   $drop['mac'] = 'show';  {
219   $drop['client_serials_serial'] = 'show';   // </Absatz> <BR/>
220   $drop['password'] = 'password';  
221   $drop['shell'] = 'password';   echo '</div><br>';
222   $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';  
223    
  // GGF. NEUEN DATENSATZ EINFÜGEN  
  if(isset($_POST['do_add']))  
  {  
  list($bla,$what) = explode(' ',$_POST['do_add']);  
  if($what=='COMMENT') sqladd('cfg_comments', array('serial'=>$id));  
  else if($what=='PRINTER') sqladd('cfg_printers', array('serial'=>$id));  
  else if($what=='MODULE') sqladd('cfg_modules', array('serial'=>$id));  
  else if($what=='SESSION') sqladd('cfg_sessions', array('domain'=>'DOM_AKA_NT', 'browseradrs'=>'128.20.50.50;128.20.50.66;128.20.50.71;128.20.50.46;128.20.100.31;128.20.100.32', 'serial'=>$id));  
  else if($what=='MENUITEM') sqladd('cfg_other_menuitems', array('serial'=>$id));  
  }  
224    
225    // ANZEIGEN
226    
227   // GGF. SPEICHERN  function parsearr($name, $arr, $del=false, $wireless=false)
228   if($_POST['do_upl'])  {
229   {   global $drop;
230   function postarr($prefix)   global $id;
231   {   global $alxos;
  $prefix.='_';  
  $prelen = strlen($prefix);  
232    
233   $arr = array();   $parts = explode('_',$name); $helpfile='help.php?page='.$parts[1];
234   foreach($_POST as $k=>$v)   openabs($name, $helpfile);
235   if((substr($k,0,$prelen)==$prefix) && ($v!='KEEPPASS'))   echo '<table class="keytab">';
  $arr[substr($k,$prelen)] = stripslashes($v);  
236    
237   return $arr;   foreach($arr as $k=>$v)
238   }   {
239     if( (substr($k,0,9)=='wireless_') xor $wireless ) Continue;
240    
241     $d = $drop[$name.'_'.$k]; if($d==null) $d = $drop[$k];
242     $k = str_replace('wireless_', '', $k);
243     $k2 = $k;
244    
245   foreach($tabs as $k=>$t)   //replace some drivers on 0.5.3 or higher
246     if($alxos >= '0.5.3')
247   {   {
248   if(!$multi[$k]) mysql_query('UPDATE '.$t.' SET '.updatestr(postarr($t)).' WHERE serial='.$id);   if($v == 'i810')
249   else   {
250     echo '<br><font color="#FF0000">Replaced "i810" with "intel" - Please press SAVE!</font><br>';
251     $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($v == 'via')
260   {   {
261   $i=0;   echo '<br><font color="#FF0000">Replaced "via" with "openchrome" - Please press SAVE!</font><br>';
262   while(isset($_POST[$t.'_'.$i.'_id']))   $v='openchrome';
263   {   }
  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++;  
  }  
  }  
264   }   }
  }  
265    
266     # tell something about vesa
267     if ($v == 'vesa') echo '<br><font color="#FF0000">Warning: "vesa" graphic module doesn\'t support any resolutions higher than 1024x786x16@60hz!</font><br>';
268    
  // EINLESEN DER DATEN AUS SQL-TABELLEN  
  foreach($tabs as $k=>$t)  
  {  
  if($multi[$k]) $data[$t] = sqlarr('SELECT * FROM '.$t.' WHERE serial='.$id);  
  else $data[$t] = sqlfirst('SELECT * FROM '.$t.' WHERE serial='.$id);  
  }  
269    
270   // ANZEIGEN - KLAPPFUNKTIONEN   if(is_array($d))
271   $absnames = array();   {
272     echo '<tr><td class="key">'.$k2.'</td><td>= <select style="width:144px" name="'.$name.'_'.$k.'">';
273   function openabs($heading, $helpfile='')   foreach($d as $di) if($v==$di) echo '<option selected>'.$di; else echo '<option>'.$di;
274   {   echo '</select></td></tr>';
275   global $absnames;   }
276   $absnames[] = $heading;   else if($d=='hidden') echo '<tr><td colspan=2><input type=hidden name="'.$name.'_'.$k.'" value="'.$v.'"></td></tr>';
277     else if($d=='1') echo '<tr><td colspan=2><input type=hidden name="'.$name.'_'.$k.'" value="1"></td></tr>';
278   // <AufZuLink> <Bild/> <Heading/> </AufZuLink><BR/> <Absatz>   else if($d=='monitorid') echo '<tr><td class="key">'.$k2.'</td><td>= <input type=button style="width:24px" onclick="window.open(\'monitor.php?id='.$id.'\', \'MonitorWin\', \'width=350,height=200\')" value="..."></td>';
279     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     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     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     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     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     }
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( $_SESSION['openclose'][$heading] )   if(bild.title == 'OPEN')
340   {   {
341   echo '<a href="JavaScript:openclose(\''.$heading.'\',1);"><img border="0" src="pics/minus.gif" title="CLOSE" id="sch_bild_'.$heading.'"> <b>['.$heading.']</b></a>';   if(act<=1)
342   if($helpfile!='') echo ' <a href="JavaScript:showhelp(\''.$helpfile.'\')" title="HELP">[?]</a>';   {
343   echo '<br><div id="sch_absatz_'.$heading.'" style="top:0px; visibility:visible">';   absatz.visibility = 'visible';
344     absatz.position = '';
345     bild.title = 'CLOSE';
346     bild.src = 'pics/minus.gif';
347     senden = true;
348     act = 0;
349     }
350   }   }
351   else   else
352   {   {
353   echo '<a href="JavaScript:openclose(\''.$heading.'\',1);"><img border="0" src="pics/plus.gif" title="OPEN" id="sch_bild_'.$heading.'"> <b>['.$heading.']</b></a>';   if(act>=1)
354   if($helpfile!='') echo ' <a href="JavaScript:showhelp(\''.$helpfile.'\')" title="HELP">[?]</a>';   {
355   echo '<br><div id="sch_absatz_'.$heading.'" style="position:absolute; top:0px; visibility:hidden">';   absatz.visibility = 'hidden';
356     absatz.position = 'absolute';
357     bild.title = 'OPEN';
358     bild.src = 'pics/plus.gif';
359     senden = true;
360     act = 2;
361     }
362   }   }
  }  
   
  function closeabs()  
  {  
  // </Absatz> <BR/>  
363    
364   echo '</div><br>';   if(senden) sendopenclose(nummer,act);
365   }   }
   
366    
367   // ANZEIGEN   function showhelp(name)
368     { window.open(name, 'HelpWin', 'width=620,height=500,scrollbars=yes'); }
  function parsearr($name, $arr, $del=false, $wireless=false)  
  {  
  global $drop;  
  global $id;  
  global $alxos;  
   
  $parts = explode('_',$name); $helpfile='help.php?page='.$parts[1];  
  openabs($name, $helpfile);  
  echo '<table class="keytab">';  
369    
370   foreach($arr as $k=>$v)  </script>
371   {  </head>
  if( (substr($k,0,9)=='wireless_') xor $wireless ) Continue;  
   
  $d = $drop[$name.'_'.$k]; if($d==null) $d = $drop[$k];  
  $k = str_replace('wireless_', '', $k);  
  $k2 = $k;  
372    
373   //replace some drivers on 0.5.3 or higher  <body><?
  if($alxos >= '0.5.3')  
  {  
  if($v == 'i810')  
  {  
  echo '<br><font color="#FF0000">Replaced "i810" with "intel" - Please press SAVE!</font><br>';  
  $v='intel';  
  }  
  if($v == 'r128')  
  {  
  echo '<br><font color="#FF0000">Replaced "r128" with "vesa" - Please press SAVE!</font><br>';  
  $v='vesa';  
  }  
   
  if($v == 'via')  
  {  
  echo '<br><font color="#FF0000">Replaced "via" with "openchrome" - Please press SAVE!</font><br>';  
  $v='openchrome';  
  }  
  }  
   
  # tell something about vesa  
  if ($v == 'vesa') echo '<br><font color="#FF0000">Warning: "vesa" graphic module doesn\'t support any resolutions higher than 1020x786x16@60hz!</font><br>';  
374    
375    echo '<form action="show.php" method="post" onreset="return confirm(\'UNDO CHANGES?\')">';
376    echo '<input type=hidden name="do_upl" value="1">';
377    echo '<input type=hidden name="id" value="'.$id.'">';
378    
379   if(is_array($d))  // ANZEIGEN => NON-MULTI TABELLEN
380   {  echo '<table><tr><td valign=top width="300">';
  echo '<tr><td class="key">'.$k2.'</td><td>= <select style="width:144px" name="'.$name.'_'.$k.'">';  
  foreach($d as $di) if($v==$di) echo '<option selected>'.$di; else echo '<option>'.$di;  
  echo '</select></td></tr>';  
  }  
  else if($d=='hidden') echo '<tr><td colspan=2><input type=hidden name="'.$name.'_'.$k.'" value="'.$v.'"></td></tr>';  
  else if($d=='1') echo '<tr><td colspan=2><input type=hidden name="'.$name.'_'.$k.'" value="1"></td></tr>';  
  else if($d=='monitorid') echo '<tr><td class="key">'.$k2.'</td><td>= <input type=button style="width:24px" onclick="window.open(\'monitor.php?id='.$id.'\', \'MonitorWin\', \'width=350,height=200\')" value="..."></td>';  
  else if($d=='bold') echo '<tr><td class="key">'.$k2.'</td><td>= <input style="width:144px;font-weight:bold" name="'.$name.'_'.$k.'" value="'.$v.'"></td></tr>';  
  else if($d=='filename') echo '<tr><td class="key">filename</td><td>= <input style="width:144px;font-weight:bold" name="'.$name.'_'.$k.'" value="'.$v.'"></td></tr>';  
  else if($d=='show') echo '<tr><td class="key">'.$k2.'</td><td>= <b>'.$v.'</b></td></tr>';  
  else if($d=='showtime') echo '<tr><td class="key">'.$k2.'</td><td>= <b>'.date('d.m.y - H:i:s', $v).'</b></td></tr>';  
  else if($d=='password' && $v=='') echo '<tr><td class="key">'.$k2.'</td><td>= <input type=password style="width:144px" name="'.$name.'_'.$k.'" value=""></td></tr>';  
  else if($d=='password') echo '<tr><td class="key">'.$k2.'</td><td>= <input type=password style="width:144px" name="'.$name.'_'.$k.'" value="KEEPPASS"></td></tr>';  
  else if($d=='txt') echo '<tr><td colspan=2><textarea style="width:240px; background-color:#d5e5ff" rows=4 name="'.$name.'_'.$k.'">'.$v.'</textarea></td></tr>';  
  else if($d!='ignore') echo '<tr><td class="key">'.$k2.'</td><td>= <input style="width:144px" name="'.$name.'_'.$k.'" value="'.$v.'"></td></tr>';  
  }  
381    
382   if($del) echo '<tr><td class="key">delete</td><td>=<input type=checkbox name="'.$name.'_delete" value="1"></td></tr>';   echo '<b style="font-size:6pt">';
383   echo '</table>';   echo '<a href="JavaScript:opencloseall(0);" title="OPEN ALL"><img src="pics/plus.gif" border="0"> OPEN...</a> ';
384   closeabs();   echo '<a href="JavaScript:opencloseall(2);" title="CLOSE ALL"><img src="pics/minus.gif" border="0"> CLOSE...</a> ALL';
385     echo '</b><br><br>';
  if($name=='cfg_network' && !$wireless) parsearr($name.'_wireless', $arr, $del, true);  
  }  
  function parsearrs($name, $arr)  
  {  
  foreach($arr as $k=>$a)  
  parsearr($name.'_'.$k, $a, true);  
  }  
386    
387   ?><head>   foreach($tabs as $k=>$t) if(!$multi[$k]) parsearr($t, $data[$t]);
  <title>ALX Config</title>  
  <style>  
  body,table { font-family:Tahoma; font-size:10pt }  
  a { color:#000000; text-decoration:none; }  
  .key { width:85px }  
  .keytab, input, textarea, select, option { font-size:8pt; font-family:Tahoma }  
  .but { font-size:10pt; font-family:Tahoma; height:23px }  
  </style>  
  <script language="JavaScript" src="openclose_ajax.js"></script>  
  <script language="JavaScript">  
   
  function openclose(nummer, act)  
  {  
  var bild = document.images['sch_bild_'+nummer];  
  var absatz = document.all['sch_absatz_'+nummer].style;  
  var senden = false;  
   
  if(bild.title == 'OPEN')  
  {  
  if(act<=1)  
  {  
  absatz.visibility = 'visible';  
  absatz.position = '';  
  bild.title = 'CLOSE';  
  bild.src = 'pics/minus.gif';  
  senden = true;  
  act = 0;  
  }  
  }  
  else  
  {  
  if(act>=1)  
  {  
  absatz.visibility = 'hidden';  
  absatz.position = 'absolute';  
  bild.title = 'OPEN';  
  bild.src = 'pics/plus.gif';  
  senden = true;  
  act = 2;  
  }  
  }  
   
  if(senden) sendopenclose(nummer,act);  
  }  
   
  function showhelp(name)  
  { window.open(name, 'HelpWin', 'width=620,height=500,scrollbars=yes'); }  
   
  </script>  
  </head>  
   
  <body><?  
   
   
  //echo '<body style="background-image:URL(logo.jpg);background-repeat:no-repeat; background-position:0px 0px; margin-top:25px">';  
  echo '<form action="show.php" method=post onreset="return confirm(\'UNDO CHANGES?\')">';  
  echo '<input type=hidden name="do_upl" value="1">';  
  echo '<input type=hidden name="id" value="'.$id.'">';  
388    
389   // ANZEIGEN => NON-MULTI TABELLEN  // ANZEIGEN => MULTI TABELLEN
390   echo '<table><tr><td valign=top width="300">';  echo '</td><td valign=top width="300">';
391    
392   echo '<b style="font-size:6pt">';   foreach($tabs as $k=>$t) if($multi[$k]) parsearrs($t, $data[$t]);
  echo '<a href="JavaScript:opencloseall(0);" title="OPEN ALL"><img src="pics/plus.gif" border="0"> OPEN...</a> ';  
  echo '<a href="JavaScript:opencloseall(2);" title="CLOSE ALL"><img src="pics/minus.gif" border="0"> CLOSE...</a> ALL';  
  echo '</b><br><br>';  
393    
394   foreach($tabs as $k=>$t) if(!$multi[$k]) parsearr($t, $data[$t]);   echo '<script language="JavaScript">';
395     echo 'function opencloseall(act) { ';
396    
397   // ANZEIGEN => MULTI TABELLEN   foreach($absnames as $absname)
398   echo '</td><td valign=top width="300">';   echo 'openclose("'.$absname.'", act); ';
399    
400   foreach($tabs as $k=>$t) if($multi[$k]) parsearrs($t, $data[$t]);   echo '}</script>';
   
  echo '<script language="JavaScript">';  
  echo 'function opencloseall(act) { ';  
   
  foreach($absnames as $absname)  
  echo 'openclose("'.$absname.'", act); ';  
   
  echo '}</script>';  
401    
402   // ANZEIGEN => NAVI  // ANZEIGEN => NAVI
403   echo '</td><td valign=top>';  echo '</td><td valign=top>';
404    
405   // STATUS BESTIMMEN (ON/OFF)   // STATUS BESTIMMEN (ON/OFF)
406   $conn = sqlfirst('SELECT * FROM state_connected WHERE serial='.$id);   $conn = sqlfirst('SELECT * FROM state_connected WHERE serial='.$id);
407   $state = 'Off';   $state = 'Off';
408   if(count($conn)>0)   if(count($conn)>0)
409   {   {
410  // passthru($pingcmd." ".$conn['ip']." &> /dev/null && exit 0 || exit 1",$retval);   if($retval==0) $state = 'On';
411   if($retval==0) $state = 'On';   }
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   echo '<img src="pics/logo2.jpg"><br><br>';   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 '<input class="but" type=submit value="SAVE" style="width:150px"><br><br>';   $davor  = sqlfirst('SELECT mac FROM client_serials WHERE serial='.($id-1),'mac')!=null; if($davor) $disdavor=''; else $disdavor = 'disabled=1';
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 name="do_add" value="SAVE+ADD COMMENT" style="width:150px"><br>';   echo '<input class="but" type=button '.$disdavor.' value="<" style="width:30px" onclick="location.href=\'show.php?id='.($id-1).'\'">';
433   echo '<input class="but" type=submit name="do_add" value="SAVE+ADD PRINTER" style="width:150px"><br>';   echo '<input class="but" type=button value="REFRESH" style="width:90px" onclick="location.href=\'show.php?id='.$id.'\'">';
434   echo '<input class="but" type=submit name="do_add" value="SAVE+ADD SESSION" style="width:150px"><br>';   echo '<input class="but" type=button '.$disdanach.' value=">" style="width:30px" onclick="location.href=\'show.php?id='.($id+1).'\'">';
435   echo '<input class="but" type=submit name="do_add" value="SAVE+ADD MODULE" style="width:150px"><br>';   echo '<br><input class="but" type=button value="INDEX" style="width:150px; font-weight:bold" onclick="location.href=\'index.php\'"><br><br>';
436   echo '<input class="but" type=submit name="do_add" value="SAVE+ADD MENUITEM" style="width:150px"><br><br>';  
437     echo '<br>';
438     echo '<div style="border:solid black 1px; padding:5px; background-color:#d5e5ff"><b>';
439   if($id>0) $KILLCAP='DEACTIVATE'; else $KILLCAP='ACTIVATE';   if($id<0) echo '<b>DEACTIVATED!</b><br><br>';
440   echo '<input class="but" type=button value="'.$KILLCAP.'" style="width:150px" onclick="if(confirm(\''.$KILLCAP.' CLIENT #'.abs($id).' ?\')) { window.open(\'show.php?id='.$id.'&kill=1\', \'DeactWin\', \'width=200,height=100\'); location.href=\'index.php\'; }"><br>';   echo '<u>Serial:</u>&nbsp;&nbsp;#'.$id.'<br>';
441   echo '<input class="but" type=button value="IMPORT FROM..." style="width:150px" onclick="location.href=\'import.php?id='.$id.'\'"><br>';   echo '<u>Stand:</u>&nbsp;&nbsp;'.date('H:i:s').'<br>';
442   echo '<input class="but" type=reset value="UNDO CHANGES" style="width:150px"><br><br>';   echo '<u>Status:</u> <img src="pics/'.strtolower($state).'line.gif" align=top> '.$state.'line<br>';
443     if($state=='On')
444   $davor  = sqlfirst('SELECT mac FROM client_serials WHERE serial='.($id-1),'mac')!=null; if($davor) $disdavor=''; else $disdavor = 'disabled=1';   {
445   $danach = sqlfirst('SELECT mac FROM client_serials WHERE serial='.($id+1),'mac')!=null; if($danach) $disdanach=''; else $disdanach = 'disabled=1';   echo '<u>IP:</u> '.$conn['ip'].'<br><br>';
446     if($alxos >= '0.6.0')
  echo '<input class="but" type=button '.$disdavor.' value="<" style="width:30px" onclick="location.href=\'show.php?id='.($id-1).'\'">';  
  echo '<input class="but" type=button value="REFRESH" style="width:90px" onclick="location.href=\'show.php?id='.$id.'\'">';  
  echo '<input class="but" type=button '.$disdanach.' value=">" style="width:30px" onclick="location.href=\'show.php?id='.($id+1).'\'">';  
  echo '<br><input class="but" type=button value="INDEX" style="width:150px; font-weight:bold" onclick="location.href=\'index.php\'"><br><br>';  
   
  echo '<br><br>';  
  echo '<div style="border:solid black 1px; padding:5px; background-color:#d5e5ff"><b>';  
  if($id<0) echo '<b>DEACTIVATED!</b><br><br>';  
  echo '<u>Serial:</u>&nbsp;&nbsp;#'.$id.'<br>';  
  echo '<u>Stand:</u>&nbsp;&nbsp;'.date('H:i:s').'<br>';  
  echo '<u>Status:</u> <img src="pics/'.strtolower($state).'line.gif" align=top> '.$state.'line<br>';  
  if($state=='On')  
447   {   {
448   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']);
449   $pubkey = mysql_query('select public_key from ssh_auth_clients where serial='.$id.'');   }
450   while ($row = mysql_fetch_row ($pubkey)) {   else
451   # schreiben der .ssh/known_hosts file mit dem public rsa key des client,   {
452   # 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']);
453   $hostfile = fopen ($home."/.ssh/known_hosts","w");   }
454   fwrite($hostfile,$conn['ip']." ".$row[0],strlen($row[0])+strlen($conn['ip'])+1);   $osver = explode(':',$osver[1]);
455   fclose($hostfile);   if($osver[0] == '') $osver[0]='unkown';
456     if($osver[1] == '') $osver[1]='unkown';
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     # reload the site
464   # update os string in database   echo '<script type="text/javascript">setTimeout(\'window.location.reload()\',0);</script>';
465   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>';  
  }  
466    
467   echo '<u>OS:</u> '.$osver[0].'<br>';   echo '<u>OS:</u> '.$osver[0].'<br>';
468   echo '<u>Utils:</u> '.$osver[1].'<br>';   echo '<u>Utils:</u> '.$osver[1].'<br>';
469    
470   if($osver[0] <> 'unkown')   if($osver[0] <> 'unkown')
471   {   {
472   //write them to database   //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 '<input class="but" type=button value="SSH" style="width:150px" onclick="window.open(\'mindterm.php?ip='.$conn['ip'].'\', \'MindTerm\', \'width=200,height=100\')"><br>';  
  echo '<br>';  
                  echo '<div style="border:solid black 1px; padding:5px; background-color:#d5e5ff" align="center"><b>';  
                 echo 'Client Update:</b></div>';  
  echo '<input class="but" type=button value="UPDATE MAGE DB" style="width:150px" onclick="if(confirm(\'UPDATE DB ON CLIENT #'.$id.' ?\')) window.open(\'mageupgrade.php?client='.$id.'&ip='.$conn['ip'].'&op=update\', \'ShutdownWin\', \'width=800,height=600\')"><br>';  
  echo '<input class="but" type=button value="CALC DEPS" style="width:150px" onclick="if(confirm(\'CALC DEPS FOR CLIENT #'.$id.' ?\')) window.open(\'mageupgrade.php?client='.$id.'&ip='.$conn['ip'].'&op=calc\', \'ShutdownWin\', \'width=800,height=600\')"><br>';  
  echo '<input class="but" type=button value="UPGRADE CLIENT" style="width:150px" onclick="if(confirm(\'UPGRADE ALL PACKAGES ON CLIENT #'.$id.' ?\')) window.open(\'mageupgrade.php?client='.$id.'&ip='.$conn['ip'].'&op=upgrade\', \'ShutdownWin\', \'width=800,height=600\');setTimeout(\'window.location.reload()\',0);"><br>';  
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.1650  
changed lines
  Added in v.2636