MediaWiki:Common.js

From AlHaTorah.org
Version as of 04:30, 15 March 2015 by Hillel (talk | contribs)
Jump to navigation Jump to search

Note: After saving, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Go to Menu → Settings (Opera → Preferences on a Mac) and then to Privacy & security → Clear browsing data → Cached images and files.
/* Any JavaScript here will be loaded for all users on every page load. */

// Extra edit buttons
var addExtraButtons = function(){
    $("#toolbar").html("");
    var addBtn = function ( ops ) {
        var btn = $("<span>").addClass("custom-editbtn");
        var $bar = $("#toolbar");
        btn.html(ops.name);
        btn.click(function () {
            var box = $(lastFocusedTextbox).focus()[0];//$("#wpTextbox1").focus()[0];
            var selS = box.selectionStart;
            var selE = box.selectionEnd;
            var text = box.value;
            var before = typeof ops.before === "function" ? ops.before(text) : ops.before;
            var after = typeof ops.after === "function" ? ops.after(text) : ops.after;
            box.value = text.slice(0,selS) + before + text.slice(selS,selE) + after + text.slice(selE);
            box.selectionStart = selS + before.length;
            box.selectionEnd = selE + before.length;
        });
        $bar.append(btn);
    }
    addBtn({name:"a",before:function(){return "<a href=\""+prompt("href")+"\">"},after:"</a>"});
    addBtn({name:"b",before:"<b>",after:"</b>"});
    addBtn({name:"del",before:"<del>",after:"</del>"});
    addBtn({name:"div",before:"<div>",after:"</div>"});
    addBtn({name:"h1",before:"<h1>",after:"</h1>"});
    addBtn({name:"h2",before:"<h2>",after:"</h2>"});
    addBtn({name:"h3",before:"<h3>",after:"</h3>"});
    addBtn({name:"comment",before:"<!--",after:"-->"});
    addBtn({name:"i",before:"<i>",after:"</i>"});
    addBtn({name:"ins",before:"<ins>",after:"</ins>"});
    addBtn({name:"li",before:"<li>",after:"</li>"});
    addBtn({name:"p",before:"<p>",after:"</p>"});
    addBtn({name:"q",before:"<q>",after:"</q>"});
    addBtn({name:"span",before:"<span>",after:"</span>"});
    addBtn({name:"style",before:"<style>",after:"</style>"});
    addBtn({name:"table",before:'<h4 id="---">---</h4><table width="100%" border="1px"><tr><td width="50%">---</td><td dir="rtl" width="50%"><strong>---</strong><br />',after:"</td></tr></table>"});
    addBtn({name:"td",before:"<td>",after:"</td>"});
    addBtn({name:"ul",before:"<ul>",after:"</ul>"});
    addBtn({name:"category",before:"<category>",after:"</category>"});
    addBtn({name:"fn",before:"<fn>",after:"</fn>"});
    addBtn({name:"mekorot",before:"<mekorot>",after:"</mekorot>"});
    addBtn({name:"multilink",before:'<multilink><a href="SHE">',after:'</a><a href="SHE"></a></multilink>'});
    addBtn({name:"opinion",before:"<opinion>",after:"</opinion>"});
    addBtn({name:"point",before:"<point>",after:"</point>"});
    addBtn({name:"stub",before:"",after:"<stub/>"});
    addBtn({name:"subopinion",before:"<subopinion>",after:"</subopinion>"});
    addBtn({name:"topic",before:"<topic>",after:"</topic>"});
    addBtn({name:"dash",before:"",after:"–"});
    addBtn({name:"br",before:"",after:"<br/>"});
    addBtn({name:"Footnote",before:"<ref>",after:"</ref>"});
    addBtn({name:"חתימה",before:"{{חתימה|",after:"}}"});
    addBtn({name:"גיליון",before:"{{גיליון|",after:"}}"});
    addBtn({name:"צילום",before:"{{צילום לייפציג|",after:"}}"});
};

//Add input boxes for certain pages
var formatEditbox = function formatEditbox () {
    var origBox = document.getElementById('wpTextbox1');
    var origText = origBox.value;
    var reg1 = /^(<aht-xml>\s*<page type=")(\w*)(">\s*)([\s\S]*)(<\/page>\s*<\/aht-xml>\s*)$/
    var pieces1 = origText.match(reg1);
    if (pieces1.length) {
        var begin1 = pieces1[1];
        var pageTypeText = pieces1[2];
        var begin2 = pieces1[3];
        var mainContent = pieces1[4];
        var end = pieces1[5];
        $(origBox).before('<label>Page Type: <input id="efPageType"/></label>')
        $("#efPageType")[0].value = pageTypeText;

        var reg2 = /^<h1>([^<]*)<\/h1>(\s*)([\s\S]*)$/;
        var pieces2 = mainContent.match(reg2);
        if (pieces2.length) {
          $(origBox).before('<input id="efPageTitle"/>')
          $("#efPageTitle")[0].value = pieces2[1];
          mainContent = pieces2[3];
        }

        origBox.value = mainContent;
        $(origBox).prop("id","efMainContent");
        $(origBox).after("<input type='hidden' id='wpTextbox1' name='wpTextbox1'/>");
        $(origBox.form).submit(function(){
            document.getElementById('wpTextbox1').value = begin1+$("#efPageType")[0].value+begin2
              +(pieces2.length?"<h1>"+$("#efPageTitle")[0].value+"</h1>"+pieces2[2]:"")
              +origBox.value+end;
        });
    }
}
 
if( $.inArray( mw.config.get( 'wgAction' ), [ 'edit', 'submit' ] ) !== -1 ) {

        //enable multiple editor textboxes
        var lastFocusedTextbox = document.getElementById('wpTextbox1');
        $("html").on("focusin", "textarea,input", function(){
                if (this.tagName.match(/input/i) && this.type !== "text") return;
                lastFocusedTextbox = this;
        });

        mw.loader.using( 'user.options', function () {
                if ( ! mw.user.options.get( 'usebetatoolbar' ) ) {
                        mw.loader.using( 'mediawiki.action.edit', function(){
                                $( addExtraButtons );
                        } );
                }
        } );

        //formatEditbox();
}

//Piwik
  var _paq = _paq || [];
  _paq.push(["trackPageView"]);
  _paq.push(["enableLinkTracking"]);

  (function() {
    var u=(("https:" == document.location.protocol) ? "https" : "http") + "://www.alhatorah.com/Piwik/";
    _paq.push(["setTrackerUrl", u+"piwik.php"]);
    _paq.push(["setSiteId", "2"]);
    var d=document, g=d.createElement("script"), s=d.getElementsByTagName("script")[0]; g.type="text/javascript";
    g.defer=true; g.async=true; g.src=u+"piwik.js"; s.parentNode.insertBefore(g,s);
  })();