MediaWiki:Common.js: Unterschied zwischen den Versionen

keine Bearbeitungszusammenfassung
 
(18 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
/* Das folgende JavaScript wird für alle Benutzer geladen. */
/* Das folgende JavaScript wird für alle Benutzer geladen. */
let monthsNames = [];
var monthsNames = ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'];


function addDatepickerHandler(event) {
function addDatepickerHandler(event) {
Zeile 16: Zeile 16:


function initMultiDatepickers() {
function initMultiDatepickers() {
  let d = new Date(2000,0);
  for (let i=0; i<12; i++) {
    monthsNames.push(d.toLocaleString('de_DE',{month:'long'}));
    d.setMonth(i + 1);
  }


let multidatepickers = document.getElementsByClassName('multidatepicker');
var multidatepickers = document.getElementsByClassName('multidatepicker');


for (var i=0; i<multidatepickers.length; i++) {
for (var i=0; i<multidatepickers.length; i++) {
Zeile 56: Zeile 51:
for (j=0; j<stringValues.length; j++) {
for (j=0; j<stringValues.length; j++) {
let datepicker = makeDatepickerRow(stringValues[j]);
var datepicker = makeDatepickerRow(stringValues[j]);


multidatepickers[i].parentNode.parentNode.appendChild(datepicker);
multidatepickers[i].parentNode.parentNode.appendChild(datepicker);
Zeile 68: Zeile 63:


function addDatepicker(multidatepicker) {
function addDatepicker(multidatepicker) {
let datepicker = makeDatepickerRow('');
var datepicker = makeDatepickerRow('');
multidatepicker.parentNode.parentNode.appendChild(datepicker);
multidatepicker.parentNode.parentNode.appendChild(datepicker);


Zeile 76: Zeile 71:
function parseInputsToStrings() {
function parseInputsToStrings() {
console.log('parsing');
console.log('parsing');
let multidatepickers = document.getElementsByClassName('multidatepicker');
var multidatepickers = document.getElementsByClassName('multidatepicker');
console.log('got ' + multidatepickers.length + ' multidatepickers');
console.log('got ' + multidatepickers.length + ' multidatepickers');
for (var i=0; i<multidatepickers.length; i++) {
for (var i=0; i<multidatepickers.length; i++) {
multidatepickers[i].value = '';
multidatepickers[i].value = '';


let datepickers = multidatepickers[i].parentNode.parentNode.getElementsByClassName('dateInput');
var datepickers = multidatepickers[i].parentNode.parentNode.getElementsByClassName('dateInput');
console.log(i + 'th multidatepicker has ' + datepickers.length + ' values');
console.log(i + 'th multidatepicker has ' + datepickers.length + ' values');
var finalStringValue = ''
var finalStringValue = '';
for (var j=0; j < datepickers.length;j++) {
for (var j=0; j < datepickers.length;j++) {
var yearInputValue = datepickers[j].getElementsByClassName('yearInput')[0].value;
var yearInputValue = datepickers[j].getElementsByClassName('yearInput')[0].value;
Zeile 141: Zeile 136:
var monthField = document.createElement('select');
var monthField = document.createElement('select');
monthField.className = 'monthInput';
monthField.className = 'monthInput';
let noMonthOption = document.createElement('option');
var noMonthOption = document.createElement('option');
monthField.appendChild(noMonthOption);
monthField.appendChild(noMonthOption);
for (var i=1; i<13; i++) {
for (var i=1; i<13; i++) {
let monthOption = document.createElement('option');
var monthOption = document.createElement('option');
let monthString = String(i).padStart(2, '0');
var monthString = String(i).padStart(2, '0');
monthOption.value = monthString;
monthOption.value = monthString;
monthOption.innerText = monthsNames[i-1];
monthOption.innerText = monthsNames[i-1];
Zeile 188: Zeile 183:
return wrapperTR;
return wrapperTR;


}
function initColorpickers() {
var colorpickers = document.getElementsByClassName('colorpicker');
for (var i=0; i<colorpickers.length; i++) {
colorpickers[i].setAttribute('type', 'color');
colorpickers[i].value = '#' + colorpickers[i].value;
}
}
function initCoordsPasteHook() {
var inputs = document.getElementsByClassName('pfCoordsInput');
for (var i=0; i<inputs.length; i++) {
inputs[i].addEventListener('paste', function (e) {
    var paste = (event.clipboardData || window.clipboardData).getData('text');
var elem = e.target;
console.log('onPaste coords');
if (paste.startsWith('https://maps.apple.com/place?/&ll=')) {
e.preventDefault();
// is Apple maps
console.log('apple maps paste');
var coords = decodeURIComponent(paste.substring(34));
elem.value = coords;
}
});
}
}
}




initMultiDatepickers();
initMultiDatepickers();
initColorpickers();
initCoordsPasteHook();