From 328d02be03cb8880a0df55e6ec7b10b159fa7b2e Mon Sep 17 00:00:00 2001 From: Roland Schneider Date: Mon, 27 Sep 2021 21:02:13 +0200 Subject: [PATCH] add admin menu --- backend/components/AdminMenuStructure.php | 386 +++++++++++----------- 1 file changed, 198 insertions(+), 188 deletions(-) diff --git a/backend/components/AdminMenuStructure.php b/backend/components/AdminMenuStructure.php index f0c49be..a268768 100644 --- a/backend/components/AdminMenuStructure.php +++ b/backend/components/AdminMenuStructure.php @@ -1,223 +1,233 @@ menuItems = []; - } - - protected function can($authItem){ - $result = false; - if (\Yii::$app->user->can($authItem)) { - $result = true; - } - return $result; - } +class AdminMenuStructure +{ + + public $menuItems; + public $emptyUrl = '#';//maybe null + + public function __construct() + { + $this->menuItems = []; + } + + protected function can($authItem) + { + $result = false; + if (\Yii::$app->user->can($authItem)) { + $result = true; + } + return $result; + } /** * @throws \yii\base\InvalidConfigException */ - protected function addUserMainMenu(){ - - $userMainMenu = null; - $items = []; - if (!Yii::$app->user->isGuest) { - - //$today = \Yii::$app->formatter->asDate( time() ); - $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') ); - - - ///////////////////////////// - // Beállítások - ///////////////////////////// - if ( RoleDefinition::isAdmin()){ - $items[] = ['label' => 'Felhasználók', 'url' =>['/user/index']]; - $items[] = ['label' => 'Jogosultságok', 'url' =>['/user/role']]; - $this->menuItems[] = ['label' => 'Beállítások', 'url' => $this->emptyUrl, - 'items' => $items - ]; - } - - ///////////////////////////// - // Törszadatok - ///////////////////////////// - $items = []; - $items[] = ['label' => 'Raktárak', 'url' =>['/warehouse/index']]; - if ( RoleDefinition::isAdmin()){ - $items[] = ['label' => 'Kasszák', 'url' =>['/account/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']]; + protected function addUserMainMenu() + { + + $userMainMenu = null; + $items = []; + if (!Yii::$app->user->isGuest) { + + //$today = \Yii::$app->formatter->asDate( time() ); + $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')); + + + ///////////////////////////// + // Beállítások + ///////////////////////////// + if (RoleDefinition::isAdmin()) { + $items[] = ['label' => 'Felhasználók', 'url' => ['/user/index']]; + $items[] = ['label' => 'Jogosultságok', 'url' => ['/user/role']]; + $this->menuItems[] = ['label' => 'Beállítások', 'url' => $this->emptyUrl, + 'items' => $items + ]; + } + + if (RoleDefinition::isAdmin() || RoleDefinition::isEmployee() + || RoleDefinition::isReception()) { + ///////////////////////////// + // Törszadatok + ///////////////////////////// + $items = []; + $items[] = ['label' => 'Raktárak', 'url' => ['/warehouse/index']]; + if (RoleDefinition::isAdmin()) { + $items[] = ['label' => 'Kasszák', 'url' => ['/account/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'] ]; - $this->menuItems[] = ['label' => 'Törzsadatok', 'url' =>$this->emptyUrl, - 'items' => $items - ]; - - ///////////////////////////// - // BÉRLETEK - ///////////////////////////// - $items = []; - $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érletek', 'url' => ['/ticket/index' , 'TicketSearch[start]' =>$todayDatetime,'TicketSearch[end]' => $tomorrowDatetime ] ]; - $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 csomag RFId hozzárendelés', 'url' => ['/card-package/import' , ] ]; - $items[] = ['label' => 'Érvényességek újraszámolása', 'url' => ['/card/recalculate' , ] ]; - $this->menuItems[] = ['label' => 'Bérletek/Vendégek', 'url' => $this->emptyUrl, - 'items' => $items - ]; - - ///////////////////////////// - // Termékek - ///////////////////////////// - $items = []; - $items[] = ['label' => 'Termékek', 'url' => ['/product/index'] ]; - $items[] = ['label' => 'Beszerzések', 'url' => ['/procurement/index'] ]; - $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', 'url' => ['/inventory/index'] ]; - $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' => 'Leltár pillanat képek', 'url' => ['/inventory/daily' ] ]; - $this->menuItems[] = ['label' => 'Termékek', 'url' => $this->emptyUrl, - 'items' => $items - ]; - - ///////////////////////////// - // Pénzügy - ///////////////////////////// - $items = []; - $items[] = ['label' => 'Tranzakciók', 'url' => ['/transfer/index' , 'TransferSearch[start]' =>$todayDatetime,'TransferSearch[end]' => $tomorrowDatetime ] ]; + $this->menuItems[] = ['label' => 'Törzsadatok', 'url' => $this->emptyUrl, + 'items' => $items + ]; + + ///////////////////////////// + // BÉRLETEK + ///////////////////////////// + $items = []; + $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érletek', 'url' => ['/ticket/index', 'TicketSearch[start]' => $todayDatetime, 'TicketSearch[end]' => $tomorrowDatetime]]; + $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 csomag RFId hozzárendelés', 'url' => ['/card-package/import',]]; + $items[] = ['label' => 'Érvényességek újraszámolása', 'url' => ['/card/recalculate',]]; + $this->menuItems[] = ['label' => 'Bérletek/Vendégek', 'url' => $this->emptyUrl, + 'items' => $items + ]; + + ///////////////////////////// + // Termékek + ///////////////////////////// + $items = []; + $items[] = ['label' => 'Termékek', 'url' => ['/product/index']]; + $items[] = ['label' => 'Beszerzések', 'url' => ['/procurement/index']]; + $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', 'url' => ['/inventory/index']]; + $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' => 'Leltár pillanat képek', 'url' => ['/inventory/daily']]; + $this->menuItems[] = ['label' => 'Termékek', 'url' => $this->emptyUrl, + 'items' => $items + ]; + + ///////////////////////////// + // Pénzügy + ///////////////////////////// + $items = []; + $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' => 'Napi bevételek', 'url' => ['/transfer/list', 'TransferListSearch[start]' =>$todayDatetime,'TransferListSearch[end]' => $tomorrowDatetime ] ]; - $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' => 'Zárások', 'url' => ['/collection/index' , 'CollectionSearch[start]' =>$todayDatetime,'CollectionSearch[end]' => $tomorrowDatetime ] ]; - $this->menuItems[] = ['label' => 'Pénzügy', 'url' => $this->emptyUrl, - 'items' => $items - ]; - ///////////////////////////// - // Tartós megbízások - ///////////////////////////// - $items = []; - $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' => '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ötegek', 'url' => ['/ugiro/index' ] ]; - $items[] = ['label' => 'Detsta feltöltés', 'url' => ['/ugiro/upload' ] ]; + $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' => '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 ] ]; + $this->menuItems[] = ['label' => 'Pénzügy', 'url' => $this->emptyUrl, + 'items' => $items + ]; + ///////////////////////////// + // Tartós megbízások + ///////////////////////////// + $items = []; + $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' => '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ötegek', 'url' => ['/ugiro/index']]; + $items[] = ['label' => 'Detsta feltöltés', 'url' => ['/ugiro/upload']]; // $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' => 'Napi bevételek', 'url' => ['/transfer/list', 'TransferListSearch[start]' =>$todayDatetime,'TransferListSearch[end]' => $tomorrowDatetime ] ]; // $items[] = ['label' => 'Kassza müveletek', 'url' => ['/account-state/index'] ]; - if ( RoleDefinition::isAdmin() ){ - $this->menuItems[] = ['label' => 'Tartós megbízások', 'url' => $this->emptyUrl, - 'items' => $items - ]; - } - ///////////////////////////// - // 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 ){ + if (RoleDefinition::isAdmin()) { + $this->menuItems[] = ['label' => 'Tartós megbízások', 'url' => $this->emptyUrl, + 'items' => $items + ]; + } + ///////////////////////////// + // Kap lug megbízások + ///////////////////////////// $items = []; - $items[] = ['label' => 'Felszerelés', 'url' => ['/event-equipment-type' ] ]; - $items[] = ['label' => 'Edzők', 'url' => ['/trainer' ] ]; - $items[] = ['label' => 'Termek', 'url' => ['/room' ] ]; - $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 + $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 ]; } ///////////////////////////// - // Development - ///////////////////////////// - if ( Yii::$app->user ){ + // Group Training + ///////////////////////////// + if (RoleDefinition::isLoggedUser()) { $items = []; - $items[] = ['label' => 'Kapu Ki', 'url' => ['/door-log/out' ] ]; - $items[] = ['label' => 'Kapu Be', 'url' => ['/door-log/in' ] ]; - $this->menuItems[] = ['label' => 'Development', 'url' => $this->emptyUrl, - 'items' => $items + $items[] = ['label' => 'Felszerelés', 'url' => ['/event-equipment-type']]; + $items[] = ['label' => 'Edzők', 'url' => ['/trainer']]; + $items[] = ['label' => 'Termek', 'url' => ['/room']]; + $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 ]; } - } - - } - - protected function addLoginMainMenu(){ - if (Yii::$app->user->isGuest) { - $mainMenuItem= ['label' => Yii::t('common/site','Login'), 'url' => ['/site/login']]; - } else { + ///////////////////////////// + // Development + ///////////////////////////// + if (RoleDefinition::isAdmin()) { + $items = []; + $items[] = ['label' => 'Kapu Ki', 'url' => ['/door-log/out']]; + $items[] = ['label' => 'Kapu Be', 'url' => ['/door-log/in']]; + $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 */ - $mainMenuItem= [ - 'label' => Yii::t('common/site','Logout') . '(' . Yii::$app->user->identity->username . ')', - 'url' => ['/site/logout'], - 'linkOptions' => ['data-method' => 'post'] - ]; - } - $this->menuItems[] = $mainMenuItem; - } + $mainMenuItem = [ + 'label' => Yii::t('common/site', 'Logout') . '(' . Yii::$app->user->identity->username . ')', + 'url' => ['/site/logout'], + 'linkOptions' => ['data-method' => 'post'] + ]; + } + $this->menuItems[] = $mainMenuItem; + } /** * @return array * @throws \yii\base\InvalidConfigException */ - public function run(){ - $this->addUserMainMenu(); + public function run() + { + $this->addUserMainMenu(); // $this->addLoginMainMenu(); - return $this->menuItems; - } - - + return $this->menuItems; + } + + }