<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.ekatrafoundation.org/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3ABase.js</id>
	<title>MediaWiki:Base.js - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ekatrafoundation.org/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3ABase.js"/>
	<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Base.js&amp;action=history"/>
	<updated>2026-04-12T04:11:12Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.38.2</generator>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Base.js&amp;diff=73074&amp;oldid=prev</id>
		<title>Gurwinder: New</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=MediaWiki:Base.js&amp;diff=73074&amp;oldid=prev"/>
		<updated>2024-05-01T06:03:36Z</updated>

		<summary type="html">&lt;p&gt;New&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/*jshint boss:true, loopfunc:true, scripturl:true*/&lt;br /&gt;
/*global mw, $, ws_msg, get_optlist */&lt;br /&gt;
&lt;br /&gt;
/* messages to be moved (FIXME: what this mean ? moved where ?)&lt;br /&gt;
	&amp;#039;it&amp;#039;:&amp;#039;Il testo proviene da&amp;#039;, &lt;br /&gt;
	&amp;#039;la&amp;#039;:&amp;#039;Hic textus visibils est in&amp;#039;, &lt;br /&gt;
	&amp;#039;es&amp;#039;:&amp;#039;Su texto procede de&amp;#039;, &lt;br /&gt;
	&amp;#039;ca&amp;#039;:&amp;#039;El seu text procedeix de&amp;#039; &lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if(!self.ws_messages) self.ws_messages = { };&lt;br /&gt;
&lt;br /&gt;
window.ws_msg = function (name) {&lt;br /&gt;
   var m = self.ws_messages[name];&lt;br /&gt;
   if(m) return m; else return name;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
/* FIXME: Remove this around September 11 2014, all use removed August 10 2014 */&lt;br /&gt;
/* Note : there is a similar function in wikibits.js, but it does not work for me on page numbers */&lt;br /&gt;
mw.log.deprecate( window, &amp;#039;get_elements_by_classname&amp;#039;, function (classname, tagname) {&lt;br /&gt;
	if(document.getElementsByClassName) return document.getElementsByClassName(classname);&lt;br /&gt;
	var ml = [];&lt;br /&gt;
	var l = document.getElementsByTagName(tagname);&lt;br /&gt;
	for (var i=0; i&amp;lt; l.length; i++) {&lt;br /&gt;
		var a = l[i]; &lt;br /&gt;
		if( a.className.indexOf(classname) !=-1 ) ml[ml.length] = l[i];&lt;br /&gt;
	}&lt;br /&gt;
	return ml;&lt;br /&gt;
}, &amp;#039;Use jQuery instead.&amp;#039; );&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Copy from MediaWiki:Base.js&lt;br /&gt;
window.get_optlist = function () {&lt;br /&gt;
	var optlist = document.getElementById(&amp;quot;optlist&amp;quot;),displayOptions,&lt;br /&gt;
      cl, ulCl;&lt;br /&gt;
	if(!optlist) {&lt;br /&gt;
		if (mw.config.get(&amp;#039;skin&amp;#039;)===&amp;#039;vector&amp;#039;) {&lt;br /&gt;
	displayOptions = document.createElement(&amp;quot;nav&amp;quot;);&lt;br /&gt;
	displayOptions.className = &amp;quot;mw-portlet vector-menu vector-menu-portal portal&amp;quot;;&lt;br /&gt;
	cl=&amp;quot;vector-menu-content&amp;quot;;&lt;br /&gt;
	ulCl=&amp;quot;vector-menu-content-list&amp;quot;;&lt;br /&gt;
} else {&lt;br /&gt;
	 displayOptions = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
	displayOptions.className = &amp;quot;portlet&amp;quot;;&lt;br /&gt;
	cl=&amp;quot;pBody&amp;quot;;&lt;br /&gt;
	ulCl=&amp;quot;&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
		displayOptions.innerHTML = &amp;#039;&amp;lt;h3 class=&amp;quot;vector-menu-heading&amp;quot;&amp;gt;&amp;#039; + ws_msg(&amp;#039;optlist&amp;#039;) + &amp;#039;&amp;lt;\/h3&amp;gt;&amp;lt;div class=&amp;quot;&amp;#039;+cl+&amp;#039;&amp;quot;&amp;gt;&amp;lt;ul id=&amp;quot;optlist&amp;quot; class=&amp;quot;&amp;#039;+ ulCl + &amp;#039;&amp;quot;&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;\/div&amp;gt;&amp;#039;;&lt;br /&gt;
                var ptb = document.getElementById(&amp;quot;p-tb&amp;quot;);&lt;br /&gt;
                ptb.parentNode.insertBefore(displayOptions,ptb);&lt;br /&gt;
                displayOptions.setAttribute(&amp;quot;id&amp;quot;,&amp;quot;p-displayOptions&amp;quot;);&lt;br /&gt;
                displayOptions.id=&amp;quot;p-displayOptions&amp;quot;; /* */&lt;br /&gt;
		optlist = document.getElementById(&amp;quot;optlist&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
	return optlist;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/*** Cookies (depreciated, use jQuery.cookie) ***/&lt;br /&gt;
&lt;br /&gt;
mw.log.deprecate( window, &amp;#039;SetCookie&amp;#039;, function (name,value) {&lt;br /&gt;
	$.cookie(name, value);&lt;br /&gt;
}, &amp;#039;Use jQuery.cookie instead.&amp;#039; );&lt;br /&gt;
&lt;br /&gt;
mw.log.deprecate( window, &amp;#039;GetCookie&amp;#039;, function (name) {&lt;br /&gt;
	return $.cookie(name);&lt;br /&gt;
}, &amp;#039;Use jQuery.cookie instead.&amp;#039; );&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/**** Display options ****/&lt;br /&gt;
&lt;br /&gt;
function OptionText() {&lt;br /&gt;
   var SpanElem, OptionTitle, OptionStyle, CookieDisplayOption;&lt;br /&gt;
   // iterate over all &amp;lt; span &amp;gt;-elements until class &amp;quot;OptionText&amp;quot; is found&lt;br /&gt;
   for(&lt;br /&gt;
           var i=0; &lt;br /&gt;
           SpanElem = document.getElementsByTagName(&amp;quot;span&amp;quot;)[i]; &lt;br /&gt;
           i++&lt;br /&gt;
       ) {&lt;br /&gt;
       // if found an option span&lt;br /&gt;
       if (SpanElem.className == &amp;quot;OptionText&amp;quot;) {&lt;br /&gt;
          //SpanElem.style.display = &amp;#039;none&amp;#039;;&lt;br /&gt;
          OptionTitle = SpanElem.title;&lt;br /&gt;
          OptionStyle = SpanElem.firstChild.getAttribute(&amp;#039;style&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
          //check if option was already encountered...&lt;br /&gt;
          if(!document.getElementById(OptionTitle)){&lt;br /&gt;
&lt;br /&gt;
            //read cookie&lt;br /&gt;
            var DisplayOptionDefault = true;&lt;br /&gt;
            CookieDisplayOption = $.cookie(&amp;quot;Display&amp;quot;+OptionTitle);&lt;br /&gt;
            if (CookieDisplayOption ) {&lt;br /&gt;
            if (CookieDisplayOption == &amp;quot;false&amp;quot;) DisplayOptionDefault = false; }&lt;br /&gt;
&lt;br /&gt;
            var PageDisplay = document.createElement(&amp;quot;li&amp;quot;);&lt;br /&gt;
            PageDisplay.setAttribute(&amp;#039;id&amp;#039;, OptionTitle);&lt;br /&gt;
            var PageDisplayLink = document.createElement(&amp;quot;a&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            var OptionTextNode = document.createTextNode(&amp;quot;Désactiver &amp;quot;+OptionTitle);&lt;br /&gt;
            PageDisplayLink.appendChild(OptionTextNode);&lt;br /&gt;
            PageDisplayLink.setAttribute(&amp;#039;href&amp;#039;,&amp;#039;javascript:void(0)&amp;#039;);&lt;br /&gt;
            $(PageDisplayLink).click(function() {&lt;br /&gt;
                        displayOptionText(OptionTitle, OptionStyle, DisplayOptionDefault);&lt;br /&gt;
            });&lt;br /&gt;
            PageDisplay.appendChild(PageDisplayLink);&lt;br /&gt;
&lt;br /&gt;
            var optlist = get_optlist();&lt;br /&gt;
            optlist.appendChild(PageDisplay);&lt;br /&gt;
&lt;br /&gt;
            displayOptionText(OptionTitle,OptionStyle,DisplayOptionDefault);&lt;br /&gt;
          }&lt;br /&gt;
       }&lt;br /&gt;
   }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 function displayOptionText(optiontitle, optionstyle, bool) {&lt;br /&gt;
  var SpanElem;&lt;br /&gt;
  $.cookie(&amp;quot;Display&amp;quot;+optiontitle,bool);&lt;br /&gt;
  if( ! document.getElementById(optiontitle) ) return;&lt;br /&gt;
  var PageDisplayLink =  document.getElementById(optiontitle).firstChild;&lt;br /&gt;
&lt;br /&gt;
   // iterate over all &amp;lt; span &amp;gt;-elements&lt;br /&gt;
   for(&lt;br /&gt;
           var i=0; &lt;br /&gt;
           SpanElem = document.getElementsByTagName(&amp;quot;span&amp;quot;)[i]; &lt;br /&gt;
           i++&lt;br /&gt;
       ) {&lt;br /&gt;
        // if found an option text&lt;br /&gt;
        if ((SpanElem.className == &amp;quot;OptionText&amp;quot;) &amp;amp;&amp;amp; (SpanElem.title == optiontitle)) {&lt;br /&gt;
          if(bool) {&lt;br /&gt;
            SpanElem.setAttribute(&amp;#039;style&amp;#039;,optionstyle);&lt;br /&gt;
            PageDisplayLink.firstChild.data = (optiontitle);&lt;br /&gt;
            PageDisplayLink.setAttribute(&amp;#039;href&amp;#039;, &amp;#039;javascript:void(0)&amp;#039;);&lt;br /&gt;
            $(PageDisplayLink).off(&amp;#039;click&amp;#039;);&lt;br /&gt;
            $(PageDisplayLink).click(function() {&lt;br /&gt;
                        displayOptionText(optiontitle, optionstyle, false);&lt;br /&gt;
            });&lt;br /&gt;
          }&lt;br /&gt;
          else {&lt;br /&gt;
            SpanElem.setAttribute(&amp;#039;style&amp;#039;,&amp;#039;null&amp;#039;);&lt;br /&gt;
            PageDisplayLink.firstChild.data = (optiontitle);&lt;br /&gt;
            PageDisplayLink.setAttribute(&amp;#039;href&amp;#039;, &amp;#039;javascript:void(0)&amp;#039;);&lt;br /&gt;
            $(PageDisplayLink).off(&amp;#039;click&amp;#039;);&lt;br /&gt;
            $(PageDisplayLink).click(function() {&lt;br /&gt;
                        displayOptionText(optiontitle, optionstyle, 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;
$( OptionText );&lt;br /&gt;
&lt;br /&gt;
function restore_lst(){&lt;br /&gt;
        var editbox = document.getElementById(&amp;#039;wpTextbox1&amp;#039;);&lt;br /&gt;
        var search = /##[\s]*(.*?)[\s]*##[\s]*\n/;&lt;br /&gt;
        var a = editbox.value.split(search);&lt;br /&gt;
        var s = a[0];&lt;br /&gt;
        var m = parseInt(a.length/2);&lt;br /&gt;
        for( var i = 0 ; i &amp;lt; m ; i++ ) {&lt;br /&gt;
            var title = a[i*2+1];&lt;br /&gt;
            // Ensure we&amp;#039;ll don&amp;#039;t get twice quote.&lt;br /&gt;
            title = title.replace(/^&amp;quot;(.*)&amp;quot;$/, &amp;quot;$1&amp;quot;);&lt;br /&gt;
            title = title.replace(/^&amp;#039;(.*)&amp;#039;$/, &amp;quot;$1&amp;quot;);&lt;br /&gt;
            var content = a[i*2+2]; &lt;br /&gt;
            if( title &amp;amp;&amp;amp; content.substring(0,2)==&amp;#039;{|&amp;#039; ) content = &amp;#039;\n&amp;#039; + content;&lt;br /&gt;
            if(title) s = s + &amp;#039;&amp;lt;section begin=&amp;quot;&amp;#039;+title+&amp;#039;&amp;quot;/&amp;gt;&amp;#039; + content + &amp;#039;&amp;lt;section end=&amp;quot;&amp;#039;+title+&amp;#039;&amp;quot;/&amp;gt;\n&amp;#039;;&lt;br /&gt;
            else s = s + content;&lt;br /&gt;
            /* if( i &amp;lt; m-1 ) s = s + &amp;quot;----\n&amp;quot;; */&lt;br /&gt;
        }&lt;br /&gt;
        editbox.value = s; &lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
/*&lt;br /&gt;
 * easy lst : hide section markers&lt;br /&gt;
 */&lt;br /&gt;
function easy_lst() {&lt;br /&gt;
        var editbox = document.getElementById(&amp;#039;wpTextbox1&amp;#039;);&lt;br /&gt;
        if(editbox) {&lt;br /&gt;
&lt;br /&gt;
	var search = /&amp;lt;section\sbegin=[\s]*(.*?)[\s]*\/&amp;gt;/;&lt;br /&gt;
        var a = editbox.value.split(search);&lt;br /&gt;
        var s = a[0]; &lt;br /&gt;
        var ok = true;&lt;br /&gt;
        for( var i = 0 ; i &amp;lt; parseInt(a.length/2) ; i++ ) {&lt;br /&gt;
            var title = a[i*2+1];&lt;br /&gt;
            var content = a[i*2+2]; &lt;br /&gt;
            var r2 = /^([\s\S]*?)&amp;lt;section\send=(.*?)\/&amp;gt;(\n|)[\s]*([\s\S]*?)$/;&lt;br /&gt;
            var m2 = content.match(r2);&lt;br /&gt;
            if( m2 ) {&lt;br /&gt;
               title = title.replace(/^&amp;quot;(.*)&amp;quot;$/, &amp;quot;$1&amp;quot;);&lt;br /&gt;
               title = title.replace(/^&amp;#039;(.*)&amp;#039;$/, &amp;quot;$1&amp;quot;);&lt;br /&gt;
               if(s &amp;amp;&amp;amp; s.charAt(s.length-1)!=&amp;#039;\n&amp;#039; &amp;amp;&amp;amp; s.charAt(s.length-1)!=&amp;#039;|&amp;#039; ) s = s+&amp;#039;\n&amp;#039;;&lt;br /&gt;
               s = s + &amp;quot;## &amp;quot; + title + &amp;quot; ##\n&amp;quot;+ m2[1] ;&lt;br /&gt;
               if( m2[4] ) { &lt;br /&gt;
                  if( m2[4]!=&amp;#039;----\n&amp;#039; ) {&lt;br /&gt;
                    if(s &amp;amp;&amp;amp; s.charAt(s.length-1)!=&amp;#039;\n&amp;#039; ) s = s+&amp;#039;\n&amp;#039;;&lt;br /&gt;
                    s = s + &amp;quot;####\n&amp;quot; + m2[4] ;&lt;br /&gt;
                  } &lt;br /&gt;
               }&lt;br /&gt;
             } else { &lt;br /&gt;
               ok = false; /* alert(&amp;quot;error&amp;quot;+title);*/&lt;br /&gt;
             }&lt;br /&gt;
        }&lt;br /&gt;
	if(ok) { &lt;br /&gt;
             editbox.value = s; &lt;br /&gt;
        } &lt;br /&gt;
	var saveButton = document.getElementById(&amp;quot;wpSave&amp;quot;); &lt;br /&gt;
	var previewButton = document.getElementById(&amp;quot;wpPreview&amp;quot;); &lt;br /&gt;
	var diffButton = document.getElementById(&amp;quot;wpDiff&amp;quot;);&lt;br /&gt;
	if(saveButton){&lt;br /&gt;
                saveButton.onclick = restore_lst;&lt;br /&gt;
		previewButton.onclick = restore_lst;&lt;br /&gt;
		diffButton.onclick = restore_lst;&lt;br /&gt;
        }&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function easy_lst_setup() {&lt;br /&gt;
        if (self.proofreadpage_raw_lst || mw.config.get( &amp;#039;wgCanonicalNamespace&amp;#039; ) !== &amp;#039;Page&amp;#039;)&lt;br /&gt;
            return;&lt;br /&gt;
&lt;br /&gt;
        if ($.inArray(mw.config.get(&amp;#039;wgAction&amp;#039;), [&amp;#039;edit&amp;#039;, &amp;#039;submit&amp;#039;]) !== -1) {&lt;br /&gt;
            mw.loader.using(&amp;#039;ext.proofreadpage.page&amp;#039;, function () {&lt;br /&gt;
            // mimic code in the extension, there is a conditionnal deps on ext.wikiEditor.toolbar.&lt;br /&gt;
            if (mw.user.options.get(&amp;#039;usebetatoolbar&amp;#039;) &amp;amp;&amp;amp; $.inArray(&amp;#039;ext.wikiEditor&amp;#039;, mw.loader.getModuleNames()) &amp;gt; -1) {&lt;br /&gt;
                mw.loader.using(&amp;#039;ext.wikiEditor&amp;#039;, function() {&lt;br /&gt;
                   easy_lst();&lt;br /&gt;
                });&lt;br /&gt;
            } else {&lt;br /&gt;
                easy_lst();&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
$( easy_lst_setup );&lt;/div&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
</feed>