मीडियाविकि:Gadget-lib-beau.js
सूचना: यह पृष्ठ सुरक्षित करने बाद, परिवर्तनों को देखने लिए ब्राउज़र का कैश ख़ाली करने की आवश्यकता हो सकती है।
- मोज़िला / फ़ायरफ़ॉक्स / सफ़ारी: shift hold करें जब आप reload क्लिक करते है, या Ctrl-Shift-R (अपल मैक में Cmd-Shift-R) दबाएँ;
- गूगल क्रोम: Ctrl-shift-R (मैक में Cmd-Shift-R) दबाएँ
- इंटरनेट एक्सप्लोरर: Ctrl hold करें जब आप refresh क्लिक करते हैं, या Ctrl-F5 क्लिक करते हैं;
- कॉङ्करर: सिर्फ़ Reload बटन पर क्लिक करें, या F5 क्लिक करें;
- ऑपरा सदस्य को Tools→Preferences में सम्पूर्ण कैश ख़ाली करने की ज़रूरत हो सकती है।
var beau$userGroups = {};
var gr = mw.config.get('wgUserGroups')
if (gr) {
for (var i = 0; i < gr.length; i++) {
beau$userGroups[ gr[i] ] = true;
}
}
function beau$callAPI(query) {
var url = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php?';
for (var field in query) {
var value = query[field];
url += '&' + field + '=' + encodeURIComponent(value);
}
url += '&format=json';
mw.loader.load(url);
}
function importScriptFromWikipedia(page) {
mw.loader.load('//pl.wiki.x.io/w/index.php?action=raw&ctype=text/javascript&title=' + encodeURIComponent(page));
}
function importStylesheetFromWikipedia(page) {
mw.loader.load('//pl.wiki.x.io/w/index.php?action=raw&ctype=text/css&title=' + encodeURIComponent(page), 'text/css');
}
var toolbarGadget = {};
/**
* Status strony, true - strona załadowana.
*/
toolbarGadget.pageLoaded = false;
/**
* Tablica przycisków, które zostały dodane za wcześnie.
*/
toolbarGadget.buttons = new Array();
/**
* Dodaje przycisk na pasek narzędziowy.
* @param button Obiekt opisujący przycisk, jego parametry to
* title - tytuł przycisku
* alt - tekst alternatywny
* id - identyfikator przycisku (obiektu img)
* href - link
* onclick - funkcja wywoływana po naciśnięciu
* icon - ikona przycisku
* oldIcon - ikona przycisku dla starego paska (domyślnie icon)
* newIcon - ikona przycisku dla nowego paska (domyślnie icon)
* section - nazwa sekcji, do której przycisk ma zostać dodany
* group- nazwa grupy, do której przycisk ma zostać dodany (jeśli takiej nie ma, zostanie stworzona)
*/
toolbarGadget.addButton = function (button) {
if (!this.pageLoaded) {
this.buttons.push(button);
return;
}
//console.log("Wstawianie przycisku");
//console.log(button);
var title = button.title ? button.title : "";
// Nowy pasek narzędzi
// FIXME: zrobić to lepiej, jak będzie istniała dokumentacja do API...
var toolbar = document.getElementById('wikiEditor-ui-toolbar');
if (toolbar) {
//console.log("Wykryto nowy pasek narzędzi");
var image = document.createElement('img');
image.alt = button.alt ? button.alt : title;
image.title = title;
image.className = "tool tool-button";
image.style.cssText = "width: 22px; height: 18px; padding-top:4px";
if (button.id)
image.id = button.id;
if (button.newIcon)
image.src = button.newIcon;
else if (button.icon)
image.src = button.icon;
var link = document.createElement('a');
if (button.href)
link.href = button.href;
if (button.onclick)
link.onclick = button.onclick;
link.appendChild(image);
// Sekcja nowego przycisku
var section;
if (button.section) {
var sections = $.makeArray( $(toolbar).find('div.section-'+button.section) );
if (sections.length) {
section = sections[0];
//console.log("Znaleziono sekcję");
}
}
// Grupa nowego przycisku
var group;
var groupName = button.group ? button.group : 'custom';
if (!group) {
var groups = $.makeArray( $((section ? section : toolbar)).find('div.group-'+groupName) );
if (groups.length) {
group = groups[0];
//console.log("Znaleziono grupę");
}
}
if (!group) {
// Jeśli sekcja nie istnieje, umieść grupę w głównej
if (!section) {
var sections = $.makeArray( $(toolbar).find('div.section-main') );
if (sections.length) {
section = sections[0];
}
}
group = document.createElement('div');
group.className = 'group group-' + groupName;
group.rel = groupName;
section.appendChild(group);
}
group.appendChild(link);
return;
}
// Stary pasek narzędzi
toolbar = document.getElementById('toolbar');
if (toolbar) {
//console.log("Wykryto stary pasek narzędzi");
var image = document.createElement('img');
image.alt = button.alt ? button.alt : title;
image.title = title;
image.className = 'mw-toolbar-editbutton';
if (button.id)
image.id = button.id;
if (button.oldIcon)
image.src = button.oldIcon;
else if (button.icon)
image.src = button.icon;
image.style.cursor = 'pointer';
if (button.onclick)
image.onclick = button.onclick;
if (button.href) {
var link = document.createElement('a');
link.href = button.href;
link.appendChild(image);
toolbar.appendChild(link);
}
else {
toolbar.appendChild(image);
}
return;
}
//console.log("Nie wykryto paska narzędzi");
}
toolbarGadget.addButtons = function() {
for (var i = 0; i < this.buttons.length; i++) {
this.addButton(this.buttons[i]);
}
this.buttons = null;
}
$( function() {
if (toolbarGadget.pageLoaded) return;
toolbarGadget.pageLoaded = true;
//console.log("Strona została załadowania");
toolbarGadget.addButtons();
});