<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://paradise14.org/index.php?action=history&amp;feed=atom&amp;title=User%3AKaylie%2Fdevel.js</id>
	<title>User:Kaylie/devel.js - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://paradise14.org/index.php?action=history&amp;feed=atom&amp;title=User%3AKaylie%2Fdevel.js"/>
	<link rel="alternate" type="text/html" href="https://paradise14.org/wiki/index.php?title=User:Kaylie/devel.js&amp;action=history"/>
	<updated>2026-11-02T11:24:18Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.6</generator>
	<entry>
		<id>https://paradise14.org/wiki/index.php?title=User:Kaylie/devel.js&amp;diff=8376&amp;oldid=prev</id>
		<title>imported&gt;PJB: PJB moved page User:Moony/devel.js to User:Kaylie/devel.js: Account name change</title>
		<link rel="alternate" type="text/html" href="https://paradise14.org/wiki/index.php?title=User:Kaylie/devel.js&amp;diff=8376&amp;oldid=prev"/>
		<updated>2025-09-02T15:41:30Z</updated>

		<summary type="html">&lt;p&gt;PJB moved page &lt;a href=&quot;/wiki/User:Moony/devel.js&quot; title=&quot;User:Moony/devel.js&quot;&gt;User:Moony/devel.js&lt;/a&gt; to &lt;a href=&quot;/wiki/User:Kaylie/devel.js&quot; title=&quot;User:Kaylie/devel.js&quot;&gt;User:Kaylie/devel.js&lt;/a&gt;: Account name change&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:41, 2 September 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>imported&gt;PJB</name></author>
	</entry>
	<entry>
		<id>https://paradise14.org/wiki/index.php?title=User:Kaylie/devel.js&amp;diff=8375&amp;oldid=prev</id>
		<title>imported&gt;Moony: Created page with &quot;// The user script that runs on the client side - this was thrown together in a couple hours // Apache 2.0/CC-BY-SA // (c) 2021 User:Ed6767 - full attributions https://github.com/wikimedia-gadgets/EasyWikiDev/commits/main/.wikidev/wikiscript.js  let hasRecievedFirstMessage = false;  const currentSkin = mw.config.get(&quot;skin&quot;);  const portletLinkSelector = { 	&#039;vector&#039;: &#039;a &gt; span&#039;, 	&#039;monobook&#039;: &#039;a&#039;, 	&#039;timeless&#039;: &#039;a&#039; }  const currentPortletLinkSelector = portletLinkSelector[c...&quot;</title>
		<link rel="alternate" type="text/html" href="https://paradise14.org/wiki/index.php?title=User:Kaylie/devel.js&amp;diff=8375&amp;oldid=prev"/>
		<updated>2021-12-21T23:13:02Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;// The user script that runs on the client side - this was thrown together in a couple hours // Apache 2.0/CC-BY-SA // (c) 2021 User:Ed6767 - full attributions https://github.com/wikimedia-gadgets/EasyWikiDev/commits/main/.wikidev/wikiscript.js  let hasRecievedFirstMessage = false;  const currentSkin = mw.config.get(&amp;quot;skin&amp;quot;);  const portletLinkSelector = { 	&amp;#039;vector&amp;#039;: &amp;#039;a &amp;gt; span&amp;#039;, 	&amp;#039;monobook&amp;#039;: &amp;#039;a&amp;#039;, 	&amp;#039;timeless&amp;#039;: &amp;#039;a&amp;#039; }  const currentPortletLinkSelector = portletLinkSelector[c...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;// The user script that runs on the client side - this was thrown together in a couple hours&lt;br /&gt;
// Apache 2.0/CC-BY-SA&lt;br /&gt;
// (c) 2021 User:Ed6767 - full attributions https://github.com/wikimedia-gadgets/EasyWikiDev/commits/main/.wikidev/wikiscript.js&lt;br /&gt;
&lt;br /&gt;
let hasRecievedFirstMessage = false;&lt;br /&gt;
&lt;br /&gt;
const currentSkin = mw.config.get(&amp;quot;skin&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
const portletLinkSelector = {&lt;br /&gt;
	&amp;#039;vector&amp;#039;: &amp;#039;a &amp;gt; span&amp;#039;,&lt;br /&gt;
	&amp;#039;monobook&amp;#039;: &amp;#039;a&amp;#039;,&lt;br /&gt;
	&amp;#039;timeless&amp;#039;: &amp;#039;a&amp;#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
const currentPortletLinkSelector = portletLinkSelector[currentSkin];&lt;br /&gt;
&lt;br /&gt;
const currentPageLink = mw.util.addPortletLink(&lt;br /&gt;
    &amp;#039;p-personal&amp;#039;,&lt;br /&gt;
    &amp;#039;#&amp;#039;,&lt;br /&gt;
    &amp;quot;Develop&amp;quot;,&lt;br /&gt;
    &amp;quot;developLink&amp;quot;,&lt;br /&gt;
    null, null, // ones we don&amp;#039;t need&lt;br /&gt;
    &amp;#039;#pt-preferences&amp;#039; // put before preferences&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
currentPageLink.onclick = () =&amp;gt; {&lt;br /&gt;
    if (hasRecievedFirstMessage) {&lt;br /&gt;
        stopDeveloperMode();&lt;br /&gt;
        window.location.reload(); // Clear the indev script&lt;br /&gt;
    } else {&lt;br /&gt;
        runDeveloperMode();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function stopDeveloperMode() {&lt;br /&gt;
    localStorage.setItem(&amp;#039;EasyWikiDev&amp;#039;, &amp;#039;disabled&amp;#039;);&lt;br /&gt;
    currentPageLink.querySelector(currentPortletLinkSelector).innerText = &amp;quot;Develop&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function runDeveloperMode() {&lt;br /&gt;
    currentPageLink.querySelector(currentPortletLinkSelector).innerText = &amp;quot;Stop Developing&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    // Create the localstorage note&lt;br /&gt;
    localStorage.setItem(&amp;#039;EasyWikiDev&amp;#039;, &amp;#039;enabled&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
    try {&lt;br /&gt;
        // Connect to the websocket at ws://localhost:6767&lt;br /&gt;
        const ws = new WebSocket(&amp;quot;ws://localhost:6767&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        ws.onerror = e =&amp;gt; { throw e; };&lt;br /&gt;
&lt;br /&gt;
        ws.onclose = () =&amp;gt; {&lt;br /&gt;
            mw.notify(&amp;quot;EasyWikiDev: Websocket closed. The server may not be running, else try enabling developer mode again.&amp;quot;, {&lt;br /&gt;
                title: &amp;quot;Socket closed&amp;quot;,&lt;br /&gt;
                type: &amp;quot;error&amp;quot;,&lt;br /&gt;
                autoHide: false,&lt;br /&gt;
            });&lt;br /&gt;
            stopDeveloperMode();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // When the websocket receives a message, it will run this function&lt;br /&gt;
        ws.onmessage = e =&amp;gt; {&lt;br /&gt;
            if (!hasRecievedFirstMessage) {&lt;br /&gt;
                hasRecievedFirstMessage = true;&lt;br /&gt;
&lt;br /&gt;
                // The message is the script.js file&lt;br /&gt;
                // It&amp;#039;s just a string, so we can just eval it&lt;br /&gt;
                eval(e.data);&lt;br /&gt;
            } else {&lt;br /&gt;
                window.location.reload();&lt;br /&gt;
            }&lt;br /&gt;
            &lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    } catch (error) {&lt;br /&gt;
        console.error(error);&lt;br /&gt;
        mw.notify(&amp;quot;EasyWikiDev: An error occured. Make sure the server is running, then check the Javascript console for more info.&amp;quot;, {&lt;br /&gt;
            title: &amp;quot;Error&amp;quot;,&lt;br /&gt;
            type: &amp;quot;error&amp;quot;,&lt;br /&gt;
            autoHide: false,&lt;br /&gt;
        });&lt;br /&gt;
        stopDeveloperMode();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// If present, run the developer mode&lt;br /&gt;
if (localStorage.getItem(&amp;#039;EasyWikiDev&amp;#039;) === &amp;#039;enabled&amp;#039;) {&lt;br /&gt;
    runDeveloperMode();&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>imported&gt;Moony</name></author>
	</entry>
</feed>