add admin menu

This commit is contained in:
Roland Schneider 2021-09-27 21:02:13 +02:00
parent f0e52f59c3
commit 328d02be03

View File

@ -1,223 +1,233 @@
<?php <?php
namespace backend\components; namespace backend\components;
use Yii; use Yii;
use common\components\RoleDefinition; use common\components\RoleDefinition;
class AdminMenuStructure{ class AdminMenuStructure
{
public $menuItems;
public $emptyUrl = '#';//maybe null public $menuItems;
public $emptyUrl = '#';//maybe null
public function __construct(){
$this->menuItems = []; public function __construct()
} {
$this->menuItems = [];
protected function can($authItem){ }
$result = false;
if (\Yii::$app->user->can($authItem)) { protected function can($authItem)
$result = true; {
} $result = false;
return $result; if (\Yii::$app->user->can($authItem)) {
} $result = true;
}
return $result;
}
/** /**
* @throws \yii\base\InvalidConfigException * @throws \yii\base\InvalidConfigException
*/ */
protected function addUserMainMenu(){ protected function addUserMainMenu()
{
$userMainMenu = null;
$items = []; $userMainMenu = null;
if (!Yii::$app->user->isGuest) { $items = [];
if (!Yii::$app->user->isGuest) {
//$today = \Yii::$app->formatter->asDate( time() );
$today = \Yii::$app->formatter->asDate( strtotime('today UTC') ); //$today = \Yii::$app->formatter->asDate( time() );
$tomorrow = \Yii::$app->formatter->asDate( strtotime('tomorrow UTC') ); $today = \Yii::$app->formatter->asDate(strtotime('today UTC'));
$tomorrow = \Yii::$app->formatter->asDate(strtotime('tomorrow UTC'));
$todayDatetime = \Yii::$app->formatter->asDatetime( strtotime('today UTC') );
$tomorrowDatetime = \Yii::$app->formatter->asDatetime( strtotime('tomorrow UTC') ); $todayDatetime = \Yii::$app->formatter->asDatetime(strtotime('today UTC'));
$tomorrowDatetime = \Yii::$app->formatter->asDatetime(strtotime('tomorrow UTC'));
/////////////////////////////
// Beállítások /////////////////////////////
///////////////////////////// // Beállítások
if ( RoleDefinition::isAdmin()){ /////////////////////////////
$items[] = ['label' => 'Felhasználók', 'url' =>['/user/index']]; if (RoleDefinition::isAdmin()) {
$items[] = ['label' => 'Jogosultságok', 'url' =>['/user/role']]; $items[] = ['label' => 'Felhasználók', 'url' => ['/user/index']];
$this->menuItems[] = ['label' => 'Beállítások', 'url' => $this->emptyUrl, $items[] = ['label' => 'Jogosultságok', 'url' => ['/user/role']];
'items' => $items $this->menuItems[] = ['label' => 'Beállítások', 'url' => $this->emptyUrl,
]; 'items' => $items
} ];
}
/////////////////////////////
// Törszadatok if (RoleDefinition::isAdmin() || RoleDefinition::isEmployee()
///////////////////////////// || RoleDefinition::isReception()) {
$items = []; /////////////////////////////
$items[] = ['label' => 'Raktárak', 'url' =>['/warehouse/index']]; // Törszadatok
if ( RoleDefinition::isAdmin()){ /////////////////////////////
$items[] = ['label' => 'Kasszák', 'url' =>['/account/index']]; $items = [];
} $items[] = ['label' => 'Raktárak', 'url' => ['/warehouse/index']];
$items[] = ['label' => 'Kedvezmények', 'url' => ['/discount/index'] ]; if (RoleDefinition::isAdmin()) {
$items[] = ['label' => 'Termék kategóriák', 'url' => ['/product-category/index'] ]; $items[] = ['label' => 'Kasszák', 'url' => ['/account/index']];
$items[] = ['label' => 'Bérlet típusok', 'url' => ['/ticket-type/index'] ]; }
$items[] = ['label' => 'Kulcsok', 'url' =>['/key/index']]; $items[] = ['label' => 'Kedvezmények', 'url' => ['/discount/index']];
$items[] = ['label' => 'Termék kategóriák', 'url' => ['/product-category/index']];
$items[] = ['label' => 'Bérlet típusok', 'url' => ['/ticket-type/index']];
$items[] = ['label' => 'Kulcsok', 'url' => ['/key/index']];
// $items[] = ['label' => 'Pénznem', 'url' => ['/currency/index'] ]; // $items[] = ['label' => 'Pénznem', 'url' => ['/currency/index'] ];
$this->menuItems[] = ['label' => 'Törzsadatok', 'url' =>$this->emptyUrl, $this->menuItems[] = ['label' => 'Törzsadatok', 'url' => $this->emptyUrl,
'items' => $items 'items' => $items
]; ];
///////////////////////////// /////////////////////////////
// BÉRLETEK // BÉRLETEK
///////////////////////////// /////////////////////////////
$items = []; $items = [];
$items[] = ['label' => 'Vendégek', 'url' => ['/customer/index'] , 'target_url' => ['/customer/index' ,'/customer/view','/ticket/index-customer'] ]; $items[] = ['label' => 'Vendégek', 'url' => ['/customer/index'], 'target_url' => ['/customer/index', '/customer/view', '/ticket/index-customer']];
$items[] = ['label' => 'Bérletkártyák', 'url' => ['/card/index'] ]; $items[] = ['label' => 'Bérletkártyák', 'url' => ['/card/index']];
$items[] = ['label' => 'Bérletek', 'url' => ['/ticket/index' , 'TicketSearch[start]' =>$todayDatetime,'TicketSearch[end]' => $tomorrowDatetime ] ]; $items[] = ['label' => 'Bérletek', 'url' => ['/ticket/index', 'TicketSearch[start]' => $todayDatetime, 'TicketSearch[end]' => $tomorrowDatetime]];
$items[] = ['label' => 'Statisztika', 'url' => ['/ticket/statistics' , 'TicketSearchStatisitcs[start]' =>$today,'TicketSearchStatisitcs[end]' => $tomorrow ] ]; $items[] = ['label' => 'Statisztika', 'url' => ['/ticket/statistics', 'TicketSearchStatisitcs[start]' => $today, 'TicketSearchStatisitcs[end]' => $tomorrow]];
$items[] = ['label' => 'Kártya létrehozás', 'url' => ['/card-package/index' , ] ]; $items[] = ['label' => 'Kártya létrehozás', 'url' => ['/card-package/index',]];
$items[] = ['label' => 'Kártya csomag RFId hozzárendelés', 'url' => ['/card-package/import' , ] ]; $items[] = ['label' => 'Kártya csomag RFId hozzárendelés', 'url' => ['/card-package/import',]];
$items[] = ['label' => 'Érvényességek újraszámolása', 'url' => ['/card/recalculate' , ] ]; $items[] = ['label' => 'Érvényességek újraszámolása', 'url' => ['/card/recalculate',]];
$this->menuItems[] = ['label' => 'Bérletek/Vendégek', 'url' => $this->emptyUrl, $this->menuItems[] = ['label' => 'Bérletek/Vendégek', 'url' => $this->emptyUrl,
'items' => $items 'items' => $items
]; ];
///////////////////////////// /////////////////////////////
// Termékek // Termékek
///////////////////////////// /////////////////////////////
$items = []; $items = [];
$items[] = ['label' => 'Termékek', 'url' => ['/product/index'] ]; $items[] = ['label' => 'Termékek', 'url' => ['/product/index']];
$items[] = ['label' => 'Beszerzések', 'url' => ['/procurement/index'] ]; $items[] = ['label' => 'Beszerzések', 'url' => ['/procurement/index']];
$items[] = ['label' => 'Selejt', 'url' => ['/waste/index' ,'WasteSearch[date_start]' =>$today,'WasteSearch[date_end]' => $tomorrow ] ]; $items[] = ['label' => 'Selejt', 'url' => ['/waste/index', 'WasteSearch[date_start]' => $today, 'WasteSearch[date_end]' => $tomorrow]];
$items[] = ['label' => 'Leltár csoport', 'url' => ['/inventory-group/index'] ]; $items[] = ['label' => 'Leltár csoport', 'url' => ['/inventory-group/index']];
$items[] = ['label' => 'Leltár', 'url' => ['/inventory/index'] ]; $items[] = ['label' => 'Leltár', 'url' => ['/inventory/index']];
$items[] = ['label' => 'Részletes eladások', 'url' => ['/transfer/sale' ,'TransferSaleSearch[start]' =>$todayDatetime,'TransferSaleSearch[end]' => $tomorrowDatetime ] ]; $items[] = ['label' => 'Részletes eladások', 'url' => ['/transfer/sale', 'TransferSaleSearch[start]' => $todayDatetime, 'TransferSaleSearch[end]' => $tomorrowDatetime]];
$items[] = ['label' => 'Termék összesítő', 'url' => ['/product/statistics' ,'ProductStatisticsSearch[start]' =>$todayDatetime,'ProductStatisticsSearch[end]' => $tomorrowDatetime ] ]; $items[] = ['label' => 'Termék összesítő', 'url' => ['/product/statistics', 'ProductStatisticsSearch[start]' => $todayDatetime, 'ProductStatisticsSearch[end]' => $tomorrowDatetime]];
$items[] = ['label' => 'Leltár pillanat képek', 'url' => ['/inventory/daily' ] ]; $items[] = ['label' => 'Leltár pillanat képek', 'url' => ['/inventory/daily']];
$this->menuItems[] = ['label' => 'Termékek', 'url' => $this->emptyUrl, $this->menuItems[] = ['label' => 'Termékek', 'url' => $this->emptyUrl,
'items' => $items 'items' => $items
]; ];
///////////////////////////// /////////////////////////////
// Pénzügy // Pénzügy
///////////////////////////// /////////////////////////////
$items = []; $items = [];
$items[] = ['label' => 'Tranzakciók', 'url' => ['/transfer/index' , 'TransferSearch[start]' =>$todayDatetime,'TransferSearch[end]' => $tomorrowDatetime ] ]; $items[] = ['label' => 'Tranzakciók', 'url' => ['/transfer/index', 'TransferSearch[start]' => $todayDatetime, 'TransferSearch[end]' => $tomorrowDatetime]];
// $items[] = ['label' => 'Bevétel', 'url' => ['/transfer/summary' , 'TransferSummarySearch[start]' =>$today,'TransferSummarySearch[end]' => $tomorrow ] ]; // $items[] = ['label' => 'Bevétel', 'url' => ['/transfer/summary' , 'TransferSummarySearch[start]' =>$today,'TransferSummarySearch[end]' => $tomorrow ] ];
$items[] = ['label' => 'Napi bevételek', 'url' => ['/transfer/list', 'TransferListSearch[start]' =>$todayDatetime,'TransferListSearch[end]' => $tomorrowDatetime ] ]; $items[] = ['label' => 'Napi bevételek', 'url' => ['/transfer/list', 'TransferListSearch[start]' => $todayDatetime, 'TransferListSearch[end]' => $tomorrowDatetime]];
$items[] = ['label' => 'Kassza müveletek', 'url' => ['/account-state/index'] ]; $items[] = ['label' => 'Kassza müveletek', 'url' => ['/account-state/index']];
$items[] = ['label' => 'Későbbi utalások', 'url' => ['/transfer/payment-later','TransferLaterSearch[start]' =>$todayDatetime,'TransferLaterSearch[end]' => $tomorrowDatetime ,'TransferLaterSearch[enterStart]' =>$todayDatetime,'TransferLaterSearch[enterEnd]' => $tomorrowDatetime ] ]; $items[] = ['label' => 'Későbbi utalások', 'url' => ['/transfer/payment-later', 'TransferLaterSearch[start]' => $todayDatetime, 'TransferLaterSearch[end]' => $tomorrowDatetime, 'TransferLaterSearch[enterStart]' => $todayDatetime, 'TransferLaterSearch[enterEnd]' => $tomorrowDatetime]];
//$items[] = ['label' => 'Zárások', 'url' => ['/collection/index' , 'CollectionSearch[start]' =>$todayDatetime,'CollectionSearch[end]' => $tomorrowDatetime ] ]; //$items[] = ['label' => 'Zárások', 'url' => ['/collection/index' , 'CollectionSearch[start]' =>$todayDatetime,'CollectionSearch[end]' => $tomorrowDatetime ] ];
$this->menuItems[] = ['label' => 'Pénzügy', 'url' => $this->emptyUrl, $this->menuItems[] = ['label' => 'Pénzügy', 'url' => $this->emptyUrl,
'items' => $items 'items' => $items
]; ];
///////////////////////////// /////////////////////////////
// Tartós megbízások // Tartós megbízások
///////////////////////////// /////////////////////////////
$items = []; $items = [];
$items[] = ['label' => 'Szerződések', 'url' => ['/contract/index' ] ]; $items[] = ['label' => 'Szerződések', 'url' => ['/contract/index']];
$items[] = ['label' => 'Megbízások', 'url' => ['/ticket-installment-request/index' , 'TicketInstallmentRequestSearch[start]' =>$today,'TicketInstallmentRequestSearch[end]' => $tomorrow ] ]; $items[] = ['label' => 'Megbízások', 'url' => ['/ticket-installment-request/index', 'TicketInstallmentRequestSearch[start]' => $today, 'TicketInstallmentRequestSearch[end]' => $tomorrow]];
$items[] = ['label' => 'Giro kötegbe jelölés', 'url' => ['/ticket-installment-request/pending' , 'TicketInstallmentRequestSearchPending[end]' => $tomorrow ] ]; $items[] = ['label' => 'Giro kötegbe jelölés', 'url' => ['/ticket-installment-request/pending', 'TicketInstallmentRequestSearchPending[end]' => $tomorrow]];
$items[] = ['label' => 'GIRO köteg létrehozás', 'url' => ['/ticket-installment-request/download-giro' ] ]; $items[] = ['label' => 'GIRO köteg létrehozás', 'url' => ['/ticket-installment-request/download-giro']];
$items[] = ['label' => 'GIRO kötegek', 'url' => ['/ugiro/index' ] ]; $items[] = ['label' => 'GIRO kötegek', 'url' => ['/ugiro/index']];
$items[] = ['label' => 'Detsta feltöltés', 'url' => ['/ugiro/upload' ] ]; $items[] = ['label' => 'Detsta feltöltés', 'url' => ['/ugiro/upload']];
// $items[] = ['label' => 'Részletek aktiválása', 'url' => ['/ugiro/parts' ] ]; // $items[] = ['label' => 'Részletek aktiválása', 'url' => ['/ugiro/parts' ] ];
// $items[] = ['label' => 'Bevétel', 'url' => ['/transfer/summary' , 'TransferSummarySearch[start]' =>$today,'TransferSummarySearch[end]' => $tomorrow ] ]; // $items[] = ['label' => 'Bevétel', 'url' => ['/transfer/summary' , 'TransferSummarySearch[start]' =>$today,'TransferSummarySearch[end]' => $tomorrow ] ];
// $items[] = ['label' => 'Napi bevételek', 'url' => ['/transfer/list', 'TransferListSearch[start]' =>$todayDatetime,'TransferListSearch[end]' => $tomorrowDatetime ] ]; // $items[] = ['label' => 'Napi bevételek', 'url' => ['/transfer/list', 'TransferListSearch[start]' =>$todayDatetime,'TransferListSearch[end]' => $tomorrowDatetime ] ];
// $items[] = ['label' => 'Kassza müveletek', 'url' => ['/account-state/index'] ]; // $items[] = ['label' => 'Kassza müveletek', 'url' => ['/account-state/index'] ];
if ( RoleDefinition::isAdmin() ){ if (RoleDefinition::isAdmin()) {
$this->menuItems[] = ['label' => 'Tartós megbízások', 'url' => $this->emptyUrl, $this->menuItems[] = ['label' => 'Tartós megbízások', 'url' => $this->emptyUrl,
'items' => $items 'items' => $items
]; ];
} }
///////////////////////////// /////////////////////////////
// Kap lug megbízások // Kap lug megbízások
///////////////////////////// /////////////////////////////
$items = [];
$items[] = ['label' => 'Kártya események', 'url' => ['/door-log/index' , 'DoorLogSearch[start]' =>$todayDatetime,'DoorLogSearch[end]' => $tomorrowDatetime ] ];
$items[] = ['label' => 'Esemény napló', 'url' => ['/log/index' , 'LogSearch[start]' =>$todayDatetime,'LogSearch[end]' => $tomorrowDatetime ] ];
$this->menuItems[] = ['label' => 'Események', 'url' => $this->emptyUrl,
'items' => $items
];
/////////////////////////////
// Hírlevelek
/////////////////////////////
$items = [];
$items[] = ['label' => 'Hírlevelek', 'url' => ['/newsletter/index' , 'NewsletterSearch[start]' =>$todayDatetime,'NewsletterSearch[end]' => $tomorrowDatetime ] ];
$this->menuItems[] = ['label' => 'Hírlevél', 'url' => $this->emptyUrl,
'items' => $items
];
/////////////////////////////
// Korona vírus
/////////////////////////////
$items = [];
$items[] = ['label' => 'Inaktiválás', 'url' => ['/customer/inactivate' ] ];
$items[] = ['label' => 'Aktiválás', 'url' => ['/customer/activate' ] ];
$this->menuItems[] = ['label' => 'Koronavírus', 'url' => $this->emptyUrl,
'items' => $items
];
/////////////////////////////
// Group Training
/////////////////////////////
if ( Yii::$app->user ){
$items = []; $items = [];
$items[] = ['label' => 'Felszerelés', 'url' => ['/event-equipment-type' ] ]; $items[] = ['label' => 'Kártya események', 'url' => ['/door-log/index', 'DoorLogSearch[start]' => $todayDatetime, 'DoorLogSearch[end]' => $tomorrowDatetime]];
$items[] = ['label' => 'Edzők', 'url' => ['/trainer' ] ]; $items[] = ['label' => 'Esemény napló', 'url' => ['/log/index', 'LogSearch[start]' => $todayDatetime, 'LogSearch[end]' => $tomorrowDatetime]];
$items[] = ['label' => 'Termek', 'url' => ['/room' ] ]; $this->menuItems[] = ['label' => 'Események', 'url' => $this->emptyUrl,
$items[] = ['label' => 'Esemény típusok', 'url' => ['/event-type' ] ]; 'items' => $items
$items[] = ['label' => 'Események', 'url' => ['/event/event/index' ] ]; ];
$items[] = ['label' => 'Órarend', 'url' => ['/event/event/timetable' ] ];
$items[] = ['label' => 'Hét másolása', 'url' => ['/event/event/copy-week' ] ];
$this->menuItems[] = ['label' => 'Csoportos edzés', 'url' => $this->emptyUrl, /////////////////////////////
'items' => $items // Hírlevelek
/////////////////////////////
$items = [];
$items[] = ['label' => 'Hírlevelek', 'url' => ['/newsletter/index', 'NewsletterSearch[start]' => $todayDatetime, 'NewsletterSearch[end]' => $tomorrowDatetime]];
$this->menuItems[] = ['label' => 'Hírlevél', 'url' => $this->emptyUrl,
'items' => $items
];
/////////////////////////////
// Korona vírus
/////////////////////////////
$items = [];
$items[] = ['label' => 'Inaktiválás', 'url' => ['/customer/inactivate']];
$items[] = ['label' => 'Aktiválás', 'url' => ['/customer/activate']];
$this->menuItems[] = ['label' => 'Koronavírus', 'url' => $this->emptyUrl,
'items' => $items
]; ];
} }
///////////////////////////// /////////////////////////////
// Development // Group Training
///////////////////////////// /////////////////////////////
if ( Yii::$app->user ){ if (RoleDefinition::isLoggedUser()) {
$items = []; $items = [];
$items[] = ['label' => 'Kapu Ki', 'url' => ['/door-log/out' ] ]; $items[] = ['label' => 'Felszerelés', 'url' => ['/event-equipment-type']];
$items[] = ['label' => 'Kapu Be', 'url' => ['/door-log/in' ] ]; $items[] = ['label' => 'Edzők', 'url' => ['/trainer']];
$this->menuItems[] = ['label' => 'Development', 'url' => $this->emptyUrl, $items[] = ['label' => 'Termek', 'url' => ['/room']];
'items' => $items $items[] = ['label' => 'Esemény típusok', 'url' => ['/event-type']];
$items[] = ['label' => 'Események', 'url' => ['/event/event/index']];
$items[] = ['label' => 'Órarend', 'url' => ['/event/event/timetable']];
$items[] = ['label' => 'Hét másolása', 'url' => ['/event/event/copy-week']];
$this->menuItems[] = ['label' => 'Csoportos edzés', 'url' => $this->emptyUrl,
'items' => $items
]; ];
} }
} /////////////////////////////
// Development
} /////////////////////////////
if (RoleDefinition::isAdmin()) {
protected function addLoginMainMenu(){ $items = [];
if (Yii::$app->user->isGuest) { $items[] = ['label' => 'Kapu Ki', 'url' => ['/door-log/out']];
$mainMenuItem= ['label' => Yii::t('common/site','Login'), 'url' => ['/site/login']]; $items[] = ['label' => 'Kapu Be', 'url' => ['/door-log/in']];
} else { $this->menuItems[] = ['label' => 'Development', 'url' => $this->emptyUrl,
'items' => $items
];
}
}
}
protected function addLoginMainMenu()
{
if (Yii::$app->user->isGuest) {
$mainMenuItem = ['label' => Yii::t('common/site', 'Login'), 'url' => ['/site/login']];
} else {
/** @noinspection PhpUndefinedFieldInspection */ /** @noinspection PhpUndefinedFieldInspection */
$mainMenuItem= [ $mainMenuItem = [
'label' => Yii::t('common/site','Logout') . '(' . Yii::$app->user->identity->username . ')', 'label' => Yii::t('common/site', 'Logout') . '(' . Yii::$app->user->identity->username . ')',
'url' => ['/site/logout'], 'url' => ['/site/logout'],
'linkOptions' => ['data-method' => 'post'] 'linkOptions' => ['data-method' => 'post']
]; ];
} }
$this->menuItems[] = $mainMenuItem; $this->menuItems[] = $mainMenuItem;
} }
/** /**
* @return array * @return array
* @throws \yii\base\InvalidConfigException * @throws \yii\base\InvalidConfigException
*/ */
public function run(){ public function run()
$this->addUserMainMenu(); {
$this->addUserMainMenu();
// $this->addLoginMainMenu(); // $this->addLoginMainMenu();
return $this->menuItems; return $this->menuItems;
} }
} }