MediaWiki:Common.js: Unterschied zwischen den Versionen
Aus WIKI LAUER-FISCHER GmbH
Zeile 20: | Zeile 20: | ||
// Register slideToggle() on each category. | // Register slideToggle() on each category. | ||
− | jQuery("div.generated-sidebar.portlet").each(makeOnClick); | + | jQuery("div.generated-sidebar.portlet").each(makeOnClick, true); |
+ | jQuery("#p-tb").each(makeOnClick, false); | ||
}); | }); | ||
// Registers the slideToggle() function on this and sets up the cookie | // Registers the slideToggle() function on this and sets up the cookie | ||
− | function makeOnClick(n) { | + | function makeOnClick(n, expanded) { |
"use strict"; | "use strict"; | ||
Zeile 30: | Zeile 31: | ||
var cookie = getCookie("showSection" + n); | var cookie = getCookie("showSection" + n); | ||
− | |||
if (cookie === null) { | if (cookie === null) { | ||
− | |||
setStateCookie(n, expanded); | setStateCookie(n, expanded); | ||
} | } |
Version vom 12. April 2018, 10:19 Uhr
// Delete WINAPO SQL from Addon-Produkte and insert a new link after Addon-Produkte. // That way WINAPO SQL looks like big link and is not affected by slideToggle() on Addon-Produkte. jQuery(document).ready(function () { if (jQuery("#n-WINAPO-SQL").length > 0) { var sql_margin_top = jQuery("#n-WINAPO-SQL a").css("margin-top"); var sql_margin_bottom = "calc(" + jQuery("#p-AddOn-Produkte").css("margin-bottom") + " + " + jQuery("#p-AddOn-Produkte div").css("padding-bottom") + ")"; var sql_font_size = jQuery("#n-WINAPO-SQL a").css("font-size"); var sql_padding_left = jQuery("#p-search > h3").css("padding-left"); var sql_line_height = jQuery("#n-WINAPO-SQL a").css("line-height"); var sql_height = jQuery("#n-WINAPO-SQL a").css("height"); jQuery("#n-WINAPO-SQL").detach(); jQuery("#p-AddOn-Produkte").css({ "margin-bottom": "0px" }); jQuery("#p-AddOn-Produkte div").css({ "padding-bottom": "0px" }); jQuery("#p-AddOn-Produkte").after("<a href=\"/Kategorie:WINAPO_SQL\" class=\"portlet generated-sidebar\"><h3>WINAPO SQL</h3></a>"); jQuery("#p-AddOn-Produkte + a > h3").css({ "margin-bottom": "0px", "margin-top": "0px", "padding-left": sql_padding_left, "padding-top": "0px", "padding-bottom": "0px", "font-size": sql_font_size, "line-height": sql_line_height, "height": sql_height }); jQuery("#p-AddOn-Produkte + a").css({ "display": "block", "margin-bottom": sql_margin_bottom, "margin-top": sql_margin_top, "padding-top": "0px", "padding-bottom": "0px" }); } // Register slideToggle() on each category. jQuery("div.generated-sidebar.portlet").each(makeOnClick, true); jQuery("#p-tb").each(makeOnClick, false); }); // Registers the slideToggle() function on this and sets up the cookie function makeOnClick(n, expanded) { "use strict"; jQuery(this).attr({ "role": "button", "type": "button" }); var cookie = getCookie("showSection" + n); if (cookie === null) { setStateCookie(n, expanded); } else { expanded = cookie === "1"; } jQuery(this).children("h3").attr("aria-pressed", expanded ? "true" : "false"); jQuery(this).children("h3").addClass(expanded ? "nav-expanded" : "nav-collapsed"); if (expanded == false) { jQuery(this).children("div").hide(); } jQuery(this).children("h3").click(function () { var newExpanded = jQuery(this).attr("aria-pressed") !== "true"; setStateCookie(n, newExpanded); if (newExpanded) { jQuery(this).removeClass("nav-collapsed"); jQuery(this).addClass("nav-expanded"); } else { jQuery(this).removeClass("nav-expanded"); jQuery(this).addClass("nav-collapsed"); } jQuery(this).attr("aria-pressed", newExpanded ? "true" : "false"); setTimeout(function (e) { e.slideToggle('fast') }, 0, jQuery(this).parent().children("div.pBody:first-of-type")); }) function getCookie(key) { "use strict"; var cookieQuery = document.cookie.match('(?:^|;)\\s*' + key + '\\s*=\\s*([^;]+)'); return cookieQuery === null ? null : cookieQuery.pop(); } // Writes the state of the k-th section into a cookie. function setStateCookie(k, expanded) { "use strict"; var now = new Date(); now.setFullYear(now.getFullYear() + 3); var expirationDate = now.toUTCString(); var cookie = "showSection" + k.toString() + "=" + (expanded ? "1" : "0") + "; Expires=" + expirationDate + "; path=/"; document.cookie = cookie; } }