|
|
@@ -107,6 +107,18 @@ Date.prototype.toDatePickerFormat = function() { |
|
|
|
return this.toISOString().slice(0, 10); |
|
|
|
} |
|
|
|
|
|
|
|
Date.prototype.toLogDateFormat = function() { |
|
|
|
if (isNaN(this.valueOf())) |
|
|
|
return null; |
|
|
|
|
|
|
|
var months = [ |
|
|
|
"January", "February", "March", "April", "May", "June", "July", |
|
|
|
"August", "September", "October", "November", "December"]; |
|
|
|
|
|
|
|
var month = months[this.getUTCMonth()]; |
|
|
|
return this.getUTCFullYear() + " " + month + " " + this.getUTCDate(); |
|
|
|
} |
|
|
|
|
|
|
|
TFD.prototype._block_submit = function(reason) { |
|
|
|
if (this._submit_blockers.indexOf(reason) < 0) |
|
|
|
this._submit_blockers.push(reason); |
|
|
@@ -428,23 +440,51 @@ TFD.prototype._add_close_actions = function() { |
|
|
|
}; |
|
|
|
|
|
|
|
TFD.prototype._get_relist_date = function() { |
|
|
|
var months = [ |
|
|
|
"January", "February", "March", "April", "May", "June", "July", |
|
|
|
"August", "September", "October", "November", "December"]; |
|
|
|
|
|
|
|
var date = new Date($("#tfdclerk-date-" + this.id).val()); |
|
|
|
var month = months[date.getUTCMonth()]; |
|
|
|
return date.getUTCFullYear() + " " + month + " " + date.getUTCDate(); |
|
|
|
return new Date(this.box.find(".tfdclerk-date").val()).toLogDateFormat(); |
|
|
|
}; |
|
|
|
|
|
|
|
TFD.prototype._on_date_change = function() { |
|
|
|
var date = this._get_relist_date(); |
|
|
|
var this_date = mw.config.get("wgTitle").split("/Log/")[1]; |
|
|
|
var title = "Wikipedia:Templates for discussion/Log/" + date; |
|
|
|
var info = this.box.find(".tfdclerk-discussion-info"); |
|
|
|
info.empty(); |
|
|
|
|
|
|
|
if (date == null || date == this_date) |
|
|
|
this._block_submit("bad-date"); |
|
|
|
if (mw.config.get("wgTitle") == "Templates for discussion") |
|
|
|
var this_date = this.head.prevAll().filter("h3").first().find("a") |
|
|
|
.prop("title").split("/Log/")[1]; |
|
|
|
else |
|
|
|
this._unblock_submit("bad-date"); |
|
|
|
var this_date = mw.config.get("wgTitle").split("/Log/")[1]; |
|
|
|
|
|
|
|
if (date == null || date == this_date) { |
|
|
|
this._block_submit("bad-date"); |
|
|
|
info.append($("<span/>", { |
|
|
|
text: date == this_date ? "Same as current date" : "Invalid date", |
|
|
|
style: "color: #A00;" |
|
|
|
})); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
this._unblock_submit("bad-date"); |
|
|
|
this._block_submit("checking-discussion"); |
|
|
|
info.append(this._build_loading_node("span", "Checking discussion")); |
|
|
|
|
|
|
|
TFDClerk.api_get(this, { |
|
|
|
action: "query", |
|
|
|
indexpageids: "", |
|
|
|
titles: title |
|
|
|
}, function(data) { |
|
|
|
this._unblock_submit("checking-discussion"); |
|
|
|
info.empty().append($("<span/>", {text: "Log: "})).append($("<a/>", { |
|
|
|
href: mw.util.getUrl(title), |
|
|
|
title: title, |
|
|
|
text: date, |
|
|
|
addClass: data.query.pageids[0] < 0 ? "new" : "" |
|
|
|
})); |
|
|
|
if (date == (new Date().toLogDateFormat())) |
|
|
|
info.append($("<span/>", {text: " (today)"})); |
|
|
|
}, function(error) { |
|
|
|
this._error("API query failure", error); |
|
|
|
}); |
|
|
|
}; |
|
|
|
|
|
|
|
TFD.prototype.close = function() { |
|
|
@@ -498,11 +538,15 @@ TFD.prototype.relist = function() { |
|
|
|
}), |
|
|
|
$("<input/>", { |
|
|
|
id: "tfdclerk-date-" + this.id, |
|
|
|
addClass: "tfdclerk-date", |
|
|
|
name: "date", |
|
|
|
type: "date", |
|
|
|
value: new Date().toDatePickerFormat(), |
|
|
|
change: function() { self._on_date_change(); } |
|
|
|
}) |
|
|
|
}).add($("<span/>", { |
|
|
|
addClass: "tfdclerk-discussion-info", |
|
|
|
style: "margin-left: 0.5em; vertical-align: middle;" |
|
|
|
})) |
|
|
|
], |
|
|
|
[ |
|
|
|
$("<label/>", { |
|
|
@@ -518,6 +562,7 @@ TFD.prototype.relist = function() { |
|
|
|
}) |
|
|
|
] |
|
|
|
]); |
|
|
|
this._on_date_change(); |
|
|
|
}); |
|
|
|
}; |
|
|
|
|
|
|
|