diff --git a/gosa-plugins/goto/addons/gotomasses/class_gotomasses.inc b/gosa-plugins/goto/addons/gotomasses/class_gotomasses.inc
index 3db5527c91a1275c18617e303dfd18c67a73efdb..4d609392cc4473cd82ea269c2d9fcc07500e0c1d 100644 (file)
var $divlist = NULL;
var $events = array();
+ var $event_tags = array();
var $sort_by = "Schedule";
var $sort_dir = "down";
/* Include config object */
$this->config= &$config;
$this->o_queue = new gosaSupportDaemon(TRUE,10);
- $this->events = DaemonEvent::get_event_types();
+ $this->events = DaemonEvent::get_event_types( USER_EVENT | SYSTEM_EVENT);
+
+ /* Get tags that will be used in queue searches */
+ foreach($this->events['BY_CLASS'] as $evt){
+ if(isset($evt['s_Queued_Action'])){
+ $this->event_tags[] = $evt['s_Queued_Action'];
+ }
+ }
}
if(isset($this->events['BY_QUEUED_ACTION'][$task['HEADERTAG']]['s_Menu_Name'])){
$event_type = $this->events['BY_QUEUED_ACTION'][$task['HEADERTAG']];
$display2= $event_type['s_Menu_Name'];
+
+ if(strlen($display2) > 20){
+ $display2 = substr($display2,0,18)."...";
+ }
+
if(isset($event_type['ListImage']) && !empty($event_type['ListImage'])){
$display2 = $event_type['ListImage']." ".$display2;
}
}
$status = $task['STATUS'];
+
+ if($status == "waiting"){
+ $status = "<img class='center' src='images/clock.png' alt=''> "._("Waiting");
+ }
+ if($status == "error"){
+ $status = "<img class='center' src='images/false.png' alt=''> "._("Error");
+ }
/* Special handling for all entries that have
STATUS == "processing" && PROGRESS == NUMERIC
public function update_priority($id,$type = "up")
{
if($type == "up"){
- $tmp = $this->o_queue->get_queued_entries(-1,-1,"timestamp DESC");
+ $tmp = $this->o_queue->get_queued_entries($this->event_tags,-1,-1,"timestamp DESC");
}else{
- $tmp = $this->o_queue->get_queued_entries(-1,-1,"timestamp ASC");
+ $tmp = $this->o_queue->get_queued_entries($this->event_tags,-1,-1,"timestamp ASC");
}
$last = array();
foreach($tmp as $entry){
if(!count($ids)){
return;
}
- print_red(_("Not implemented, currently."));
- return(TRUE);
+
+ /* Entries are paused by setting the status to
+ * something different from 'waiting'.
+ * We simply use 'paused'.
+ */
+ $data = array("status" => "paused");
+
+ /* Detect if the ids we got are valid and
+ * check if the status allows pausing.
+ */
+ $update_ids = array();
+ foreach($this->o_queue->get_entries_by_id($ids) as $entry){
+ if(isset($entry['STATUS']) && preg_match("/processing/",$entry['STATUS'])){
+ if(isset($entry['MACADDRESS'])){
+ $update_ids[] = $entry['MACADDRESS'];
+ }else{
+ trigger_error("No mac address found in event.");
+ }
+ }
+ }
+
+ if(class_available("DaemonEvent_faireboot")){
+ $tmp = new DaemonEvent_faireboot($this->config);
+ $tmp->add_targets($update_ids);
+ if(!$this->o_queue->append($tmp)){
+ msg_dialog::display(_("Error"), sprintf(_("Could not update queue entry: %s"),$id) , ERROR_DIALOG);
+ return(FALSE);
+ }
+ }else{
+ msg_dialog::display(_("Error"),
+ sprintf(_("The Job could not be aborted, the '%s' event class was not found."),
+ "DaemonEvent_faireboot") , ERROR_DIALOG);
+ }
}
/* Get entries. */
$start = $this->start;
$stop = $this->range;
- $entries = $this->o_queue->get_queued_entries($start,$stop,$sort);
+ $entries = $this->o_queue->get_queued_entries($this->event_tags,$start,$stop,$sort);
if ($this->o_queue->is_error()){
msg_dialog::display(_("Error"), sprintf(_("Cannot load queue entries: %s"), "<br><br>".$this->o_queue->get_error()), ERROR_DIALOG);
}