„Benutzer:Wiegels/js/age.js“ – Versionsunterschied

Inhalt gelöscht Inhalt hinzugefügt
Neu, siehe hier
 
Gemeldete Unverträglichkeit mit Benutzer:Schnark/js/personendaten.js behoben
Zeile 5: Zeile 5:
$('head').append(
$('head').append(
'<link href="/w/index.php?title=Benutzer:Wiegels/css/indicator.css&action=raw&ctype=text/css" rel="stylesheet" type="text/css"/>');
'<link href="/w/index.php?title=Benutzer:Wiegels/css/indicator.css&action=raw&ctype=text/css" rel="stylesheet" type="text/css"/>');
metadata = metadata.clone().attr('id', '').addClass('jw-indicator').css('margin-top', '0');
$('.mw-indicators').
append('<div id="jw-age" class="jw-indicator"></div>').
$('.mw-indicators').append('<div id="jw-age" class="jw-indicator"></div>').append(metadata);
append(metadata.addClass('jw-indicator').css('margin-top', '0'));
var dates = [],
var dates = [],
intro = $('.mw-parser-output > p').first().text(),
intro = $('.mw-parser-output > p').first().text(),
Zeile 40: Zeile 39:
$('#jw-age a').on('click', function(event) {
$('#jw-age a').on('click', function(event) {
event.preventDefault();
event.preventDefault();
$('.metadata').toggle();
metadata.toggle();
});
});
metadata.toggle(metadata.html().match(/<mark>/)!=null);
metadata.toggle(metadata.html().match(/<mark>/)!=null);

Version vom 28. November 2022, 02:01 Uhr

// Alter anzeigen
(function() {
    var metadata = $('#Vorlage_Personendaten');
    if ($('#jw-age').length==0 && metadata.length>0) {
        $('head').append(
            '<link href="/w/index.php?title=Benutzer:Wiegels/css/indicator.css&action=raw&ctype=text/css" rel="stylesheet" type="text/css"/>');
        metadata = metadata.clone().attr('id', '').addClass('jw-indicator').css('margin-top', '0');
        $('.mw-indicators').append('<div id="jw-age" class="jw-indicator"></div>').append(metadata);
        var dates = [],
            intro = $('.mw-parser-output > p').first().text(),
            months = mw.config.get('wgMonthNames').join('|'),
            matches = [
                metadata.text().match(/GEBURTSDATUM\n\n([^\n]+)/),
                metadata.text().match(/STERBEDATUM\n\n([^\n]+)/)];
        $(matches).each(function(index, match) {
            if (match) {
                var date = match[1].match(/^(\d{1,2}\. |.*?)(\S+ |)(\d{4})$/);
                if (!intro.replace(/\s/g, ' ').match(RegExp((date[1]+date[2].replace(/Januar/, '(Januar|Jänner)')).replace(/ $/, '')+' '+date[3]))) {
                    metadata.html(metadata.html().
                        replace(RegExp('('+['GEBURTSDATUM', 'STERBEDATUM'][index]+'\\n<\\/td>\\n<td>)([^<]+)'), '$1<mark>$2</mark>'));
                }
                dates[index] = [0,
                    parseInt('0'+date[1]),
                    months.replace(RegExp(date[2].replace(' ', '')+'.*$'), '').replace(/[^|]/g, '').length,
                    parseInt(date[3])];
            }
        });
        if (matches[0]) {
            var date0 = dates[0],
                today = new Date();
                date1 = dates[1] || [0, today.getDate(), today.getMonth()+1, today.getFullYear()],
                age = (Math.max(date0[2], date1[2])>12 || Math.min(date0[1], date1[1])==0 ? '&asymp;' : '')+
                    (date1[3]-date0[3]-(date1[2]*32+date1[1]<date0[2]*32+date0[1] ? 1 : 0)),
                cats = '|'+mw.config.get('wgCategories').join('|')+'|';
            if (age) {
                $('#jw-age').append('<span><a href="#" accesskey="b" title="Personendaten umschalten [Alt+Umschalt+b]">'+
                    age+ ' Jahr'+(age.replace('&asymp;', '')!=1 ? 'e' : '')+' alt</a></span>');
                $('#jw-age span').css('background-color', (cats.match(/\|Frau\|/) ? '#fee' : (cats.match(/\|Mann\|/) ? '#eef' : '#efe')));
                $('#jw-age a').on('click', function(event) {
                    event.preventDefault();
                    metadata.toggle();
                });
                metadata.toggle(metadata.html().match(/<mark>/)!=null);
            }
        }
    }
})();