From 54ae1fdbc4055861688b32c80ebe9c5e6e7541b8 Mon Sep 17 00:00:00 2001 From: Ben Kurtovic Date: Mon, 17 Aug 2015 21:39:19 -0400 Subject: [PATCH] Start API stuff. Fix some styling issues. --- tfdclerk.js | 86 +++++++++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 67 insertions(+), 19 deletions(-) diff --git a/tfdclerk.js b/tfdclerk.js index 766b86d..2d066aa 100644 --- a/tfdclerk.js +++ b/tfdclerk.js @@ -28,13 +28,17 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -mw.loader.using(["mediawiki.ui", "jquery.ui.core"], function() { - if (mw.config.get("wgNamespaceNumber") != 4 || ( +mw.loader.using(["mediawiki.api", "mediawiki.ui", "jquery.ui.core"], function() { + if (mw.config.get("wgAction") != "view" || + mw.config.get("wgIsProbablyEditable") != true || + mw.config.get("wgRevisionId") != mw.config.get("wgCurRevisionId") || + mw.config.get("wgNamespaceNumber") != 4 || ( mw.config.get("wgTitle") != "Templates for discussion" && mw.config.get("wgTitle").indexOf("Templates for discussion/Log/2") != 0)) return; TFDClerk = { + api: new mw.Api(), sysop: $.inArray("sysop", mw.config.get("wgUserGroups")) >= 0, counter: 1 }; @@ -54,6 +58,26 @@ mw.loader.using(["mediawiki.ui", "jquery.ui.core"], function() { head.removeData("guard"); }; + TFDClerk._get_section = function(head) { + var url = head.find(".mw-editsection a").first().prop("href"); + var match = url.match(/section=(.*?)(\&|$)/); + return match ? match[1] : null; + }; + + TFDClerk._error = function(box, msg, extra) { + var elem = $("", { + text: "Error: " + (extra ? msg + ": " : msg), + style: "color: #A00;" + }); + if (extra) + elem.append($("", { + text: extra, + style: "font-family: monospace;" + })); + elem.insertAfter(box.find("h5")); + $("#" + box.prop("id") + "-submit").prop("disabled", true); + }; + TFDClerk._remove_option_box = function(box) { var head = box.prev("h4"); box.remove(); @@ -61,17 +85,23 @@ mw.loader.using(["mediawiki.ui", "jquery.ui.core"], function() { }; TFDClerk._add_option_box = function(head, verb, title, callback, options) { + var box_id = "tfdclerk-" + verb + "-box-" + TFDClerk.counter++; var box = $("
", { - id: "tfdclerk-" + verb + "-box-" + TFDClerk.counter++, + id: box_id, addClass: "tfdclerk-" + verb + "-box" }) .css("border", "1px solid #AAA") + .css("color", "#000") .css("background-color", "#F9F9F9") .css("margin", "0.5em 0") .css("padding", "1em") - .append($("
", {text: title, style: "padding-top: 0;"})); - options(box, head, box.prop("id") + "-"); + .append($("
", { + text: title, + style: "margin: 0; padding: 0 0 0.25em 0;" + })); + options(box, head, box_id + "-"); box.append($("