Aus Tiroler Dialektarchiv
(Unterschied zwischen Versionen)
Zeile 159: | Zeile 159: | ||
} | } | ||
− | var d = 1; | + | var d = 1.3; |
var spread_deltas = [ [d,d], [-d,d], [-d,-d], [d,-d], [d,0], [0,d], [0,-d], [-d,0] ]; | var spread_deltas = [ [d,d], [-d,d], [-d,-d], [d,-d], [d,0], [0,d], [0,-d], [-d,0] ]; | ||
function spread_markers(pos) { | function spread_markers(pos) { |
Version vom 27. Mai 2019, 14:07 Uhr
/* Das folgende JavaScript wird für alle Benutzer geladen. */ $('.belegnahe_stichworte_belege').click(function(e) { var target = e.target; $(target).hide(); $(target).next().show(); }); // Beim Bearbeiten eines Belegs muss im Formular mind. eins von zwei Feldern befüllt sein: if (document.title.indexOf("Bearbeite Beleg:") >= 0 || document.title.indexOf("Erstelle Beleg ") >= 0 ) { $('#wpSave').click( function() { var oneoftwo = false; var values = {}; $('td input').each( function(i) { values[i] = this.value } ); $('th').each( function(i) { var t = $(this).text(); if (t.indexOf("Hat Bedeutung") >= 0 || t.indexOf("Belegnahes Stichwort") >= 0) { if (values[i]) { oneoftwo = true; } } } ); if (oneoftwo) { return true; } else { alert('Entweder "Hat Bedeutung" oder "Belegnahes Stichwort" (oder beide) müssen ausgefüllt sein!'); return false; } }); } // Letzten Teil des Seitentitels in Kapitälchen // TODO: ggf. auf BSW, SSW, Bedeutung beschränken? function add_wordclass( t ) { var text = t.split(' '); // remove the last word and store it in a variable var last = text.pop(); // join the text back and if it has more than 1 word add span to last word return text.join(" ") + (text.length > 0 ? ' <span class="wordclass">'+last+'</span>' : last); } $('#ca-nstab-main').html( function() { $(this).html( add_wordclass( $(this).text() ) ) }); $('.add_wordclass').each( function() { $("a", this).html( add_wordclass( $("a", this).text() ) ) }); // Viele Teile der Seite(n) für nicht Angemeldete ausblenden if ( wgUserName === null ) { //console.log('pagename = '+ wgPageName +' - pagetitle = '+ wgTitle +' - articlepath = '+ wgArticlePath); // Nur bestimmte Seiten erlauben, alle anderen auf die Hauptseite umleiten if ( $('#Schaufensterseite').length == 0 && ( wgTitle != 'Hauptseite' && wgTitle != 'Bibliographie' && wgTitle != 'Glossar' ) ) { $('#globalWrapper').remove(); // gar nichts anzeigen (Weiterleitung dauert ein bisschen) var urlbase = window.location.origin; var mainpage = wgArticlePath.replace( '$1', 'Hauptseite' ); window.location.replace( urlbase + mainpage ); } $('#smwh_head').remove(); // Kopfzeile $('#smwh_menu').remove(); // Menuzeile $('#more').remove(); //"Mehr" Ausklappmenu $('#smwh_breadcrumbs').remove(); $('#footer').remove(); $('.page_createdby').remove(); $('#toc').remove(); $('.srf-gallery').remove(); $('#catlinks').remove(); $('#mw-data-after-content').remove(); $('.internal').remove(); /* $('#Schaufensterseite').remove(); $('#mw-content-text table:first').remove(); $('#mw-content-text h2:contains("Angehängte Dateien") + p').remove(); $('#mw-content-text h2:contains("Belege mit Verkn") + table').remove(); $('#mw-content-text h2:contains("Standardisierte Stich") + ul').remove(); $('#mw-content-text h2:contains("Angehängte Dateien")').remove(); $('#mw-content-text h2:contains("Belege mit Verkn")').remove(); $('#mw-content-text h2:contains("Belege (unkategorisiert)")').remove(); $('#mw-content-text h2:contains("Standardisierte Stich")').remove(); $('#mw-content-text h2:contains("Karte")').remove(); $('#mw-content-text p:first').remove(); $('#mw-content-text p:first').remove(); $('#mw-content-text p:first').remove(); $('#mw-content-text h2:contains("Neue Stichworte anlegen") + ul').remove(); $('#mw-content-text h2:contains("Neue Stichworte anlegen") + ul').remove(); $('#mw-content-text h2:contains("Neue Stichworte anlegen")').remove(); $('#mw-content-text h2:contains("Belegnahe Stichwörter") + ul').remove(); $('#mw-content-text h2:contains("Belegnahe Stichwörter")').remove(); */ // in SSWs Links auf BSWs entfernen und nur Text anzeigen: $('table:contains("Belegnahes Stichwort") td a').each( function() { $(this).replaceWith($(this).html()); } ); } else { $('.showeditorsonly').show(); } // Kartenpopups: // Beim Klicken (auf einen Marker) im Popup die kodierten nicht erlaubten Zeichen in den Daten // (; ~ =) zurückübersetzen // Außerdem dem Originalbeleg (ist von <em></em> umschlossen) die richtige CSS Klasse geben $('#open_layer_1').click( function() { $('.olFramedCloudPopupContent', this).each( function() { var h = $(this).html(); h = h.replace('#+SC-#',';'); h = h.replace('#+TILDE-#', '~'); h = h.replace('#+EQ-#', '='); $(this).html(h); $('em', this).attr('class', 'lautschrift'); }); marker_overlap(); } ); var pos_markerids = {}; // Marker, die an der gleich Position sind etwas verschieben, dazu warten, bis diese geladen sind function marker_overlap() { var pos_dups = []; pos_markerids = {}; $("div[id^='OL_Icon_']").each ( function() { var pos = $(this).css('left') +'_'+ $(this).css('top'); if (typeof pos_markerids[pos] === 'undefined') { pos_markerids[pos] = []; } else { // jede dopplte Position speichern (aber nur einmal) var i; for (i = 0; i < pos_dups.length; i++) { if (pos_dups[i] == pos) break; } if (i >= pos_dups.length) pos_dups.push(pos); } pos_markerids[pos].push( $(this).attr('id') ); }); pos_dups.forEach(spread_markers); } var d = 1.3; var spread_deltas = [ [d,d], [-d,d], [-d,-d], [d,-d], [d,0], [0,d], [0,-d], [-d,0] ]; function spread_markers(pos) { var zoom = globalmaps[0].zoom; for (var i = 0; i < (pos_markerids[pos].length - 1); i++) { // "... - 1": don't move the last marker var dx = spread_deltas[ i % 8 ][0] * zoom; var dy = spread_deltas[ i % 8 ][1] * zoom; var x = parseInt( $('#'+ pos_markerids[pos][i]).css('left').replace('px','') ); var y = parseInt( $('#'+ pos_markerids[pos][i]).css('top').replace('px','') ); $('#'+ pos_markerids[pos][i]).css('left', (x + dx) +'px'); $('#'+ pos_markerids[pos][i]).css('top', (y + dy) +'px'); $('#'+ pos_markerids[pos][i]).attr('moved', pos +' -> '+ x +'/'+ y +' -> '+ (x + dx) +'/'+ (y + dy)); } } //TODO: // Erfordert patch von extensions/Maps20/includes/services/OpenLayers/jquery.openlayers.js // Geht das auch ohne? // Statt setTimeout zu verwenden irgendwie auch Kartenanzeige warten!? Event? tries = 12; setTimeout(check_marker_overlap, 500); function check_marker_overlap() { if ( (typeof globalmaps !== 'undefined') && globalmaps.length > 0 ) { tries = 0; marker_overlap(); globalmaps[0].events.on({zoomend: marker_overlap}); globalmaps[0].events.on({moveend: marker_overlap}); } if ( tries > 0 ) { setTimeout(check_marker_overlap, 500); } tries--; } // Glossar: Bearbeiten-Link (Stift am rechten Rand) korrekt umsetzen $('div.glossary-originalpagetitle').each( function() { var origpagetitle = $(this).attr('id').replace(' ','_'); var editurl = mw.config.get('wgArticlePath').replace('$1', origpagetitle +'?action=formedit'); $(this).find('span.editsection a').attr('href', editurl); } ); // Kartentexte: Links auf Referenzen um abbr-Tags und damit Mouse-over-Popups ergänzen // davor aber warten, bis Lingo/SemanticGlossary bei den Fußnoten aufgeräumt hat setTimeout( addAbbrToRef, 5000 ); function addAbbrToRef() { $('sup.reference a').each( function() { var noteid = $(this).attr('href'); if (noteid && noteid.indexOf('#cite_note') === 0) { var content = $(this).html(); var text = $('li'+ noteid +' span.reference-text').text(); $(this).html('<abbr title="'+ text +'">'+ content +'</abbr>'); } } ); } // Für das Bearbeiten und Anzeigen von Belegen beim Originalbeleg tricksen: // if ( wgPageName.indexOf('Beleg_') === 0 ) { // Originalbeleg: Wenn bearbeitet: auch Anzeige aktualisieren $('#originalbeleg_eingabe').keyup( display_rawandcooked ); // Eingabefeld größer anzeigen $('#originalbeleg_eingabe').find('input').css('font-size', '120%'); // Nur beim Bearbeiten! if ( wgAction == 'formedit' ) { // Originalbeleg aus JSON wiederherstellen originalbeleg_json2str(); } } function display_rawandcooked() { var codePoints = new Array(); var rawString = ""; var v = $('#originalbeleg_eingabe').find('input').val(); for (var i = 0; i < v.length; i++) { codePoints[i] = v.charCodeAt(i); rawString += v.charAt(i) +' '; } $('#originalbeleg_json').find('input').val( JSON.stringify(codePoints) ); $('#originalbeleg_anzeige').html( v ); } function originalbeleg_json2str() { if ( $('#originalbeleg_json').length == 0 ) return; var json = $('#originalbeleg_json').find('input').val(); var str = json2str( json ); $('#originalbeleg_eingabe').find('input').val(str); $('#originalbeleg_eingabe').find('input').keyup(); } function json2str( json ) { console.log('json2str: converting '+ json); if ( json.indexOf('"[') !== 0 && json.indexOf('[') !== 0 ) return; var ob_json = json.replace(/(^\"|\"$)/g,''); if ( !ob_json || ob_json.length == 0) return; var ob_arr = JSON.parse(ob_json); var ob_str=""; for ( var i=0; i < ob_arr.length; i++) { ob_str += String.fromCharCode(ob_arr[i]); } console.log('json2str: to string '+ ob_str); return ob_str; }