User:Ashlux/test.js
From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Firefox/Mozilla/Safari: hold down Shift while clicking Reload (or press Ctrl-Shift-R), Internet Explorer: press Ctrl-F5, Opera/Konqueror: press F5.
////////////////////////////////////////// // Tabs by Korath // returns <li><a href="url">name</a></li> ////////////////////////////////////////// /**** Add tab as menu ****/ /**** The CSS for this to work is on the talk page. ****/ function addlimenu(tabs, name, id) { var na = document.createElement('a'); na.href = ''; var mn = document.createElement('ul'); na.appendChild(document.createTextNode(name)); var li = document.createElement('li'); if(id) li.id = id; li.className = 'tabmenu'; li.appendChild(na); li.appendChild(mn); tabs.appendChild(li); return li; } /**** Add generic tab ****/ function addlilink(tabs, url, name, id){ var na = document.createElement('a'); na.href = url; na.appendChild(document.createTextNode(name)); var li = document.createElement('li'); li.id = id; li.appendChild(na); tabs.appendChild(li); return li; } ////////////////////////////////////////// // // Init everything // ////////////////////////////////////////// /**** Generic custom talk message ****/ function autoMessage(msgtext, summary, saveopt, top) { var txt = document.editform.wpTextbox1; document.editform.wpSummary.value = summary; if(txt.value.length > 0) txt.value += '\n'; if (top == 'true') { txt.value = msgtext + txt.value; } else { txt.value += msgtext; } if(saveopt == 'save') { document.editform.submit(); } else if(saveopt == 'preview') { document.editform.wpPreview.click(); } else if(saveopt == 'diff') { document.editform.wpDiff.click(); } } function autoWikiProjectTemplateOnTalkPage() { if (document.title.indexOf('Editing ') == 0) { var action = ''; var target = ''; if (location.search) { var l = location.search.substring(1).split('&'); for (var i = 0; i < l.length; ++i) { var eq = l[i].indexOf('='); var name = l[i].substring(0, eq); if (name == 'fakeaction') { action = l[i].substring(eq + 1); } else if (name == 'faketarget') { target = unescape(l[i].substring(eq + 1)).replace(/_/g, ' '); } } // end for } // end if "location.search" if (action == 'addtemplatetotop') { autoMessage("{{WikiProject Oklahoma}}\n", "Add to [[Wikipedia:WikiProject Oklahoma]]", "preview", "true"); } else if (action == 'addtorelatedchanges') { autoMessage("* [[" + target + "]]\n", "Add " + target + " to recent changes list", "preview", "false"); } // end if "action" } // end if "Editing" } function wikiProjectTemplateOnTalkPage() { // TODO: THIS WILL NOT WORK FOR ALL LANGUAGES! var pagename = document.title.replace(" - Wikipedia, the free encyclopedia", ""); var target = pagename; window.open('/w/index.php?title=Talk:' + pagename + '&action=edit&fakeaction=addtemplatetotop&faketarget=' + target, pagename + ' add template', 'status,toolbar,location,menubar,directories,resizeable,scrollbars'); http://en.wikipedia.org/w/index.php?title=Wikipedia:WikiProject_Oklahoma/Oklahoma_recent_changes&action=edit window.open('/w/index.php?title=Wikipedia:WikiProject_Oklahoma/Oklahoma_recent_changes' + '&action=edit&fakeaction=addtorelatedchanges&faketarget=' + pagename, pagename + ' add to recent changes', 'status,toolbar,location,menubar,directories,resizeable,scrollbars'); } function asdf() { // these will be replaced... var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0]; addlilink(tabs, 'javascript:wikiProjectTemplateOnTalkPage()', '{{WP:OK}}', ''); // addlilink(tabs, 'http://www.ashlux.com/', 'Ashlux.com', 'ashlux.com'); // addlimenu(tabs, 'bcrat', 'bfunc'); // var bfunc = document.getElementById('bfunc').getElementsByTagName('ul')[0]; // addlilink(bfunc, 'asdf', 'make sysop', 'sysop'); } addOnloadHook(asdf); if (window.addEventListener) window.addEventListener('load', autoWikiProjectTemplateOnTalkPage, false); else if (window.attachEvent) window.attachEvent('onload', autoWikiProjectTemplateOnTalkPage);