| @@ -29,6 +29,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | |||||
| SOFTWARE. | SOFTWARE. | ||||
| */ | */ | ||||
| // <nowiki> | |||||
| var dependencies = [ | var dependencies = [ | ||||
| "mediawiki.api", | "mediawiki.api", | ||||
| "mediawiki.ui", | "mediawiki.ui", | ||||
| @@ -333,6 +335,26 @@ TFD.prototype._is_merge = function() { | |||||
| .text() == "Propose merging"; | .text() == "Propose merging"; | ||||
| }; | }; | ||||
| TFD.prototype._get_close_action_choices = function() { | |||||
| // TODO | |||||
| return [{ | |||||
| id: "none", | |||||
| name: "Do nothing", | |||||
| help: "The script will not modify this template or pages related to " + | |||||
| "it. You will need to carry out the closure yourself.", | |||||
| on_select: null, | |||||
| on_close: null, | |||||
| default: true | |||||
| }, { | |||||
| id: "holding-cell", | |||||
| name: "Move to holding cell", | |||||
| help: "The script will add {{being deleted}} to the template and " + | |||||
| "add an entry to the holding cell ([[WP:TFD/H]]).", | |||||
| on_select: null, | |||||
| on_close: null | |||||
| }]; | |||||
| }; | |||||
| TFD.prototype._on_close_result_change = function() { | TFD.prototype._on_close_result_change = function() { | ||||
| this._unblock_submit("no-close-result"); | this._unblock_submit("no-close-result"); | ||||
| // TODO: possibly disable/enable individual close actions | // TODO: possibly disable/enable individual close actions | ||||
| @@ -457,6 +479,7 @@ TFD.prototype._load_backlink_summary = function(page, tlinfo) { | |||||
| }; | }; | ||||
| TFD.prototype._build_close_action_entry = function(page) { | TFD.prototype._build_close_action_entry = function(page) { | ||||
| var self = this; | |||||
| var redlink = this.head.nextUntil("h4").filter("ul").first() | var redlink = this.head.nextUntil("h4").filter("ul").first() | ||||
| .find("a").filter(function() { return $(this).text() == page; }) | .find("a").filter(function() { return $(this).text() == page; }) | ||||
| .hasClass("new"); | .hasClass("new"); | ||||
| @@ -465,6 +488,32 @@ TFD.prototype._build_close_action_entry = function(page) { | |||||
| .append(this._build_loading_node("li", "Fetching transclusions")); | .append(this._build_loading_node("li", "Fetching transclusions")); | ||||
| this._load_backlink_summary(page, tlinfo); | this._load_backlink_summary(page, tlinfo); | ||||
| var select_extra = $("<span/>"); | |||||
| var help = $("<abbr/>", {text: "?"}); | |||||
| var select = $("<select/>", { | |||||
| disabled: redlink, | |||||
| change: function() { | |||||
| var option = select.find("option:selected"); | |||||
| help.prop("title", option.data("help")); | |||||
| if (option.data("select")) | |||||
| option.data("select").call(self, select_extra); | |||||
| } | |||||
| }); | |||||
| $.each(this._get_close_action_choices(), function(i, choice) { | |||||
| select.append($("<option/>", { | |||||
| value: choice.id, | |||||
| text: choice.name, | |||||
| selected: choice.default | |||||
| }).data({ | |||||
| help: choice.help, | |||||
| select: choice.on_select, | |||||
| close: choice.on_close | |||||
| })); | |||||
| if (choice.default) | |||||
| help.prop("title", choice.help); | |||||
| }); | |||||
| return $("<li/>").append($("<a/>", { | return $("<li/>").append($("<a/>", { | ||||
| href: mw.util.getUrl(page), | href: mw.util.getUrl(page), | ||||
| title: page, | title: page, | ||||
| @@ -472,18 +521,11 @@ TFD.prototype._build_close_action_entry = function(page) { | |||||
| addClass: redlink ? "new" : "", | addClass: redlink ? "new" : "", | ||||
| style: "font-weight: bold;" | style: "font-weight: bold;" | ||||
| })).append($("<span/>", {text: ": "})) | })).append($("<span/>", {text: ": "})) | ||||
| .append($("<select/>", {disabled: redlink}) // TODO: fully implement | |||||
| .append($("<option/>", { | |||||
| value: "none", | |||||
| text: "Do nothing", | |||||
| selected: true | |||||
| })) | |||||
| .append($("<option/>", { | |||||
| value: "holding-cell", | |||||
| text: "Move to holding cell" | |||||
| }))) | |||||
| // TODO: action-specific additional options here | |||||
| .append($("<span/>", {text: " (?) ("})) // TODO: action help here | |||||
| .append(select) | |||||
| .append(select_extra) | |||||
| .append($("<span/>", {text: " ("})) | |||||
| .append(help) | |||||
| .append($("<span/>", {text: ") ("})) | |||||
| .append($("<div/>", {addClass: "hlist", style: "display: inline;"}) | .append($("<div/>", {addClass: "hlist", style: "display: inline;"}) | ||||
| .append(tlinfo)) | .append(tlinfo)) | ||||
| .append($("<span/>", {text: ")"})); | .append($("<span/>", {text: ")"})); | ||||
| @@ -662,3 +704,5 @@ $(TFDClerk.install); | |||||
| }); | }); | ||||
| } | } | ||||
| // </nowiki> | |||||