From 910a8544a4a37a389c2c849116331808cf3d427e Mon Sep 17 00:00:00 2001 From: Xenomporio <> Date: Fri, 22 Jul 2022 11:12:41 +0200 Subject: [PATCH] Some frontend adaption for the ticket system --- www/eproosystem.php | 6 +- www/lib/class.erpapi.php | 2 +- www/pages/content/einstellungen.tpl | 2 +- www/pages/einstellungen.php | 1398 ++++++++++----------- www/themes/new/images/sidebar/tickets.svg | 5 + 5 files changed, 709 insertions(+), 704 deletions(-) create mode 100644 www/themes/new/images/sidebar/tickets.svg diff --git a/www/eproosystem.php b/www/eproosystem.php index 0dd40156..ffb1762a 100644 --- a/www/eproosystem.php +++ b/www/eproosystem.php @@ -443,10 +443,10 @@ class erpooSystem extends Application // Creates user specific items $possibleUserItems = [ -/* 'Inbox' => [ - 'link' => 'index.php?module=ticket&action=offene', + 'Tickets' => [ + 'link' => 'index.php?module=ticket&action=list', 'counter' => $this->erp->AnzahlOffeneTickets() - ],*/ + ], 'Aufgaben' => [ 'link' => 'index.php?module=aufgaben&action=list', 'counter' => $this->erp->AnzahlOffeneAufgaben() diff --git a/www/lib/class.erpapi.php b/www/lib/class.erpapi.php index f9e14437..025be38a 100644 --- a/www/lib/class.erpapi.php +++ b/www/lib/class.erpapi.php @@ -2631,7 +2631,7 @@ public function NavigationHooks(&$menu) public function AnzahlOffeneTickets($eigene=true) { - return 0; + return (int)$this->app->DB->Select("SELECT COUNT(t.id) FROM ticket t WHERE t.status = 'neu' AND t.warteschlange IN (SELECT w.adresse FROM warteschlangen w WHERE w.adresse = '".$this->app->User->GetAdresse()."')"); } diff --git a/www/pages/content/einstellungen.tpl b/www/pages/content/einstellungen.tpl index 5a0c27f8..455ef03d 100644 --- a/www/pages/content/einstellungen.tpl +++ b/www/pages/content/einstellungen.tpl @@ -24,7 +24,7 @@ {|Ticket Vorlagen|} - {|Warteschlangen|} + {|Ticket Warteschlangen|} {|Artikel Kategorien|} {|Artikel Einheiten|} diff --git a/www/pages/einstellungen.php b/www/pages/einstellungen.php index afa01aba..b4b08559 100644 --- a/www/pages/einstellungen.php +++ b/www/pages/einstellungen.php @@ -1,702 +1,702 @@ -app=$app; - if($intern) { - return; - } - - $this->app->ActionHandlerInit($this); - - $this->app->ActionHandler("create","EinstellungenCreate"); - $this->app->ActionHandler("edit","EinstellungenEdit"); - $this->app->ActionHandler("list","EinstellungenList"); - $this->app->ActionHandler("betaprogram", "EinstellungenBetaProgram"); - $this->app->ActionHandler("category","SettingsCategoryApps"); - $this->app->ActionHandlerListen($app); - - $this->app->Tpl->Set('UEBERSCHRIFT',"Einstellungen"); - $this->app->Tpl->Set('FARBE',"[FARBE5]"); - } - - /** - * @param bool $parameter - * - * @return null|string - */ - protected function sendBeta($parameter) - { - $setBeta = $parameter; - $updateResultStatus = null; - include_once dirname(__DIR__, 2).'/upgradesystemclient2_includekey.php'; - - return $updateResultStatus; - } - - /** - * @param bool $betaStatus - */ - public function tryChangeBetaStatusAndLocateToSite(bool $betaStatus): void - { - $updateServerResult = $this->sendBeta($betaStatus); - if($updateServerResult === 'OK') { - $this->app->User->SetParameter('updatekey', 1); - $this->app->User->SetParameter('einstellungen_beta_activated', $betaStatus ? '1' : ''); - /** @var Appstore $appStore */ - $appStore = $this->app->loadModule('appstore'); - $appStore->resetBuyListCache(); - $appStore->resetBuyInfoCache(); - $this->app->Location->execute('index.php?module=einstellungen&action=betaprogram&cmd=updatekey'); - } - if($betaStatus) { - $msg = $this->app->erp->base64_url_encode( - '
Das Beta-Programm konnte nicht aktiviert werden
' - ); - } - else { - $msg = $this->app->erp->base64_url_encode( - '
Das Beta-Programm konnte nicht beendet werden
' - ); - } - $this->app->Location->execute('index.php?module=einstellungen&action=betaprogram&msg='.$msg); - } - - /** - * @return void - */ - public function EinstellungenBetaProgram() - { - $cmd = $this->app->Secure->GetGET('cmd'); - if($cmd === 'updatekey') { - include dirname(dirname(__DIR__)).'/version.php'; - $this->app->User->SetParameter('updatekey',''); - include_once dirname(dirname(__DIR__)).'/upgradesystemclient2_includekey.php'; - $this->app->Location->execute('index.php?module=einstellungen&action=betaprogram'); - } - if($this->app->Secure->GetPOST('deactivate')) { - $this->tryChangeBetaStatusAndLocateToSite(false); - } - if($this->app->Secure->GetPOST('beta-agreement')) { - $this->tryChangeBetaStatusAndLocateToSite(true); - } - - $openPopup = !empty($this->app->User->GetParameter('einstellungen_beta_activated')); - - if($openPopup) { - $this->app->User->SetParameter('einstellungen_beta_activated', ''); - $this->app->Tpl->Set('BETAOPEN', '1'); - } - else { - $this->app->Tpl->Set('BETAOPEN', ''); - } - - $this->app->erp->MenuEintrag('index.php?module=einstellungen&action=betaprogram', 'Beta Programm'); - if(!empty(erpAPI::Ioncube_Property('isbetaactive'))) { - $this->app->Tpl->Set('BEFORESHOWIFBETADEACTIVATED', ''); - } - else { - $this->app->Tpl->Set('BEFORESHOWIFBETAACTIVATED', ''); - } - $this->app->erp->Headlines('Beta Programm'); - $this->app->Tpl->Parse('PAGE', 'einstellungen_betaprogram.tpl'); - } - - /** - * @return string[][][] - */ - public function getModulesByCategory() - { - return [ - 'System' => [ - 'firmendaten' => [ - 'name' => 'Grundeinstellungen', - 'icon' => 'Icons_dunkel_1.gif', - 'link' => 'index.php?module=firmendaten&action=edit', - ], - 'benutzer' => [ - 'name' => 'Benutzer', - 'icon' => 'Icons_dunkel_2.gif', - 'link' => 'index.php?module=benutzer&action=list', - ], - 'geschaeftsbrief_vorlagen' => [ - 'name' => 'Geschäftsbrief Vorlagen', - 'icon' => 'Icons_dunkel_3.gif', - 'link' => 'index.php?module=geschaeftsbrief_vorlagen&action=list', - ], - 'emailbackup' => [ - 'name' => 'E-Mail Accounts', - 'icon' => 'Icons_dunkel_4.gif', - 'link' => 'index.php?module=emailbackup&action=list', - ], - 'ticket_vorlage' => [ - 'name' => 'Ticket Vorlagen', - 'icon' => 'Icons_dunkel_5.gif', - 'link' => 'index.php?module=ticket_vorlage&action=list', - ], - 'warteschlangen' => [ - 'name' => 'Warteschlangen', - 'icon' => 'Icons_dunkel_6.gif', - 'link' => 'index.php?module=warteschlangen&action=list', - ], - 'artikelkategorien' => [ - 'name' => 'Artikel Kategorien', - 'icon' => 'Icons_dunkel_15.gif', - 'link' => 'index.php?module=artikelkategorien&action=list', - ], - 'artikeleinheit' => [ - 'name' => 'Artikel Einheiten', - 'icon' => 'Icons_dunkel_14.gif', - 'link' => 'index.php?module=artikeleinheit&action=list', - ], - 'gruppen' => [ - 'name' => 'Gruppen', - 'icon' => 'Icons_dunkel_2.gif', - 'link' => 'index.php?module=gruppen&action=list', - ], - 'uservorlage' => [ - 'name' => 'Benutzer Vorlage', - 'icon' => 'Icons_dunkel_2.gif', - 'link' => 'index.php?module=uservorlage&action=list', - ], - 'laender' => [ - 'name' => 'Länderliste', - 'icon' => 'Icons_dunkel_14.gif', - 'link' => 'index.php?module=laender&action=list', - ], - 'kalender' => [ - 'name' => 'Kalender Gruppen', - 'icon' => 'Icons_dunkel_2.gif', - 'link' => 'index.php?module=kalender&action=gruppenlist', - ], - 'prozessstarter' => [ - 'name' => 'Prozessstarter', - 'icon' => 'Icons_dunkel_22.gif', - 'link' => 'index.php?module=prozessstarter&action=list', - ], - 'welcome' => [ - 'name' => 'Lizenz', - 'icon' => 'Icons_dunkel_23.gif', - 'link' => 'index.php?module=welcome&action=info', - ], - 'drucker' => [ - 'name' => 'Drucker', - 'icon' => 'Icons_dunkel_24.gif', - 'link' => 'index.php?module=drucker&action=list', - ], - 'adapterbox' => [ - 'name' => 'Adapterbox', - 'icon' => 'Icons_dunkel_25.gif', - 'link' => 'index.php?module=adapterbox&action=list', - ], - 'protokoll' => [ - 'name' => 'Protokoll', - 'icon' => 'Icons_dunkel_22.gif', - 'link' => 'index.php?module=protokoll&action=list', - ], - 'etiketten' => [ - 'name' => 'Etiketten', - 'icon' => 'Icons_dunkel_14.gif', - 'link' => 'index.php?module=etiketten&action=list', - ], - 'uebersetzung' => [ - 'name' => 'Übersetzungen', - 'icon' => 'Icons_dunkel_14.gif', - 'link' => 'index.php?module=uebersetzung&action=list', - ], - 'arbeitsfreietage' => [ - 'name' => 'Arbeitsfreie Tage', - 'icon' => 'Icons_dunkel_14.gif', - 'link' => 'index.php?module=arbeitsfreietage&action=list', - ], - 'support' => [ - 'name' => 'Support', - 'icon' => 'Icons_dunkel_23.gif', - 'link' => 'index.php?module=support&action=list', - ], - 'api_account' => [ - 'name' => 'API-Account', - 'icon' => 'Icons_dunkel_25.gif', - 'link' => 'index.php?module=api_account&action=list', - ], - ], - 'Lager und Logistik' => [ - 'zolltarifnummer' => [ - 'name' => 'Zolltarifnummer', - 'icon' => 'Icons_dunkel_16.gif', - 'link' => 'index.php?module=zolltarifnummer&action=list', - ], - 'versandarten' => [ - 'name' => 'Versandarten', - 'icon' => 'Icons_dunkel_16.gif', - 'link' => 'index.php?module=versandarten&action=list', - ], - 'lieferbedingungen' => [ - 'name' => 'Lieferbedingungen', - 'icon' => 'Icons_dunkel_16.gif', - 'link' => 'index.php?module=lieferbedingungen&action=list', - ], - ], - 'Shop Schnittstelle' => [ - 'onlineshops' => [ - 'name' => 'Online-Shops', - 'icon' => 'Icons_dunkel_20.gif', - 'link' => 'index.php?module=onlineshops&action=list', - ], - ], - 'Mitarbeiter Verwaltung' => [ - 'stechuhrdevice' => [ - 'name' => 'Mitarbeiterzeiterfassung Geräteeinstellungen', - 'icon' => 'Icons_dunkel_14.gif', - 'link' => 'index.php?module=stechuhrdevice&action=list', - ], - ], - ]; - } - - - function EinstellungenCreate() - { - $this->app->Tpl->Add('TABS', - "Zurück zur Übersicht"); - } - - /** - * @return array - */ - public function getTestModules() - { - /** @var Appstore $appstore */ - $ret = []; - $appstore = $this->app->erp->LoadModul('appstore'); - $modules = $appstore->GetApps(); - if(!empty($modules['installiert'])) { - foreach($modules['installiert'] as $k => $modul) { - if(!empty($modul['ablaufdatum']) || ($modul['key'] === 'stechuhrdevice' && $this->app->erp->RechteVorhanden('stechuhrdevice','list'))) { - if(!empty($modul['ablaufdatum']) && strtotime($modul['ablaufdatum']) < strtotime(date('Y-m-d'))) { - continue; - } - $ret[] = [ - 'Icon' => $modul['Icon'], - 'ablaufdatum' => !empty($modul['ablaufdatum'])?$this->app->String->Convert($modul['ablaufdatum'], '%1-%2-%3', '%3.%2.%1'):null, - 'key' => $modul['key'], - 'Link' => $modul['Link'], - 'Bezeichnung' => strip_tags($modul['Bezeichnung']) - ]; - } - } - } - return $ret; - } - - /** - * @param array $array - * @param int $countPerRow - * - * @return array - */ - public function groupArray($array, $countPerRow = 0) - { - $ret = []; - if($countPerRow === 0) { - foreach($array as $key => $element) { - $ret[] = [$key => $element]; - } - - return $ret; - } - - $i = 0; - $row = []; - foreach($array as $key => $elements) { - $i++; - $row[$key] = $elements; - if($i % $countPerRow === 0) { - $ret[] = $row; - $row = []; - } - } - - if(!empty($row)) { - $ret[] = $row; - } - - return $ret; - } - - /** - * @return array - */ - public function getAppsWithSettings() - { - /** @var Appstore $appstore */ - $appstore = $this->app->loadModule('appstore'); - $apps = $appstore->GetApps(); - $kauf = empty($apps['kauf'])?[]:$apps['kauf']; - $apps = empty($apps['installiert'])?[]:$apps['installiert']; - if(!empty($kauf)) { - foreach($kauf as $module) { - if($this->app->erp->ModulVorhanden($module['key'])) { - $apps[] = $module; - } - } - } - $appsWithSettings = []; - $modulesWithSettings = []; - /** @var Benutzer $userModule */ - $userModule = $this->app->loadModule('benutzer'); - $enc = $userModule->ScanModules(); - if(!empty($enc)) { - foreach($enc as $module => $actions) { - $module = strtolower($module); - if(in_array('settings', $actions)) { - $modulesWithSettings[$module] = 'settings'; - continue; - } - if(in_array('einstellungen', $actions)) { - $modulesWithSettings[$module] = 'einstellungen'; - continue; - } - if(in_array('einstellung', $actions)) { - $modulesWithSettings[$module] = 'einstellung'; - continue; - } - } - } - $sprachen = array('german','english'); - if(method_exists($this->app->User,'GetSprachen')) { - $sprachen = $this->app->User->GetSprachen(); - if (in_array('deutsch', $sprachen, true) && !in_array('german', $sprachen, true)) { - $sprachen[] = 'german'; - } - } - $inline = []; - if(is_array($sprachen)) { - $sprachen = array_reverse($sprachen); - - foreach($sprachen as $sprache) { - if(preg_match_all('/[a-zA-Z0-9\-]/', $sprache, $erg)) { - if(is_file(dirname(dirname(__DIR__)).'/languages/'.$sprache.'/inline.php')) { - include dirname(dirname(__DIR__)).'/languages/'.$sprache.'/inline.php'; - } - } - } - } - - foreach($apps as $app) { - - $showInSettings = isset($app['settings']) && $app['settings']==true; - - if(empty($modulesWithSettings[$app['key']]) && !$showInSettings) { - continue; - } - if(!$this->app->erp->RechteVorhanden($app['key'], $modulesWithSettings[$app['key']]) && !$showInSettings) { - continue; - } - if(!empty($inline[$app['key']]['default']['kategorie'])) { - $app['kategorie'] = $inline[$app['key']]['default']['kategorie']; - } - $category = empty($app['kategorie'])?'{|System|}':$app['kategorie']; - if($showInSettings){ - $link = $app['Link']; - }else{ - $link = 'index.php?module='.$app['key'].'&action='. $modulesWithSettings[$app['key']]; - } - - $icon = [ - 'name' => $app['Bezeichnung'], - 'icon' => $app['Icon'], - 'link' => $link, - 'key' => $app['key'], - ]; - $appsWithSettings[$category][$app['Bezeichnung']] = $icon; - } - - ksort($appsWithSettings); - $return = []; - foreach($appsWithSettings as $category => $apps) { - ksort($apps); - $return[$category] = []; - foreach($apps as $app) { - $return[$category][$app['key']] = $app; - } - } - - return $return; - } - - public function SettingsCategoryApps() - { - $categoryFromParam = $this->app->Secure->GetGET('category', null, '', true); - - $iconSearchString = $categoryFromParam; - if(strstr($categoryFromParam,'{|') === false){ - $iconSearchString = '{|'.$categoryFromParam.'|}'; - } - - /** @var Appstore $appstore */ - $appstore = $this->app->erp->LoadModul('appstore'); - $iconTag = $appstore->GetAppIconTagByCategory($iconSearchString); - $html = ''; - $appList = $appstore->GetApps(); - - $this->app->erp->Headlines(' '); - $overviewTile = $appstore->getOverViewFromCategory($categoryFromParam); - $this->app->Tpl->Set( - 'CURRENTHEADLINES', - 'Einstellungen / '. $categoryFromParam .'' - ); - $this->app->Tpl->Set('CATEGORY', $categoryFromParam); - - if($overviewTile !== null) { - $html .= $this->createIconHtmlForCategory($overviewTile, $categoryFromParam, $iconTag); - } - - foreach ($appList['installiert'] as $modul) { - $cleanCategory = str_replace(array('{|','|}'), '', $modul['kategorie']); - if ($categoryFromParam === $cleanCategory) { - $html .= $this->createIconHtmlForCategory($modul, $categoryFromParam, $iconTag); - } - } - - $this->app->Tpl->Set('HTML', $html); - - $this->app->Tpl->Parse('STANDARDMODULE', 'einstellungen_apptile.tpl'); - - $this->app->Tpl->Parse('TAB1', 'einstellungen_categorysite.tpl'); - $this->app->Tpl->Parse('PAGE','tabview.tpl'); - } - - /** - * @param array $modul - * @param string $categoryFromParam - * @param string $iconTag - * - * @return string - */ - public function createIconHtmlForCategory($modul, $categoryFromParam, $iconTag) - { - $link = 'index.php?module='. $modul['key'] .'&action=list'; - if(!empty($modul['Link'])) { - $link = $modul['Link']; - } - - return ''. - '
'. - '
' . - '' . - strip_tags($modul['Bezeichnung']) - .'
' . - (!empty($modul['ablaufdatum']) - ? '{|Ablauf am|} ' - . $this->app->String->Convert($modul['ablaufdatum'], '%1-%2-%3', '%3.%2.%1') . '' - : '') - . (!empty($modul['beta'])?' BETA':'') - . (!empty($modul['legacy']) && $modul['legacy']?' LEGACY':'') - . (!empty($modul['special']) && $modul['special']?' SPECIAL':'') - . (!empty($modul['project_sensitive']) && $modul['project_sensitive']?' PROJEKT':'') - . '
' - . '
'; - } - - /** - * @param string $category - * - * @return string - */ - public function getCategoryLinkByCategory(string $category): string - { - switch($category) { - case '{|Versandarten|}': - return 'index.php?module=versandarten&action=list&overviewpage=einstellungen&overviewpageaction=list&backlinkparameter=einstellungen&backlinkparameter=list'; - case '{|Zahlungsweisen|}': - return 'index.php?module=zahlungsweisen&action=list&overviewpage=einstellungen&overviewpageaction=list&backlinkmodule=einstellungen&backlinkparameter=list'; - case '{|Shop Schnittstelle|}': - return 'index.php?module=onlineshops&action=list&overviewpage=einstellungen&overviewpageaction=list&backlinkmodule=einstellungen&backlinkparameter=list'; - } - - return 'index.php?module=einstellungen&action=category&category=' . str_replace(['{|', '|}'], '', $category); - } - - public function EinstellungenList() - { - - $this->app->erp->Headlines(' '); - $this->app->Tpl->Set('EMAILBACKUPLINK', 'href="index.php?module=emailbackup&action=list"'); - if(!$this->app->erp->ModulVorhanden('emailbackup')){ - $this->app->Tpl->Set('EMAILBACKUPLINK', ''); - $this->app->Tpl->Set('GREYEMAILBACKUP',''); - } - $this->app->Tpl->Set('TICKETVORLAGENLINK', 'href="index.php?module=ticket_vorlage&action=list"'); - if(!$this->app->erp->ModulVorhanden('ticket_vorlage')){ - $this->app->Tpl->Set('TICKETVORLAGENLINK', ''); - $this->app->Tpl->Set('GREYTICKETVORLAGEN',''); - } - $this->app->Tpl->Set('UEBERSETZUNGENLINK', 'href="index.php?module=uebersetzung&action=list"'); - if(!$this->app->erp->ModulVorhanden('uebersetzung')){ - $this->app->Tpl->Set('UEBERSETZUNGENLINK', ''); - $this->app->Tpl->Set('GREYUEBERSETZUNGEN',''); - } - $this->app->Tpl->Set('KOSTENSTELLENLINK', 'href="index.php?module=kostenstellen&action=list"'); - if(!$this->app->erp->ModulVorhanden('kostenstellen')){ - $this->app->Tpl->Set('KOSTENSTELLENLINK', ''); - $this->app->Tpl->Set('GREYKOSTENSTELLEN',''); - } - $this->app->Tpl->Set('ZOLLTARIFNUMMERLINK', 'href="index.php?module=zolltarifnummer&action=list"'); - if(!$this->app->erp->ModulVorhanden('zolltarifnummer')){ - $this->app->Tpl->Set('ZOLLTARIFNUMMERLINK', ''); - $this->app->Tpl->Set('GREYZOLLTARIFNUMMER',''); - } - $this->app->Tpl->Set('WARTESCHLANGENLINK', 'href="index.php?module=warteschlangen&action=list"'); - if(!$this->app->erp->ModulVorhanden('warteschlangen')){ - $this->app->Tpl->Set('WARTESCHLANGENLINK', ''); - $this->app->Tpl->Set('GREYWARTESCHLANGEN',''); - } - - $this->app->Tpl->Set('GREYVERRECHNUNGSART',''); - - $this->app->Tpl->Set('GRUPPENLINK', 'href="index.php?module=gruppen&action=list"'); - if(!$this->app->erp->ModulVorhanden('gruppen')){ - $this->app->Tpl->Set('GRUPPENLINK', ''); - $this->app->Tpl->Set('GREYGRUPPEN',''); - } - $this->app->Tpl->Set('ARTIKELKATEGORIENLINK', 'href="index.php?module=artikelkategorien&action=list"'); - if(!$this->app->erp->ModulVorhanden('artikelkategorien')){ - $this->app->Tpl->Set('ARTIKELKATEGORIENLINK', ''); - $this->app->Tpl->Set('GREYARTIKELKATEGORIEN',''); - } - $this->app->Tpl->Set('USERVORLAGELINK', 'href="index.php?module=uservorlage&action=list"'); - if(!$this->app->erp->ModulVorhanden('uservorlage')){ - $this->app->Tpl->Set('USERVORLAGELINK', ''); - $this->app->Tpl->Set('GREYUSERVORLAGE',''); - } - $this->app->Tpl->Set('KONTENLINK', 'href="index.php?module=konten&action=list"'); - if(!$this->app->erp->ModulVorhanden('konten')){ - $this->app->Tpl->Set('KONTENLINK', ''); - $this->app->Tpl->Set('GREYKONTEN',''); - } - $this->app->Tpl->Set('KONTORAHMENLINK', 'href="index.php?module=kontorahmen&action=list"'); - if(!$this->app->erp->ModulVorhanden('kontorahmen')){ - $this->app->Tpl->Set('KONTORAHMENLINK', ''); - $this->app->Tpl->Set('GREYKONTORAHMEN',''); - } - $this->app->Tpl->Set('LIEFERBEDINGUNGENLINK', 'href="index.php?module=lieferbedingungen&action=list"'); - if(!$this->app->erp->ModulVorhanden('lieferbedingungen')){ - $this->app->Tpl->Set('LIEFERBEDINGUNGENLINK', ''); - $this->app->Tpl->Set('GREYLIEFERBEDINGUNGEN',''); - } - $this->app->Tpl->Set('ARBEITSFREIETAGELINK', 'href="index.php?module=arbeitsfreietage&action=list"'); - if(!$this->app->erp->ModulVorhanden('arbeitsfreietage')){ - $this->app->Tpl->Set('ARBEITSFREIETAGELINK', ''); - $this->app->Tpl->Set('GREYARBEITSFREIETAGE',''); - } - - - $this->app->Tpl->Parse('TAB1',"einstellungen.tpl"); - //$this->app->Tpl->Set(TABTEXT,"Einstellungen"); - $this->app->Tpl->Parse('PAGE',"tabview.tpl"); - } - - function EinstellungenMenu() - { - $id = $this->app->Secure->GetGET("id"); - - $this->app->Tpl->Add('TABS',"Einstellungen "); - $this->app->Tpl->Add('TABS',"Stückliste "); - $this->app->Tpl->Add('TABS',"Verkauf "); - $this->app->Tpl->Add('TABS',"Einkauf "); - $this->app->Tpl->Add('TABS',"Projekte "); - $this->app->Tpl->Add('TABS',"Lager "); - $this->app->Tpl->Add('TABS',"Dateien "); - $this->app->Tpl->Add('TABS',"Provisionen "); - $this->app->Tpl->Add('TABS',"Etiketten "); - //$this->app->Tpl->Add('TABS',"Gesamtkalkulation "); - $this->app->Tpl->Add('TABS',"Zurück zur Übersicht "); - } - - - function EinstellungenEdit() - { - $this->EinstellungenMenu(); - $this->app->Tpl->Set('TABLE_ADRESSE_KONTAKTHISTORIE',"TDB"); - $this->app->Tpl->Set('TABLE_ADRESSE_ROLLEN',"TDB"); - - $this->app->Tpl->Set('TABLE_ADRESSE_USTID',"TDB"); - } - - /** - * @param string $overviewPageAction - * - * @return string|null - */ - public function getOverViewLink($overviewPageAction): ?string - { - if(!in_array($overviewPageAction, ['', 'list'])) { - return null; - } - - return 'index.php?module=einstellungen&action=list'; - } - - - /** - * @param string $backlinkParameter - * - * @return string|null - */ - public function getBackLink($backlinkParameter): ?string - { - if($backlinkParameter === 'list') { - return 'index.php?module=einstellungen&action=list'; - } - $appstore = $this->app->loadModule('appstore', false); - $appList = $appstore->GetApps(); - - foreach ($appList['installiert'] as $modul) { - $cleanCategory = str_replace(array('{|', '|}'), '', $modul['kategorie']); - if($cleanCategory === $backlinkParameter) { - return 'index.php?module=einstellungen&action=category&category='.urlencode($backlinkParameter); - } - } - - return null; - } -} +app=$app; + if($intern) { + return; + } + + $this->app->ActionHandlerInit($this); + + $this->app->ActionHandler("create","EinstellungenCreate"); + $this->app->ActionHandler("edit","EinstellungenEdit"); + $this->app->ActionHandler("list","EinstellungenList"); + $this->app->ActionHandler("betaprogram", "EinstellungenBetaProgram"); + $this->app->ActionHandler("category","SettingsCategoryApps"); + $this->app->ActionHandlerListen($app); + + $this->app->Tpl->Set('UEBERSCHRIFT',"Einstellungen"); + $this->app->Tpl->Set('FARBE',"[FARBE5]"); + } + + /** + * @param bool $parameter + * + * @return null|string + */ + protected function sendBeta($parameter) + { + $setBeta = $parameter; + $updateResultStatus = null; + include_once dirname(__DIR__, 2).'/upgradesystemclient2_includekey.php'; + + return $updateResultStatus; + } + + /** + * @param bool $betaStatus + */ + public function tryChangeBetaStatusAndLocateToSite(bool $betaStatus): void + { + $updateServerResult = $this->sendBeta($betaStatus); + if($updateServerResult === 'OK') { + $this->app->User->SetParameter('updatekey', 1); + $this->app->User->SetParameter('einstellungen_beta_activated', $betaStatus ? '1' : ''); + /** @var Appstore $appStore */ + $appStore = $this->app->loadModule('appstore'); + $appStore->resetBuyListCache(); + $appStore->resetBuyInfoCache(); + $this->app->Location->execute('index.php?module=einstellungen&action=betaprogram&cmd=updatekey'); + } + if($betaStatus) { + $msg = $this->app->erp->base64_url_encode( + '
Das Beta-Programm konnte nicht aktiviert werden
' + ); + } + else { + $msg = $this->app->erp->base64_url_encode( + '
Das Beta-Programm konnte nicht beendet werden
' + ); + } + $this->app->Location->execute('index.php?module=einstellungen&action=betaprogram&msg='.$msg); + } + + /** + * @return void + */ + public function EinstellungenBetaProgram() + { + $cmd = $this->app->Secure->GetGET('cmd'); + if($cmd === 'updatekey') { + include dirname(dirname(__DIR__)).'/version.php'; + $this->app->User->SetParameter('updatekey',''); + include_once dirname(dirname(__DIR__)).'/upgradesystemclient2_includekey.php'; + $this->app->Location->execute('index.php?module=einstellungen&action=betaprogram'); + } + if($this->app->Secure->GetPOST('deactivate')) { + $this->tryChangeBetaStatusAndLocateToSite(false); + } + if($this->app->Secure->GetPOST('beta-agreement')) { + $this->tryChangeBetaStatusAndLocateToSite(true); + } + + $openPopup = !empty($this->app->User->GetParameter('einstellungen_beta_activated')); + + if($openPopup) { + $this->app->User->SetParameter('einstellungen_beta_activated', ''); + $this->app->Tpl->Set('BETAOPEN', '1'); + } + else { + $this->app->Tpl->Set('BETAOPEN', ''); + } + + $this->app->erp->MenuEintrag('index.php?module=einstellungen&action=betaprogram', 'Beta Programm'); + if(!empty(erpAPI::Ioncube_Property('isbetaactive'))) { + $this->app->Tpl->Set('BEFORESHOWIFBETADEACTIVATED', ''); + } + else { + $this->app->Tpl->Set('BEFORESHOWIFBETAACTIVATED', ''); + } + $this->app->erp->Headlines('Beta Programm'); + $this->app->Tpl->Parse('PAGE', 'einstellungen_betaprogram.tpl'); + } + + /** + * @return string[][][] + */ + public function getModulesByCategory() + { + return [ + 'System' => [ + 'firmendaten' => [ + 'name' => 'Grundeinstellungen', + 'icon' => 'Icons_dunkel_1.gif', + 'link' => 'index.php?module=firmendaten&action=edit', + ], + 'benutzer' => [ + 'name' => 'Benutzer', + 'icon' => 'Icons_dunkel_2.gif', + 'link' => 'index.php?module=benutzer&action=list', + ], + 'geschaeftsbrief_vorlagen' => [ + 'name' => 'Geschäftsbrief Vorlagen', + 'icon' => 'Icons_dunkel_3.gif', + 'link' => 'index.php?module=geschaeftsbrief_vorlagen&action=list', + ], + 'emailbackup' => [ + 'name' => 'E-Mail Accounts', + 'icon' => 'Icons_dunkel_4.gif', + 'link' => 'index.php?module=emailbackup&action=list', + ], + 'ticket_vorlage' => [ + 'name' => 'Ticket Vorlagen', + 'icon' => 'Icons_dunkel_5.gif', + 'link' => 'index.php?module=ticket_vorlage&action=list', + ], + 'warteschlangen' => [ + 'name' => 'Warteschlangen', + 'icon' => 'Icons_dunkel_6.gif', + 'link' => 'index.php?module=warteschlangen&action=list', + ], + 'artikelkategorien' => [ + 'name' => 'Artikel Kategorien', + 'icon' => 'Icons_dunkel_15.gif', + 'link' => 'index.php?module=artikelkategorien&action=list', + ], + 'artikeleinheit' => [ + 'name' => 'Artikel Einheiten', + 'icon' => 'Icons_dunkel_14.gif', + 'link' => 'index.php?module=artikeleinheit&action=list', + ], + 'gruppen' => [ + 'name' => 'Gruppen', + 'icon' => 'Icons_dunkel_2.gif', + 'link' => 'index.php?module=gruppen&action=list', + ], + 'uservorlage' => [ + 'name' => 'Benutzer Vorlage', + 'icon' => 'Icons_dunkel_2.gif', + 'link' => 'index.php?module=uservorlage&action=list', + ], + 'laender' => [ + 'name' => 'Länderliste', + 'icon' => 'Icons_dunkel_14.gif', + 'link' => 'index.php?module=laender&action=list', + ], + 'kalender' => [ + 'name' => 'Kalender Gruppen', + 'icon' => 'Icons_dunkel_2.gif', + 'link' => 'index.php?module=kalender&action=gruppenlist', + ], + 'prozessstarter' => [ + 'name' => 'Prozessstarter', + 'icon' => 'Icons_dunkel_22.gif', + 'link' => 'index.php?module=prozessstarter&action=list', + ], + 'welcome' => [ + 'name' => 'Lizenz', + 'icon' => 'Icons_dunkel_23.gif', + 'link' => 'index.php?module=welcome&action=info', + ], + 'drucker' => [ + 'name' => 'Drucker', + 'icon' => 'Icons_dunkel_24.gif', + 'link' => 'index.php?module=drucker&action=list', + ], + 'adapterbox' => [ + 'name' => 'Adapterbox', + 'icon' => 'Icons_dunkel_25.gif', + 'link' => 'index.php?module=adapterbox&action=list', + ], + 'protokoll' => [ + 'name' => 'Protokoll', + 'icon' => 'Icons_dunkel_22.gif', + 'link' => 'index.php?module=protokoll&action=list', + ], + 'etiketten' => [ + 'name' => 'Etiketten', + 'icon' => 'Icons_dunkel_14.gif', + 'link' => 'index.php?module=etiketten&action=list', + ], + 'uebersetzung' => [ + 'name' => 'Übersetzungen', + 'icon' => 'Icons_dunkel_14.gif', + 'link' => 'index.php?module=uebersetzung&action=list', + ], + 'arbeitsfreietage' => [ + 'name' => 'Arbeitsfreie Tage', + 'icon' => 'Icons_dunkel_14.gif', + 'link' => 'index.php?module=arbeitsfreietage&action=list', + ], + 'support' => [ + 'name' => 'Support', + 'icon' => 'Icons_dunkel_23.gif', + 'link' => 'index.php?module=support&action=list', + ], + 'api_account' => [ + 'name' => 'API-Account', + 'icon' => 'Icons_dunkel_25.gif', + 'link' => 'index.php?module=api_account&action=list', + ], + ], + 'Lager und Logistik' => [ + 'zolltarifnummer' => [ + 'name' => 'Zolltarifnummer', + 'icon' => 'Icons_dunkel_16.gif', + 'link' => 'index.php?module=zolltarifnummer&action=list', + ], + 'versandarten' => [ + 'name' => 'Versandarten', + 'icon' => 'Icons_dunkel_16.gif', + 'link' => 'index.php?module=versandarten&action=list', + ], + 'lieferbedingungen' => [ + 'name' => 'Lieferbedingungen', + 'icon' => 'Icons_dunkel_16.gif', + 'link' => 'index.php?module=lieferbedingungen&action=list', + ], + ], + 'Shop Schnittstelle' => [ + 'onlineshops' => [ + 'name' => 'Online-Shops', + 'icon' => 'Icons_dunkel_20.gif', + 'link' => 'index.php?module=onlineshops&action=list', + ], + ], + 'Mitarbeiter Verwaltung' => [ + 'stechuhrdevice' => [ + 'name' => 'Mitarbeiterzeiterfassung Geräteeinstellungen', + 'icon' => 'Icons_dunkel_14.gif', + 'link' => 'index.php?module=stechuhrdevice&action=list', + ], + ], + ]; + } + + + function EinstellungenCreate() + { + $this->app->Tpl->Add('TABS', + "Zurück zur Übersicht"); + } + + /** + * @return array + */ + public function getTestModules() + { + /** @var Appstore $appstore */ + $ret = []; + $appstore = $this->app->erp->LoadModul('appstore'); + $modules = $appstore->GetApps(); + if(!empty($modules['installiert'])) { + foreach($modules['installiert'] as $k => $modul) { + if(!empty($modul['ablaufdatum']) || ($modul['key'] === 'stechuhrdevice' && $this->app->erp->RechteVorhanden('stechuhrdevice','list'))) { + if(!empty($modul['ablaufdatum']) && strtotime($modul['ablaufdatum']) < strtotime(date('Y-m-d'))) { + continue; + } + $ret[] = [ + 'Icon' => $modul['Icon'], + 'ablaufdatum' => !empty($modul['ablaufdatum'])?$this->app->String->Convert($modul['ablaufdatum'], '%1-%2-%3', '%3.%2.%1'):null, + 'key' => $modul['key'], + 'Link' => $modul['Link'], + 'Bezeichnung' => strip_tags($modul['Bezeichnung']) + ]; + } + } + } + return $ret; + } + + /** + * @param array $array + * @param int $countPerRow + * + * @return array + */ + public function groupArray($array, $countPerRow = 0) + { + $ret = []; + if($countPerRow === 0) { + foreach($array as $key => $element) { + $ret[] = [$key => $element]; + } + + return $ret; + } + + $i = 0; + $row = []; + foreach($array as $key => $elements) { + $i++; + $row[$key] = $elements; + if($i % $countPerRow === 0) { + $ret[] = $row; + $row = []; + } + } + + if(!empty($row)) { + $ret[] = $row; + } + + return $ret; + } + + /** + * @return array + */ + public function getAppsWithSettings() + { + /** @var Appstore $appstore */ + $appstore = $this->app->loadModule('appstore'); + $apps = $appstore->GetApps(); + $kauf = empty($apps['kauf'])?[]:$apps['kauf']; + $apps = empty($apps['installiert'])?[]:$apps['installiert']; + if(!empty($kauf)) { + foreach($kauf as $module) { + if($this->app->erp->ModulVorhanden($module['key'])) { + $apps[] = $module; + } + } + } + $appsWithSettings = []; + $modulesWithSettings = []; + /** @var Benutzer $userModule */ + $userModule = $this->app->loadModule('benutzer'); + $enc = $userModule->ScanModules(); + if(!empty($enc)) { + foreach($enc as $module => $actions) { + $module = strtolower($module); + if(in_array('settings', $actions)) { + $modulesWithSettings[$module] = 'settings'; + continue; + } + if(in_array('einstellungen', $actions)) { + $modulesWithSettings[$module] = 'einstellungen'; + continue; + } + if(in_array('einstellung', $actions)) { + $modulesWithSettings[$module] = 'einstellung'; + continue; + } + } + } + $sprachen = array('german','english'); + if(method_exists($this->app->User,'GetSprachen')) { + $sprachen = $this->app->User->GetSprachen(); + if (in_array('deutsch', $sprachen, true) && !in_array('german', $sprachen, true)) { + $sprachen[] = 'german'; + } + } + $inline = []; + if(is_array($sprachen)) { + $sprachen = array_reverse($sprachen); + + foreach($sprachen as $sprache) { + if(preg_match_all('/[a-zA-Z0-9\-]/', $sprache, $erg)) { + if(is_file(dirname(dirname(__DIR__)).'/languages/'.$sprache.'/inline.php')) { + include dirname(dirname(__DIR__)).'/languages/'.$sprache.'/inline.php'; + } + } + } + } + + foreach($apps as $app) { + + $showInSettings = isset($app['settings']) && $app['settings']==true; + + if(empty($modulesWithSettings[$app['key']]) && !$showInSettings) { + continue; + } + if(!$this->app->erp->RechteVorhanden($app['key'], $modulesWithSettings[$app['key']]) && !$showInSettings) { + continue; + } + if(!empty($inline[$app['key']]['default']['kategorie'])) { + $app['kategorie'] = $inline[$app['key']]['default']['kategorie']; + } + $category = empty($app['kategorie'])?'{|System|}':$app['kategorie']; + if($showInSettings){ + $link = $app['Link']; + }else{ + $link = 'index.php?module='.$app['key'].'&action='. $modulesWithSettings[$app['key']]; + } + + $icon = [ + 'name' => $app['Bezeichnung'], + 'icon' => $app['Icon'], + 'link' => $link, + 'key' => $app['key'], + ]; + $appsWithSettings[$category][$app['Bezeichnung']] = $icon; + } + + ksort($appsWithSettings); + $return = []; + foreach($appsWithSettings as $category => $apps) { + ksort($apps); + $return[$category] = []; + foreach($apps as $app) { + $return[$category][$app['key']] = $app; + } + } + + return $return; + } + + public function SettingsCategoryApps() + { + $categoryFromParam = $this->app->Secure->GetGET('category', null, '', true); + + $iconSearchString = $categoryFromParam; + if(strstr($categoryFromParam,'{|') === false){ + $iconSearchString = '{|'.$categoryFromParam.'|}'; + } + + /** @var Appstore $appstore */ + $appstore = $this->app->erp->LoadModul('appstore'); + $iconTag = $appstore->GetAppIconTagByCategory($iconSearchString); + $html = ''; + $appList = $appstore->GetApps(); + + $this->app->erp->Headlines(' '); + $overviewTile = $appstore->getOverViewFromCategory($categoryFromParam); + $this->app->Tpl->Set( + 'CURRENTHEADLINES', + 'Einstellungen / '. $categoryFromParam .'' + ); + $this->app->Tpl->Set('CATEGORY', $categoryFromParam); + + if($overviewTile !== null) { + $html .= $this->createIconHtmlForCategory($overviewTile, $categoryFromParam, $iconTag); + } + + foreach ($appList['installiert'] as $modul) { + $cleanCategory = str_replace(array('{|','|}'), '', $modul['kategorie']); + if ($categoryFromParam === $cleanCategory) { + $html .= $this->createIconHtmlForCategory($modul, $categoryFromParam, $iconTag); + } + } + + $this->app->Tpl->Set('HTML', $html); + + $this->app->Tpl->Parse('STANDARDMODULE', 'einstellungen_apptile.tpl'); + + $this->app->Tpl->Parse('TAB1', 'einstellungen_categorysite.tpl'); + $this->app->Tpl->Parse('PAGE','tabview.tpl'); + } + + /** + * @param array $modul + * @param string $categoryFromParam + * @param string $iconTag + * + * @return string + */ + public function createIconHtmlForCategory($modul, $categoryFromParam, $iconTag) + { + $link = 'index.php?module='. $modul['key'] .'&action=list'; + if(!empty($modul['Link'])) { + $link = $modul['Link']; + } + + return ''. + '
'. + '
' . + '' . + strip_tags($modul['Bezeichnung']) + .'
' . + (!empty($modul['ablaufdatum']) + ? '{|Ablauf am|} ' + . $this->app->String->Convert($modul['ablaufdatum'], '%1-%2-%3', '%3.%2.%1') . '' + : '') + . (!empty($modul['beta'])?' BETA':'') + . (!empty($modul['legacy']) && $modul['legacy']?' LEGACY':'') + . (!empty($modul['special']) && $modul['special']?' SPECIAL':'') + . (!empty($modul['project_sensitive']) && $modul['project_sensitive']?' PROJEKT':'') + . '
' + . '
'; + } + + /** + * @param string $category + * + * @return string + */ + public function getCategoryLinkByCategory(string $category): string + { + switch($category) { + case '{|Versandarten|}': + return 'index.php?module=versandarten&action=list&overviewpage=einstellungen&overviewpageaction=list&backlinkparameter=einstellungen&backlinkparameter=list'; + case '{|Zahlungsweisen|}': + return 'index.php?module=zahlungsweisen&action=list&overviewpage=einstellungen&overviewpageaction=list&backlinkmodule=einstellungen&backlinkparameter=list'; + case '{|Shop Schnittstelle|}': + return 'index.php?module=onlineshops&action=list&overviewpage=einstellungen&overviewpageaction=list&backlinkmodule=einstellungen&backlinkparameter=list'; + } + + return 'index.php?module=einstellungen&action=category&category=' . str_replace(['{|', '|}'], '', $category); + } + + public function EinstellungenList() + { + + $this->app->erp->Headlines(' '); + $this->app->Tpl->Set('EMAILBACKUPLINK', 'href="index.php?module=emailbackup&action=list"'); + if(!$this->app->erp->ModulVorhanden('emailbackup')){ + $this->app->Tpl->Set('EMAILBACKUPLINK', ''); + $this->app->Tpl->Set('GREYEMAILBACKUP',''); + } + $this->app->Tpl->Set('TICKETVORLAGENLINK', 'href="index.php?module=ticket_vorlage&action=list"'); + if(!$this->app->erp->ModulVorhanden('ticket_vorlage')){ + $this->app->Tpl->Set('TICKETVORLAGENLINK', ''); + $this->app->Tpl->Set('GREYTICKETVORLAGEN',''); + } + $this->app->Tpl->Set('UEBERSETZUNGENLINK', 'href="index.php?module=uebersetzung&action=list"'); + if(!$this->app->erp->ModulVorhanden('uebersetzung')){ + $this->app->Tpl->Set('UEBERSETZUNGENLINK', ''); + $this->app->Tpl->Set('GREYUEBERSETZUNGEN',''); + } + $this->app->Tpl->Set('KOSTENSTELLENLINK', 'href="index.php?module=kostenstellen&action=list"'); + if(!$this->app->erp->ModulVorhanden('kostenstellen')){ + $this->app->Tpl->Set('KOSTENSTELLENLINK', ''); + $this->app->Tpl->Set('GREYKOSTENSTELLEN',''); + } + $this->app->Tpl->Set('ZOLLTARIFNUMMERLINK', 'href="index.php?module=zolltarifnummer&action=list"'); + if(!$this->app->erp->ModulVorhanden('zolltarifnummer')){ + $this->app->Tpl->Set('ZOLLTARIFNUMMERLINK', ''); + $this->app->Tpl->Set('GREYZOLLTARIFNUMMER',''); + } + $this->app->Tpl->Set('WARTESCHLANGENLINK', 'href="index.php?module=warteschlangen&action=list"'); + if(!$this->app->erp->ModulVorhanden('warteschlangen')){ + $this->app->Tpl->Set('WARTESCHLANGENLINK', ''); + $this->app->Tpl->Set('GREYWARTESCHLANGEN',''); + } + + $this->app->Tpl->Set('GREYVERRECHNUNGSART',''); + + $this->app->Tpl->Set('GRUPPENLINK', 'href="index.php?module=gruppen&action=list"'); + if(!$this->app->erp->ModulVorhanden('gruppen')){ + $this->app->Tpl->Set('GRUPPENLINK', ''); + $this->app->Tpl->Set('GREYGRUPPEN',''); + } + $this->app->Tpl->Set('ARTIKELKATEGORIENLINK', 'href="index.php?module=artikelkategorien&action=list"'); + if(!$this->app->erp->ModulVorhanden('artikelkategorien')){ + $this->app->Tpl->Set('ARTIKELKATEGORIENLINK', ''); + $this->app->Tpl->Set('GREYARTIKELKATEGORIEN',''); + } + $this->app->Tpl->Set('USERVORLAGELINK', 'href="index.php?module=uservorlage&action=list"'); + if(!$this->app->erp->ModulVorhanden('uservorlage')){ + $this->app->Tpl->Set('USERVORLAGELINK', ''); + $this->app->Tpl->Set('GREYUSERVORLAGE',''); + } + $this->app->Tpl->Set('KONTENLINK', 'href="index.php?module=konten&action=list"'); + if(!$this->app->erp->ModulVorhanden('konten')){ + $this->app->Tpl->Set('KONTENLINK', ''); + $this->app->Tpl->Set('GREYKONTEN',''); + } + $this->app->Tpl->Set('KONTORAHMENLINK', 'href="index.php?module=kontorahmen&action=list"'); + if(!$this->app->erp->ModulVorhanden('kontorahmen')){ + $this->app->Tpl->Set('KONTORAHMENLINK', ''); + $this->app->Tpl->Set('GREYKONTORAHMEN',''); + } + $this->app->Tpl->Set('LIEFERBEDINGUNGENLINK', 'href="index.php?module=lieferbedingungen&action=list"'); + if(!$this->app->erp->ModulVorhanden('lieferbedingungen')){ + $this->app->Tpl->Set('LIEFERBEDINGUNGENLINK', ''); + $this->app->Tpl->Set('GREYLIEFERBEDINGUNGEN',''); + } + $this->app->Tpl->Set('ARBEITSFREIETAGELINK', 'href="index.php?module=arbeitsfreietage&action=list"'); + if(!$this->app->erp->ModulVorhanden('arbeitsfreietage')){ + $this->app->Tpl->Set('ARBEITSFREIETAGELINK', ''); + $this->app->Tpl->Set('GREYARBEITSFREIETAGE',''); + } + + + $this->app->Tpl->Parse('TAB1',"einstellungen.tpl"); + //$this->app->Tpl->Set(TABTEXT,"Einstellungen"); + $this->app->Tpl->Parse('PAGE',"tabview.tpl"); + } + + function EinstellungenMenu() + { + $id = $this->app->Secure->GetGET("id"); + + $this->app->Tpl->Add('TABS',"Einstellungen "); + $this->app->Tpl->Add('TABS',"Stückliste "); + $this->app->Tpl->Add('TABS',"Verkauf "); + $this->app->Tpl->Add('TABS',"Einkauf "); + $this->app->Tpl->Add('TABS',"Projekte "); + $this->app->Tpl->Add('TABS',"Lager "); + $this->app->Tpl->Add('TABS',"Dateien "); + $this->app->Tpl->Add('TABS',"Provisionen "); + $this->app->Tpl->Add('TABS',"Etiketten "); + //$this->app->Tpl->Add('TABS',"Gesamtkalkulation "); + $this->app->Tpl->Add('TABS',"Zurück zur Übersicht "); + } + + + function EinstellungenEdit() + { + $this->EinstellungenMenu(); + $this->app->Tpl->Set('TABLE_ADRESSE_KONTAKTHISTORIE',"TDB"); + $this->app->Tpl->Set('TABLE_ADRESSE_ROLLEN',"TDB"); + + $this->app->Tpl->Set('TABLE_ADRESSE_USTID',"TDB"); + } + + /** + * @param string $overviewPageAction + * + * @return string|null + */ + public function getOverViewLink($overviewPageAction): ?string + { + if(!in_array($overviewPageAction, ['', 'list'])) { + return null; + } + + return 'index.php?module=einstellungen&action=list'; + } + + + /** + * @param string $backlinkParameter + * + * @return string|null + */ + public function getBackLink($backlinkParameter): ?string + { + if($backlinkParameter === 'list') { + return 'index.php?module=einstellungen&action=list'; + } + $appstore = $this->app->loadModule('appstore', false); + $appList = $appstore->GetApps(); + + foreach ($appList['installiert'] as $modul) { + $cleanCategory = str_replace(array('{|', '|}'), '', $modul['kategorie']); + if($cleanCategory === $backlinkParameter) { + return 'index.php?module=einstellungen&action=category&category='.urlencode($backlinkParameter); + } + } + + return null; + } +} diff --git a/www/themes/new/images/sidebar/tickets.svg b/www/themes/new/images/sidebar/tickets.svg new file mode 100644 index 00000000..66cea796 --- /dev/null +++ b/www/themes/new/images/sidebar/tickets.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file