diff --git a/www/pages/content/ticket_list.tpl b/www/pages/content/ticket_list.tpl
index 5f3ce724..f610d33f 100644
--- a/www/pages/content/ticket_list.tpl
+++ b/www/pages/content/ticket_list.tpl
@@ -49,7 +49,19 @@
{|Status|}: | |
{|Verantwortlich|}: | |
- alle markieren | |
+
+ alle markieren
+ |
+
+
+ |
+
+
+
+ |
+
+
+ |
diff --git a/www/pages/ticket.php b/www/pages/ticket.php
index 34836a41..818b82b2 100644
--- a/www/pages/ticket.php
+++ b/www/pages/ticket.php
@@ -187,6 +187,7 @@ class Ticket {
// Process multi action
$auswahl = $this->app->Secure->GetPOST('auswahl');
+ $submit = $this->app->Secure->GetPOST('submit');
$selectedIds = [];
if(!empty($auswahl)) {
foreach($auswahl as $selectedId) {
@@ -196,19 +197,72 @@ class Ticket {
}
}
- $status = $this->app->Secure->GetPOST('status');
- $warteschlange = $this->app->Secure->GetPOST('warteschlange');
+ switch ($submit) {
+ case 'zuordnen':
+ $status = $this->app->Secure->GetPOST('status');
+ $warteschlange = $this->app->Secure->GetPOST('warteschlange');
- $sql = "UPDATE ticket SET status = '".$status."', zeit = NOW()";
- if ($warteschlange != '') {
- $sql .= ", warteschlange = '".explode(" ",$warteschlange)[0]."'";
- }
+ $sql = "UPDATE ticket SET status = '".$status."', zeit = NOW()";
+ if ($warteschlange != '') {
+ $sql .= ", warteschlange = '".explode(" ",$warteschlange)[0]."'";
+ }
- $sql .= " WHERE id IN (".implode(",",$selectedIds).")";
- $this->app->DB->Update($sql);
+ $sql .= " WHERE id IN (".implode(",",$selectedIds).")";
+ $this->app->DB->Update($sql);
- $this->ticket_set_self_assigned_status($selectedIds);
+ $this->ticket_set_self_assigned_status($selectedIds);
+ break;
+ case 'spam_filter':
+ if($this->app->erp->RechteVorhanden('ticketregeln','create')) {
+ $sql = "UPDATE ticket SET status = 'spam', zeit = NOW()";
+ $sql .= " WHERE id IN (".implode(",",$selectedIds).")";
+ $this->app->DB->Update($sql);
+ foreach ($selectedIds as $selectedId) {
+
+ // Check existing
+ $sql = "SELECT id FROM ticket_regeln WHERE
+ empfaenger_email = '' AND
+ sender_email = (SELECT mailadresse FROM ticket WHERE id = ".$selectedId." LIMIT 1) AND
+ name = '' AND
+ betreff = '' AND
+ spam = 1 AND
+ aktiv = 1
+ ";
+
+ if (!$this->app->DB->Select($sql)) {
+ $sql = "INSERT IGNORE INTO ticket_regeln (
+ empfaenger_email,
+ sender_email,
+ name,
+ betreff,
+ spam,
+ persoenlich,
+ prio,
+ dsgvo,
+ adresse,
+ warteschlange,
+ aktiv
+ ) VALUES (
+ '',
+ (SELECT mailadresse FROM ticket WHERE id = ".$selectedId." LIMIT 1),
+ '',
+ '',
+ 1,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1
+ )";
+ $this->app->DB->Insert($sql);
+ }
+ }
+
+ }
+ break;
+ }
}
// List
@@ -223,6 +277,10 @@ class Ticket {
$this->app->Tpl->Set('STATUS', $this->app->erp->GetStatusTicketSelect('neu'));
$this->app->YUI->AutoComplete("warteschlange","warteschlangename");
+ if(!$this->app->erp->RechteVorhanden('ticketregeln','create')) {
+ $this->app->Tpl->Set('SPAM_HIDDEN', 'hidden');
+ }
+
$this->app->YUI->TableSearch('TAB1', 'ticket_list', "show", "", "", basename(__FILE__), __CLASS__);
$this->app->Tpl->Parse('PAGE', "ticket_list.tpl");
}