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 XMLHttpRequest(); | var request = new XMLHttpRequest(); | ||
request.onload = function () { | request.onload = function () { | ||
Line 45: | Line 49: | ||
reject(Error('network error')); | reject(Error('network error')); | ||
} | } | ||
request. | request.open('GET', url); | ||
request. | request.send(); | ||
}); | }); | ||
} | } | ||
Line 53: | Line 57: | ||
{ | { | ||
return new Promise(function (resolve, reject) { | return new Promise(function (resolve, reject) { | ||
get(' | 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);