Version Description
January 12, 2021 = * fixed : [form module] javascript may break after submitting the form when jQuery called too early
Download this release
Release Info
Developer | nikeo |
Plugin | Nimble Page Builder |
Version | 2.1.32 |
Comparing to | |
See all releases |
Code changes from version 2.1.31 to 2.1.32
- assets/front/js/partials/menu-module.js +54 -21
- assets/front/js/partials/menu-module.min.js +1 -1
- inc/sektions/ccat-sektions-base.php +12 -10
- nimble-builder.php +2 -2
- readme.txt +5 -2
assets/front/js/partials/menu-module.js
CHANGED
@@ -25,6 +25,7 @@
|
|
25 |
DROPDOWN_SUBMENU : 'sek-dropdown-submenu',
|
26 |
SHOW : 'show',
|
27 |
PARENTS : 'menu-item-has-children',
|
|
|
28 |
},
|
29 |
Selector = {
|
30 |
DATA_TOGGLE : '[data-toggle="sek-dropdown"]',
|
@@ -33,6 +34,7 @@
|
|
33 |
HOVER_PARENT : '.sek-nav-wrap .menu-item-has-children',
|
34 |
PARENTS : '.sek-nav-wrap .menu-item-has-children',
|
35 |
SNAKE_PARENTS : '.sek-nav-wrap .menu-item-has-children',
|
|
|
36 |
};
|
37 |
|
38 |
// unify all the dropdowns classes whether the menu is a proper menu or the all pages fall-back
|
@@ -44,24 +46,34 @@
|
|
44 |
var dropdownMenuOnHover = function() {
|
45 |
var _dropdown_selector = Selector.HOVER_PARENT;
|
46 |
|
47 |
-
|
48 |
-
var $_el = $(this);
|
49 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
50 |
//a little delay to balance the one added in removing the open class
|
51 |
var _debounced_addOpenClass = nb_.debounce( function() {
|
52 |
//do nothing if menu is mobile
|
53 |
if( 'static' == $_el.find( '.'+ClassName.DROPDOWN ).css( 'position' ) ) {
|
54 |
return false;
|
55 |
}
|
56 |
-
|
57 |
-
$_el.trigger( Event.SHOW )
|
58 |
-
.addClass(ClassName.SHOW)
|
59 |
-
.trigger( Event.SHOWN);
|
60 |
|
61 |
-
|
|
|
62 |
|
63 |
-
|
64 |
-
|
|
|
|
|
|
|
|
|
65 |
}
|
66 |
}
|
67 |
}, 30);
|
@@ -69,21 +81,33 @@
|
|
69 |
_debounced_addOpenClass();
|
70 |
}
|
71 |
|
72 |
-
function _removeOpenClass
|
73 |
|
74 |
-
var $_el = $(this)
|
|
|
75 |
|
76 |
//a little delay before closing to avoid closing a parent before accessing the child
|
77 |
var _debounced_removeOpenClass = nb_.debounce( function() {
|
78 |
if ( $_el.find("ul li:hover").length < 1 && ! $_el.closest('ul').find('li:hover').is( $_el ) ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
79 |
$_el.trigger( Event.HIDE )
|
80 |
-
|
81 |
-
|
82 |
|
83 |
-
|
|
|
|
|
|
|
84 |
|
85 |
-
if ( $
|
86 |
-
$
|
87 |
}
|
88 |
}
|
89 |
}, 30 );
|
@@ -91,10 +115,20 @@
|
|
91 |
_debounced_removeOpenClass();
|
92 |
}
|
93 |
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
98 |
},
|
99 |
|
100 |
//SNAKE
|
@@ -384,4 +418,3 @@
|
|
384 |
// on 'nb-app-ready', jQuery is loaded
|
385 |
nb_.listenTo('nb-app-ready', callbackFunc );
|
386 |
}(window, document));
|
387 |
-
|
25 |
DROPDOWN_SUBMENU : 'sek-dropdown-submenu',
|
26 |
SHOW : 'show',
|
27 |
PARENTS : 'menu-item-has-children',
|
28 |
+
ALLOW_POINTER_ON_SCROLL : 'allow-pointer-events-on-scroll'
|
29 |
},
|
30 |
Selector = {
|
31 |
DATA_TOGGLE : '[data-toggle="sek-dropdown"]',
|
34 |
HOVER_PARENT : '.sek-nav-wrap .menu-item-has-children',
|
35 |
PARENTS : '.sek-nav-wrap .menu-item-has-children',
|
36 |
SNAKE_PARENTS : '.sek-nav-wrap .menu-item-has-children',
|
37 |
+
CHILD_DROPDOWN : 'ul.sek-dropdown-menu'
|
38 |
};
|
39 |
|
40 |
// unify all the dropdowns classes whether the menu is a proper menu or the all pages fall-back
|
46 |
var dropdownMenuOnHover = function() {
|
47 |
var _dropdown_selector = Selector.HOVER_PARENT;
|
48 |
|
49 |
+
enableDropdownOnHover();
|
|
|
50 |
|
51 |
+
function _addOpenClass( evt ) {
|
52 |
+
var $_el = $(this),
|
53 |
+
$_child_dropdown = $_el.find( Selector.CHILD_DROPDOWN ).first();
|
54 |
+
// Jan 2021 : start of a fix for https://github.com/presscustomizr/nimble-builder/issues/772
|
55 |
+
if ( nb_.cachedElements.$body.hasClass('is-touch-device') ) {
|
56 |
+
if ( "true" != $_child_dropdown.attr('aria-expanded') ) {
|
57 |
+
evt.preventDefault();
|
58 |
+
}
|
59 |
+
}
|
60 |
//a little delay to balance the one added in removing the open class
|
61 |
var _debounced_addOpenClass = nb_.debounce( function() {
|
62 |
//do nothing if menu is mobile
|
63 |
if( 'static' == $_el.find( '.'+ClassName.DROPDOWN ).css( 'position' ) ) {
|
64 |
return false;
|
65 |
}
|
66 |
+
var $_child_dropdown = $_el.find( Selector.CHILD_DROPDOWN ).first();
|
|
|
|
|
|
|
67 |
|
68 |
+
if ( !$_el.hasClass(ClassName.SHOW) ) {
|
69 |
+
nb_.cachedElements.$body.addClass( ClassName.ALLOW_POINTER_ON_SCROLL );
|
70 |
|
71 |
+
$_el.trigger( Event.SHOW )
|
72 |
+
.addClass(ClassName.SHOW)
|
73 |
+
.trigger( Event.SHOWN);
|
74 |
+
|
75 |
+
if ( $_child_dropdown.length > 0 ) {
|
76 |
+
$_child_dropdown[0].setAttribute('aria-expanded', 'true');
|
77 |
}
|
78 |
}
|
79 |
}, 30);
|
81 |
_debounced_addOpenClass();
|
82 |
}
|
83 |
|
84 |
+
function _removeOpenClass() {
|
85 |
|
86 |
+
var $_el = $(this),
|
87 |
+
$_child_dropdown = $_el.find( Selector.CHILD_DROPDOWN ).first();
|
88 |
|
89 |
//a little delay before closing to avoid closing a parent before accessing the child
|
90 |
var _debounced_removeOpenClass = nb_.debounce( function() {
|
91 |
if ( $_el.find("ul li:hover").length < 1 && ! $_el.closest('ul').find('li:hover').is( $_el ) ) {
|
92 |
+
// april 2020 => some actions should be only done when not on a "touch" device
|
93 |
+
// otherwise we have a bug on submenu expansion
|
94 |
+
// see : https://github.com/presscustomizr/customizr/issues/1824
|
95 |
+
//if ( !nb_.cachedElements.$body.hasClass('is-touch-device') ) {
|
96 |
+
// $_el.trigger( Event.HIDE )
|
97 |
+
// .removeClass( ClassName.SHOW)
|
98 |
+
// .trigger( Event.HIDDEN );
|
99 |
+
//}
|
100 |
$_el.trigger( Event.HIDE )
|
101 |
+
.removeClass( ClassName.SHOW)
|
102 |
+
.trigger( Event.HIDDEN );
|
103 |
|
104 |
+
//make sure pointer events on scroll are still allowed if there's at least one submenu opened
|
105 |
+
if ( $_el.closest( Selector.HOVER_MENU ).find( '.' + ClassName.SHOW ).length < 1 ) {
|
106 |
+
nb_.cachedElements.$body.removeClass( ClassName.ALLOW_POINTER_ON_SCROLL );
|
107 |
+
}
|
108 |
|
109 |
+
if ( $_child_dropdown.length > 0 ) {
|
110 |
+
$_child_dropdown[0].setAttribute('aria-expanded', 'false');
|
111 |
}
|
112 |
}
|
113 |
}, 30 );
|
115 |
_debounced_removeOpenClass();
|
116 |
}
|
117 |
|
118 |
+
function enableDropdownOnHover() {
|
119 |
+
// april 2020 : is-touch-device class is added on body on the first touch
|
120 |
+
// This way, we can prevent the problem reported on https://github.com/presscustomizr/customizr/issues/1824
|
121 |
+
// ( two touches needed to reveal submenus on touch devices )
|
122 |
+
nb_.cachedElements.$body.on('touchstart', function() {
|
123 |
+
if ( !$(this).hasClass('is-touch-device') ) {
|
124 |
+
$(this).addClass('is-touch-device');
|
125 |
+
}
|
126 |
+
});
|
127 |
+
//BIND
|
128 |
+
nb_.cachedElements.$body.on( 'mouseenter', _dropdown_selector, _addOpenClass );
|
129 |
+
nb_.cachedElements.$body.on( 'mouseleave', _dropdown_selector , _removeOpenClass );
|
130 |
+
nb_.cachedElements.$body.on( 'click', _dropdown_selector, _addOpenClass );
|
131 |
+
}
|
132 |
},
|
133 |
|
134 |
//SNAKE
|
418 |
// on 'nb-app-ready', jQuery is loaded
|
419 |
nb_.listenTo('nb-app-ready', callbackFunc );
|
420 |
}(window, document));
|
|
assets/front/js/partials/menu-module.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
window,document,nb_.listenTo("nb-app-ready",function(){jQuery(function(
|
1 |
+
window,document,nb_.listenTo("nb-app-ready",function(){jQuery(function(r){var e,o,d,i,l,c,h,s,u,n,a,p,t,m,f,g,E,_,v,k;a={PLACE_ME:"placeme"+(n="."+(u="sek.sekDropdown")),PLACE_ALL:"placeall"+n,SHOWN:"shown"+n,SHOW:"show"+n,HIDDEN:"hidden"+n,HIDE:"hide"+n,CLICK:"click"+n,TAP:"tap"+n},p="sek-dropdown-menu",t="sek-dropdown-submenu",m="show",f="menu-item-has-children",g="allow-pointer-events-on-scroll",E=".sek-nav-wrap",v=_=".sek-nav-wrap .menu-item-has-children",k="ul.sek-dropdown-menu",r(".sek-nav .children, .sek-nav .sub-menu").addClass(p),r(".sek-nav-wrap .page_item_has_children").addClass(f),r(".sek-nav ."+p+" ."+f).addClass(t),function(){var e=_;function s(e){var s=r(this),n=s.find(k).first();nb_.cachedElements.$body.hasClass("is-touch-device")&&"true"!=n.attr("aria-expanded")&&e.preventDefault(),nb_.debounce(function(){if("static"==s.find("."+p).css("position"))return!1;var e=s.find(k).first();s.hasClass(m)||(nb_.cachedElements.$body.addClass(g),s.trigger(a.SHOW).addClass(m).trigger(a.SHOWN),0<e.length&&e[0].setAttribute("aria-expanded","true"))},30)()}function n(){var e=r(this),s=e.find(k).first();nb_.debounce(function(){e.find("ul li:hover").length<1&&!e.closest("ul").find("li:hover").is(e)&&(e.trigger(a.HIDE).removeClass(m).trigger(a.HIDDEN),e.closest(E).find("."+m).length<1&&nb_.cachedElements.$body.removeClass(g),0<s.length&&s[0].setAttribute("aria-expanded","false"))},30)()}nb_.cachedElements.$body.on("touchstart",function(){r(this).hasClass("is-touch-device")||r(this).addClass("is-touch-device")}),nb_.cachedElements.$body.on("mouseenter",e,s),nb_.cachedElements.$body.on("mouseleave",e,n),nb_.cachedElements.$body.on("click",e,s)}(),h="rtl"===r("html").attr("dir"),s=!1,nb_.cachedElements.$window.on("resize",function(){s||(s=!0,window.requestAnimationFrame(function(){r(v+"."+m).trigger(a.PLACE_ME),s=!1}))}),r(document).on(a.PLACE_ALL,function(){r(v).trigger(a.PLACE_ME)}).on(a.SHOWN+" "+a.PLACE_ME,v,function(e){e.stopPropagation(),function(e,s){if(s&&s.namespace&&u===s.namespace){var n,a,t,o,d,i,l=e.children("."+p);l.length&&(e.css("overflow","hidden"),l.css({zIndex:"-100",display:"block"}),a=e,t=h?{_DEFAULT:"left",_OPPOSITE:"right"}:{_DEFAULT:"right",_OPPOSITE:"left"},o={OPEN_PREFIX:"open-",DD_SUBMENU:"sek-dropdown-submenu",CARET_TITLE_FLIP:"sek-menu-link__row-reverse",DROPDOWN:"sek-dropdown-menu"},d=function(e,n,s){r.each(e,function(){var e=r(this),s=e.find("a").first();1==s.length&&s.toggleClass(o.CARET_TITLE_FLIP,n==t._OPPOSITE)})},i=function(e){var s=e==t._OPPOSITE?t._DEFAULT:t._OPPOSITE;n.removeClass(o.OPEN_PREFIX+s).addClass(o.OPEN_PREFIX+e),a.hasClass(o.DD_SUBMENU)&&(d(a,e,s),d(n.children("."+o.DD_SUBMENU),e,s))},(n=l).parent().closest("."+o.DROPDOWN).hasClass(o.OPEN_PREFIX+t._OPPOSITE)?i(t._OPPOSITE):i(t._DEFAULT),n.offset().left+n.width()>nb_.cachedElements.$window.width()?i("left"):n.offset().left<0&&i("right"),l.css({zIndex:"",display:""}),e.css("overflow",""))}}(r(this),e)}),o={SHOW:"show"+(e=".sek.sekCollapse"),SHOWN:"shown"+e,HIDE:"hide"+e,HIDDEN:"hidden"+e,CLICK_DATA_API:"click"+e+".data-api"},d="show",i="sek-collapse",l="sek-collapsing",c="sek-collapsed",r(document).on(o.CLICK_DATA_API,'[data-sek-toggle="sek-collapse"]',function(e){"A"===e.currentTarget.tagName&&e.preventDefault();var s=r(this),n=s.data("target");r(n).each(function(){var a=r(this),t=a.hasClass(d);a.stop()[t?"slideUp":"slideDown"]({duration:400,start:function(){a.addClass(l).trigger(t?o.HIDE:o.SHOW),t?s.addClass(c).attr("aria-expanded","false"):s.removeClass(c).attr("aria-expanded","true")},complete:function(){var e,s,n;n=t?(e=d,s=i,o.HIDDEN):(e=i,s=d,o.SHOWN),a.removeClass(l+" "+e).addClass(s).trigger(n),function(e){(e=e||r(this)).css({display:"",paddingTop:"",marginTop:"",paddingBottom:"",marginBottom:"",height:""})}(a)}})})}),r(document).on("mouseenter",".sek-nav-toggler",function(){r(this).addClass("hovering")}).on("mouseleave",".sek-nav-toggler",function(){r(this).removeClass("hovering")}).on("show.sek.sekCollapse hide.sek.sekCollapse",".sek-nav-collapse",function(){r('[data-target="#'+r(this).attr("id")+'"]').removeClass("hovering"),nb_.cachedElements.$window.trigger("scroll")});var w=function(){r('[data-sek-module-type="czr_menu_module"]').find('[data-sek-expand-below="yes"]').each(function(){if(!0!==r(this).data("sek-setup-menu-mobile-expanded-below-done")){var e=r(this).closest('[data-sek-module-type="czr_menu_module"]').clone(!0),s=r(".sek-nav-collapse",this).attr("id")+"-mobile";e.appendTo(r(this).closest(".sek-sektion-inner")).wrap('<div class="sek-col-base sek-mobile-menu-expanded-below" id="'+s+'-wrapper"></div>'),r(".sek-nav-collapse","#"+s+"-wrapper").attr("id",s),r(".sek-nav-wrap","#"+s+"-wrapper").attr("data-sek-is-mobile-menu","yes"),r(".sek-nav-toggler","#"+s+"-wrapper").detach(),r(".sek-nav-toggler",this).data("target","#"+s).attr("aria-controls",s),r(this).data("sek-setup-menu-mobile-expanded-below-done",!0)}})};w(),nb_.cachedElements.$body.on("sek-level-refreshed sek-modules-refreshed sek-columns-refreshed sek-section-added",function(e){r(".sek-mobile-menu-expanded-below").remove(),w()})})});
|
inc/sektions/ccat-sektions-base.php
CHANGED
@@ -6027,16 +6027,18 @@ class Sek_Simple_Form extends SEK_Front_Render_Css {
|
|
6027 |
if ( !$echo_form ) {
|
6028 |
?>
|
6029 |
<script type="text/javascript">
|
6030 |
-
|
6031 |
-
|
6032 |
-
|
6033 |
-
|
6034 |
-
|
6035 |
-
|
6036 |
-
|
6037 |
-
|
6038 |
-
|
6039 |
-
|
|
|
|
|
6040 |
});
|
6041 |
</script>
|
6042 |
<?php
|
6027 |
if ( !$echo_form ) {
|
6028 |
?>
|
6029 |
<script type="text/javascript">
|
6030 |
+
nb_.listenTo( 'nb-jquery-loaded', function() {
|
6031 |
+
jQuery( function($) {
|
6032 |
+
var $elToFocusOn = $('div[data-sek-id="<?php echo $module_id; ?>"]' );
|
6033 |
+
if ( $elToFocusOn.length > 0 ) {
|
6034 |
+
var _do = function() {
|
6035 |
+
$('html, body').animate({
|
6036 |
+
scrollTop : $elToFocusOn.offset().top - ( $(window).height() / 2 ) + ( $elToFocusOn.outerHeight() / 2 )
|
6037 |
+
}, 'slow');
|
6038 |
+
};
|
6039 |
+
try { _do(); } catch(er) {}
|
6040 |
+
}
|
6041 |
+
});
|
6042 |
});
|
6043 |
</script>
|
6044 |
<?php
|
nimble-builder.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: Nimble Page Builder
|
4 |
* Plugin URI: https://nimblebuilder.com
|
5 |
* Description: Simple and smart companion that allows you to insert sections into any existing page, create landing pages or entire websites including header and footer.
|
6 |
-
* Version: 2.1.
|
7 |
* Text Domain: nimble-builder
|
8 |
* Author: Press Customizr
|
9 |
* Author URI: https://nimblebuilder.com/?utm_source=wp-plugins&utm_medium=wp-dashboard&utm_campaign=author-uri
|
@@ -16,7 +16,7 @@ if ( !defined( 'ABSPATH' ) ) {
|
|
16 |
/* ------------------------------------------------------------------------- *
|
17 |
* CONSTANTS
|
18 |
/* ------------------------------------------------------------------------- */
|
19 |
-
$current_version = "2.1.
|
20 |
|
21 |
if ( !defined( "NIMBLE_VERSION" ) ) { define( "NIMBLE_VERSION", $current_version ); }
|
22 |
if ( !defined( 'NIMBLE_DIR_NAME' ) ) { define( 'NIMBLE_DIR_NAME' , basename( dirname( __FILE__ ) ) ); }
|
3 |
* Plugin Name: Nimble Page Builder
|
4 |
* Plugin URI: https://nimblebuilder.com
|
5 |
* Description: Simple and smart companion that allows you to insert sections into any existing page, create landing pages or entire websites including header and footer.
|
6 |
+
* Version: 2.1.32
|
7 |
* Text Domain: nimble-builder
|
8 |
* Author: Press Customizr
|
9 |
* Author URI: https://nimblebuilder.com/?utm_source=wp-plugins&utm_medium=wp-dashboard&utm_campaign=author-uri
|
16 |
/* ------------------------------------------------------------------------- *
|
17 |
* CONSTANTS
|
18 |
/* ------------------------------------------------------------------------- */
|
19 |
+
$current_version = "2.1.32";
|
20 |
|
21 |
if ( !defined( "NIMBLE_VERSION" ) ) { define( "NIMBLE_VERSION", $current_version ); }
|
22 |
if ( !defined( 'NIMBLE_DIR_NAME' ) ) { define( 'NIMBLE_DIR_NAME' , basename( dirname( __FILE__ ) ) ); }
|
readme.txt
CHANGED
@@ -6,7 +6,7 @@ Tags: page builder, visual editor, customizer, drag and drop, header, footer, la
|
|
6 |
Requires at least: 4.7
|
7 |
Requires PHP: 5.4
|
8 |
Tested up to: 5.6
|
9 |
-
Stable tag: 2.1.
|
10 |
License: GPLv3
|
11 |
License URI: https://www.gnu.org/licenses/gpl-3.0.html
|
12 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=8FMNQPU36U27J&source=url
|
@@ -120,9 +120,12 @@ We have also published a detailed [troubleshooting guide for Nimble Builder](htt
|
|
120 |
If you can't troubleshoot your issue, please open a new thread in [Nimble Builder support forum](https://wordpress.org/support/plugin/nimble-builder/).
|
121 |
|
122 |
== Upgrade Notice ==
|
123 |
-
2.1.
|
124 |
|
125 |
== Changelog ==
|
|
|
|
|
|
|
126 |
= 2.1.31 December 24th, 2020 =
|
127 |
* fixed : [customizer] minor possible bug when initializing NB customization interface
|
128 |
|
6 |
Requires at least: 4.7
|
7 |
Requires PHP: 5.4
|
8 |
Tested up to: 5.6
|
9 |
+
Stable tag: 2.1.32
|
10 |
License: GPLv3
|
11 |
License URI: https://www.gnu.org/licenses/gpl-3.0.html
|
12 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=8FMNQPU36U27J&source=url
|
120 |
If you can't troubleshoot your issue, please open a new thread in [Nimble Builder support forum](https://wordpress.org/support/plugin/nimble-builder/).
|
121 |
|
122 |
== Upgrade Notice ==
|
123 |
+
2.1.32 : [form module] fixed a minor javascript issue that could occur after submitting a form
|
124 |
|
125 |
== Changelog ==
|
126 |
+
= 2.1.32 January 12, 2021 =
|
127 |
+
* fixed : [form module] javascript may break after submitting the form when jQuery called too early
|
128 |
+
|
129 |
= 2.1.31 December 24th, 2020 =
|
130 |
* fixed : [customizer] minor possible bug when initializing NB customization interface
|
131 |
|