From 277674db23751a53a70621136ef165b2346934bc Mon Sep 17 00:00:00 2001 From: Ryan Cramer Date: Fri, 28 Jul 2017 10:10:16 -0400 Subject: [PATCH] Fix issue processwire/processwire-issues#325 panel.js and URL fragments fix --- wire/modules/Jquery/JqueryUI/panel.js | 11 +++++++++-- wire/modules/Jquery/JqueryUI/panel.min.js | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/wire/modules/Jquery/JqueryUI/panel.js b/wire/modules/Jquery/JqueryUI/panel.js index e14a6871..da391b52 100644 --- a/wire/modules/Jquery/JqueryUI/panel.js +++ b/wire/modules/Jquery/JqueryUI/panel.js @@ -134,15 +134,22 @@ var pwPanels = { // allow for use of data-href or href attribute that references URL to load in panel if(typeof panelURL == 'undefined' || !panelURL.length) panelURL = $toggler.attr('href'); - + if(typeof panelURL != 'undefined' && panelURL.length) { + var hash = ''; + if(panelURL.indexOf('#') > -1) { + var parts = panelURL.split('#'); + panelURL = parts[0]; + hash = '#' + parts[1]; + } panelURL += (panelURL.indexOf('?') > -1 ? '&' : '?') + 'modal=panel&pw_panel='; - + if($toggler !== null && $toggler.hasClass('pw-panel-links')) { panelURL += '2'; // don't update target of links in panel } else { panelURL += '1'; // update target of links in panel } + panelURL += hash; } var $icon = $('') diff --git a/wire/modules/Jquery/JqueryUI/panel.min.js b/wire/modules/Jquery/JqueryUI/panel.min.js index 5fa63b36..76ecf3c2 100644 --- a/wire/modules/Jquery/JqueryUI/panel.min.js +++ b/wire/modules/Jquery/JqueryUI/panel.min.js @@ -1 +1 @@ -var pwPanels={qty:0,init:function(){var a=window.location.href;if(a.indexOf("pw_panel=1")>-1){$(document).on("mouseover","a",function(){var b=$(this);var c=b.attr("target");if(typeof c=="undefined"||c.length==0){b.attr("target","_parent")}})}else{if(a.indexOf("pw_panel=2")>-1){}else{$(".pw-panel").each(function(){var b=$(this);pwPanels.addPanel(b)})}}},addPanel:function(e){var h=e.attr("data-href");var d=e.attr("data-panel-id");var c="pw-panel-container-"+(++pwPanels.qty);if(typeof h=="undefined"||!h.length){h=e.attr("href")}if(typeof h!="undefined"&&h.length){h+=(h.indexOf("?")>-1?"&":"?")+"modal=panel&pw_panel=";if(e!==null&&e.hasClass("pw-panel-links")){h+="2"}else{h+="1"}}var b=$("").attr("class","pw-panel-icon fa fa-angle-double-left");var a=$("").attr("class","ui-button-text").append(b);var f=$("").attr("class","pw-panel-button pw-panel-button-closed ui-button ui-state-default").attr("href",h).on("click",pwPanels.buttonClickEvent).on("mouseover",pwPanels.buttonMouseoverEvent).on("mouseut",pwPanels.buttonMouseoutEvent).append(a);var g=$("
").attr("id",c).attr("class","pw-panel-container pw-panel-container-closed").append(f);$("body").append(g);if(typeof d!="undefined"&&d.length){$("#"+d).hide().addClass("pw-panel-element");g.addClass("pw-panel-container-element").attr("data-panel-id",d)}if(e!==null){pwPanels.initToggler(e,f,g)}else{g.addClass("pw-panel-left")}},initToggler:function(b,j,l){var e=b.hasClass("pw-panel-right")?"right":"left";var k=b.attr("data-tab-text");var h=b.attr("data-tab-icon");var f=b.attr("data-tab-offset");var a=b.attr("data-panel-width");var d=e=="right"?"left":"right";var c=1;l.addClass("pw-panel-tab pw-panel-"+e);l.attr("data-href",j.attr("href"));if(b.hasClass("pw-panel-reload")){l.addClass("pw-panel-reload")}if(typeof f!="undefined"){f=parseInt(f);if(f>-1){j.css("top",f+"px")}else{j.css("top","auto");j.css("bottom",Math.abs(f)+"px")}}if(typeof k!="undefined"&&k.length){j.children(".ui-button-text").text(k);j.addClass("pw-panel-button-text");c=7}if(typeof h!="undefined"&&h.length){var g=$("").addClass("fa fa-fw fa-"+h);var i=j.children(".ui-button-text");if(j.hasClass("pw-panel-button-text")){i.prepend(g)}else{i.empty().append(g);j.css(d,(-1*(j.outerWidth()))+"px")}}if(typeof a!="undefined"&&a.length){l.css("width",a);l.css(e,"-"+a)}if(e=="right"){}else{j.css("right",(-1*(c+j.height()))+"px")}if(!b.hasClass("pw-panel-tab")){j.addClass("pw-panel-button-hidden")}b.click(function(){j.click();return false}).on("mouseover",function(){j.mouseover()}).on("mouseout",function(){j.mouseout()})},initPanelContent:function(d){var b=d.find(".pw-panel-content");var a=d.attr("data-panel-id");if(b.length){return b}else{if(typeof a!="undefined"){var c=$("#"+a);if(c.length){b=$("
").addClass("pw-panel-content").css("overflow","auto");d.append(b);b.append(c);c.show();c.trigger("pw-panel-init")}}else{b=$("