From 3d75206cebce18e654826a7159f8c07df1fe89cb Mon Sep 17 00:00:00 2001 From: hickert Date: Wed, 22 Aug 2007 07:49:18 +0000 Subject: [PATCH] Updated gotomasses to supprt multiple actions git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@7095 594d385d-05f5-0310-b6e9-bd551577e9d8 --- .../addons/gotomasses/class_gotomasses.inc | 80 +++++++++++++++++-- plugins/addons/gotomasses/remove.tpl | 4 + 2 files changed, 76 insertions(+), 8 deletions(-) diff --git a/plugins/addons/gotomasses/class_gotomasses.inc b/plugins/addons/gotomasses/class_gotomasses.inc index dc2bb580e..540e0d9f7 100644 --- a/plugins/addons/gotomasses/class_gotomasses.inc +++ b/plugins/addons/gotomasses/class_gotomasses.inc @@ -17,6 +17,7 @@ class gotomasses extends plugin var $tasks = array(); var $current =false; var $dialog = FALSE; + var $ids_to_remove = array(); function gotomasses($config, $dn= NULL) { @@ -37,7 +38,8 @@ class gotomasses extends plugin ************/ $s_entry = $s_action = ""; - $arr = array("/^edit_task_/"=>"edit","/^remove_task_/"=>"remove","/^new_task_/"=>"new_task"); + $arr = array( "/^edit_task_/"=>"edit","/^remove_task_/"=>"remove", + "/^new_task_/"=>"new_task","/^remove_multiple_task_/" => "remove_multiple"); foreach($arr as $regex => $action){ foreach($_POST as $name => $value){ if(preg_match($regex,$name)){ @@ -52,13 +54,43 @@ class gotomasses extends plugin * List posts ************/ + /* Remove multiple */ + if($s_action == "remove_multiple"){ + if(!$this->acl_is_removeable()){ + print_red(_("You are not allowed to remove a task.")); + }else{ + $this->ids_to_remove = $this->list_get_selected_items(); + $tmp = ""; + foreach($this->ids_to_remove as $id){ + $task = $this->tasks[$id]; + $tmp.= "\n".$this->target_to_string($task); + } + $smarty->assign("multiple", TRUE); + $smarty->assign("info",sprintf(_("Your are about to delete the following tasks: %s"),"
".$tmp."
")); + $this->current = $s_entry; + return($smarty->fetch(get_template_path('remove.tpl', TRUE))); + } + } + + /* Remove specified tasks */ + if(count($this->ids_to_remove) && isset($_POST['delete_multiple_confirm'])){ + foreach($this->ids_to_remove as $id){ + if(isset($this->tasks[$id])){ + unset($this->tasks); + } + } + } + /* Remove entry from list */ if($s_action == "remove" && isset($this->tasks[$s_entry])){ if(!$this->acl_is_removeable()){ print_red(_("You are not allowed to remove a task.")); }else{ - $smarty->assign("info",_("Your are about to delete a gotomasses task.")); + $entry = $this->tasks[$s_entry]; $this->current = $s_entry; + $smarty->assign("info",sprintf(_("Your are about to delete the following tasks: %s"), + "
".$this->target_to_string($entry)."
")); + $smarty->assign("multiple", FALSE); return($smarty->fetch(get_template_path('remove.tpl', TRUE))); } } @@ -70,6 +102,11 @@ class gotomasses extends plugin $this->save(); } + /* Remove aborted */ + if(isset($_POST['delete_cancel'])){ + $this->ids_to_remove = array();; + } + /* Edit selected entry */ if($s_action == "edit" && isset($this->tasks[$s_entry])){ $entry = $this->tasks[$s_entry]; @@ -131,14 +168,17 @@ class gotomasses extends plugin $divlist->SetInformation(_("This menu allows you to add, remove and change the properties of gotomasses tasks.")); /* Display add button if allowed */ + $header = "
"; if($this->acl_is_createable()){ - $header = "
- -
"; - }else{ - $header = ""; + $header .= " "; } + /* Display add button if allowed */ + if($this->acl_is_removeable()){ + $header .= " "; + } + $header .= "
"; + /* Get Permissions */ $ui = get_userinfo(); $acls = $this->getacl(""); @@ -148,6 +188,13 @@ class gotomasses extends plugin /* Create divlist */ $divlist->SetListHeader($header); + /* Toggle all selected / deselected */ + $chk = ""; + + /* set Page header */ + $divlist->AddHeader(array("string"=> $chk, "attach"=>"style='width:20px;'")); + $divlist->AddHeader(array("string"=>""._("Target")."")); $divlist->AddHeader(array("string"=>""._("Schedule")."", "attach"=>"style='width:100px;'")); @@ -162,11 +209,15 @@ class gotomasses extends plugin if($this->acl_is_removeable()){ $action.= ""; } + /* Create each field */ + $field0 = array("string" => "" , + "attach" => "style='width:20px;'"); + $field1 = array("string" => "
".$this->target_to_string($task)."
"); $field2 = array("string" => $this->time_to_string($task),"attach" => "style='width:100px;'"); $field3 = array("string" => $this->action_to_string($task),"attach" => "style='width:80px;'"); $field4 = array("string" => $action,"attach" => "style='text-align:right;width:40px;border-right:0px;'"); - $divlist->AddElement(array($field1,$field2,$field3,$field4)); + $divlist->AddElement(array($field0,$field1,$field2,$field3,$field4)); } } @@ -360,6 +411,19 @@ class gotomasses extends plugin } + function list_get_selected_items() + { + $ids = array(); + foreach($_POST as $name => $value){ + if(preg_match("/^item_selected_[0-9]*$/",$name)){ + $id = preg_replace("/^item_selected_/","",$name); + $ids[$id] = $id; + } + } + return($ids); + } + + function get_actions() { /* Prepare list of available actions */ diff --git a/plugins/addons/gotomasses/remove.tpl b/plugins/addons/gotomasses/remove.tpl index e34108e5a..023142f97 100644 --- a/plugins/addons/gotomasses/remove.tpl +++ b/plugins/addons/gotomasses/remove.tpl @@ -11,7 +11,11 @@

+{if $multiple} + +{else} +{/if}

-- 2.30.2