Difference between revisions of "MediaWiki:Common.js"

From TAMI
Jump to navigationJump to search
Line 1: Line 1:
"use strict"
/*
/*
  * This file should be used as the contents of the page:
  * This file should be used as the contents of the page:
Line 13: Line 15:
/**************************************************************/
/**************************************************************/
// Set to false or delete to disable analytics/tracking:
// Set to false or delete to disable analytics/tracking:
TowTruckConfig_enableAnalytics = true;
var TowTruckConfig_enableAnalytics = true;


var towtruck_script = document.createElement("script");
function towtruck_init() {
towtruck_script.setAttribute("type", "text/javascript");
    var towtruck_script = document.createElement("script");
towtruck_script.setAttribute("src", "https://towtruck.mozillalabs.com/towtruck.js");
    towtruck_script.setAttribute("type", "text/javascript");
document.getElementsByTagName("head")[0].appendChild(towtruck_script);
    towtruck_script.setAttribute("src", "https://towtruck.mozillalabs.com/towtruck.js");
    document.getElementsByTagName("head")[0].appendChild(towtruck_script);


var towtruck_button = document.createElement("button");
    var towtruck_button = document.createElement("button");
towtruck_button.setAttribute("onclick", "TowTruck(this); return false;")
    towtruck_button.setAttribute("onclick", "TowTruck(this); return false;")
towtruck_button.innerHTML = "Start Collaborating";
    towtruck_button.innerHTML = "Start Collaborating";
towtruck_button.style.fontSize = "0.75em";
    towtruck_button.style.fontSize = "0.75em";
document.getElementById("p-navigation").getElementsByTagName("div")[0].appendChild(towtruck_button);
    document.getElementById("p-navigation").getElementsByTagName("div")[0].appendChild(towtruck_button);
}
towtruck_init();


/*************************************************************/
/*************************************************************/
Line 33: Line 38:
{
{
     return new Promise(function(resolve, reject) {
     return new Promise(function(resolve, reject) {
        var request = new HT
         var request = new XMLHttpRequest();
         var request = new XMLHttpRequest();
         request.onload = function () {
         request.onload = function () {
Line 45: Line 49:
             reject(Error('network error'));
             reject(Error('network error'));
         }
         }
         request.send('GET', url);
         request.open('GET', url);
         request.open();
         request.send();
     });
     });
}
}
Line 53: Line 57:
{
{
     return new Promise(function (resolve, reject) {
     return new Promise(function (resolve, reject) {
         get('http://telavivmakers.org/index.php/TAMI_Names?action=raw').then(
         get(document.location.origin + '/index.php/TAMI_Names?action=raw').then(
             function (response) {
             function (response) {
                 var titles = response.split("\n")
                 var titles = response.split("\n").filter(txt=>txt.trim().length > 0);
                console.log('got ' + titles.length + ' titles');
                 resolve(titles);
                 resolve(titles);
             },
             },

Revision as of 15:38, 3 January 2015

"use strict"

/*
 * This file should be used as the contents of the page:
 *
 * http://telavivmakers.org/index.php/MediaWiki:Common.js
 *
 */

/* Any JavaScript here will be loaded for all users on every page load. */
var tami_is_using_common_js = 1;

/**************************************************************/
/* Add Tow Truck botton (Start Collaborating) on the menu     */
/**************************************************************/
// Set to false or delete to disable analytics/tracking:
var TowTruckConfig_enableAnalytics = true;

function towtruck_init() {
    var towtruck_script = document.createElement("script");
    towtruck_script.setAttribute("type", "text/javascript");
    towtruck_script.setAttribute("src", "https://towtruck.mozillalabs.com/towtruck.js");
    document.getElementsByTagName("head")[0].appendChild(towtruck_script);

    var towtruck_button = document.createElement("button");
    towtruck_button.setAttribute("onclick", "TowTruck(this); return false;")
    towtruck_button.innerHTML = "Start Collaborating";
    towtruck_button.style.fontSize = "0.75em";
    document.getElementById("p-navigation").getElementsByTagName("div")[0].appendChild(towtruck_button);
}
towtruck_init();

/*************************************************************/
/* Set TAMI title to random (*) word starting with I         */
/*************************************************************/

function get(url)
{
    return new Promise(function(resolve, reject) {
        var request = new XMLHttpRequest();
        request.onload = function () {
            if (request.status == 200) {
                resolve(request.response);
            } else {
                reject(Error(request.statusText));
            }
        }
        request.onerror = function () {
            reject(Error('network error'));
        }
        request.open('GET', url);
        request.send();
    });
}

function get_titles()
{
    return new Promise(function (resolve, reject) {
        get(document.location.origin + '/index.php/TAMI_Names?action=raw').then(
            function (response) {
                var titles = response.split("\n").filter(txt=>txt.trim().length > 0);
                console.log('got ' + titles.length + ' titles');
                resolve(titles);
            },
            function (error) {
                console.error('Failed!', error);
                reject(error);
            }
        );
    });
}

function title_changer(titles)
{
    var title_element = document.getElementById("Welcome_to_Tel_Aviv_Makers_Insurgence_hackerspace.21");
    if (title_element === undefined) {
        //console.log("someone broke the fun script (or just not the main page)");
        return;
    }
    function change_title() {
        var i = Math.floor((Math.random() * titles.length));
        title_element.innerHTML = "Welcome to Tel Aviv Makers " + titles[i] + " hackerspace!";
    }
    change_title();
    setInterval(change_title, 60000);
}
get_titles().then(title_changer);