diff --git a/plugins/admin/systems/class_workstationService.inc b/plugins/admin/systems/class_workstationService.inc
index debc29975071a289b7c506357435446b0f427180..b8dbddd00100bd4cbbd267921cd93eebab24d785 100644 (file)
var $XResolutions = array();
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();
var $hardware_list= array();
var $used_hardware= array();
var $XKbLayouts =array();
var $XKbVariants =array();
var $XKbLayouts =array();
var $XKbVariants =array();
- function workservice ($config, $dn= NULL)
+ function workservice ($config, $dn= NULL, $parent= NULL)
{
{
- plugin::plugin ($config, $dn);
+ plugin::plugin ($config, $dn, $parent);
$this->XResolutions= array(
$this->XResolutions= array(
- "default" => _("inherited") ,
"640x480" => "640x480",
"800x600" => "800x600",
"1024x768" => "1024x768",
"640x480" => "640x480",
"800x600" => "800x600",
"1024x768" => "1024x768",
"1400x1050" => "1400x1050",
"1600x1200" => "1600x1200");
"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")."]");
array_unshift($this->XDrivers, "["._("unknown")."]");
-
+
$this->XColordepths= array(
$this->XColordepths= array(
- "default" => _("inherited"),
"8" => "8 " ._("bit"),
"15" => "15 "._("bit"),
"16" => "16 "._("bit"),
"24" => "24 "._("bit"));
"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",
foreach(array ("btc9000", "chicony", "compaq", "dell", "dell101", "everex",
"flexpro", "geniuscomfy", "hp", "itouch", "jp106", "logicordless",
"logiinetnav", "logiinternet", "macintosh", "microsoft",
$this->XKbModels[$type] = $type;
}
$this->XKbModels[$type] = $type;
}
+ $this->MouseTypes= array("ImPS/2" => "ImPS/2", "PS/2" => "PS/2", "Microsoft" => "Microsoft",
+ "Logitech" => "Logitech");
+
+ $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 */
/* 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
*/
/* try to read additional keyboard layouts
*/
}
/* Initialize methods */
}
/* Initialize methods */
- $this->XMethods["default"]= _("default");
$this->XMethods["indirect"]= _("show chooser");
$this->XMethods["query"]= _("direct");
$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["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->XMethods["rdp"]= _("Windows RDP");
$this->XMethods["citrix"]= _("ICA client");
$this->hardware_list["automatic"]= _("automatic");
ksort($this->hardware_list);
$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('default' => _("inherited").' ['.$attrs[$name][0].']' ) + $this->XResolutions;
+ break;
+ case 'gotoXColordepth':
+ $this->XColordepths= array('default' => _("inherited").' ['.$attrs[$name][0].' '._('Bit').']') + $this->XColordepths;
+ break;
+ case 'gotoXKbModel':
+ $this->XKbModels= array('default' => _("inherited").' ['.$attrs[$name][0].']') + $this->XKbModels;
+ break;
+ case 'gotoXKbLayout':
+ $this->XKbLayouts= array('default' => _("inherited").' ['.$attrs[$name][0].']' ) + $this->XKbLayouts;
+ break;
+ case 'gotoXKbVariant':
+ $this->XKbVariants= array('default' => _("inherited").' ['.$attrs[$name][0].']' ) + $this->XKbVariants;
+ break;
+ case 'gotoXMouseType':
+ $this->MouseTypes= array('AUTO' => _("inherited").' ['.$attrs[$name][0].']' ) + $this->MouseTypes;
+ break;
+ case 'gotoXMouseport':
+ $this->MousePorts= array('AUTO' => _("inherited").' ['.$attrs[$name][0].']' ) + $this->MousePorts;
+ break;
+ }
+
+ }
+
+ }
+
+ /* Workaround to fill in inherited values if we've specified an objectclass */
+ if (isset($_SESSION['SelectedSystemType']['ogroup']) && $_SESSION['SelectedSystemType']['ogroup'] != 'none'){
+ $this->XResolutions= array('default' => _("inherited"));
+ $this->XColordepths= array('default' => _("inherited"));
+ $this->XKbModels= array('default' => _("inherited"));
+ $this->XKbLayouts= array('default' => _("inherited"));
+ $this->XKbVariants= array('default' => _("inherited"));
+ $this->MouseTypes= array('AUTO' => _("inherited"));
+ $this->MousePorts= array('AUTO' => _("inherited"));
+ }
}
function execute()
}
function execute()
if($this->AutoSync){
$smarty->assign("AutoSyncCHK"," checked ");
if($this->AutoSync){
$smarty->assign("AutoSyncCHK"," checked ");
+ $smarty->assign("hiddenState"," disabled ");
}else{
$smarty->assign("AutoSyncCHK"," ");
}else{
$smarty->assign("AutoSyncCHK"," ");
+ $smarty->assign("hiddenState","");
}
/* Show main page */
}
/* Show main page */
{
plugin::save_object();
{
plugin::save_object();
- if(isset($_POST['gotoXHsync'])){
+ if(isset($_POST['gotoXDriver'])){
if(isset($_POST['AutoSync'])){
$this->AutoSync = true;
}else{
if(isset($_POST['AutoSync'])){
$this->AutoSync = true;
}else{
/* Default entries can use blank hsync/vsync entries */
if ($this->dn != "" && $this->cn != "default" && $this->cn != "wdefault"){
/* Default entries can use blank hsync/vsync entries */
if ($this->dn != "" && $this->cn != "default" && $this->cn != "wdefault"){
- /* Check vsync for correct usage */
- $val= preg_replace ("/\s/", "", $this->gotoXVsync);
- if (!preg_match ("/^\d+(\.\d+)?([-]\d+(\.\d+)?)?$/", $val)
- && chkacl ($this->acl, "gotoXVsync") == ""){
-
- $message[]= _("Please specify a valid VSync range.");
- } elseif (chkacl ($this->acl, "gotoXVsync") == ""){
- list($v1,$v2)= preg_split ("/[-+]/", $val);
- if ($v2 != ""){
- if ($v1 > $v2){
- $message[]= _("Please specify a valid VSync range.");
+ /* But only if no auto sync is enabled... */
+ if (!$this->AutoSync){
+
+ /* Check vsync for correct usage */
+ $val= preg_replace ("/\s/", "", $this->gotoXVsync);
+ if (!preg_match ("/^\d+(\.\d+)?([-]\d+(\.\d+)?)?$/", $val)
+ && chkacl ($this->acl, "gotoXVsync") == ""){
+
+ $message[]= _("Please specify a valid VSync range.");
+ } elseif (chkacl ($this->acl, "gotoXVsync") == ""){
+ list($v1,$v2)= preg_split ("/[-+]/", $val);
+ if ($v2 != ""){
+ if ($v1 > $v2){
+ $message[]= _("Please specify a valid VSync range.");
+ }
}
}
}
}
- }
- /* Check hsync for correct usage */
- $val= preg_replace ("/\s/", "", $this->gotoXHsync);
- if (!preg_match ("/^\d+(\.\d+)?([-]\d+(\.\d+)?)?$/", $val)
- && chkacl ($this->acl, "gotoXHsync") == ""){
-
- $message[]= _("Please specify a valid HSync range.");
- } elseif (chkacl ($this->acl, "gotoXHsync") == ""){
- list($v1,$v2)= preg_split ("/[-+]/", $val);
- if ($v2 != ""){
- if ($v1 > $v2){
- $message[]= _("Please specify a valid HSync range.");
+ /* Check hsync for correct usage */
+ $val= preg_replace ("/\s/", "", $this->gotoXHsync);
+ if (!preg_match ("/^\d+(\.\d+)?([-]\d+(\.\d+)?)?$/", $val)
+ && chkacl ($this->acl, "gotoXHsync") == ""){
+
+ $message[]= _("Please specify a valid HSync range.");
+ } elseif (chkacl ($this->acl, "gotoXHsync") == ""){
+ list($v1,$v2)= preg_split ("/[-+]/", $val);
+ if ($v2 != ""){
+ if ($v1 > $v2){
+ $message[]= _("Please specify a valid HSync range.");
+ }
}
}
}
}
}
}
}
}
+
return ($message);
}
return ($message);
}
}
if($this->AutoSync){
}
if($this->AutoSync){
- $this->attrs['gotoXHsync'] = preg_replace("/-/","+",$this->attrs['gotoXHsync']) ;
- $this->attrs['gotoXVsync'] = preg_replace("/-/","+",$this->attrs['gotoXVsync']) ;
+ $this->attrs['gotoXHsync'] = "30+55";
+ $this->attrs['gotoXVsync'] = "50+70";
}
/* Write back to ldap */
}
/* Write back to ldap */