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 23:48, 7 October 2017 (move conditional to the setup section). 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' ) {

	        // 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

				var scriptCreatorMode = localStorage.getItem("ScriptCreatorMode");
				var scriptTitle = localStorage.getItem("ScriptTitle")

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

                $( function() {

					// Detect script creation page and call function
					if (document.title.indexOf(`Creating User:The Transhumanist/${scriptTitle}`) != -1) {

						If (ScriptCreatorMode === CreateScriptPage) {

							// Call function
							fillScriptPage();
						}
					}

					// Detect script workshop (talk page) creation page and call function
					if (document.title.indexOf(`Creating User talk:The Transhumanist/${scriptTitle}`) != -1) {

						If (ScriptCreatorMode === CreateScriptTalkPage) {

							// Call function
							fillScriptTalkPage();
						}
					}


					// Main body of program (waits for menu click)
					
					// 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

						// Prompt for title
						scriptTitle = prompt ( "Enter name of script you would like to create" );

						// Set mode and save title in localstorage
						localStorage.setItem("ScriptCreatorMode", "CreateScriptPage");
						localStorage.setItem("ScriptTitle", scriptTitle);

						// Create script page
						location = `https://en.wikipedia.org/w/index.php?title=User:The_Transhumanist/${scriptTitle}&action=edit`;

					} );

					// function fillScriptPage goes here
					function fillScriptPage() {

						// Add template to page
						
						// Save page 
						
						// Create script talk page
						// need variable for title in the curlies {}
						location = `https://en.wikipedia.org/w/index.php?title=User_talk:The_Transhumanist/${}&action=edit`;
					}
										
					// function scriptTalkEditPage goes here
					function fillScriptTalkPage() {

						// clear localstorages (both of them)
					}
				} );
			}
        }	
    } );
}( mediaWiki, jQuery ) );

// </syntaxhighlight>