Code

Added printer patch
[gosa.git] / plugins / admin / applications / class_applicationParameters.inc
index 663068805656905a94c79e6305adeabcb9611ac2..426bbf190dbc186b959cff38298291b332907d54 100644 (file)
@@ -11,13 +11,15 @@ class applicationParameters extends plugin
   var $option_value= array();
 
   /* attribute list for save action */
-  var $attributes= array();
+  var $attributes= array("gosaApplicationParameter");
   var $objectclasses= array();
 
   function applicationParameters ($config, $dn= NULL)
   {
        plugin::plugin ($config, $dn);
 
+       $this->gosaApplicationParameter = array();
+
        if (isset($this->attrs['gosaApplicationParameter'])){
                $this->is_account= TRUE;
                for ($i= 0; $i<$this->attrs['gosaApplicationParameter']['count']; $i++){
@@ -37,6 +39,7 @@ class applicationParameters extends plugin
   {
        /* Call parent execute */
        plugin::execute();
+
        /* Do we need to flip is_account state? */
        if (isset($_POST['modify_state'])){
                $this->is_account= !$this->is_account;
@@ -51,6 +54,7 @@ class applicationParameters extends plugin
                } else {
                        $display= $this->show_header(_("Create options"),
                                _("This application has options disabled. You can enable them by clicking below."));
+                       $this->parent->by_object['application']->generateTemplate();
                        return ($display);
                }
        }
@@ -86,23 +90,33 @@ class applicationParameters extends plugin
                $this->option_name[]= "";
                $this->option_value[]= "";
        }
+
+       $mode= "";
+       if (chkacl($this->acl, "create") != ""){
+               $mode= "disabled";
+       }
+
        $table= "<table summary=\"\"><tr><td>"._("Variable")."</td><td>"._("Default value")."</td><td></td></tr>";
        if (count ($this->option_name)){
                for ($i= 0; $i < count($this->option_name); $i++){
                        $table.="<tr><td><input name=\"option$i\" size=25 maxlength=50 ".
-                               "value=\"".$this->option_name[$i]."\"></td><td><input name=\"value$i\" ".
-                               "size=60 maxlength=250 value=\"".$this->option_value[$i]."\"><br></td><td>".
+                               "value=\"".$this->option_name[$i]."\" $mode></td><td><input name=\"value$i\" ".
+                               "size=60 maxlength=250 value=\"".$this->option_value[$i]."\" $mode><br></td><td>".
                                "<input type=\"submit\" name=\"remove$i\" value=\"".
-                               _("Remove")."\"></td></tr>";
+                               _("Remove")."\" $mode></td></tr>";
                }
        }
        $table.= "</table>";
-       $table.="<input type=\"submit\" name=\"add_option\" value=\""._("Add option")."\">";
+
+       if ($mode == ""){
+               $table.="<input type=\"submit\" name=\"add_option\" value=\""._("Add option")."\">";
+       }
 
        /* Show main page */
        $smarty= get_smarty();
        $smarty->assign("table", $table);
        $display.= $smarty->fetch(get_template_path('parameters.tpl', TRUE));
+       $this->parent->by_object['application']->generateTemplate();
        return ($display);
   }
 
@@ -117,8 +131,10 @@ class applicationParameters extends plugin
         $ldap->cd($this->dn);
         @DEBUG (DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__,
                 $this->attributes, "Save");
-       $ldap->modify($this->attrs);
-       show_ldap_error($ldap->get_error());
+       $this->cleanup();
+       $ldap->modify ($this->attrs); 
+
+       show_ldap_error($ldap->get_error(), _("Removing application parameters failed"));
 
        /* Optionally execute a command after we're done */
        $this->handle_post_events('remove');
@@ -143,7 +159,8 @@ class applicationParameters extends plugin
   /* Check values */
   function check()
   {
-       $message= array();
+       /* Call common method to give check the hook */
+       $message= plugin::check();
 
        /* Check for valid option names */
        for ($i= 0; $i<count($this->option_name); $i++){
@@ -176,8 +193,10 @@ class applicationParameters extends plugin
        $ldap->cd($this->dn);
         @DEBUG (DEBUG_LDAP, __LINE__, __FUNCTION__, __FILE__,
                 $this->attributes, "Save");
-       $ldap->modify($this->attrs);
-       show_ldap_error($ldap->get_error());
+       $this->cleanup();
+       $ldap->modify ($this->attrs); 
+
+       show_ldap_error($ldap->get_error(), _("Saving applications parameters failed"));
 
        /* Optionally execute a command after we're done */
        $this->handle_post_events('modify');