MediaWiki:Common.js: Unterschied zwischen den Versionen
Erscheinungsbild
Keine Bearbeitungszusammenfassung Markierung: Manuelle Zurücksetzung |
Keine Bearbeitungszusammenfassung |
||
| Zeile 1: | Zeile 1: | ||
/* Consent System JavaScript | /* Consent System JavaScript v250820r4 */ | ||
// Handle consent acquisition box | // Handle consent acquisition box | ||
$(document).ready(function() { | $(document).ready(function() { | ||
// | var consentBox = document.getElementById('consent-acquisition-box'); | ||
if (!consentBox) return; | |||
// Check if already dismissed in this session | |||
var dismissed = sessionStorage.getItem('consent-acquisition-dismissed'); | var dismissed = sessionStorage.getItem('consent-acquisition-dismissed'); | ||
if (dismissed === 'true' | if (dismissed === 'true') { | ||
consentBox.style.display = 'none'; | consentBox.style.display = 'none'; | ||
} else { | |||
// SHOW the box if not dismissed | |||
consentBox.style.display = 'block'; | |||
consentBox.classList.add('show'); | |||
} | } | ||
// Add click handler to consent box | // Add click handler to consent box | ||
consentBox.addEventListener('click', function() { | |||
// Set session storage | |||
sessionStorage.setItem('consent-acquisition-dismissed', 'true'); | |||
// Determine language based on domain | |||
var hostname = window.location.hostname; | |||
var isGerman = (hostname === 'de.transformal.com' || | |||
hostname === 'de.olaflangmack.info' || | |||
hostname === 'de.mediawiki.transformal.com'); | |||
// Navigate to correct language version | |||
var targetPage = isGerman ? | |||
'/wiki/Transformal_GmbH:Analyseeinstellungen' : | |||
'/wiki/Transformal_GmbH:Analyses_preferences'; | |||
window.location.href = targetPage; | |||
}); | |||
}); | }); | ||
| Zeile 107: | Zeile 112: | ||
} | } | ||
// Show feedback when consent changes | // Show feedback when consent changes | ||
function showConsentFeedback(feature, enabled) { | function showConsentFeedback(feature, enabled) { | ||
var feedbackDiv = document.getElementById('consent-feedback'); | var feedbackDiv = document.getElementById('consent-feedback'); | ||
| Zeile 113: | Zeile 118: | ||
var message = ''; | var message = ''; | ||
// For English version: | |||
// if (feature === 'matomo-consent') { | |||
// message = enabled ? 'Journaling enabled' : 'Journaling disabled'; | |||
// } else if (feature === 'altcha-consent') { | |||
// message = enabled ? 'Proof-of-work enabled' : 'Proof-of-work disabled'; | |||
// } | |||
// For German version, change the messages to: | |||
if (feature === 'matomo-consent') { | if (feature === 'matomo-consent') { | ||
message = enabled ? 'Aufzeichnungen zugelassen' : 'Aufzeichnungen nicht zugelassen'; | message = enabled ? 'Aufzeichnungen zugelassen' : 'Aufzeichnungen nicht zugelassen'; | ||
| Zeile 120: | Zeile 132: | ||
if (message) { | if (message) { | ||
// feedbackDiv.innerHTML = message + ' – Your preferences are being saved'; | |||
feedbackDiv.innerHTML = message + ' – Ihre Einstellungen werden gespeichert'; | feedbackDiv.innerHTML = message + ' – Ihre Einstellungen werden gespeichert'; | ||
feedbackDiv.style.display = 'block'; | feedbackDiv.style.display = 'block'; | ||
Version vom 20. August 2025, 19:23 Uhr
/* Consent System JavaScript v250820r4 */
// Handle consent acquisition box
$(document).ready(function() {
var consentBox = document.getElementById('consent-acquisition-box');
if (!consentBox) return;
// Check if already dismissed in this session
var dismissed = sessionStorage.getItem('consent-acquisition-dismissed');
if (dismissed === 'true') {
consentBox.style.display = 'none';
} else {
// SHOW the box if not dismissed
consentBox.style.display = 'block';
consentBox.classList.add('show');
}
// Add click handler to consent box
consentBox.addEventListener('click', function() {
// Set session storage
sessionStorage.setItem('consent-acquisition-dismissed', 'true');
// Determine language based on domain
var hostname = window.location.hostname;
var isGerman = (hostname === 'de.transformal.com' ||
hostname === 'de.olaflangmack.info' ||
hostname === 'de.mediawiki.transformal.com');
// Navigate to correct language version
var targetPage = isGerman ?
'/wiki/Transformal_GmbH:Analyseeinstellungen' :
'/wiki/Transformal_GmbH:Analyses_preferences';
window.location.href = targetPage;
});
});
// Convert template placeholders to actual checkboxes
console.log('Starting consent checkbox initialization');
$(function() {
$('.consent-option').each(function() {
var $option = $(this);
// Skip if already processed
if ($option.find('.consent-checkbox').length > 0) return;
var consentId = $option.find('.consent-data').text().trim();
var status = $option.find('.consent-status-data').text().trim();
// Find the checkbox-row div
var $checkboxRow = $option.find('.checkbox-row');
if (!$checkboxRow.length) return;
// Create checkbox and append directly
var $container = $('<span class="checkbox-container"></span>');
var $checkbox = $('<input>', {
type: 'checkbox',
id: consentId,
class: 'consent-checkbox'
});
if (status === 'disabled') {
$checkbox.prop('disabled', true);
}
var label = $option.find('.checkbox-placeholder').attr('data-label') || 'Enabled';
var $label = $('<label>', {
'for': consentId,
text: ' ' + label,
style: 'cursor: pointer;'
});
$container.append($checkbox).append($label);
$checkboxRow.append($container);
// Remove placeholder if exists
$checkboxRow.find('.checkbox-placeholder').remove();
// Load and bind
var saved = localStorage.getItem(consentId) === 'true';
$checkbox.prop('checked', saved);
$checkbox.on('change', function() {
localStorage.setItem(consentId, this.checked);
if (typeof handleConsentChange === 'function') {
handleConsentChange(consentId, this.checked);
}
if (typeof showConsentFeedback === 'function') {
showConsentFeedback(consentId, this.checked);
}
});
});
});
// Handle consent changes for different features
function handleConsentChange(feature, enabled) {
if (feature === 'matomo-consent') {
if (enabled) {
if (window._paq) {
_paq.push(['rememberConsentGiven']);
_paq.push(['trackPageView']);
}
} else {
if (window._paq) {
_paq.push(['forgetConsentGiven']);
}
}
}
}
// Show feedback when consent changes
function showConsentFeedback(feature, enabled) {
var feedbackDiv = document.getElementById('consent-feedback');
if (!feedbackDiv) return;
var message = '';
// For English version:
// if (feature === 'matomo-consent') {
// message = enabled ? 'Journaling enabled' : 'Journaling disabled';
// } else if (feature === 'altcha-consent') {
// message = enabled ? 'Proof-of-work enabled' : 'Proof-of-work disabled';
// }
// For German version, change the messages to:
if (feature === 'matomo-consent') {
message = enabled ? 'Aufzeichnungen zugelassen' : 'Aufzeichnungen nicht zugelassen';
} else if (feature === 'altcha-consent') {
message = enabled ? 'Proof-of-work zugelassen' : 'Proof-of-work nicht zugelassen';
}
if (message) {
// feedbackDiv.innerHTML = message + ' – Your preferences are being saved';
feedbackDiv.innerHTML = message + ' – Ihre Einstellungen werden gespeichert';
feedbackDiv.style.display = 'block';
// Hide after 3 seconds
setTimeout(function() {
feedbackDiv.style.display = 'none';
}, 3000);
}
}