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

+ 2 - 1
inc/js/jquery.dolPopup.js

@@ -9,6 +9,7 @@
 (function($) {
 
     $.fn.dolPopupDefaultOptions = {
+        parent: 'body', // parent element selector
         closeOnOuterClick: true,
         closeElement: '.bx-popup-element-close', // link to element which will close popup
         position: 'centered', // | 'absolute' | 'fixed' | event | element,
@@ -415,7 +416,7 @@
                 if (!$.isWindow(e[0]))
                     bx_menu_on(e, true);
 
-                $('<div id="' + sPopupId + '" style="display:none;">' + $('#bx-popup-loading').html() + '</div>').appendTo('body').find(options.container).hide();
+                $('<div id="' + sPopupId + '" style="display:none;">' + $('#bx-popup-loading').html() + '</div>').appendTo(options.parent).find(options.container).hide();
 
                 $('#' + sPopupId).addClass($('#bx-popup-loading').attr('class'));
 

+ 28 - 10
studio/js/navigation_items.js

@@ -17,17 +17,35 @@ function BxDolStudioNavigationItems(oOptions) {
     this.sTextSearchInput = oOptions.sTextSearchInput == undefined ? '' : oOptions.sTextSearchInput;
 }
 
-BxDolStudioNavigationItems.prototype.onChangeSubmenu = function(oSelect) {
-	var sSubmenu = $(oSelect).val();
-	$('#bx-form-element-submenu_popup').bx_anim(sSubmenu == '' ? 'hide' : 'show',  this.sAnimationEffect, this.iAnimationSpeed);
-
-	var oLink = $(oSelect).parents(".bx-form-advanced:first").find(".bx-form-input-text[name='link']");
-	if(sSubmenu != '' && oLink.val() == '')
-		oLink.val("javascript:void(0);");
+BxDolStudioNavigationItems.prototype.onChangeSubmenu = function(oElement) {
+	var oForm = $(oElement).parents(".bx-form-advanced:first");
+	var oSubmenu = oForm.find(".bx-form-input-select[name='submenu_object']");
+	var oSubmenuPopup = oForm.find(".bx-form-input-checkbox[name='submenu_popup']");
+
+	var sSubmenu = oSubmenu.val();
+	var bSubmenu = sSubmenu != '';
+	var bSubmenuPopup = oSubmenuPopup.is(':checked');
+	oSubmenuPopup.parents('.bx-form-element-wrapper:first').bx_anim(bSubmenu ? 'show' : 'hide', this.sAnimationEffect, this.iAnimationSpeed);
+
+	
+	var oLink = oForm.find(".bx-form-input-text[name='link']");
+	var sLink = oLink.val();
+	var oOnclick = oForm.find(".bx-form-input-text[name='onclick']");
+	var sOnclick = oOnclick.val();
+	if(bSubmenu && bSubmenuPopup) {
+		if(sLink == '')
+			oLink.val("javascript:void(0);");
+
+		if(sOnclick == '' || sOnclick.substr(0, 13) == 'bx_menu_popup')
+			oOnclick.val("bx_menu_popup('" + sSubmenu + "', this);");
+	}
+	else {
+		if(sLink == 'javascript:void(0);')
+			oLink.val("");
 
-	var oOnclick = $(oSelect).parents(".bx-form-advanced:first").find(".bx-form-input-text[name='onclick']");
-	if(sSubmenu != '' && (oOnclick.val() == '' || oOnclick.val().substr(0, 13) == 'bx_menu_popup'))
-		oOnclick.val("bx_menu_popup('" + sSubmenu + "', this);");
+		if(sOnclick.substr(0, 13) == 'bx_menu_popup')
+			oOnclick.val("");
+	}
 };
 
 BxDolStudioNavigationItems.prototype.onChangeModule = function() {

+ 3 - 0
studio/template/scripts/BxBaseStudioNavigationItems.php

@@ -607,6 +607,9 @@ class BxBaseStudioNavigationItems extends BxDolStudioNavigationItems
                     'info' => '',
                     'value' => '1',
                     'checked' => isset($aItem['submenu_popup']) && $aItem['submenu_popup'] == '1',
+                    'attrs' => array(
+                        'onChange' => 'javascript:' . $this->getJsObject() . '.onChangeSubmenu(this)'
+                    ),
                     'db' => array (
                         'pass' => 'Int',
                     )