2022-08-07 11:50:13 +02:00
<? php
/*
2022-10-14 14:18:26 +02:00
* Copyright (c) 2022 OpenXE project
2022-08-07 11:50:13 +02:00
*/
use Xentral\Components\Database\Exception\QueryFailureException ;
class Ticketregeln {
function __construct ( $app , $intern = false ) {
$this -> app = $app ;
if ( $intern )
return ;
$this -> app -> ActionHandlerInit ( $this );
$this -> app -> ActionHandler ( "list" , "ticketregeln_list" );
$this -> app -> ActionHandler ( "create" , "ticketregeln_edit" ); // This automatically adds a "New" button
$this -> app -> ActionHandler ( "edit" , "ticketregeln_edit" );
$this -> app -> ActionHandler ( "delete" , "ticketregeln_delete" );
$this -> app -> DefaultActionHandler ( "list" );
$this -> app -> ActionHandlerListen ( $app );
}
public function Install () {
/* Fill out manually later */
}
static function TableSearch ( & $app , $name , $erlaubtevars ) {
switch ( $name ) {
case "ticketregeln_list" :
$allowed [ 'ticketregeln_list' ] = array ( 'list' );
$heading = array ( 'E-Mail Empfänger' , 'E-Mail Verfasser' , 'Verfasser Name' , 'Betreff' , 'Papierkorb' , 'Persönlich' , 'Prio' , 'DSGVO' , 'Verantw.' , 'Aktiv' , 'Menü' );
$width = array ( '10%' ); // Fill out manually later
$findcols = array ( 't.empfaenger_email' , 't.sender_email' , 't.name' , 't.betreff' , 't.spam' , 't.persoenlich' , 't.prio' , 't.dsgvo' , 't.warteschlange' , 't.aktiv' );
$searchsql = array ( 't.empfaenger_email' , 't.sender_email' , 't.name' , 't.betreff' , 't.spam' , 't.persoenlich' , 't.prio' , 't.dsgvo' , 't.warteschlange' , 't.aktiv' );
$defaultorder = 1 ;
$defaultorderdesc = 0 ;
$menu = "<table cellpadding=0 cellspacing=0><tr><td nowrap>" . "<a href= \" index.php?module=ticketregeln&action=edit&id=%value% \" ><img src= \" ./themes/ { $app -> Conf -> WFconf [ 'defaulttheme' ] } /images/edit.svg \" border= \" 0 \" ></a> <a href= \" # \" onclick=DeleteDialog( \" index.php?module=ticketregeln&action=delete&id=%value% \" );>" . "<img src= \" themes/ { $app -> Conf -> WFconf [ 'defaulttheme' ] } /images/delete.svg \" border= \" 0 \" ></a>" . "</td></tr></table>" ;
2022-08-08 14:06:22 +02:00
$sql = "SELECT SQL_CALC_FOUND_ROWS t.id, t.empfaenger_email, t.sender_email, t.name, t.betreff, t.spam, t.persoenlich, t.prio, t.dsgvo, w.warteschlange, t.aktiv, t.id FROM ticket_regeln t LEFT JOIN warteschlangen w ON t.warteschlange = w.label" ;
2022-08-07 11:50:13 +02:00
$where = "1" ;
$count = "SELECT count(DISTINCT id) FROM ticket_regeln WHERE $where " ;
// $groupby = "";
break ;
}
$erg = false ;
foreach ( $erlaubtevars as $k => $v ) {
if ( isset ( $$v )) {
$erg [ $v ] = $$v ;
}
}
return $erg ;
}
function ticketregeln_list () {
$this -> app -> erp -> MenuEintrag ( "index.php?module=ticketregeln&action=list" , "Übersicht" );
$this -> app -> erp -> MenuEintrag ( "index.php?module=ticketregeln&action=create" , "Neu anlegen" );
$this -> app -> erp -> MenuEintrag ( "index.php" , "Zurück" );
$this -> app -> YUI -> TableSearch ( 'TAB1' , 'ticketregeln_list' , "show" , "" , "" , basename ( __FILE__ ), __CLASS__ );
$this -> app -> Tpl -> Parse ( 'PAGE' , "ticketregeln_list.tpl" );
}
public function ticketregeln_delete () {
$id = ( int ) $this -> app -> Secure -> GetGET ( 'id' );
$this -> app -> DB -> Delete ( "DELETE FROM `ticket_regeln` WHERE `id` = ' { $id } '" );
$this -> app -> Tpl -> Set ( 'MESSAGE' , "<div class= \" error \" >Der Eintrag wurde gelöscht.</div>" );
$this -> ticketregeln_list ();
}
/*
* Edit ticketregeln item
* If id is empty, create a new one
*/
function ticketregeln_edit () {
$id = $this -> app -> Secure -> GetGET ( 'id' );
$this -> app -> Tpl -> Set ( 'ID' , $id );
$this -> app -> erp -> MenuEintrag ( "index.php?module=ticketregeln&action=edit&id= $id " , "Details" );
$this -> app -> erp -> MenuEintrag ( "index.php?module=ticketregeln&action=list" , "Zurück zur Übersicht" );
$id = $this -> app -> Secure -> GetGET ( 'id' );
$input = $this -> GetInput ();
$submit = $this -> app -> Secure -> GetPOST ( 'submit' );
if ( empty ( $id )) {
// New item
$id = 'NULL' ;
}
if ( $submit != '' )
{
// Write to database
// Add checks here
$input [ 'warteschlange' ] = explode ( " " , $input [ 'warteschlange' ])[ 0 ]; // Just the label
$columns = "id, " ;
$values = " $id , " ;
$update = "" ;
$fix = "" ;
foreach ( $input as $key => $value ) {
$columns = $columns . $fix . $key ;
$values = $values . $fix . "'" . $value . "'" ;
$update = $update . $fix . $key . " = ' $value '" ;
$fix = ", " ;
}
// echo($columns."<br>");
// echo($values."<br>");
// echo($update."<br>");
$sql = "INSERT INTO ticket_regeln (" . $columns . ") VALUES (" . $values . ") ON DUPLICATE KEY UPDATE " . $update ;
// echo($sql);
$this -> app -> DB -> Update ( $sql );
if ( $id == 'NULL' ) {
$msg = $this -> app -> erp -> base64_url_encode ( "<div class= \" success \" >Das Element wurde erfolgreich angelegt.</div>" );
header ( "Location: index.php?module=ticketregeln&action=list&msg= $msg " );
} else {
$this -> app -> Tpl -> Set ( 'MESSAGE' , "<div class= \" success \" >Die Einstellungen wurden erfolgreich übernommen.</div>" );
}
}
// Load values again from database
$result = $this -> app -> DB -> SelectArr ( "SELECT t.id, t.empfaenger_email, t.sender_email, t.name, t.betreff, t.spam, t.persoenlich, t.prio, t.dsgvo, t.warteschlange, t.aktiv, t.id FROM ticket_regeln t" . " WHERE id= $id " );
foreach ( $result [ 0 ] as $key => $value ) {
$this -> app -> Tpl -> Set ( strtoupper ( $key ), $value );
}
/*
* Add displayed items later
*
$this->app->Tpl->Add('KURZUEBERSCHRIFT2', $email);
$this->app->Tpl->Add('EMAIL', $email);
$this->app->Tpl->Add('ANGEZEIGTERNAME', $angezeigtername);
*/
$this -> app -> YUI -> AutoComplete ( "warteschlange" , "warteschlangename" );
// $this->SetInput($input);
$this -> app -> Tpl -> Parse ( 'PAGE' , "ticketregeln_edit.tpl" );
}
/**
* Get all paramters from html form and save into $input
*/
public function GetInput () : array {
$input = array ();
//$input['EMAIL'] = $this->app->Secure->GetPOST('email');
$input [ 'empfaenger_email' ] = $this -> app -> Secure -> GetPOST ( 'empfaenger_email' );
$input [ 'sender_email' ] = $this -> app -> Secure -> GetPOST ( 'sender_email' );
$input [ 'name' ] = $this -> app -> Secure -> GetPOST ( 'name' );
$input [ 'betreff' ] = $this -> app -> Secure -> GetPOST ( 'betreff' );
$input [ 'spam' ] = $this -> app -> Secure -> GetPOST ( 'spam' );
$input [ 'persoenlich' ] = $this -> app -> Secure -> GetPOST ( 'persoenlich' );
$input [ 'prio' ] = $this -> app -> Secure -> GetPOST ( 'prio' );
$input [ 'dsgvo' ] = $this -> app -> Secure -> GetPOST ( 'dsgvo' );
$input [ 'warteschlange' ] = $this -> app -> Secure -> GetPOST ( 'warteschlange' );
$input [ 'aktiv' ] = $this -> app -> Secure -> GetPOST ( 'aktiv' );
return $input ;
}
/*
* Set all fields in the page corresponding to $input
*/
function SetInput ( $input ) {
// $this->app->Tpl->Set('EMAIL', $input['email']);
$this -> app -> Tpl -> Set ( 'EMPFAENGER_EMAIL' , $input [ 'empfaenger_email' ]);
$this -> app -> Tpl -> Set ( 'SENDER_EMAIL' , $input [ 'sender_email' ]);
$this -> app -> Tpl -> Set ( 'NAME' , $input [ 'name' ]);
$this -> app -> Tpl -> Set ( 'BETREFF' , $input [ 'betreff' ]);
$this -> app -> Tpl -> Set ( 'SPAM' , $input [ 'spam' ]);
$this -> app -> Tpl -> Set ( 'PERSOENLICH' , $input [ 'persoenlich' ]);
$this -> app -> Tpl -> Set ( 'PRIO' , $input [ 'prio' ]);
$this -> app -> Tpl -> Set ( 'DSGVO' , $input [ 'dsgvo' ]);
$this -> app -> Tpl -> Set ( 'WARTESCHLANGE' , $input [ 'warteschlange' ]);
$this -> app -> Tpl -> Set ( 'AKTIV' , $input [ 'aktiv' ]);
}
}