<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://hilfe.lernlog.digital/wiki/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGroup-personal.js</id>
	<title>MediaWiki:Group-personal.js - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://hilfe.lernlog.digital/wiki/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGroup-personal.js"/>
	<link rel="alternate" type="text/html" href="https://hilfe.lernlog.digital/wiki/index.php?title=MediaWiki:Group-personal.js&amp;action=history"/>
	<updated>2026-04-13T17:07:26Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in lernlog Hilfesystem</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://hilfe.lernlog.digital/wiki/index.php?title=MediaWiki:Group-personal.js&amp;diff=984&amp;oldid=prev</id>
		<title>Bk admin: 1 Version importiert</title>
		<link rel="alternate" type="text/html" href="https://hilfe.lernlog.digital/wiki/index.php?title=MediaWiki:Group-personal.js&amp;diff=984&amp;oldid=prev"/>
		<updated>2025-03-12T08:15:26Z</updated>

		<summary type="html">&lt;p&gt;1 Version importiert&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/*&lt;br /&gt;
  Wenn die Seite wie pageNameToManipulate heißt &lt;br /&gt;
  (Suche danach in &amp;quot;firstHeading&amp;quot; Element.)&lt;br /&gt;
  dann sollten die Elemente der Form wieder sichtbar werden.&lt;br /&gt;
  Sehe /wiki/index.php/MediaWiki:Group-mitarbeiter.js dazu.&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
See MediaWiki:Common.js for this:&lt;br /&gt;
&lt;br /&gt;
const foreignPageMessage = &amp;quot;&amp;lt;p&amp;gt;Dieses Bereich ist nicht für Sie bestimmt!&amp;lt;/p&amp;gt;&amp;quot;;&lt;br /&gt;
const pageNameToManipulate = &amp;quot;Bearbeite Onboarding Formular: &amp;quot;;&lt;br /&gt;
const catNameToManipulate = &amp;quot;Mitarbeiter Onboarding&amp;quot;;&lt;br /&gt;
var loggedUser = ...&lt;br /&gt;
/**/&lt;br /&gt;
&lt;br /&gt;
const cooldown = 500;&lt;br /&gt;
var tasks, tasksPlaned;&lt;br /&gt;
var xhr = new XMLHttpRequest();&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function procedureChanged() {&lt;br /&gt;
	const form = document.getElementById(&amp;quot;Form_0&amp;quot;);&lt;br /&gt;
	if (form) {&lt;br /&gt;
		var items = form.getElementsByClassName(&amp;quot;multipleTemplateInstance&amp;quot;);&lt;br /&gt;
		tasksPlaned = new Array();&lt;br /&gt;
		&lt;br /&gt;
		for (i=0; i&amp;lt;items.length; i++) {&lt;br /&gt;
			var item = items[i];&lt;br /&gt;
			var select = item.getElementsByTagName(&amp;quot;select&amp;quot;)[0];&lt;br /&gt;
			var name = select.options[select.selectedIndex].text;&lt;br /&gt;
			&lt;br /&gt;
			if (name != &amp;quot;&amp;quot;) {&lt;br /&gt;
				&lt;br /&gt;
				// Frage die Prozedur-Seiten ab welche Aufgaben sind dort aufgelistet.&lt;br /&gt;
				// https://aptest.betterknow.de/wiki/index.php/&lt;br /&gt;
				xhr.open(&amp;#039;GET&amp;#039;, &amp;#039;/wiki/index.php/&amp;#039; + name, false );&lt;br /&gt;
				xhr.send(null);&lt;br /&gt;
				var response = xhr.responseText;&lt;br /&gt;
				var doc = document.implementation.createHTMLDocument(&amp;#039;&amp;#039;);&lt;br /&gt;
				doc.open();&lt;br /&gt;
				doc.write(response);&lt;br /&gt;
				doc.close;&lt;br /&gt;
				var content = doc.getElementById(&amp;quot;mw-content-text&amp;quot;);&lt;br /&gt;
				var paragraphs = content.getElementsByTagName(&amp;quot;p&amp;quot;);&lt;br /&gt;
				for (j=0; j&amp;lt;paragraphs.length; j++) {&lt;br /&gt;
					var link = paragraphs[j].getElementsByTagName(&amp;quot;a&amp;quot;)[0];&lt;br /&gt;
					if (link &amp;amp;&amp;amp; !tasksPlaned.includes(link.innerHTML)) {&lt;br /&gt;
						tasksPlaned.push(link.innerHTML);&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		tasksPlaned.sort();&lt;br /&gt;
		tasks = getTasks();&lt;br /&gt;
		tAdd = getTasksAdd(tasks, tasksPlaned);&lt;br /&gt;
		tDelete = getTasksDelete(tasks, tasksPlaned);&lt;br /&gt;
		&lt;br /&gt;
		//for (i=0; i &amp;lt; tasksPlaned.length; i++) console.log(&amp;quot;=&amp;quot; + tasksPlaned[i] + &amp;quot;=&amp;quot;);&lt;br /&gt;
		//for (i=0; i &amp;lt; tasks.length; i++) console.log(&amp;quot;&amp;lt;&amp;quot; + tasks[i][&amp;quot;name&amp;quot;] + &amp;quot; - &amp;quot; + tasks[i][&amp;quot;checkbox&amp;quot;].checked + &amp;quot;&amp;gt;&amp;quot;);&lt;br /&gt;
		//for (i=0; i &amp;lt; tDelete.length; i++) console.log(&amp;quot;&amp;gt;&amp;quot; + tDelete[i][&amp;quot;name&amp;quot;] + &amp;quot; - &amp;quot; + tDelete[i][&amp;quot;checkbox&amp;quot;].checked + &amp;quot;&amp;lt;&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
		//deleteTasks(tDelete);&lt;br /&gt;
		//addTasks(tAdd);&lt;br /&gt;
		setTimeout(deleteTasks, cooldown, tDelete);&lt;br /&gt;
		setTimeout(addTasks, cooldown, tAdd);&lt;br /&gt;
		setTimeout(setEmptyTasks, cooldown, tAdd);&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function addTasks(tAdd) {&lt;br /&gt;
	var adder = document.getElementById(&amp;quot;Form_1_Adder_0&amp;quot;);&lt;br /&gt;
	console.log(&amp;quot;\ntasks to add&amp;quot;);&lt;br /&gt;
	for (i=0; i&amp;lt;tAdd.length; i++) {&lt;br /&gt;
		console.log(&amp;quot;&amp;gt;&amp;quot; + tAdd[i] + &amp;quot;&amp;lt;&amp;quot;);&lt;br /&gt;
		adder.click();&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function deleteTasks(tDelete) {&lt;br /&gt;
	console.log(&amp;quot;\ntasks to delete&amp;quot;);&lt;br /&gt;
	for (i=tDelete.length-1; i&amp;gt;-1; i--) {&lt;br /&gt;
		console.log(&amp;quot;&amp;lt;&amp;quot; + tDelete[i][&amp;quot;name&amp;quot;] + &amp;quot; - &amp;quot; + tDelete[i][&amp;quot;checkbox&amp;quot;].checked + &amp;quot;&amp;gt;&amp;quot;);&lt;br /&gt;
		tDelete[i][&amp;quot;removeButton&amp;quot;].click();&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function procedureAdded() {&lt;br /&gt;
	setTimeout(giveNames, cooldown);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function procedureRemoved() {&lt;br /&gt;
	console.log(this.id + &amp;quot; was clicked&amp;quot;);&lt;br /&gt;
	setTimeout(procedureChanged, cooldown);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function setEmptyTasks(tAdd) {&lt;br /&gt;
	for (i=0; i&amp;lt;tAdd.length; i++) {&lt;br /&gt;
		console.log(&amp;quot;&amp;gt;&amp;quot; + tAdd[i] + &amp;quot;&amp;lt;&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	const form = document.getElementById(&amp;quot;Form_1&amp;quot;);&lt;br /&gt;
	if (form) {&lt;br /&gt;
		const items = form.getElementsByClassName(&amp;quot;multipleTemplateInstance&amp;quot;);&lt;br /&gt;
		for (i=0; i&amp;lt;items.length; i++) {&lt;br /&gt;
			var item = items[i];&lt;br /&gt;
			var select = item.getElementsByTagName(&amp;quot;select&amp;quot;)[0];&lt;br /&gt;
			var name = select.options[select.selectedIndex].text;&lt;br /&gt;
	    	if (name == &amp;quot;&amp;quot;) {&lt;br /&gt;
	    		select.value = tAdd.shift();&lt;br /&gt;
	    	}&lt;br /&gt;
	    	&lt;br /&gt;
	    	&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function getTasks() {&lt;br /&gt;
	const form = document.getElementById(&amp;quot;Form_1&amp;quot;);&lt;br /&gt;
	var tasks = new Array();&lt;br /&gt;
	if (form) {&lt;br /&gt;
		const items = form.getElementsByClassName(&amp;quot;multipleTemplateInstance&amp;quot;);&lt;br /&gt;
		for (i=0; i&amp;lt;items.length; i++) {&lt;br /&gt;
			var item = items[i];&lt;br /&gt;
			var select = item.getElementsByTagName(&amp;quot;select&amp;quot;)[0];&lt;br /&gt;
	    	var name = select.options[select.selectedIndex].text;&lt;br /&gt;
			var checkbox = item.getElementsByClassName(&amp;quot;oo-ui-inputWidget-input&amp;quot;)[0];&lt;br /&gt;
			var textarea = item.getElementsByTagName(&amp;quot;textarea&amp;quot;)[0];&lt;br /&gt;
			var removeButton = item.getElementsByClassName(&amp;quot;removeButton&amp;quot;)[0];&lt;br /&gt;
			var task = new Array();&lt;br /&gt;
			task[&amp;quot;name&amp;quot;] = name;&lt;br /&gt;
			task[&amp;quot;select&amp;quot;] = select;&lt;br /&gt;
			task[&amp;quot;checkbox&amp;quot;] = checkbox;&lt;br /&gt;
			task[&amp;quot;textarea&amp;quot;] = textarea;&lt;br /&gt;
			task[&amp;quot;removeButton&amp;quot;] = removeButton;&lt;br /&gt;
			tasks.push(task);&lt;br /&gt;
		}&lt;br /&gt;
		//Onboarding 2 Aufgaben Zuweisung Vorlage[num][Onboarding_Aufgabe]&lt;br /&gt;
		//Onboarding 2 Aufgaben Zuweisung Vorlage[num][Onboarding_Aufgabe_Erledigt][value]&lt;br /&gt;
		//Onboarding 2 Aufgaben Zuweisung Vorlage[num][Onboarding_Aufgabe_Beschreibung]&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	return tasks;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function getTasksAdd(tasks, tasksPlaned) {&lt;br /&gt;
	var lTasksPlaned = [].concat(tasksPlaned);&lt;br /&gt;
	for (i=0; i &amp;lt; tasks.length; i++) {&lt;br /&gt;
		if (lTasksPlaned.includes(tasks[i][&amp;quot;name&amp;quot;])) {&lt;br /&gt;
			lTasksPlaned.splice(lTasksPlaned.indexOf(tasks[i][&amp;quot;name&amp;quot;]), 1);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	return lTasksPlaned;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function getTasksDelete(tasksUndone, tasksPlaned) {&lt;br /&gt;
	var lTasksPlaned = [].concat(tasksPlaned);&lt;br /&gt;
	var lTasks = [].concat(tasks);&lt;br /&gt;
	var lTasksNames = new Array();&lt;br /&gt;
	var lTasksDelete = new Array();&lt;br /&gt;
	for (i=0; i &amp;lt; lTasks.length; i++) {&lt;br /&gt;
		lTasksNames.push(lTasks[i][&amp;quot;name&amp;quot;]);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	for (i=0; i &amp;lt; lTasksNames.length; i++) {&lt;br /&gt;
		if (!lTasksPlaned.includes(lTasksNames[i]) &amp;amp;&amp;amp; !lTasks[i][&amp;quot;checkbox&amp;quot;].checked) {&lt;br /&gt;
			lTasksDelete.push( lTasks[i] );&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	return lTasksDelete;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function giveNames() {&lt;br /&gt;
	const embededForms = document.getElementsByClassName(&amp;quot;multipleTemplateWrapper&amp;quot;);&lt;br /&gt;
	if (embededForms.length &amp;gt; 0) {&lt;br /&gt;
		for (i = 0; i &amp;lt; embededForms.length; i++) {&lt;br /&gt;
			embededForms[i].id = &amp;quot;Form_&amp;quot; + i&lt;br /&gt;
			&lt;br /&gt;
			var embededLists = embededForms[i].getElementsByClassName(&amp;quot;multipleTemplateList&amp;quot;);&lt;br /&gt;
			if (embededLists.length &amp;gt; 0) {&lt;br /&gt;
				for (j = 0; j &amp;lt; embededLists.length; j++) {&lt;br /&gt;
					if (!embededLists[j].id) {&lt;br /&gt;
						embededLists[j].id = embededForms[i].id + &amp;quot;_List_&amp;quot; + j;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			var embededInstances = embededForms[i].getElementsByClassName(&amp;quot;multipleTemplateInstance&amp;quot;);&lt;br /&gt;
			if (embededInstances.length &amp;gt; 0) {&lt;br /&gt;
				for (j = 0; j &amp;lt; embededInstances.length; j++) {&lt;br /&gt;
					// wenn noch keinen id hat (neu)&lt;br /&gt;
					if (!embededInstances[j].id) {&lt;br /&gt;
						// event handlers für dropdowns hinzufügen&lt;br /&gt;
						var selectElements = embededInstances[j].getElementsByTagName(&amp;quot;select&amp;quot;);&lt;br /&gt;
						for (k = 0; k &amp;lt; selectElements.length; k++) {&lt;br /&gt;
							if (embededForms[i].id == &amp;quot;Form_0&amp;quot;) {&lt;br /&gt;
								selectElements[k].addEventListener(&amp;#039;change&amp;#039;, procedureChanged);&lt;br /&gt;
								console.log(selectElements[k].id + &amp;quot; listener added&amp;quot;);&lt;br /&gt;
							}&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
					embededInstances[j].id = embededForms[i].id + &amp;quot;_Instance_&amp;quot; + j;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			// eventHandler für &amp;quot;Weitere Hinzufügen&amp;quot; Button (multipleTemplateAdder)&lt;br /&gt;
			var adderElements = embededForms[i].getElementsByClassName(&amp;quot;multipleTemplateAdder&amp;quot;);&lt;br /&gt;
			for (j = 0; j &amp;lt; adderElements.length; j++) {&lt;br /&gt;
				if (!adderElements[j].id) {&lt;br /&gt;
					adderElements[j].addEventListener(&amp;#039;click&amp;#039;, procedureAdded);&lt;br /&gt;
				}&lt;br /&gt;
				adderElements[j].id = embededForms[i].id + &amp;quot;_Adder_&amp;quot; + j;&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			// (removeButton)&lt;br /&gt;
			var removeElements = embededForms[i].getElementsByClassName(&amp;quot;removeButton&amp;quot;);&lt;br /&gt;
			for (j = 0; j &amp;lt; removeElements.length; j++) {&lt;br /&gt;
				if (!removeElements[j].id) {&lt;br /&gt;
					// if (embededForms[i].id == &amp;quot;Form_0&amp;quot;) {&lt;br /&gt;
					removeElements[j].addEventListener(&amp;#039;click&amp;#039;, procedureRemoved);&lt;br /&gt;
				}&lt;br /&gt;
				removeElements[j].id = embededForms[i].id + &amp;quot;_Remover_&amp;quot; + j;&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ================================================================================== */&lt;br /&gt;
&lt;br /&gt;
function modifyItems(className) {&lt;br /&gt;
  const elements = document.getElementsByClassName(className);&lt;br /&gt;
  if (elements.length &amp;gt; 0) {&lt;br /&gt;
    for (i = 0; i &amp;lt; elements.length; i++) {&lt;br /&gt;
      elements[i].style.display = &amp;#039;&amp;#039;;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function disableCheckboxes() {&lt;br /&gt;
	const form = document.getElementById(&amp;quot;Form_1&amp;quot;);&lt;br /&gt;
	if (form) {&lt;br /&gt;
		//var checkboxes = form.getElementsByClassName(&amp;quot;oo-ui-inputWidget-input&amp;quot;);&lt;br /&gt;
		var checkboxes = form.querySelectorAll(&amp;#039;input[type=checkbox]&amp;#039;);&lt;br /&gt;
		for (i=0; i&amp;lt;checkboxes.length; i++) {&lt;br /&gt;
			checkboxes[i].addEventListener(&amp;#039;change&amp;#039;, restoreCheckboxState);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function restoreCheckboxState() {&lt;br /&gt;
	this.checked = !this.checked;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
function disableCheckboxes_v1() {&lt;br /&gt;
	const form = document.getElementById(&amp;quot;Form_1&amp;quot;);&lt;br /&gt;
	if (form) {&lt;br /&gt;
		//var checkboxes = form.getElementsByClassName(&amp;quot;oo-ui-inputWidget-input&amp;quot;);&lt;br /&gt;
		var checkboxes = form.querySelectorAll(&amp;#039;input[type=checkbox]&amp;#039;);&lt;br /&gt;
		for (i=0; i&amp;lt;checkboxes.length; i++) {&lt;br /&gt;
			checkboxes[i].disabled = true;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
/* ================================================================================== */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$(function () {&lt;br /&gt;
// Wenn die Seite wie pageNameToManipulate heißt &lt;br /&gt;
// (Suche danach in &amp;quot;firstHeading&amp;quot; Element.)&lt;br /&gt;
// dann sollten die Elemente versteckt werden.&lt;br /&gt;
&lt;br /&gt;
giveNames();&lt;br /&gt;
&lt;br /&gt;
if (document.getElementById(&amp;quot;firstHeading&amp;quot;).innerHTML.search(pageNameToManipulate) &amp;gt; -1 ) {&lt;br /&gt;
  modifyItems(&amp;quot;addAboveButton&amp;quot;);&lt;br /&gt;
  modifyItems(&amp;quot;removeButton&amp;quot;);&lt;br /&gt;
  modifyItems(&amp;quot;multipleTemplateAdder&amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  disableCheckboxes();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
}());&lt;/div&gt;</summary>
		<author><name>Bk admin</name></author>
	</entry>
</feed>