לדלג לתוכן

משתמש:רובין בוט/ניסוי.js

מתוך חב"דפדיה, אנציקלופדיה חב"דית חופשית

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

  • פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
  • גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
  • אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
console.log('סקריפט הערות שוליים נטען');
if (
	mw.config.get('wgNamespaceNumber') === 0 &&
	($.inArray(mw.config.get('wgAction'), ["edit", "submit"]) + 1)
) {
	$('#wpSave, #btnCheckTool, #wpPreview').on('click', function (e) {
		var text = $('#wpTextbox1').val();
		var hiddenSectionInput = $("form#editform>[name=wpSection]");
		if (
			mw.util.getParamValue('section') || // עריכת פסקה בלבד
			hiddenSectionInput.length === 0 || // לא ניתן לדעת אם זו פסקה
			hiddenSectionInput.val() || // אכן פסקה
			mw.user.options.get('gadget-wikied') || // בעיה ידועה עם Wikied
			/\{\{מיון/.test(text) // תבניות העלולות להכיל <ref> בעצמן
		)
			return;

		var hasRef = /<ref\b|\{\{\s*(msg:|הכללה:|subst:|ס:)?\s*(template:|תבנית:)?\s*הערה\s*\|/i.test(text);
		var hasReferences = /<references[^<]*\/>|\{\{\s*(template:|תבנית:)?\s*(הערות[ _]שוליים|reflist)\s*[\}\|]/i.test(text);

		if (hasRef === hasReferences)
			return;

		var warning, doInsert = false;
		if (hasRef && !hasReferences) {
			warning =
				"הדף מכיל הערות שוליים אך חסרה תבנית {{הערות שוליים}}.\n\nהאם תרצו שאוסיף את התבנית אוטומטית לפני הקטגוריות?";
			doInsert = true;
		} else {
			warning = "בדף יש תבנית {{הערות שוליים}} אך לא נמצאו הערות שוליים (ref).";
		}

		if (this.id === "wpSave") {
			if (!confirm(warning + (doInsert ? "\n\n(ניתן לשנות את המיקום לאחר מכן.)" : ""))) {
				e.preventDefault();
				return;
			}
			if (doInsert) {
				var newText = text;
				var footnotes = "\n\n{{הערות שוליים}}";
				// לפני הקטגוריות
				var catRegex = /\n(\[\[קטגוריה:[^\]]+\]\])/i;
				var navRegex = /\n({{תבניות ניווט[^}]*}})/i;
				if (catRegex.test(newText)) {
					newText = newText.replace(catRegex, footnotes + "\n$1");
				} else if (navRegex.test(newText)) {
					newText = newText.replace(navRegex, footnotes + "\n$1");
				} else {
					newText += footnotes;
				}
				$('#wpTextbox1').val(newText);
			}
		} else {
			alert(warning);
		}
	});
}