Procházet zdrojové kódy

Ticket #4650 - Artificer: Account menu cannot be scrolled on mobile.

AntonLV před 2 roky
rodič
revize
af39e34be4

+ 15 - 5
modules/boonex/artificer/data/template/system/css/menu-sidebar.css

@@ -84,19 +84,18 @@
 .bx-sidebar .bx-sb-theme-switcher .sys-icon {
     font-size: 1.5rem;
 }
-
 .bx-sidebar.bx-sidebar-account .bx-menu-account-popup > div {
     flex: 1 1 0%;
 }
 .bx-sidebar.bx-sidebar-account .bx-menu-account-popup > div.bx-menu-account-popup-profile-active {
     flex-grow: 0;
 }
-.bx-sidebar.bx-sidebar-account .bx-menu-account-popup > div.bx-menu-account-popup-profile-switcher {
+.bx-sidebar.bx-sidebar-account .bx-menu-account-popup > div.bx-menu-account-popup-profile-notifications,
+.bx-sidebar.bx-sidebar-account .bx-menu-account-popup > div.bx-menu-account-popup-profile-switcher,
+.bx-sidebar.bx-sidebar-account .bx-menu-account-popup > div.bx-menu-account-popup-profile-create {
     flex-basis: auto;
-    overflow-y: auto;
 }
 .bx-sidebar.bx-sidebar-account .bx-menu-account-popup > div.bx-menu-account-popup-profile-create {
-    flex-basis: auto;
     flex-grow: 2;
 }
 
@@ -106,6 +105,7 @@
 
 .bx-sidebar.bx-sidebar-account .bx-menu-account-popup-profile-notifications {
     margin: 0.5rem 0;
+    overflow-y: auto;
 }
 .bx-sidebar.bx-sidebar-account .bx-menu-account-popup-profile-notifications .bx-menu-item-addon.bx-def-unit-alert {
     top: auto;
@@ -119,4 +119,14 @@
 .bx-sidebar.bx-sidebar-account .bx-menu-account-popup-profile-create .bx-btn {
     justify-content: center;
     width: 100%;
-}
+}
+
+.bx-media-phone .bx-sidebar.bx-sidebar-account .bx-menu-account-popup {
+    overflow-y: auto;
+}
+.bx-media-phone .bx-sidebar.bx-sidebar-account .bx-menu-account-popup > div {
+    flex: 1 1 0%;
+}
+.bx-media-phone .bx-sidebar.bx-sidebar-account .bx-menu-account-popup > div.bx-menu-account-popup-profile-notifications {
+    overflow-y: visible;
+}

+ 4 - 0
modules/boonex/artificer/data/template/system/map_profile_active.html

@@ -0,0 +1,4 @@
+<div class="relative">
+    __profile_unit__
+    __color_scheme_switcher__
+</div>

+ 22 - 21
modules/boonex/artificer/data/template/system/scripts/BxTemplFunctions.php

@@ -20,7 +20,7 @@ class BxTemplFunctions extends BxBaseFunctions
         $this->_sModule = 'bx_artificer';
     }
 
-    function getMainLogo($aParams = array())
+    public function getMainLogo($aParams = array())
     {
         $oDesigns = BxDolDesigns::getInstance();
 
@@ -143,7 +143,26 @@ class BxTemplFunctions extends BxBaseFunctions
         }
 
         return $mixedResult;
-    }    
+    }
+
+    public function getColorSchemeSwitcher()
+    {
+        $oModule = BxDolModule::getInstance($this->_sModule);
+
+        if($oModule->_oConfig->getColorScheme() != 'auto')
+            return '';
+        
+        $aMenu = [
+            ['id' => $this->_sModule . '-css-sun', 'name' => $this->_sModule . '-css-sun', 'class' => '', 'link' => 'javascript:void(0)', 'onclick' => 'javascript:oBxArtificerUtils.setColorScheme(1)', 'target' => '_self', 'icon' => 'sun', 'title' => _t('_bx_artificer_txt_color_scheme_light')],
+            ['id' => $this->_sModule . '-css-moon', 'name' => $this->_sModule . '-css-moon', 'class' => '', 'link' => 'javascript:void(0)', 'onclick' => 'javascript:oBxArtificerUtils.setColorScheme(2)', 'target' => '_self', 'icon' => 'moon', 'title' => _t('_bx_artificer_txt_color_scheme_dark')],
+            ['id' => $this->_sModule . '-css-desktop', 'name' => $this->_sModule . '-css-desktop', 'class' => '', 'link' => 'javascript:void(0)', 'onclick' => 'javascript:oBxArtificerUtils.setColorScheme(0)', 'target' => '_self', 'icon' => 'desktop', 'title' => _t('_bx_artificer_txt_color_scheme_system')],
+        ];
+        $oMenu = new BxTemplMenu(['template' => 'menu_vertical.html', 'menu_id'=> $this->_sModule . '-css-menu', 'menu_items' => $aMenu]);
+
+        return $oModule->_oTemplate->parseHtmlByName('color_scheme_switcher.html', [
+            'popup' => $this->transBox('bx-sb-theme-switcher-menu', $oMenu->getCode(), true)
+        ]);
+    }
 
     protected function getInjFooterPopupMenus() 
     {
@@ -199,29 +218,11 @@ class BxTemplFunctions extends BxBaseFunctions
         if(!$oProfile)
             return '';
 
-        $aTmplVarsColorSchemeSwitcher = [];
-        $bTmplVarsColorSchemeSwitcher = BxDolModule::getInstance($this->_sModule)->_oConfig->getColorScheme() == 'auto';
-        if($bTmplVarsColorSchemeSwitcher) {
-            $aMenu = [
-                ['id' => $this->_sModule . '-css-sun', 'name' => $this->_sModule . '-css-sun', 'class' => '', 'link' => 'javascript:void(0)', 'onclick' => 'javascript:oBxArtificerUtils.setColorScheme(1)', 'target' => '_self', 'icon' => 'sun', 'title' => _t('_bx_artificer_txt_color_scheme_light')],
-                ['id' => $this->_sModule . '-css-moon', 'name' => $this->_sModule . '-css-moon', 'class' => '', 'link' => 'javascript:void(0)', 'onclick' => 'javascript:oBxArtificerUtils.setColorScheme(2)', 'target' => '_self', 'icon' => 'moon', 'title' => _t('_bx_artificer_txt_color_scheme_dark')],
-                ['id' => $this->_sModule . '-css-desktop', 'name' => $this->_sModule . '-css-desktop', 'class' => '', 'link' => 'javascript:void(0)', 'onclick' => 'javascript:oBxArtificerUtils.setColorScheme(0)', 'target' => '_self', 'icon' => 'desktop', 'title' => _t('_bx_artificer_txt_color_scheme_system')],
-            ];
-            $oMenu = new BxTemplMenu(['template' => 'menu_vertical.html', 'menu_id'=> $this->_sModule . '-css-menu', 'menu_items' => $aMenu]);
-
-            $aTmplVarsColorSchemeSwitcher = [
-                'popup' => BxTemplFunctions::getInstance()->transBox('bx-sb-theme-switcher-menu', $oMenu->getCode(), true)
-            ];
-        }
-
         $sMenuAccountPopup = 'sys_account_popup';
         $oMenuAccountPopup = BxTemplMenu::getObjectInstance($sMenuAccountPopup);
 
         return $this->_oTemplate->parsePageByName('sidebar_account.html', [
-            'bx_if:color_scheme_switcher' => [
-                'condition' => $bTmplVarsColorSchemeSwitcher,
-                'content' => $aTmplVarsColorSchemeSwitcher
-            ],
+            'color_scheme_switcher' => $this->getColorSchemeSwitcher(),
             'ap_menu_object' => $sMenuAccountPopup,
             'bx_repeat:ap_menu_items' => $oMenuAccountPopup->getMenuItems(),
         ]);

+ 29 - 0
modules/boonex/artificer/data/template/system/scripts/BxTemplMenuAccountPopup.php

@@ -0,0 +1,29 @@
+<?php defined('BX_DOL') or die('hack attempt');
+/**
+ * Copyright (c) UNA, Inc - https://una.io
+ * MIT License - https://opensource.org/licenses/MIT
+ *
+ * @defgroup    UnaTemplate UNA Template Classes
+ * @{
+ */
+
+/**
+ * @see BxDolMenu
+ */
+class BxTemplMenuAccountPopup extends BxBaseMenuAccountPopup
+{
+    public function __construct ($aObject, $oTemplate)
+    {
+        parent::__construct ($aObject, $oTemplate);
+    }
+
+    protected function _getMenuItemProfileActive ($aItem)
+    {
+        return $this->_oTemplate->parseHtmlByName('map_profile_active.html', [
+            'profile_unit' => $this->_oProfile->getUnit(),
+            'color_scheme_switcher' => BxTemplFunctions::getInstance()->getColorSchemeSwitcher(),
+        ]);
+    }
+}
+
+/** @} */

+ 0 - 6
modules/boonex/artificer/data/template/system/sidebar_account.html

@@ -10,12 +10,6 @@
                 </div>
             </button>
         </div>
-        <bx_if:color_scheme_switcher>
-            <div class="bx-sb-theme-switcher absolute h-10 right-4 leading-10">
-                <a class="hover:no-underline" href="javascript:" onclick="oBxArtificerUtils.getColorSchemeMenu()"><i class="sys-icon desktop"></i></a>
-            </div>
-            __popup__
-        </bx_if:color_scheme_switcher>
         <div class="bx-menu-account-popup bx-menu-object-__ap_menu_object__ flex flex-col w-full">
             <bx_repeat:ap_menu_items>
                 <div class="bx-menu-account-popup-__name__">__item__</div>

+ 4 - 0
modules/boonex/artificer/template/color_scheme_switcher.html

@@ -0,0 +1,4 @@
+<div class="bx-sb-theme-switcher absolute h-10 top-0 right-4 leading-10">
+    <a class="hover:no-underline" href="javascript:" onclick="oBxArtificerUtils.getColorSchemeMenu()"><i class="sys-icon desktop"></i></a>
+</div>
+__popup__