Zum Inhalt springen

MediaWiki:Common.js: Unterschied zwischen den Versionen

Aus transformal GmbH
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Markierung: Zurückgesetzt
Zeile 1: Zeile 1:
/* Consent System JavaScript v250820r2 */
/* Consent System JavaScript v250820r3 */


// Handle consent acquisition box
// Handle consent acquisition box
$(document).ready(function() {
$(document).ready(function() {
     // Hide consent box if already dismissed
    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');
    var consentBox = document.getElementById('consent-acquisition-box');
      
      
     if (dismissed === 'true' && consentBox) {
     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
     if (consentBox) {
     consentBox.addEventListener('click', function() {
        consentBox.addEventListener('click', function() {
        // Set session storage
            // Set session storage
        sessionStorage.setItem('consent-acquisition-dismissed', 'true');
            sessionStorage.setItem('consent-acquisition-dismissed', 'true');
       
           
        // Navigate to analyses preferences page
            // Navigate to analyses preferences page
        var lang = document.documentElement.lang || 'en';
            var lang = document.documentElement.lang || 'en';
        var targetPage = '';
            var targetPage = '';
       
           
        if (lang === 'de') {
            if (lang === 'de') {
            targetPage = '/wiki/Transformal_GmbH:Analyseeinstellungen';
                targetPage = '/wiki/Transformal_GmbH:Analyseeinstellungen';
        } else {
            } else {
            targetPage = '/wiki/Transformal_GmbH:Analyses_preferences';
                targetPage = '/wiki/Transformal_GmbH:Analyses_preferences';
        }
            }
       
           
        window.location.href = targetPage;
            window.location.href = targetPage;
    });
        });
    }
});
});


Zeile 107: Zeile 111:
}
}


// Show feedback when consent changes - FIXED to show both enabled and disabled messages
// 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 117:
      
      
     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 131:
      
      
     if (message) {
     if (message) {
         feedbackDiv.innerHTML = message + ' – Ihre Einstellungen werden gespeichert';
         feedbackDiv.innerHTML = message + ' – Your preferences are being saved';
        // For German: feedbackDiv.innerHTML = message + ' – Ihre Einstellungen werden gespeichert';
         feedbackDiv.style.display = 'block';
         feedbackDiv.style.display = 'block';
          
          

Version vom 20. August 2025, 16:24 Uhr

/* Consent System JavaScript v250820r3 */

// 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');
        
        // Navigate to analyses preferences page
        var lang = document.documentElement.lang || 'en';
        var targetPage = '';
        
        if (lang === 'de') {
            targetPage = '/wiki/Transformal_GmbH:Analyseeinstellungen';
        } else {
            targetPage = '/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 + ' &ndash; Your preferences are being saved';
        // For German: feedbackDiv.innerHTML = message + ' &ndash; Ihre Einstellungen werden gespeichert';
        feedbackDiv.style.display = 'block';
        
        // Hide after 3 seconds
        setTimeout(function() {
            feedbackDiv.style.display = 'none';
        }, 3000);
    }
}