משתמש:חזרתי/Gadget-tasks.js

הערה: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.

  • פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
  • גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
  • אינטרנט אקספלורר / אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
  • אופרה: ללחוץ על Ctrl-F5.
/** כפתור לפתיחת חלון עם רשימת משימות (מחייב קיום דף "משימות" במרחב האישי) **/
/* [[מדיה ויקי:Gadget-tasks.js]] :מבוסס על */
/* ToDo גאדג'ט חדש – רשימת  */
/* [[ויקיפדיה:חדשות/ארכיון מאי 2016#גאדג'ט חדש - רשימת TODO]] */
/* [[משתמש:חזרתי/משימות]] :[[מיוחד:הדף שלי/משימות]] */

$( function() {
	var page = 'User:' + mw.config.get('wgUserName') + '/Tasks';
	function showPage(e) {
		e.preventDefault();
		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': $('body').width() * (window.my_93_width || 0.827),
							'height' : $('body').height() * (window.my_93_height || 0.7), overflow: 'auto' } )
					: $( '<div>' )
						.css( { 'max-width': $('body').width() * 0.9, 'max-height' : $('body').height() * 0.8,
							overflow: 'auto' } )
						.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() || "[[ויקיפדיה:חדשות/ארכיון מאי 2016#גאדג'ט חדש - רשימת TODO|גאדג'ט משימות]]" } ).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: 'רשימת המשימות שלי',
					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:99%;margin:10px 3px 0;" title="כברירת מחדל יירשם \“גאדג\'ט משימות\”"/></form>'); }
		} ); // using dialog returned

	}
	
	$( mw.util.addPortletLink( 'p-personal', '#', 'משימות' , 'pt-MyRemainder', 'פתיחת רשימת המשימות שלי', 'T', '#pt-sandbox') )
		.click( showPage );
} );
mw.util.addCSS( '#pt-MyRemainder a, span#ui-id-1, span#ui-id-2 { font-weight:bold; color: red; }' );
mw.util.addCSS( 'span.ui-button-text { font-weight:bold; color: blue; }' );