<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.dastreibendewerk.de/index.php?action=history&amp;feed=atom&amp;title=Common.js</id>
	<title>Common.js - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.dastreibendewerk.de/index.php?action=history&amp;feed=atom&amp;title=Common.js"/>
	<link rel="alternate" type="text/html" href="https://wiki.dastreibendewerk.de/index.php?title=Common.js&amp;action=history"/>
	<updated>2026-11-14T20:23:06Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Klimaschutz4All App Wiki</subtitle>
	<generator>MediaWiki 1.34.0</generator>
	<entry>
		<id>https://wiki.dastreibendewerk.de/index.php?title=Common.js&amp;diff=2&amp;oldid=prev</id>
		<title>Wikiadmin: Die Seite wurde neu angelegt: „const apiBaseUrl = &quot;https://k4all.dastreibendewerk.de/app/api/sync&quot; const apiKey = &quot;secret&quot; //TODO replace with something from the wiki config   // use on star…“</title>
		<link rel="alternate" type="text/html" href="https://wiki.dastreibendewerk.de/index.php?title=Common.js&amp;diff=2&amp;oldid=prev"/>
		<updated>2020-02-10T02:59:00Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „const apiBaseUrl = &amp;quot;https://k4all.dastreibendewerk.de/app/api/sync&amp;quot; const apiKey = &amp;quot;secret&amp;quot; //TODO replace with something from the wiki config   // use on star…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;const apiBaseUrl = &amp;quot;https://k4all.dastreibendewerk.de/app/api/sync&amp;quot;&lt;br /&gt;
const apiKey = &amp;quot;secret&amp;quot; //TODO replace with something from the wiki config &lt;br /&gt;
&lt;br /&gt;
// use on start page to display warnings&lt;br /&gt;
$(function() {&lt;br /&gt;
    var nodeGetWarnings = document.getElementById('node-get-warnings');&lt;br /&gt;
    if(!nodeGetWarnings) return;&lt;br /&gt;
&lt;br /&gt;
    const warnUrl = apiBaseUrl + &amp;quot;/pagesWithWarnings/&amp;quot; + apiKey; &lt;br /&gt;
    console.log(&amp;quot;load all page warnings here&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    $.getJSON(warnUrl)&lt;br /&gt;
        .done(function (res) {&lt;br /&gt;
            var warnings = JSON.parse(res.warnings);&lt;br /&gt;
            $('#node-get-warnings a').each(function(idx, a) {&lt;br /&gt;
                var pageId = getUrlParam($(a).attr('href'), &amp;quot;dpl_id&amp;quot;);&lt;br /&gt;
                console.log(pageId);&lt;br /&gt;
                console.log(warnings);&lt;br /&gt;
                var pageWarnings = warnings.filter(function (data) {&lt;br /&gt;
                    return data.pageId == pageId;&lt;br /&gt;
                });&lt;br /&gt;
                console.log(pageWarnings);&lt;br /&gt;
                if(pageWarnings &amp;amp;&amp;amp; pageWarnings.length &amp;gt; 0) {&lt;br /&gt;
&lt;br /&gt;
                    $(a).append(&amp;quot;&amp;lt;span style=\&amp;quot;background-color: yellow;\&amp;quot;&amp;gt;❕&amp;lt;/span&amp;gt;&amp;quot;)&lt;br /&gt;
                }&lt;br /&gt;
            });&lt;br /&gt;
        })&lt;br /&gt;
        .fail(function (err) { console.error(err) })&lt;br /&gt;
&lt;br /&gt;
}());&lt;br /&gt;
&lt;br /&gt;
// stolen from https://stackoverflow.com/a/15780907&lt;br /&gt;
function getUrlParam(url, name) {&lt;br /&gt;
    return (RegExp(name + '=' + '(.+?)(&amp;amp;|$)').exec(url)||[,null])[1];&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// get status of page&lt;br /&gt;
$(function() {    &lt;br /&gt;
    var nodeGetPageStatus = document.getElementById('node-get-page-status');&lt;br /&gt;
    if(!nodeGetPageStatus) return;&lt;br /&gt;
&lt;br /&gt;
    const pageId = mw.config.values.wgArticleId;&lt;br /&gt;
    console.log(&amp;quot;Page integration for pageId &amp;quot; + pageId + &amp;quot; loaded!&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    resyncPage(pageId, nodeGetPageStatus)&lt;br /&gt;
}());&lt;br /&gt;
&lt;br /&gt;
function resyncPage(pageId, parentDiv) {&lt;br /&gt;
&lt;br /&gt;
    parentDiv.innerHTML = '';&lt;br /&gt;
&lt;br /&gt;
    var warningContainer = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
    parentDiv.append(warningContainer);&lt;br /&gt;
    refreshWarnings(pageId, warningContainer)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function refreshWarnings(pageId, parentDiv) {&lt;br /&gt;
    const articleWarnUrl = apiBaseUrl + &amp;quot;/warnings/&amp;quot; + apiKey + &amp;quot;/&amp;quot; + pageId;&lt;br /&gt;
    $.getJSON( articleWarnUrl)&lt;br /&gt;
        .done(function(res) {&lt;br /&gt;
&lt;br /&gt;
            if(res.lastSyncedRevId == mw.config.values.wgRevisionId ){&lt;br /&gt;
                $(parentDiv).append(&amp;quot;&amp;lt;div class=\&amp;quot;synced-bubble\&amp;quot;&amp;gt;App ist auf dem aktuellen Stand&amp;lt;/div&amp;gt;&amp;quot;)&lt;br /&gt;
            } else {&lt;br /&gt;
                makeRefreshButton(pageId, parentDiv);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            const warnings = res.warnings.split('|');&lt;br /&gt;
            if (warnings[0] === &amp;quot;&amp;quot;) return; &lt;br /&gt;
            warnings.forEach(function(element) {&lt;br /&gt;
                console.log(element); &lt;br /&gt;
                parentDiv.append(toWarningBubble(element));&lt;br /&gt;
            });&lt;br /&gt;
&lt;br /&gt;
            &lt;br /&gt;
        })&lt;br /&gt;
        .fail(function(err) {&lt;br /&gt;
            this.innerHTML = &amp;quot;Ein Fehler ist aufgetreten: &amp;quot; + err.message;&lt;br /&gt;
            makeRefreshButton(pageId, parentDiv);&lt;br /&gt;
            console.log(err)&lt;br /&gt;
        });&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function makeRefreshButton(pageId, parentDiv) {&lt;br /&gt;
    var refreshButton = document.createElement(&amp;quot;button&amp;quot;);&lt;br /&gt;
    refreshButton.setAttribute('class', 'btn');&lt;br /&gt;
    refreshButton.innerHTML = &amp;quot;&amp;lt;strong&amp;gt;Wiki Artikel zur App übertragen&amp;lt;/strong&amp;quot;&lt;br /&gt;
    refreshButton.onclick = function(e) {&lt;br /&gt;
        this.disabled = true;&lt;br /&gt;
        this.innerHTML = &amp;quot;Warte auf Server...&amp;quot;&lt;br /&gt;
        const articlePushUrl = apiBaseUrl + &amp;quot;/&amp;quot; + apiKey + &amp;quot;/&amp;quot; + pageId;&lt;br /&gt;
        $.post(articlePushUrl)&lt;br /&gt;
        .done(function(res) {&lt;br /&gt;
            setTimeout(function() {&lt;br /&gt;
                resyncPage(pageId, parentDiv)&lt;br /&gt;
             }, 250);&lt;br /&gt;
        })&lt;br /&gt;
        .fail(function(err) {&lt;br /&gt;
            this.innerHTML = &amp;quot;Ein Fehler ist aufgetreten: &amp;quot; + err.message &lt;br /&gt;
            console.log(err)&lt;br /&gt;
        });&lt;br /&gt;
    };&lt;br /&gt;
    parentDiv.append(refreshButton);&lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
function toWarningBubble(warning) {&lt;br /&gt;
    switch(warning) {&lt;br /&gt;
        case &amp;quot;NoTopic&amp;quot;:&lt;br /&gt;
        return warningBubbleTemplate(&amp;quot;Keine Themenwoche gefunden!&amp;quot;);&lt;br /&gt;
        case &amp;quot;NoChallenges&amp;quot;:&lt;br /&gt;
        return warningBubbleTemplate(&amp;quot;Keine Herausforderungen gefunden!&amp;quot;);&lt;br /&gt;
        case &amp;quot;NoSpareChallenges&amp;quot;:&lt;br /&gt;
        return warningBubbleTemplate(&amp;quot;Keine Ersatzherausforderungen gefunden!&amp;quot;);&lt;br /&gt;
        case &amp;quot;NotEnoughDefaultChallenges&amp;quot;:&lt;br /&gt;
        return warningBubbleTemplate(&amp;quot;Weniger als 4 normale Herausforderungen gefunden!&amp;quot;);&lt;br /&gt;
        case &amp;quot;TooManyDefaultChallenges&amp;quot;:&lt;br /&gt;
        return warningBubbleTemplate(&amp;quot;Mehr als 4 normale Herausforderungen gefunden!&amp;quot;);&lt;br /&gt;
        case &amp;quot;EmptyText&amp;quot;:&lt;br /&gt;
        return warningBubbleTemplate(&amp;quot;Keine Wochenbeschreibung gefunden!&amp;quot;);&lt;br /&gt;
        case &amp;quot;NoHeaderImage&amp;quot;:&lt;br /&gt;
        return warningBubbleTemplate(&amp;quot;Keine Bild gefunden!&amp;quot;);&lt;br /&gt;
        case &amp;quot;TemplateParsingError&amp;quot;:&lt;br /&gt;
        return warningBubbleTemplate(&amp;quot;Seite kann nicht parsiert werden!&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function warningBubbleTemplate(text) {&lt;br /&gt;
    var bubble = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
    bubble.setAttribute(&amp;quot;class&amp;quot;, &amp;quot;warning-bubble&amp;quot;);&lt;br /&gt;
    bubble.innerHTML = text;&lt;br /&gt;
    return bubble;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
		
	</entry>
</feed>