User:Gryllida/js/wab-sub.js

Note: After saving, you may have to bypass your browser's cache to see the changes. Mozilla / Firefox / Safari: hold down Shift while clicking Reload, or press Ctrl-Shift-R (Cmd-Shift-R on Apple Mac); IE: hold Ctrl while clicking Refresh, or press Ctrl-F5; Konqueror: simply click the Reload button, or press F5; Opera users may need to completely clear their cache in Tools→Preferences. — More skins

mw.loader.using(['mediawiki.api', 'oojs-ui'], function () {
	
	$options = $('<p>Article status: (select drafts to help copyedit new submissions!) &nbsp;</p>');
	$s_status = $('<span>');
	$s_status.append($('<br/>'));
	$s_status.append("<input type='radio' name='wab-status' value='pub' id='wab-status-pub'/> <label for='wab-status-pub'>New published</label>");
	$s_status.append($('<br/>'));
	$s_status.append("<input type='radio' name='wab-status' value='dev' id='wab-status-draft'/> <label for='wab-status-draft'>New drafts</label>");
	
	$options.append($s_status);
	$s_dtype = $('<p>Delivery type: </p>');
	$s_dtype.append($('<br/>'));
	$s_dtype.append("<input type='radio' name='wab-delivery' value='email' id='wab-email'/> <label for='wab-email'>Email (uses [[Special:EmailUser]])</label>");
	$s_dtype.append($('<br/>'));
	$s_dtype.append("<input type='radio' name='wab-delivery' value='wiki' id='wab-talk'/> <label for='wab-talk'>My personal talk page</label>");
	$options.append($s_dtype);
	
	var buttonP = new OO.ui.ButtonWidget( {
		label: 'Save and select topics',
		flags: 'progressive'
	} );
	buttonP.$element.click(function(e){
		// content
		cats = '';
		$('#mw-normal-catlinks > ul > li > a').each(function(e){
			var cat = $(this).attr('title').replace('Category:', '');
			if(cat== 'Published' || cat=='Developing' || cat=='Disputed'){return true;}
			if(cat.indexOf(',') > 0){return true;}
			cats += '*' + $(this).attr('title').replace('Category:', '') + '\r\n';
		});
		cats += '[[Cat' + 'egory:Gryllida' + '/WAB/Pending]]';
		
		status = $('input[name=wab-status]:checked').val();
		delivery = $('input[name=wab-delivery]:checked').val();
		titlePostFix = '/wab/' + status + '/' + delivery,
		
		api = new mw.Api();
		var titleEdit = 'User:' + wgUserName + titlePostFix + '/preload';
		api.postWithToken('edit',{
			action: 'edit',
			title: titleEdit,
			text: cats,
			summary: 'created my delivery list ([[User:Gryllida/js/wab-sub.js|assisted]])'
		}).done(function (data){
			console.log(data);
			titleEdit = 'User talk: ' + wgUserName + titlePostFix;
			api.postWithToken('edit',{
				action: 'edit',
				title: titleEdit,
				text: '0',
				summary: 'created my delivery list ([[User:Gryllida/js/wab-sub.js|assisted]])'
			}).done(function (data){
				console.log(data);
				url = 'http://en.wikinews.org/wiki/User:' + wgUserName + titlePostFix;
				url += '?action=edit';
				url += '&preload=User:' + wgUserName + titlePostFix + '/preload';
				url += '&editintro=User:Gryllida/wab/editintro';
				window.location.href = url;
			});
		}).fail( function( code, result ) {
			console.log(result);
		});


	});
	
	$options.append(buttonP.$element);


	
	var popupButton = new OO.ui.PopupButtonWidget( { 
		label: 'Subscribe', 
		id: 'wab-sub-button',
		icon: 'articles', 
		popup: {
			$content: $options,
			padded: true,
			align: 'forwards'
		}
	} );
	
	$('#catlinks').append(popupButton.$element );


});