মিডিয়াউইকি:Gadget-BookCat.js

উইকিবই থেকে

লক্ষ্য করুন: প্রকাশ করার পর, পরিবর্তনগুলো দেখতে আপনাকে আপনার ব্রাউজারের ক্যাশে পরিষ্কার করার প্রয়োজন হতে পারে।

  • ফায়ারফক্স / সাফারি: পুনরায় লোড-এ ক্লিক করার সময় শিফট টিপে ধরে রাখুন, অথবা হয় Ctrl-F5 বা Ctrl-R টিপুন (ম্যাকে ⌘-R টিপুন)
  • গুগল ক্রোম: Ctrl-Shift-R (ম্যাকে ⌘-Shift-R) টিপুন
  • ইন্টারনেট এক্সপ্লোরার / এজ: Ctrl ধরে রাখা অবস্থায় Refresh-এ ক্লিক করুন, অথবা Ctrl-F5 টিপুন
  • অপেরা: Ctrl-F5 টিপুন।
// based on https://en.wikipedia.org/wiki/User:DannyS712/Draft_no_cat.js
// Set `var bookCatAJAX = true;` to add BookCat without reloading the page
$(() => {
const bookCat = {};
window.bookCat = bookCat;
bookCat.config = {
	name: '[[মিডিয়াউইকি:Gadget-BookCat|বুক-ক্যাট]]',
	debug: false
};

bookCat.summary = "Added {{[[Template:BookCat|BookCat]]}} using " + bookCat.config.name;
	
bookCat.run = function () {
	var editSummary = bookCat.summary;
	
	if ( bookCat.config.debug ) {
		console.log ( editSummary );
	}
	
	var api = new mw.Api();
	api.get( {
		action: 'query',
		titles: mw.config.get( 'wgPageName' ),
		prop: 'revisions',
		rvprop: 'content',
		rvslots: 'main',
		formatversion: 2
	} ).done(
		function ( response ) {
			console.log( response );
			var text = response.query.pages[0].revisions[0].slots.main.content;
			if(text.match(/\{\{\s*Bookcat\s*\}\}/i)){
				return mw.notify("BookCat already present.");
			}
			text += '\n\n{{BookCat}}';
			api.postWithEditToken( {
				action: 'edit',
				minor: true,
				title: mw.config.get( 'wgPageName' ),
				text: text,
				summary: editSummary
			} ).done(
				function() {
					if(bookCatAJAX === undefined || bookCatAJAX == false){
						location.reload();
					}
					else mw.notify("BookCat successfully added.");
				}
			);
		}
	);
};

});

$( document ).ready( () => {
	if ( mw.config.get( 'wgNamespaceNumber' ) === 0 && mw.config.get('wgAction') === 'view' && mw.config.get('wgCategories').every(e => !e.includes("Book:")) ) {
		mw.loader.using(
			[ 'mediawiki.util' ],
			function () {
				var  link = mw.util.addPortletLink( 'p-cactions', '#', 'BookCat', 'ca-bookcat', 'Add BookCat'); 
				$( link ).click( function ( event ) {
					event.preventDefault();
					mw.loader.using( 'mediawiki.api', window.bookCat.run );
				} );
			}
		);
	}
} );