diff s4-main.js @ 960:0d9caeab3d81 draft

Instant notify by "@all" sign at the beginning of article.
author HIROSE Yuuji <yuuji@gentei.org>
date Sat, 29 Jan 2022 10:41:41 +0900
parents 193d9d2ed9c9
children 759070ee3d20
line wrap: on
line diff
--- a/s4-main.js	Fri Dec 24 08:39:25 2021 +0900
+++ b/s4-main.js	Sat Jan 29 10:41:41 2022 +0900
@@ -713,6 +713,15 @@
 	pjaxHistoryPush(preview);
 	btn.focus();
     }
+    function helpMarkdownAt(e) {
+	var area = e.target, pos = area.selectionStart;
+	if (pos == 0) {
+	    area.value = "@all" + area.value;
+	    area.selectionStart = area.selectionEnd = 4;
+	    dispInfoMomentary("@all で全員に通知します", area.parentNode);
+	    e.preventDefault();
+	}
+    }
     function helpMarkdown(e) {
 	switch (e.key) {
 	case "Backspace": helpMarkdownBS(e); break;
@@ -721,6 +730,7 @@
 	case "p":  if (e.metaKey) helpMarkdownPreview(e.target); break;
 	case "{":  helpMarkdownBrace(e); break;
 	case "}":  helpMarkdownBraceClose(e); break;
+	case "@":  helpMarkdownAt(e); break;
 	}
     }
     /* Init event listeners */
@@ -810,6 +820,14 @@
 	}
 	// Hack article_m links
 	registPjaxViewers(document.querySelectorAll("a[href]"));
+	// Enclose "@all" with span
+	for (i of document.querySelectorAll("td.repl")) {
+	    let ii = i.innerHTML;
+	    if (ii.startsWith("@all")) {
+		ii = ii.replace(/^@all/,'<div class="atall">@all</div>');
+		i.innerHTML = ii;
+	    }
+	}
     }
     function initGrpAction() {
 	var rev = document.getElementById("reverse");

yatex.org