MediaWiki:Common.js: Unterschied zwischen den Versionen
Aus WIKI LAUER-FISCHER GmbH
| Zeile 1: | Zeile 1: | ||
| − | |||
| − | |||
| − | |||
// Delete WINAPO SQL from Addon-Produkte and insert a new link after Addon-Produkte. | // 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. | // That way WINAPO SQL looks like big link and is not affected by slideToggle() on Addon-Produkte. | ||
| Zeile 19: | Zeile 16: | ||
jQuery("#p-AddOn-Produkte").after("<a href=\"/Kategorie:WINAPO_SQL\" class=\"portlet generated-sidebar\"><h3>WINAPO SQL</h3></a>"); | 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 > 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"}); | + | 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. | // Register slideToggle() on each category. | ||
| − | jQuery("div.generated-sidebar.portlet | + | jQuery("div.generated-sidebar.portlet").each(makeOnClick); |
}); | }); | ||
| Zeile 43: | Zeile 40: | ||
} | } | ||
| − | jQuery(this).attr("aria-pressed", expanded ? "true" : "false") | + | jQuery(this).children("h3").attr("aria-pressed", expanded ? "true" : "false"); |
| − | + | jQuery(this).addClass(expanded ? "nav-expanded" : "nav-collapsed"); | |
| − | jQuery(this). | ||
| − | if (expanded) { | + | if (expanded == false) { |
| − | jQuery(this | + | jQuery(this).children("div").hide(); |
| − | |||
| − | |||
| − | |||
| − | |||
} | } | ||
| − | jQuery(this).click(function () { | + | jQuery(this).children("h3").click(function () { |
var newExpanded = jQuery(this).attr("aria-pressed") !== "true"; | var newExpanded = jQuery(this).attr("aria-pressed") !== "true"; | ||
| − | |||
setStateCookie(n, newExpanded); | setStateCookie(n, newExpanded); | ||
| − | |||
| − | |||
| − | |||
if (newExpanded) { | if (newExpanded) { | ||
| − | jQuery(this).removeClass("collapsed").addClass("expanded"); | + | jQuery(this).parent().removeClass("nav-collapsed"); |
| + | jQuery(this).parent().addClass("nav-expanded"); | ||
} | } | ||
else { | else { | ||
| − | jQuery(this).removeClass("expanded").addClass("collapsed"); | + | jQuery(this).parent().removeClass("nav-expanded"); |
| + | jQuery(this).parent().addClass("nav-collapsed"); | ||
} | } | ||
| + | |||
| + | jQuery(this).attr("aria-pressed", newExpanded ? "true" : "false"); | ||
| + | jQuery(this).parent().children("div.pBody:first-of-type").slideToggle('fast'); | ||
}) | }) | ||
Version vom 9. April 2018, 12:25 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);
});
// Registers the slideToggle() function on this and sets up the cookie
function makeOnClick(n) {
"use strict";
jQuery(this).attr({ "role": "button", "type": "button" });
var cookie = getCookie("showSection" + n);
var expanded;
if (cookie === null) {
expanded = true;
setStateCookie(n, expanded);
}
else {
expanded = cookie === "1";
}
jQuery(this).children("h3").attr("aria-pressed", expanded ? "true" : "false");
jQuery(this).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).parent().removeClass("nav-collapsed");
jQuery(this).parent().addClass("nav-expanded");
}
else {
jQuery(this).parent().removeClass("nav-expanded");
jQuery(this).parent().addClass("nav-collapsed");
}
jQuery(this).attr("aria-pressed", newExpanded ? "true" : "false");
jQuery(this).parent().children("div.pBody:first-of-type").slideToggle('fast');
})
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;
}
}