|
|
| שורה 1: |
שורה 1: |
| 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);
| |
| }
| |
| });
| |
| }
| |