Code

Fixed image path
[gosa.git] / plugins / admin / systems / class_workstationService.inc
index 3c5d6a1cd433a4e31f4539cd35886156bff0004a..c80b799fba8e8fe22e1027895e2573d1265df4e1 100644 (file)
@@ -7,25 +7,20 @@ class workservice extends plugin
   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 $gotoLpdEnable= FALSE;
   var $gotoXMonitor= "";
-  var $gotoXMethod= "";
-  var $gotoXdmcpServer= "";
-  var $gotoFontPath= "";
   var $gotoXDriver= "";
   var $gotoXResolution= "";
   var $gotoXColordepth= "";
   var $gotoXHsync= "";
   var $gotoXVsync= "";
+  var $AutoSync = false;
   var $gotoXKbModel= "";
   var $gotoXKbLayout= "";
   var $gotoXKbVariant= "";
   var $gotoXMouseType= "";
   var $gotoXMouseport= "";
-  var $gotoLpdServer= "";
-  var $gotoScannerEnable= "";
-  var $gotoScannerModel= "";
   var $gotoScannerClients= "";
   var $gotoScannerBackend= "";
   var $goFonHardware= "automatic";
@@ -52,16 +47,15 @@ class workservice extends plugin
   var $XKbVariants= array ("default", "nodeadkeys", "basic");
   var $MouseTypes= array("AUTO", "ImPS/2", "PS/2", "Microsoft", "Logitech");
   var $MousePorts= array("AUTO", "/dev/ttyS0", "/dev/ttyS1", "/dev/psaux", "/dev/input/mice");
-  var $gotoScannerModels= array();
   var $hardware_list= array();
   var $used_hardware= array();
 
 
   /* attribute list for save action */
-  var $attributes= array("cn", "gotoLpdEnable", "gotoXMonitor", "gotoXMethod", "gotoXdmcpServer",
-      "gotoFontPath", "gotoXDriver", "gotoXResolution", "gotoXColordepth",
-      "gotoXHsync", "gotoXVsync", "gotoLpdEnable", "gotoLpdServer",
-      "gotoScannerEnable", "gotoScannerModel", "gotoScannerClients",
+  var $attributes= array("gotoXMonitor",
+      "gotoXDriver", "gotoXResolution", "gotoXColordepth",
+      "gotoXHsync", "gotoXVsync",
+      "gotoScannerEnable", "gotoScannerClients",
       "gotoScannerBackend", "gotoXKbModel", "gotoXKbLayout", "gotoXKbVariant",
       "gotoXMouseType", "gotoXMouseport", "goFonHardware");
   var $objectclasses= array("GOhard");
@@ -71,14 +65,6 @@ class workservice extends plugin
   {
     plugin::plugin ($config, $dn);
 
-    /* Load scanner models */
-    $fcontents = file ($this->config->basedir."/include/scanner.inc");
-    while (list ($line_num, $line) = each ($fcontents)) {
-      preg_match('/^(\w+) "([^"]+)" "([^"]+)" "([^"]+)"/', "$line", $matches);
-      $this->gotoScannerModels[$matches[2]." - ".$matches[3]]= $matches[1]."|".$matches[4];
-    }
-    ksort ($this->gotoScannerModels);
-
     /* Initialize methods */
     $this->XMethods["default"]= _("default");
     $this->XMethods["indirect"]= _("show chooser");
@@ -119,12 +105,21 @@ class workservice extends plugin
       }
     }
 
+    if(preg_match("/\+/",$this->gotoXHsync)){
+      $this->AutoSync = true;
+      $this->gotoXHsync = preg_replace("/\+/","-",$this->gotoXHsync);
+      $this->gotoXVsync = preg_replace("/\+/","-",$this->gotoXVsync);
+    }
+
     $this->hardware_list["automatic"]= _("automatic");
     ksort($this->hardware_list);
   }
 
   function execute()
   {
+       /* Call parent execute */
+       plugin::execute();
+
     /* Do we need to flip is_account state? */
     if (isset($_POST['modify_state'])){
       $this->is_account= !$this->is_account;
@@ -142,7 +137,7 @@ class workservice extends plugin
 
     /* Arrays */ 
     foreach(array("XMethods", "XDrivers", "XResolutions", "XColordepths",
-          "gotoScannerModels", "XKbModels", "XKbLayouts", "XKbVariants",
+          "XKbModels", "XKbLayouts", "XKbVariants",
           "MouseTypes", "MousePorts") as $val){
       $smarty->assign("$val", $this->$val);
     }
@@ -152,9 +147,9 @@ class workservice extends plugin
     $smarty->assign("nfsservers", $this->config->data['SERVERS']['NFS']);
 
     /* Variables - select */
-    foreach(array("gotoXMethod", "gotoXdmcpServer", "gotoFontPath", 
+    foreach(array(
           "gotoXDriver", "gotoXResolution", "gotoXColordepth", 
-          "gotoLpdServer", "gotoScannerModel", "gotoXKbModel", "gotoXKbLayout",
+          "gotoXKbModel", "gotoXKbLayout","gotoScannerEnable",
           "gotoXKbVariant", "gotoXMouseType", "gotoXMouseport") as $val){
 
       $smarty->assign($val."_select", $this->$val);
@@ -169,13 +164,12 @@ class workservice extends plugin
     $smarty->assign("staticAddress", "");
 
     /* Checkboxes */
-    foreach(array("gotoLpdEnable", "gotoScannerEnable") as $val){
+    foreach(array("gotoScannerEnable") as $val){
       if ($this->$val == TRUE) {
         $smarty->assign("$val", "checked");
       } else {
         $smarty->assign("$val", "");
       }
-      $smarty->assign($val."ACL", chkacl($this->acl, "gotoLpdEnable"));
     }
 
     /* Phone stuff */
@@ -199,39 +193,37 @@ class workservice extends plugin
     $hl.= "</select>\n";
     $smarty->assign ("hardware_list", $hl);
     $smarty->assign ("gotoXMonitor", $this->gotoXMonitor);
+    $smarty->assign("AutoSyncACL",chkacl($this->acl,"AutoSync"));
+
+    if($this->AutoSync){
+      $smarty->assign("AutoSyncCHK"," checked ");
+    }else{
+      $smarty->assign("AutoSyncCHK"," ");
+    }
 
     /* Show main page */
-    return($smarty->fetch (get_template_path('workstationService.tpl', TRUE)));
+    return($smarty->fetch (get_template_path('workstationService.tpl',TRUE,dirname(__FILE__))));
   }
 
   function remove_from_parent()
   {
-    $ldap= $this->config->get_ldap_link();
-    $ldap->rmdir($this->dn);
-    show_ldap_error($ldap->get_error());
-    $this->handle_post_events("remove");
+      $this->handle_post_events("remove");
   }
 
-
   /* Save data to object */
   function save_object()
   {
     plugin::save_object();
 
-    /* Save checkbox state */
-    if (isset ($_POST['gotoXMethod'])){
-      foreach (array("gotoLpdEnable", "gotoScannerEnable") as $val){
-
-        if (!isset ($_POST["$val"]) && chkacl ($this->acl, "$val") == ""){
-          $this->$val= FALSE;
-        } else {
-          $this->$val= TRUE;
-        }
+    if(isset($_POST['gotoXHsync'])){
+      if(isset($_POST['AutoSync'])){
+        $this->AutoSync = true;
+      }else{
+        $this->AutoSync = false;
       }
     }
   }
 
-
   /* Check supplied data */
   function check()
   {
@@ -242,12 +234,12 @@ class workservice extends plugin
 
       /* Check vsync for correct usage */
       $val= preg_replace ("/\s/", "", $this->gotoXVsync);
-      if (!preg_match ("/^\d+(\.\d+)?(\-\d+(\.\d+)?)?$/", $val)
+      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)= split ("-", $val);
+        list($v1,$v2)= preg_split ("/[-+]/", $val);
         if ($v2 != ""){
           if ($v1 > $v2){
             $message[]= _("Please specify a valid VSync range.");
@@ -257,12 +249,12 @@ class workservice extends plugin
 
       /* Check hsync for correct usage */
       $val= preg_replace ("/\s/", "", $this->gotoXHsync);
-      if (!preg_match ("/^\d+(\.\d+)?(\-\d+(\.\d+)?)?$/", $val)
+      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)= split ("-", $val);
+        list($v1,$v2)= preg_split ("/[-+]/", $val);
         if ($v2 != ""){
           if ($v1 > $v2){
             $message[]= _("Please specify a valid HSync range.");
@@ -280,9 +272,9 @@ class workservice extends plugin
     plugin::save();
 
     /* Strip out 'default' values */
-    foreach(array("gotoXMethod", "gotoXdmcpServer", "gotoFontPath",
+    foreach(array(
           "gotoXDriver", "gotoXResolution", "gotoXColordepth",
-          "gotoLpdServer", "gotoScannerModel", "gotoXKbModel", "gotoXKbLayout",
+          "gotoXKbModel", "gotoXKbLayout",
           "gotoXKbVariant", "gotoXMouseType", "gotoXMouseport") as $val){
 
       if ($this->attrs[$val] == "default"){
@@ -290,6 +282,11 @@ class workservice extends plugin
       }
     }
 
+    if($this->AutoSync){
+      $this->attrs['gotoXHsync'] = preg_replace("/-/","+",$this->attrs['gotoXHsync']) ;
+      $this->attrs['gotoXVsync'] = preg_replace("/-/","+",$this->attrs['gotoXVsync']) ;
+    }
+
     /* Write back to ldap */
     $ldap= $this->config->get_ldap_link();
     $ldap->cd($this->dn);