mirror of
https://github.com/processwire/processwire.git
synced 2025-08-11 01:04:16 +02:00
Upate JqueryWireTabs module to support more customization of its tooltips (so admin theme can adjust)
This commit is contained in:
@@ -127,8 +127,18 @@
|
||||
if($t.hasClass('WireTabTip') || tip) {
|
||||
// if the tab being added has the class 'WireTabTip' or has a data-tooltip attribute
|
||||
// then display a tooltip with the tab
|
||||
$a.addClass('tooltip');
|
||||
$a.attr('title', tip ? tip : title);
|
||||
if(!tip) tip = title;
|
||||
for(var key in cfg.tooltipAttr) {
|
||||
var val = cfg.tooltipAttr[key];
|
||||
if(val.indexOf('{tip}') > -1) val = val.replace('{tip}', tip);
|
||||
if(key === 'class') {
|
||||
$a.addClass(val);
|
||||
} else {
|
||||
$a.attr(key, val);
|
||||
}
|
||||
}
|
||||
// $a.addClass('tooltip');
|
||||
// $a.attr('title', tip ? tip : title);
|
||||
}
|
||||
$t.hide();
|
||||
// the following removed to prevent DOM manipulation if the tab content:
|
||||
|
@@ -1 +1 @@
|
||||
(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<g.length;h++){var f=g[h];if(typeof b[f]!="undefined"){e[f]=b[f]}}a.extend(e,d);return this.each(function(m){var o=null;var i=a(this);var l="";var q=true;function r(){if(!e.items){return}if(e.items.length<1){return}if(e.id.length){o=a("#"+e.id);if(o.length){q=false}else{o=null}}if(!o){o=a("<ul"+(e.ulAttrs?" "+e.ulAttrs:"")+"></ul>");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("<a></a>").attr("href","#"+s).attr("id","_"+s).html(v).click(n);o.append(a("<li></li>").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);
|
||||
(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<g.length;h++){var f=g[h];if(typeof b[f]!="undefined"){e[f]=b[f]}}a.extend(e,d);return this.each(function(m){var o=null;var i=a(this);var l="";var q=true;function r(){if(!e.items){return}if(e.items.length<1){return}if(e.id.length){o=a("#"+e.id);if(o.length){q=false}else{o=null}}if(!o){o=a("<ul"+(e.ulAttrs?" "+e.ulAttrs:"")+"></ul>");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 y=a(this);if(!y.attr("id")){y.attr("id","WireTab"+c)}var x=y.attr("title")||y.attr("id");y.removeAttr("title");var s=y.attr("id");var v=a("a#_"+s);if(v.length>0){v.click(n)}else{var v=a("<a></a>").attr("href","#"+s).attr("id","_"+s).html(x).click(n);o.append(a("<li></li>").append(v))}var u=y.attr("data-tooltip");if(y.hasClass("WireTabTip")||u){if(!u){u=x}for(var t in b.tooltipAttr){var w=b.tooltipAttr[t];if(w.indexOf("{tip}")>-1){w=w.replace("{tip}",u)}if(t==="class"){v.addClass(w)}else{v.attr(t,w)}}}y.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);
|
@@ -38,6 +38,10 @@ class JqueryWireTabs extends ModuleJS implements ConfigurableModule {
|
||||
'rememberTabs' => (int) $this->rememberTabs,
|
||||
'loadStyles' => true,
|
||||
'cookieName' => 'WireTabs',
|
||||
'tooltipAttr' => array(
|
||||
'class' => 'tooltip',
|
||||
'title' => '{tip}',
|
||||
),
|
||||
);
|
||||
|
||||
$className = 'JqueryWireTabs';
|
||||
|
Reference in New Issue
Block a user