From fd2f14445cdb06d4efba02dbe17978b3b3f4ae00 Mon Sep 17 00:00:00 2001 From: Ryan Cramer Date: Thu, 13 Apr 2017 08:36:23 -0400 Subject: [PATCH] Fix issue processwire/processwire-issues#233 --- wire/modules/Jquery/JqueryWireTabs/JqueryWireTabs.js | 7 ++++--- wire/modules/Jquery/JqueryWireTabs/JqueryWireTabs.min.js | 2 +- wire/modules/Jquery/JqueryWireTabs/JqueryWireTabs.module | 3 ++- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/wire/modules/Jquery/JqueryWireTabs/JqueryWireTabs.js b/wire/modules/Jquery/JqueryWireTabs/JqueryWireTabs.js index e2da02a1..79bf3588 100644 --- a/wire/modules/Jquery/JqueryWireTabs/JqueryWireTabs.js +++ b/wire/modules/Jquery/JqueryWireTabs/JqueryWireTabs.js @@ -11,6 +11,7 @@ var options = { rememberTabs: 0, // -1 = no, 0 = only after submit, 1 = always + requestID: '', cookieName: 'WireTabs', items: null, skipRememberTabIDs: [], @@ -24,7 +25,7 @@ var totalTabs = 0; var cfg = ProcessWire.config.JqueryWireTabs; - var keys = [ 'rememberTabs', 'cookieName', 'liActiveClass', 'aActiveClass', 'ulClass', 'ulAttrs' ]; + var keys = [ 'rememberTabs', 'requestID', 'cookieName', 'liActiveClass', 'aActiveClass', 'ulClass', 'ulAttrs' ]; for(var n = 0; n < keys.length; n++) { var key = keys[n]; @@ -186,11 +187,11 @@ } function setTabCookie(value) { - document.cookie = options.cookieName + '=' + escape(value); + document.cookie = options.cookieName + '=' + options.requestID + '-' + escape(value); } function getTabCookie() { - var regex = new RegExp('(?:^|;)\\s?' + options.cookieName + '=(.*?)(?:;|$)','i'); + var regex = new RegExp('(?:^|;)\\s?' + options.cookieName + '=' + options.requestID + '-(.*?)(?:;|$)','i'); var match = document.cookie.match(regex); match = match ? match[1] : ''; return match; diff --git a/wire/modules/Jquery/JqueryWireTabs/JqueryWireTabs.min.js b/wire/modules/Jquery/JqueryWireTabs/JqueryWireTabs.min.js index 6c32adcc..15a3c351 100644 --- a/wire/modules/Jquery/JqueryWireTabs/JqueryWireTabs.min.js +++ b/wire/modules/Jquery/JqueryWireTabs/JqueryWireTabs.min.js @@ -1 +1 @@ -(function(a){a.fn.WireTabs=function(d){var e={rememberTabs:0,cookieName:"WireTabs",items:null,skipRememberTabIDs:[],itemsParent:null,ulClass:"WireTabs nav",ulAttrs:"",liActiveClass:"",aActiveClass:"on",id:""};var c=0;var b=ProcessWire.config.JqueryWireTabs;var g=["rememberTabs","cookieName","liActiveClass","aActiveClass","ulClass","ulAttrs"];for(var h=0;h");o.addClass(e.ulClass);if(e.id.length){o.attr("id",e.id)}}e.items.each(j);if(q){i.prepend(o)}var t=i;var w=null;var y=p();if(e.rememberTabs==0){t.submit(function(){k(l);return true})}var s=window.location.href;var u="";if(s.indexOf("WireTab")){var v=new RegExp("[&;?]WireTab=([-_a-z0-9]+)","i");u=s.match(v);u=u?u[1]:"";if(u.length){w=o.find("a#_"+u)}}if(w==null){var x=document.location.hash.replace("#","");if(x.length){w=o.find("a#_"+x);if(w.length==0){w=null}else{document.location.hash=""}}}if(w==null&&y.length>0&&e.rememberTabs>-1){w=o.find("a#"+y)}if(w&&w.length>0){w.click();if(e.rememberTabs==0){k("")}setTimeout(function(){w.click()},200)}else{o.children("li:first").children("a").click()}}function j(){c++;var w=a(this);if(!w.attr("id")){w.attr("id","WireTab"+c)}var v=w.attr("title")||w.attr("id");w.removeAttr("title");var s=w.attr("id");var u=a("a#_"+s);if(u.length>0){u.click(n)}else{var u=a("").attr("href","#"+s).attr("id","_"+s).html(v).click(n);o.append(a("
  • ").append(u))}var t=w.attr("data-tooltip");if(w.hasClass("WireTabTip")||t){u.addClass("tooltip");u.attr("title",t?t:v)}w.hide()}function n(){var t=e.aActiveClass;var z=e.liActiveClass;var u=o.find("a."+t);var x=a(this);if(!u.length){u=o.find("a:eq(0)")}var w=u.attr("href");var y=x.attr("href");var v=w&&w.indexOf("#")===0?a(w):null;var s=y&&y.indexOf("#")===0?a(y):null;var B=x.attr("id");var A=u.attr("id");u.removeClass(t);x.addClass(t);if(z.length){u.closest("li").removeClass(z);x.closest("li").addClass(z)}if(v){v.hide()}if(s){s.show()}else{if(y&&y.length){window.location.href=y;return true}}if(A){i.removeClass(v.attr("id"))}i.addClass(B);if(e.rememberTabs>-1){if(jQuery.inArray(B,e.skipRememberTabIDs)!=-1){B=""}if(e.rememberTabs==1){k(B)}l=B}a(document).trigger("wiretabclick",[s,v]);return false}function k(s){document.cookie=e.cookieName+"="+escape(s)}function p(){var t=new RegExp("(?:^|;)\\s?"+e.cookieName+"=(.*?)(?:;|$)","i");var s=document.cookie.match(t);s=s?s[1]:"";return s}r()})}})(jQuery); \ No newline at end of file +(function(a){a.fn.WireTabs=function(d){var e={rememberTabs:0,requestID:"",cookieName:"WireTabs",items:null,skipRememberTabIDs:[],itemsParent:null,ulClass:"WireTabs nav",ulAttrs:"",liActiveClass:"",aActiveClass:"on",id:""};var c=0;var b=ProcessWire.config.JqueryWireTabs;var g=["rememberTabs","requestID","cookieName","liActiveClass","aActiveClass","ulClass","ulAttrs"];for(var h=0;h");o.addClass(e.ulClass);if(e.id.length){o.attr("id",e.id)}}e.items.each(j);if(q){i.prepend(o)}var t=i;var w=null;var y=p();if(e.rememberTabs==0){t.submit(function(){k(l);return true})}var s=window.location.href;var u="";if(s.indexOf("WireTab")){var v=new RegExp("[&;?]WireTab=([-_a-z0-9]+)","i");u=s.match(v);u=u?u[1]:"";if(u.length){w=o.find("a#_"+u)}}if(w==null){var x=document.location.hash.replace("#","");if(x.length){w=o.find("a#_"+x);if(w.length==0){w=null}else{document.location.hash=""}}}if(w==null&&y.length>0&&e.rememberTabs>-1){w=o.find("a#"+y)}if(w&&w.length>0){w.click();if(e.rememberTabs==0){k("")}setTimeout(function(){w.click()},200)}else{o.children("li:first").children("a").click()}}function j(){c++;var w=a(this);if(!w.attr("id")){w.attr("id","WireTab"+c)}var v=w.attr("title")||w.attr("id");w.removeAttr("title");var s=w.attr("id");var u=a("a#_"+s);if(u.length>0){u.click(n)}else{var u=a("").attr("href","#"+s).attr("id","_"+s).html(v).click(n);o.append(a("
  • ").append(u))}var t=w.attr("data-tooltip");if(w.hasClass("WireTabTip")||t){u.addClass("tooltip");u.attr("title",t?t:v)}w.hide()}function n(){var t=e.aActiveClass;var z=e.liActiveClass;var u=o.find("a."+t);var x=a(this);if(!u.length){u=o.find("a:eq(0)")}var w=u.attr("href");var y=x.attr("href");var v=w&&w.indexOf("#")===0?a(w):null;var s=y&&y.indexOf("#")===0?a(y):null;var B=x.attr("id");var A=u.attr("id");u.removeClass(t);x.addClass(t);if(z.length){u.closest("li").removeClass(z);x.closest("li").addClass(z)}if(v){v.hide()}if(s){s.show()}else{if(y&&y.length){window.location.href=y;return true}}if(A){i.removeClass(v.attr("id"))}i.addClass(B);if(e.rememberTabs>-1){if(jQuery.inArray(B,e.skipRememberTabIDs)!=-1){B=""}if(e.rememberTabs==1){k(B)}l=B}a(document).trigger("wiretabclick",[s,v]);return false}function k(s){document.cookie=e.cookieName+"="+e.requestID+"-"+escape(s)}function p(){var t=new RegExp("(?:^|;)\\s?"+e.cookieName+"="+e.requestID+"-(.*?)(?:;|$)","i");var s=document.cookie.match(t);s=s?s[1]:"";return s}r()})}})(jQuery); \ No newline at end of file diff --git a/wire/modules/Jquery/JqueryWireTabs/JqueryWireTabs.module b/wire/modules/Jquery/JqueryWireTabs/JqueryWireTabs.module index 5ab3c702..e61e89a9 100644 --- a/wire/modules/Jquery/JqueryWireTabs/JqueryWireTabs.module +++ b/wire/modules/Jquery/JqueryWireTabs/JqueryWireTabs.module @@ -16,7 +16,7 @@ class JqueryWireTabs extends ModuleJS implements ConfigurableModule { return array( 'title' => __('jQuery Wire Tabs Plugin', __FILE__), 'summary' => __('Provides a jQuery plugin for generating tabs in ProcessWire.', __FILE__), - 'version' => 107, + 'version' => 108, 'permanent' => true, ); } @@ -33,6 +33,7 @@ class JqueryWireTabs extends ModuleJS implements ConfigurableModule { 'ulClass' => 'WireTabs nav', 'ulAttrs' => '', 'liActiveClass' => '', + 'requestID' => ((string) $this->wire('process')) . ((int) $this->wire('input')->get('id')), 'aActiveClass' => 'on', 'rememberTabs' => (int) $this->rememberTabs, 'loadStyles' => true,