Участник:IKhitron/blocknot.js

$( function() {
	var page;
	function showPage() {
		mw.loader.using( ['mediawiki.api'] ).then( function() {
			new mw.Api({ ajax: { cache: false } }).get( { action: 'parse', page: page, smaxage: 0,
					disableeditsection: true } ).done( function( data ) {
				if ( data && data.parse && data.parse.text && data.parse.text['*'] )
					showContent( page, data.parse.text['*'] );
			} ); // parse returned
		} ); // using api returned
	} // showpage.sho
	
	function showRaw() {
		$.ajax( {
			url: mw.util.wikiScript(),
			data: { action: 'raw', title: page },
			dataType: 'text'
		} ).done( function( data ) {
			showContent( page, data, true );
		} );
	}
	
	function showContent( title, content, raw ) {
		mw.loader.using( [ 'jquery.ui', 'mediawiki.api' ] ).then( function() {
			var dialog,
				api = new mw.Api({ ajax: { cache: false } }),
				inside = raw 
					? $( '<textarea>' )
						.attr( { raws: 25, resize: true } )
						.val( content )
						.css( { 'width': window.blocknotwidth ? window.blocknotwidth + 'px'
								: $('body').width() * 0.8,
							'height' : window.blocknotheight ? window.blocknotheight + 'px'
								: $('body').height() * 0.8,
							overflow: 'auto' } )
					: $( '<div>' )
						.css( { 'max-width': window.blocknotwidth ? window.blocknotwidth + 'px' :
								$('body').width() * 0.8,
							'max-height' : window.blocknotheight ? window.blocknotheight + 'px' :
								$('body').height() * 0.8,
							overflow: 'auto' } )
						.addClass('blocknot')
						.append( content ),
				buttons = [ {text: 'Закрыть и сохранить', click: doSaveClose} ],
				buttons1 = [ {text: 'Править', click: doEdit} ];
				
			function doSaveClose() {
				api.postWithEditToken( { action: 'edit', title: title, text: inside.val(), smaxage: 0,
					summary: dialog.find('input').val() || "гаджет-блокнот" } ).done(function(d) {
						if (d && d.edit && d.edit.result == 'Success') mw.notify('Успешно сохранено!');
					});
				dialog.dialog( 'close' );
			}
			
			function doEdit() {
				showRaw();
				dialog.dialog( 'close' );
			}
			
			dialog = $( '<div>' )
				.dialog( { 
					title: title,
					width: 'auto', 
					height: 'auto',
					position: [$('body').width() * 0.05, $('body').height() * 0.05],
					buttons: raw ? buttons : buttons1
				} )
				.append( inside );
				if (raw) {dialog.append('<form><input type="text" placeholder="Описание изменений"' +
					' style="width:95%;margin:10px 3px 0;" title="При незаполнении будет' +
					' установлено автоматически на текст «гаджет-блокнот»"/></form>'); }
		} ); // using dialog returned

	}
	
	mw.loader.using('mediawiki.util')
			.then(function() {
		page = 'Участник:' + mw.config.get('wgUserName') + '/блокнот';
		$( mw.util.addPortletLink( 'p-personal', '#', 'Блокнот' , 'pt-remainder', '', '', '#pt-mytalk') )
			.click( showPage );
	} );
} );

 

Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9

Portal di Ensiklopedia Dunia