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

Legend:
Removed from v.1612  
changed lines
  Added in v.3285