הערה: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.

  • פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
  • גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
  • אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
$(() => {
	
	"use strict";
	
	const $hiddenText = $(".discussion_page_hidden_text");
	if (!$hiddenText.length) {
		return;
	}
	
	$hiddenText.css("cursor", "pointer").on("click", async () => {
		await mw.loader.using(["oojs-ui-windows", "mediawiki.storage"]);
		
		const messageDialog = new OO.ui.MessageDialog();
		const windowManager = new OO.ui.WindowManager();
		$(document.body).append(windowManager.$element);
		windowManager.addWindows([messageDialog]);
		
		const $dialogContent =
			$("<div>").css({
				display: "flex",
				flexDirection: "column",
				alignItems: "center",
				gap: ".8rem"
			}).append(
				$("<label>", {
					"for": "discussion_page_hidden_text_dialog_date",
					text: "נא לבחור תאריך:"
				}),
				$("<input>", {
					type: "date",
					id: "discussion_page_hidden_text_dialog_date",
					value:
						mw.storage.get("wp_discussion_page_hidden_text_date") ||
						"2022-05-10"
				})
			);
		
		const openWindow = windowManager.openWindow(messageDialog, {
			message: $dialogContent
		});
		
		let selectedDate;
		
		openWindow.opening.done(data => {
			const $dateInput =
				$(data.message[0]).find("#discussion_page_hidden_text_dialog_date");
			selectedDate = $dateInput.val();
			$dateInput.on("change", () => {
				selectedDate = $dateInput.val();
			});
		});
		
		openWindow.closing.done(async (data) => {
			if (data && data.action === "accept" && selectedDate) {
				await mw.loader.using("mediawiki.util");
				
				open(mw.util.getUrl(null, {
					action: "history",
					"date-range-to": selectedDate
				}));
				
				mw.storage.set(
					"wp_discussion_page_hidden_text_date",
					selectedDate
				);
			}
			
			windowManager.$element.remove();
		});
	});
	
});