Jump to content

User:The Transhumanist/ScriptCreator.js

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by The Transhumanist (talk | contribs) at 02:47, 7 October 2017 (place functions for page processing). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
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)

CreateScript.js = 

Development notes:
* should not work if on an edit page - done
* should only work after a menu item is clicked - done
* Declare a variable for script's mode
* Declare a variable for script page title
* Declare a variable for script's talk page title
* Specify script title, then press enter.
* Set script title variable
* Set script talk page title variable
* If script page exists, skip this section
* Create script page in edit mode
* Add script template
* Manual save?
* If script talk page exists, clear local storage and terminate script
* Create script talk page in edit mode
* Add talk page template
* Manual save?

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' ) {

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

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

                $( function() {

					// Detect script edit page and call function (needs variable for script edit page name)
					if (document.title.indexOf("Editing ") === -1) {
						// call function
					}

					// Process script talk edit page and call function (needs variable for script talk edit page name)
					if (document.title.indexOf("Editing ") === -1) {
						// call function
					}

					// Main body of program (waiting for menu click
					
			        // Run this script only if "Editing " is not in the page title
					if (document.title.indexOf("Editing ") === -1) {

						// Create linked menu item
						var portletlink = mw.util.addPortletLink('p-tb', '#', 'Create script', 'cr-script', 'Start new script and workshop page');
						// 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 scripttitle = prompt ( "Enter name of script you would like to create" );

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

							// Create script page
							location = "https://en.wikipedia.org/w/index.php?title=Wikipedia:WikiProject_Outlines/Wish_list_(alpha)&action=edit";

						} );
					}

					// function scriptEditPage goes here
					function () {
					}
										
					// function scriptTalkEditPage goes here
					function () {
					}
				} );

        }	
    } );
}( mediaWiki, jQuery ) );

// </syntaxhighlight>