Benutzer:Flominator/js/Grabsteine: Unterschied zwischen den Versionen

aus GenWiki, dem genealogischen Lexikon zum Mitmachen.
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
(Update)
 
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
[https://addons.mozilla.org/de/firefox/addon/greasemonkey/ Greasemonkey]-Skript zum optimierten Dateneingabe im [[Grabstein-Projekt]]:
[https://addons.mozilla.org/de/firefox/addon/greasemonkey/ Greasemonkey]-Skript zum optimierten Dateneingabe im [[Grabstein-Projekt]]:
== Features ==
* Pfeil-Button beim Hinzufügen zusätzlicher Personen, damit der Familienname der ersten Person übernommen werden kann
* Umbiegen der Links auf die vorherige bzw. nächste Grabstelle, die tatsächlich Bilder enthält (standardmäßig wird auf die nächst höhere Nummer verlinkt)
* Shortcut K löscht oberste Person ohne Rückfrage (''sehr vorsichtig verwenden'')
* Shortcut - löscht letzte Person ohne Rückfrage (''sehr vorsichtig verwenden'')
* Shortcuts 2-9 zum direkten Bearbeiten von Personen
* Shortcut U zum Austauschen des ersten (?) Bildes
* Fokus auf Feld zur Auswahl der Datei beim Austauschen von Bildern (nachdem die Funktion mit Shortcut U ausgelöst wurde)
* Fokus auf Feld zur Auswahl der Ziel-Grabstelle beim Verschieben von Bildern
* Footer ausblenden
* Scrollbox von 600px auf 700px vergrößern
* Direkter Link auf 79xxx-Friedhöfe auf der Hauptseite
== Quellcode ==
<source lang="javascript">
<source lang="javascript">
// ==UserScript==
// ==UserScript==
// @name          Gravestone input
// @name          Gravestone input
// @namespace    http://grabsteine.genealogy.net
// @namespace    http://grabsteine.genealogy.net
// @description  A basic example of Greasemonkey that causes an alert at each page load.
// @description  adding some shortcuts and changing some links
// @match http://grabsteine.genealogy.net/*
// @match https://grabsteine.genealogy.net/*
// @include  http://grabsteine.genealogy.net/
// @include  http://grabsteine.genealogy.net/
// ==/UserScript==
// ==/UserScript==
 
 
for (var i=0; divNode = document.getElementsByTagName("div")[i]; i++)
{
  if(divNode.className=="footer")
  {
    divNode.style="display: none;";
  }
  if(divNode.style.height=="600px")
  {
    divNode.style.height="700px";
  }
}
//add "copy surname" links
//add "copy surname" links
if(document.getElementById('sur1')!=null)
if(document.getElementById('sur1')!=null)
Zeile 20: Zeile 47:
   }while(document.getElementById('sur'+i)!=null)
   }while(document.getElementById('sur'+i)!=null)
}
}
   
   
killLinkNodes = new Array();
killLinkNodes = new Array();
Zeile 26: Zeile 56:
for (var i=0; aNode = document.getElementsByTagName("a")[i]; i++)
for (var i=0; aNode = document.getElementsByTagName("a")[i]; i++)
{
{
 
  if(aNode.href.search(/plzlist/) != -1)
    {
      //direct link to 79... cemeteries on main page
      var ins_li = document.createElement("a");
ins_li.innerHTML='&nbsp;=&gt;<a href="cemlist.php?p=79&lang=de">79</a>';
aNode.parentNode.insertBefore(ins_li, aNode.nextSibling);
     
    }
 
   //change arrow link to first grave that actually contains data
   //change arrow link to first grave that actually contains data
   if(aNode.accessKey=="v")
   if(aNode.accessKey=="v")
Zeile 32: Zeile 72:
       continue;
       continue;
     }
     }
 
   //change arrow link to first grave that actually contains data
   //change arrow link to first grave that actually contains data
     if(aNode.accessKey=="n")
     if(aNode.accessKey=="n")
Zeile 39: Zeile 79:
       continue;
       continue;
     }
     }
 
     //do not ask again when deleting datasets
     //do not ask again when deleting datasets
     if(aNode.href.search(/action=drop/) != -1)
     if(aNode.href.search(/action=drop/) != -1)
Zeile 51: Zeile 91:
       continue;
       continue;
   }
   }
 
     //collect edit links for shortcuts
     //collect edit links for shortcuts
     if(aNode.href.search(/action=edit/) != -1)
     if(aNode.href.search(/action=edit/) != -1)
Zeile 66: Zeile 106:
       continue;
       continue;
   }   
   }   
 
     //add shortcut for updating pictures
     //add shortcut for updating pictures
   if(aNode.href.search(/update_form/) != -1)
   if(aNode.href.search(/update_form/) != -1)
Zeile 73: Zeile 113:
       continue;
       continue;
   }
   }
 
}
}
 
if(killLinkNodes.length > 1)
if(killLinkNodes.length > 1)
{
{
Zeile 85: Zeile 125:
   editLinkNodes[i].accessKey="" + (i+1);
   editLinkNodes[i].accessKey="" + (i+1);
}
}
 
if(document.getElementsByName('ziel_tomb')[0]!=null)
if(document.getElementsByName('ziel_tomb')[0]!=null)
{
{
   document.getElementsByName('ziel_tomb')[0].focus();
   document.getElementsByName('ziel_tomb')[0].focus();
}
}
 
if(document.getElementsByName('userfile')[0]!=null)
if(document.getElementsByName('userfile')[0]!=null)
{
{
   document.getElementsByName('userfile')[0].focus();
   document.getElementsByName('userfile')[0].focus();
}
}
 
//Insert any tag before any element with an id
//Insert any tag before any element with an id
function insert_link_before(tagname, previous_element, linkcode)
function insert_link_before(tagname, previous_element, linkcode)
Zeile 106: Zeile 146:
  vl_logout.parentNode.insertBefore(ins_li, vl_logout);
  vl_logout.parentNode.insertBefore(ins_li, vl_logout);
  }
  }
}
}</source>
</source>

Aktuelle Version vom 25. August 2022, 08:54 Uhr

Greasemonkey-Skript zum optimierten Dateneingabe im Grabstein-Projekt:

Features

  • Pfeil-Button beim Hinzufügen zusätzlicher Personen, damit der Familienname der ersten Person übernommen werden kann
  • Umbiegen der Links auf die vorherige bzw. nächste Grabstelle, die tatsächlich Bilder enthält (standardmäßig wird auf die nächst höhere Nummer verlinkt)
  • Shortcut K löscht oberste Person ohne Rückfrage (sehr vorsichtig verwenden)
  • Shortcut - löscht letzte Person ohne Rückfrage (sehr vorsichtig verwenden)
  • Shortcuts 2-9 zum direkten Bearbeiten von Personen
  • Shortcut U zum Austauschen des ersten (?) Bildes
  • Fokus auf Feld zur Auswahl der Datei beim Austauschen von Bildern (nachdem die Funktion mit Shortcut U ausgelöst wurde)
  • Fokus auf Feld zur Auswahl der Ziel-Grabstelle beim Verschieben von Bildern
  • Footer ausblenden
  • Scrollbox von 600px auf 700px vergrößern
  • Direkter Link auf 79xxx-Friedhöfe auf der Hauptseite

Quellcode

// ==UserScript==
// @name          Gravestone input
// @namespace     http://grabsteine.genealogy.net
// @description   adding some shortcuts and changing some links
// @match https://grabsteine.genealogy.net/*
// @include   http://grabsteine.genealogy.net/
// ==/UserScript==
 
 
for (var i=0; divNode = document.getElementsByTagName("div")[i]; i++)
{
  if(divNode.className=="footer")
  {
    divNode.style="display: none;";
  }
 
  if(divNode.style.height=="600px")
  {
    divNode.style.height="700px";
  }
}
 
//add "copy surname" links
if(document.getElementById('sur1')!=null)
{
  i=0;
  do
  {
    insert_link_before('span', 'sur'+i, "<a href=\"#\" onClick=\"document.getElementById('sur"+i+"').value=document.getElementsByTagName('table')[5].getElementsByTagName('b')[0].innerHTML + ''\">↳</a>");
    i++;
  }while(document.getElementById('sur'+i)!=null)
}
 
 
 
 
killLinkNodes = new Array();
editLinkNodes = new Array();
 
for (var i=0; aNode = document.getElementsByTagName("a")[i]; i++)
{
  
  	if(aNode.href.search(/plzlist/) != -1)
    {
      //direct link to 79... cemeteries on main page
      var ins_li = document.createElement("a");
 			ins_li.innerHTML='&nbsp;=&gt;<a href="cemlist.php?p=79&lang=de">79</a>';
 		 	aNode.parentNode.insertBefore(ins_li, aNode.nextSibling);
      
    }
  
  	//change arrow link to first grave that actually contains data
  	if(aNode.accessKey=="v")
    {
      aNode.href = document.getElementsByName("tomb")[0].value;
      continue;
    }
 
  	//change arrow link to first grave that actually contains data
    if(aNode.accessKey=="n")
    {
      aNode.href = document.getElementsByName("tomb")[1].value;
      continue;
    }
 
    //do not ask again when deleting datasets
    if(aNode.href.search(/action=drop/) != -1)
  	{
      killLinkNodes.push(aNode);
      aNode.href = aNode.href.replace(/action=drop/, "drop=ok");      
      if(killLinkNodes.length == 1)
      {
        aNode.accessKey="k";
      }
      continue;
  	}
 
    //collect edit links for shortcuts
    if(aNode.href.search(/action=edit/) != -1)
  	{
      editLinkNodes.push(aNode);
      if(editLinkNodes.length > 1 && editLinkNodes.length <= 10)
      {
      	aNode.innerHTML = aNode.innerHTML + editLinkNodes.length;
      }
      if(editLinkNodes.length==1)
      {
        aNode.accessKey="e";
      }
      continue;
  	}  
 
    //add shortcut for updating pictures
   	if(aNode.href.search(/update_form/) != -1)
  	{
      aNode.accessKey="u";
      continue;
  	}
 
}
 
if(killLinkNodes.length > 1)
{
	killLinkNodes[killLinkNodes.length-1].accessKey="-";  
}
 
for (var i=1; i<=10 && i< editLinkNodes.length; i++)
{
  editLinkNodes[i].accessKey="" + (i+1);
}
 
if(document.getElementsByName('ziel_tomb')[0]!=null)
{
  document.getElementsByName('ziel_tomb')[0].focus();
}
 
if(document.getElementsByName('userfile')[0]!=null)
{
  document.getElementsByName('userfile')[0].focus();
}
 
//Insert any tag before any element with an id
function insert_link_before(tagname, previous_element, linkcode)
{
	var vl_logout = document.getElementById(previous_element);
 	if (vl_logout) 
 	{
 		var ins_li = document.createElement(tagname);
 		ins_li.innerHTML=/* */linkcode;/* */
 		 vl_logout.parentNode.insertBefore(ins_li, vl_logout);
 	}
}