User:Daniel Case/common.js

// User scripts /* This script will place a button at the top of any NRHP county/state list that when clicked on will check and automatically fix the ordering of the numbers in the first column of the NRHP table. If no reordering is needed, a null edit will be performed. This is useful when a property has been added to or removed from the list, causing all rows below it to be off by one. function RenumberButton { if (mw.config.get('wgPageName').search("National_Register_of_Historic_Places_listings_in")==-1 && mw.config.get('wgPageName')!="User:Dudemanfellabra/Sandbox") { return }   if (location.href.indexOf('action')!=-1||location.href.indexOf('Talk:')!=-1) return var button=document.createElement("input") button.setAttribute("type", "button"); button.setAttribute("value", "Renumber list"); button.setAttribute("id", "button"); button.setAttribute("onclick", "RenumberClick"); var content=document.getElementById('mw-content-text') content.parentNode.insertBefore(button, content) } function RenumberClick { var button = document.getElementById('button') button.value = "Working..." button.disabled = true getListWikitext(mw.config.get('wgPageName')) } function getListWikitext(title) { $.getJSON(       mw.util.wikiScript('api'),        {            format: 'json',            action: 'query',            prop: 'revisions',            rvprop: 'content',            titles: title,            indexpageids: true        }    ) .done(function (data) {           var page, wikitext;            for (page in data.query.pages) {                wikitext = data.query.pages[page].revisions[0]['*'];                RenumberList(wikitext)            }        }) .fail(function {           alert('Could not get wikitext; failure.');        }); } function RenumberList(wikitext) { var splittext = wikitext.split("|}") var newwikitext = '' for (var j=0; j -1) { RowLocations.push(index); StartIndex = index + skip; }       var stop=RowLocations.length+1 var comments=splittext[j].match(/\<\!\-\-(.|[\r\n])*?\-\-\>/g) if (comments!=null) { for (var l=0; lsplittext[j].indexOf(comments[k])&&StartIndex -1) { RowLocations.push(index); StartIndex = index + skip; }       }        newwikitext+=splittext[j]+"|}" }   newwikitext+=splittext[splittext.length-1] editNRHPPage({       title: mw.config.get('wgPageName'),        text: newwikitext,        summary: 'Semi-automated renumbering of list items after addition/deletion.'    }); } function editNRHPPage(info) { $.ajax({       url: mw.util.wikiScript( 'api' ),        type: 'POST',        dataType: 'json',        async: false,        data: {            format: 'json',            action: 'edit',            title: info.title,            text: info.text,            summary: info.summary,            token: mw.user.tokens.get( 'csrfToken' )        }    }) .done (function( data ) {           if (data && data.edit && data.edit.result && data.edit.result == 'Success') {                alert("Success! Rows renumbered!")            } else {                alert("Error! Rows not renumbered! Refresh the page to try again")            }        }) .fail (function {           alert('Ajax failure.');        }); } addOnloadHook(RenumberButton); importScript('User:SD0001/W-Ping.js'); // Backlink: User:SD0001/W-Ping.js