User:Villahj Ideeut/QVFD.js
From Uncyclopedia, the content-free encyclopedia
Jump to navigation
Jump to search
Note: After saving, you have to bypass your browser's cache to see the changes.
- Internet Explorer: hold down the Ctrl key and click the Refresh or Reload button, or press Ctrl+F5.
- Firefox: hold down the Shift key while clicking Reload; alternatively press Ctrl+F5 or Ctrl-Shift-R.
- Opera, Konqueror and Safari users can just click the Reload button.
- Chrome: press Ctrl+F5 or Shift+F5
// <nowiki> qvfd = {}; qvfd.addlilink = function(tabs, url, name, id) { var na = document.createElement('a'); na.href = url; na.id = id; na.appendChild(document.createTextNode(name)); var li = document.createElement('li'); li.appendChild(na); tabs.appendChild(li); return li; } qvfd.addQVFD = function() { if (document.getElementById('ca-edit')) { var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0]; qvfd.addlilink(tabs, 'javascript:qvfd.go(0)', 'QVFD', 'td-qvfd'); qvfd.addlilink(tabs, 'javascript:qvfd.go(1)', 'QVFD-C', 'td-qvfdc'); } } qvfd.debugOutput = function(str) { qvfd.output += str; qvfd.panel.setBody(qvfd.output); } qvfd.debugStatus = function(i) { var s = (i) ? 'green;"> [OK]' : 'red;"> [FAILED]'; qvfd.debugOutput('<span style="font-weight: bold;color:' + s + '</span>'); } qvfd.go = function(com) { qvfd.comment = (com) ? " - " + prompt("Comment:","") : ''; qvfd.panel = new YAHOO.widget.Panel("qvfd", { width:"240px", fixedcenter:true, draggable:true, zindex:10, modal:true, visible:false } ); qvfd.panel.setHeader('QVFDing, please wait...'); qvfd.panel.setFooter('<br /><hr>Originally by <a href="/wiki/User:Villahj_Ideeut">Villahj Ideeut</a>, modz by <a href="/wiki/User:Spang">Spang</a> and <a href="/wiki/User:Mitch_1_2">Mitch</a>') qvfd.output = ''; qvfd.debugOutput("<br />Loading QVFD page..."); qvfd.panel.render(document.body); qvfd.panel.show(); YAHOO.util.Connect.asyncRequest('GET', '/api.php?action=query&titles=Uncyclopedia:QuickVFD&prop=revisions|info|links&pllimit=500&rvprop=content&rvlimit=1&rvsection=1&format=xml&intoken=edit', qvfd.update, null); } qvfd.update = { success: function(o) { qvfd.debugStatus(1); qvfd.debugOutput("<br />Checking QVFD for selected page..."); var titles = o.responseXML.getElementsByTagName('pl'); for (lk in titles) { try { if (titles[lk].getAttribute('title') == wgPageName) { qvfd.debugStatus(0); qvfd.debugOutput('<br />Page already on QVFD!<br /><a href="javascript:qvfd.panel.hide()">Close</a>'); return; } } catch(e) {}; } qvfd.debugStatus(1); qvfd.debugOutput('<br />Page not listed, adding it now...'); try { var sectionText = o.responseXML.getElementsByTagName('rev')[0].firstChild.nodeValue; var lines = sectionText.split('\n'); var redirect = (document.getElementById('contentSub').innerHTML.indexOf('Redirect page') == -1) ? 0 : 1; if (redirect == 0) { lines.splice(1,0,' [[:' + escape(wgPageName.replace(/_/g,' ')) + ']]' + qvfd.comment); } else { lines.splice(1,0,' {{redirect|' + escape(wgPageName.replace(/_/g,' ')) + '}}' + qvfd.comment); }; sectionText = lines.join('\n'); } catch(e) { qvfd.debugStatus(0); qvfd.debugOutput('<br />Could not add text to the page!<br /><a href="javascript:qvfd.panel.hide()">Close</a>'); return; } qvfd.debugStatus(1); qvfd.debugOutput('<br />Saving page...'); var token = o.responseXML.getElementsByTagName('page')[0].getAttribute('edittoken'); var post = 'title=Uncyclopedia:QuickVFD§ion=1&token=' + encodeURIComponent(token) + '&summary=%2B[[' + encodeURIComponent(wgPageName) +']]&text=' + encodeURIComponent(sectionText); YAHOO.util.Connect.asyncRequest('POST', '/api.php?action=edit&format=xml', qvfd.saved, post); }, failure: function() { qvfd.debugStatus(0); qvfd.debugOutput('<br />Couldn\'t connect to QVFD page!<br /><a href="javascript:qvfd.panel.hide()">Close</a>'); } } qvfd.saved = { success: function(o) { qvfd.debugStatus(1); qvfd.debugOutput('<br /><b>Saved!</b><br /><a href="/wiki/Uncyclopedia:QuickVFD">Go to QVFD</a> or <br /><a href="javascript:qvfd.panel.hide()">close</a>'); }, failure: function(o) { qvfd.debugStatus(0); qvfd.debugOutput('<br /><b>Saving failed :(</b><br /><a href="/wiki/Uncyclopedia:QuickVFD">Go to QVFD</a> or <br /><a href="javascript:qvfd.panel.hide()">close</a>'); } } addOnloadHook(qvfd.addQVFD); // </nowiki>