Jump to content

User:The Transhumanist/OutlineWishListAddTo.js

From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
// <syntaxhighlight lang="javascript">

/*

(Script under development - not yet functional)

OutlineWishListAddTo.js = Adds new outline title to wish list, checking for existence first.

What it does: ADD BRIEF DESCRIPTION OF FUNCTION HERE

When completed,
this script will prompt for a topic. It will then format it into an outline title, 
and ask if the result is correct. If not, it will start over. Once a title is created, the script 
will check for the existence of an existing outline article or draft. If none exist for this title, 
it is added to the wish list in the proper alphabetical location.

Brief comments are provided within the source code below. For extensive explanatory 
notes on what the source code does and how it works, see the Script's workshop on 
the talk page.

*/

// ============== Set up ==============

// Start off with a bodyguard function to reserve the aliases mw and $
( function ( mw, $ ) {

    // we can now rely on mw and $ within the safety of our “bodyguard” function, to mean 
    // "mediawiki" and "jQuery", respectively

    // ============== ready() event listener/handler ==============
    // below is jQuery short-hand for $(document).ready(function() { ... });
    // it makes the rest of the script wait until the page's DOM is loaded and ready
    $(function() {
        
		// ============== activation filters ==============
        // Only activate on Vector skin
        if ( mw.config.get( 'skin' ) === 'vector' ) {

	        // Run this script only if "Editing " is not in the page title
			if (document.title.indexOf("Editing ") === -1) {

				// End of set up
			
        	    // =================== Prep work =====================
				
				// Variable declarations, etc., go here

            	// ================= Core program ================= 

                $( function() {

					// BODY OF PROGRAM GOES HERE

					// If on wish list page in edit mode, do this
					
						// Check localStorage for title, if there is one insert it into the page, else do nothing
						
					
					// Create linked menu item
					var portletlink = mw.util.addPortletLink('p-tb', '#', 'Add to OL wishlist', 'w-list', 'Add to outline wish list');
					// Bind click handler
					$(portletlink).click( function(e) {
						e.preventDefault();

						// Do some stuff when clicked...
						// Default parameters, and begin script on regular view of article

						// Check if in edit page, if so, prompt You must leave edit mode before making a wish

						// Prompt for title
						var title = prompt ( "Enter outline title" );

						// Save title in localstorage
						localStorage.setItem("wishtitle", title);

						// Jump to wish list page in edit mode
						// location = "https://en.wikipedia.org/wiki/Wikipedia:WikiProject_Outlines/Wish_list_(alpha)&action=edit";
						location = "https://en.wikipedia.org/w/index.php?title=Wikipedia:WikiProject_Outlines/Wish_list_(alpha)&action=edit";

						if ( title === "" ) {
							alert ( "Nothing done." );
						} else {
							// check for existence of article
							// check for existence of draft 1
							// check for existence of draft 2
							// if exist, then end with message
							// if no exist, add to wish list
							
							// place in wish list in alpha order
						}
					} );
				} );
			}
        }
    } );
}( mediaWiki, jQuery ) );

// </syntaxhighlight>