Просмотр исходного кода

Ticket #3863 - Add popup doesn't work when [+] item was hidden from Member Toolbar

AntonLV 4 лет назад
Родитель
Сommit
8fc6c4a31c

+ 14 - 4
modules/boonex/artificer/data/template/system/_header_js_custom.html

@@ -39,11 +39,21 @@
         }
     });
 
-    function bx_sidebar_toggle(sType) {
-        var oSidebar = $('.bx-sidebar.bx-sidebar-' + sType);
-        var bShow = !oSidebar.hasClass('bx-sidebar-active') ? true : false;
+    function bx_sidebar_get(sType) {
+        return $('.bx-sidebar.bx-sidebar-' + sType);
+    }
+
+    function bx_sidebar_active(sType) {
+        var oSidebar = bx_sidebar_get(sType);
+        if(!oSidebar || oSidebar.length == 0)
+            return false;
 
-        oSidebar.toggleClass('bx-sidebar-active', bShow);
+        return oSidebar.hasClass('bx-sidebar-active');
+    }
+    
+    function bx_sidebar_toggle(sType) {
+        var oSidebar = bx_sidebar_get(sType);
+        oSidebar.toggleClass('bx-sidebar-active', !bx_sidebar_active(sType));
     }
 
     function bx_sidebar_dropdown_toggle(oLink) {

+ 1 - 1
modules/boonex/artificer/data/template/system/scripts/BxTemplMenuAccountNotifications.php

@@ -27,7 +27,7 @@ class BxTemplMenuAccountNotifications extends BxBaseMenuAccountNotifications
         switch ($a['name']) {
             case 'add-content':
                 if(isset($a['onclick']))
-                    $a['onclick'] = str_replace('bx_menu_slide_inline', "$('.bx-popup-applied:visible').dolPopupHide(); bx_menu_popup_inline", $a['onclick']);
+                    $a['onclick'] = str_replace(['bx_menu_slide_inline', 'bx-menu-toolbar-item-add-content'], ['bx_artificer_add_content_panel', 'bx-menu-toolbar-item-account'], $a['onclick']);
                 break;
         }
 

+ 39 - 27
modules/boonex/artificer/js/utils.js

@@ -1,50 +1,62 @@
 //for custom JS
 $(document).ready(function() {
-	bx_artificer_set_color_scheme_icon();
+    bx_artificer_set_color_scheme_icon();
 });
 
 function bx_artificer_set_color_scheme_html(){
-	if (localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)) 
+    if (localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)) 
         $('html').addClass('dark')
-	else
-		$('html').removeClass('dark')
+    else
+        $('html').removeClass('dark')
 }
 
 function bx_artificer_set_color_scheme_icon(){
-	if (localStorage.theme === 'dark') {
+    if (localStorage.theme === 'dark') {
         $('.bx-sb-theme-switcher .sys-icon').addClass('moon').removeClass('sun').removeClass('desktop');
-    } 
-	if (localStorage.theme === 'sun') {
+    }
+
+    if (localStorage.theme === 'sun') {
         $('.bx-sb-theme-switcher .sys-icon').addClass('sun').removeClass('moon').removeClass('desktop');
-    } 
-	if (!('theme' in localStorage))
-		$('.bx-sb-theme-switcher .sys-icon').addClass('desktop').removeClass('moon').removeClass('sun');
+    }
+
+    if (!('theme' in localStorage))
+        $('.bx-sb-theme-switcher .sys-icon').addClass('desktop').removeClass('moon').removeClass('sun');
 }
 
 function bx_artificer_set_color_scheme(m){
-	switch (m) {
-	  case 0:
-		localStorage.removeItem('theme');
-		break;
-	  case 1:
-		localStorage.theme = 'sun'
-		break;
-	  case 2:
-		localStorage.theme = 'dark'
-		break;
-	}
-	bx_artificer_set_color_scheme_icon();
-	bx_artificer_set_color_scheme_html();
+    switch (m) {
+      case 0:
+        localStorage.removeItem('theme');
+        break;
+      case 1:
+        localStorage.theme = 'sun'
+        break;
+      case 2:
+        localStorage.theme = 'dark'
+        break;
+    }
+    bx_artificer_set_color_scheme_icon();
+    bx_artificer_set_color_scheme_html();
 }
 
 function bx_artificer_get_color_scheme_menu(){
-	$('#bx-sb-theme-switcher-menu').dolPopup({
-		pointer: {
+    $('#bx-sb-theme-switcher-menu').dolPopup({
+        pointer: {
             el: $('.bx-sb-theme-switcher')
-        }, 
+        },
         moveToDocRoot: true,
         cssClass: 'bx-popup-menu'
-	});
+    });
+}
+
+function bx_artificer_add_content_panel(sMenu, e, sPosition) {
+    $('.bx-popup-applied:visible').dolPopupHide();
+
+    var sSidebar = 'account';
+    if(bx_sidebar_active(sSidebar))
+        bx_sidebar_toggle(sSidebar);
+
+    bx_menu_popup_inline(sMenu, e, {});
 }
 
 bx_artificer_set_color_scheme_html();