diff --git a/plugins/admin/systems/class_workstationService.inc b/plugins/admin/systems/class_workstationService.inc
index 315df0e52748dc72c9dd14bb18778ef87b562aa0..54af9393d7f4567a411d4a39d24d587c35b5c3a4 100644 (file)
class workservice extends plugin
{
class workservice extends plugin
{
- /* CLI vars */
- var $cli_summary= "Manage terminal service aspects";
- var $cli_description= "Some longer text\nfor help";
- var $cli_parameters= array("eins" => "Eins ist toll", "zwei" => "Zwei ist noch besser");
-
var $gotoScannerEnable;
/* Generic terminal attributes */
var $gotoXMonitor= "";
var $gotoScannerEnable;
/* Generic terminal attributes */
var $gotoXMonitor= "";
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("AUTO" => "["._("inherited")."]", "ImPS/2" =>"ImPS/2",
- "PS/2" => "PS/2", "Microsoft" =>"Microsoft",
- "Logitech"=>"Microsoft");
+ $this->MouseTypes= array("ImPS/2" => "ImPS/2", "PS/2" => "PS/2", "Microsoft" => "Microsoft",
+ "Logitech" => "Logitech");
- $this->MousePorts= array("AUTO" => "["._("inherited")."]", "/dev/ttyS0" =>"/dev/ttyS0",
+ $this->MousePorts= array("/dev/ttyS0" =>"/dev/ttyS0",
"/dev/ttyS1" => "/dev/ttyS1", "/dev/psaux" =>"/dev/psaux",
"/dev/input/mice" => "/dev/input/mice");
"/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");
+ /* Additional values will be extracted from CONFIG_DIR/gosa/keyboardLayouts */
+ $this->XKbLayouts= array ("de"=> "de","intl" =>"intl","us" =>"us");
+ $this->XKbVariants= array ("basic"=>"basic", "nodeadkeys"=>"nodeadkeys");
/* 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']) && chkacl($this->acl,"AutoSync") == ""){
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 */