diff --git a/plugins/admin/systems/class_workstationService.inc b/plugins/admin/systems/class_workstationService.inc
index debc29975071a289b7c506357435446b0f427180..b62048e8036ba1ec366a6961ce4d1de1d7e6c372 100644 (file)
var $XResolutions = array();
- var $MouseTypes= array("AUTO", "ImPS/2", "PS/2", "Microsoft", "Logitech");
- var $MousePorts= array("AUTO", "/dev/ttyS0", "/dev/ttyS1", "/dev/psaux", "/dev/input/mice");
+ var $MouseTypes= array();
+ var $MousePorts= array();
var $hardware_list= array();
var $used_hardware= array();
plugin::plugin ($config, $dn);
$this->XResolutions= array(
- "default" => _("inherited") ,
"640x480" => "640x480",
"800x600" => "800x600",
"1024x768" => "1024x768",
"1400x1050" => "1400x1050",
"1600x1200" => "1600x1200");
+ if(isset($this->config->data['MAIN']['RESOLUTION_HOOK'])){
+ $file = $this->config->data['MAIN']['RESOLUTION_HOOK'];
+
+ if(is_readable($file)){
+ $str = file_get_contents($file);
+ $lines = split("\n",$str);
+ foreach($lines as $line){
+ $line = trim($line);
+ if(!empty($line)){
+ $this->XResolutions[$line]=$line;
+ }
+ }
+ //natcasesort($this->gotoXResolutions);
+ }else{
+ print_red(sprintf(_("You have specified an external resolution hook which can't be read, please check the permission of the file '%s'."),$file));
+ }
+ }
+
array_unshift($this->XDrivers, "["._("unknown")."]");
-
+
$this->XColordepths= array(
- "default" => _("inherited"),
"8" => "8 " ._("bit"),
"15" => "15 "._("bit"),
"16" => "16 "._("bit"),
"24" => "24 "._("bit"));
- $this->XKbModels['default']= _("inherited");
foreach(array ("btc9000", "chicony", "compaq", "dell", "dell101", "everex",
"flexpro", "geniuscomfy", "hp", "itouch", "jp106", "logicordless",
"logiinetnav", "logiinternet", "macintosh", "microsoft",
$this->XKbModels[$type] = $type;
}
+ $this->MouseTypes= array("ImPS/2" => "ImPS/2", "PS/2" => "PS/2", "Microsoft" => "Microsoft",
+ "Logitech" => "Microsoft");
+
+ $this->MousePorts= array("/dev/ttyS0" =>"/dev/ttyS0",
+ "/dev/ttyS1" => "/dev/ttyS1", "/dev/psaux" =>"/dev/psaux",
+ "/dev/input/mice" => "/dev/input/mice");
+
/* Additional values will be extracted from /etc/gosa/keyboardLayouts */
- $this->XKbLayouts= array ("default"=>_("inherited"),"de"=> "de","intl" =>"intl","us" =>"us");
- $this->XKbVariants= array ("default"=>_("inherited"), "nodeadkeys"=>"nodeadkeys", "basic"=>"basic");
+ $this->XKbLayouts= array ("de"=> "de","intl" =>"intl","us" =>"us");
+ $this->XKbVariants= array ("nodeadkeys"=>"nodeadkeys", "basic"=>"basic");
/* try to read additional keyboard layouts
*/
}
/* Initialize methods */
- $this->XMethods["default"]= _("default");
$this->XMethods["indirect"]= _("show chooser");
$this->XMethods["query"]= _("direct");
-#$this->XMethods["squery"]= _("direct via ssh");
-#$this->XMethods["nquery"]= _("direct via nx");
+ #$this->XMethods["squery"]= _("direct via ssh");
+ #$this->XMethods["nquery"]= _("direct via nx");
$this->XMethods["load"]= _("load balanced");
-#$this->XMethods["sload"]= _("load balanced via ssh");
-#$this->XMethods["nload"]= _("load balanced via nx");
+ #$this->XMethods["sload"]= _("load balanced via ssh");
+ #$this->XMethods["nload"]= _("load balanced via nx");
$this->XMethods["rdp"]= _("Windows RDP");
$this->XMethods["citrix"]= _("ICA client");
$this->hardware_list["automatic"]= _("automatic");
ksort($this->hardware_list);
+
+ /* Load hardware list */
+ $ldap= $this->config->get_ldap_link();
+ $ldap->cd($this->config->current['BASE']);
+ $ldap->search("(&(objectClass=gotoWorkstationTemplate)(member=".$this->dn."))");
+ if ($ldap->count() == 1){
+ $map= array("gotoXResolution", "gotoXColordepth", "gotoXKbModel", "gotoXKbLayout",
+ "gotoXKbVariant", "gotoXMouseType", "gotoXMouseport");
+ $attrs= $ldap->fetch();
+
+ foreach ($map as $name){
+ if (!isset($attrs[$name][0])){
+ continue;
+ }
+
+ switch ($name){
+ case 'gotoXResolution':
+ $this->XResolutions= array_merge(array('default' => _("inherited").' ['.$attrs[$name][0].']' ), $this->XResolutions);
+ break;
+ case 'gotoXColordepth':
+ $this->XColordepths= array_merge(array('default' => _("inherited").' ['.$attrs[$name][0].' '._('Bit').']'), $this->XColordepths);
+ break;
+ case 'gotoXKbModel':
+ $this->XKbModels= array_merge(array('default' => _("inherited").' ['.$attrs[$name][0].']'), $this->XKbModels);
+ break;
+ case 'gotoXKbLayout':
+ $this->XKbLayouts= array_merge(array('default' => _("inherited").' ['.$attrs[$name][0].']' ), $this->XKbLayouts);
+ break;
+ case 'gotoXKbVariant':
+ $this->XKbVariants= array_merge(array('default' => _("inherited").' ['.$attrs[$name][0].']' ), $this->XKbVariants);
+ break;
+ case 'gotoXMouseType':
+ $this->MouseTypes= array_merge(array('AUTO' => _("inherited").' ['.$attrs[$name][0].']' ), $this->MouseTypes);
+ break;
+ case 'gotoXMouseport':
+ $this->MousePorts= array_merge(array('AUTO' => _("inherited").' ['.$attrs[$name][0].']' ), $this->MousePorts);
+ break;
+ }
+
+ }
+
+ }
}
function execute()