Zuletzt besucht:
Erstellt von WikiSysop am 9. April 2014, um 14:52 Uhr

Aus Tiroler Dialektarchiv

(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
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;
}