Magellan Linux

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

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

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

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