మీడియావికీ:Gadget-BookMakerLoader.js
గమనిక: భద్రపరచిన తర్వాత, మార్పులను చూడాలంటే మీ విహారిణి కోశాన్ని తీసేయాల్సిరావచ్చు.
- ఫైర్ఫాక్స్ / సఫారి: Shift మీటని నొక్కిపట్టి Reloadని నొక్కండి లేదా Ctrl-F5 గానీ Ctrl-R (మాకింటోషులో ⌘-Shift-R) గానీ నొక్కండి
- గూగుల్ క్రోమ్: Ctrl-Shift-R (మాక్ లో ⌘-Shift-R) నొక్కండి
- ఇంటర్నెట్ ఎక్ప్లోరర్/ఎడ్జి: Ctrl ను నొక్కిపట్టి Refresh నొక్కండి లేదా Ctrl-F5 నొక్కండి.
- ఒపేరా:* Ctrl-F5 నొక్కండి.
/**
* Gadget that loads [[MediaWiki:BookMaker.js]] after clicking the
* relevant button (or if a book is alread in progress.
* This script also does any processing and DOM modification that needs
* to be shown before any user interaction.
*
* Help at [[Help:Gadget-BookMaker]]
*
* @rev 1 (2012-06-16)
* @author Inductiveload, 2012
*
*/
/*global jQuery:false, mediaWiki:false*/
(function ($, mw) {
'use strict';
if ($.inArray(mw.config.get('wgNamespaceNumber'), [0, 2]) === -1) { return; }
var bmi, // ImporterInstance
waiting = false,
onScriptLoad = function (evt, st, instance) {
if ('BookMaker' !== st || !instance) { return; }
bmi = instance;
waiting = false;
$(document).off('scriptLoaded.BookMaker');
loadBookMaker();
},
loadBookMaker = function () {
if (waiting) { return; }
if (bmi) {
if (bmi.wantToStart) {
bmi.start_bookmaker();
}
} else {
waiting = true;
$(document).on('scriptLoaded.BookMaker', onScriptLoad);
mw.loader.load('//en.wikisource.org/w/index.php?title=MediaWiki:BookMaker.js&action=raw&ctype=text/javascript&dummy=0');
}
};
window.BookMaker = function () {
//parameters we need in the loader script
this.bookTemplateID = 'ws-savedbook'; //matches pages that could be books
this.localstorage_name = 'wikisource_bookmakerpersistentdata';
this.portletID = 'coll-bookmaker';
this.wantToStart = false; //sometimes we want to load the script. but not start the editor
this.initMsg = { //messages that are shown before the bookmaker starts
editBook: 'Edit this book',
createBook: 'Create a book',
tooltip: 'Open the BookMaker tool to create a collection of pages for export'
};
this.add_create_book_link();
//if we are editing a book, display bookmaker right away
if (this.localstorage_name in localStorage) {
this.wantToStart = true;
loadBookMaker();
}
//loadBookMaker(); //uncomment to load automatically for testing.
};
//generates a link element to a Special:PrefixIndex page
window.BookMaker.prototype.generate_prefix_link = function (prefix, text) {
return $('<a>', {'href': mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/index.php?title=Special:PrefixIndex&prefix=' + prefix, 'text': (text || prefix)});
};
window.BookMaker.prototype.add_create_book_link = function () {
var myself = this;
//remove the PediaPress tool portlet link if any, plus any existing bookmaker portlet
$('#coll-create_a_book, #' + this.portletID).remove();
var href, linktext, portlet;
if ($('#' + this.bookTemplateID).length > 0) {
href = '//en.wikisource.org/w/index.php?title=Special:Book&bookcmd=book_creator&referer=';
linktext = this.initMsg.editBook;
loadBookMaker();
} else {
href = '//en.wikisource.org/w/index.php?title=Special:Book&bookcmd=book_creator&referer=' + mw.config.get('wgPageName');
linktext = this.initMsg.createBook;
}
portlet = mw.util.addPortletLink('p-coll-print_export', href, linktext, this.portletID, this.initMsg.tooltip);
$(portlet).click( function () {
myself.wantToStart = true;
loadBookMaker();
});
};
window.BookMakerInstance = new window.BookMaker();
}(jQuery, mediaWiki));