comparison 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
comparison
equal deleted inserted replaced
959:193d9d2ed9c9 960:0d9caeab3d81
711 preview.addEventListener("keydown", dismiss, false); 711 preview.addEventListener("keydown", dismiss, false);
712 MathJax.typesetPromise([pre]); 712 MathJax.typesetPromise([pre]);
713 pjaxHistoryPush(preview); 713 pjaxHistoryPush(preview);
714 btn.focus(); 714 btn.focus();
715 } 715 }
716 function helpMarkdownAt(e) {
717 var area = e.target, pos = area.selectionStart;
718 if (pos == 0) {
719 area.value = "@all" + area.value;
720 area.selectionStart = area.selectionEnd = 4;
721 dispInfoMomentary("@all で全員に通知します", area.parentNode);
722 e.preventDefault();
723 }
724 }
716 function helpMarkdown(e) { 725 function helpMarkdown(e) {
717 switch (e.key) { 726 switch (e.key) {
718 case "Backspace": helpMarkdownBS(e); break; 727 case "Backspace": helpMarkdownBS(e); break;
719 case "Enter": helpMarkdownEnter(e); break; 728 case "Enter": helpMarkdownEnter(e); break;
720 case "(": helpMarkdownParen(e); break; 729 case "(": helpMarkdownParen(e); break;
721 case "p": if (e.metaKey) helpMarkdownPreview(e.target); break; 730 case "p": if (e.metaKey) helpMarkdownPreview(e.target); break;
722 case "{": helpMarkdownBrace(e); break; 731 case "{": helpMarkdownBrace(e); break;
723 case "}": helpMarkdownBraceClose(e); break; 732 case "}": helpMarkdownBraceClose(e); break;
733 case "@": helpMarkdownAt(e); break;
724 } 734 }
725 } 735 }
726 /* Init event listeners */ 736 /* Init event listeners */
727 function addFileInput() { 737 function addFileInput() {
728 var inpfile = collectElementsByAttr("input", "name", "image"); 738 var inpfile = collectElementsByAttr("input", "name", "image");
808 warnFileSize(document.forms[0]); 818 warnFileSize(document.forms[0]);
809 }, false) 819 }, false)
810 } 820 }
811 // Hack article_m links 821 // Hack article_m links
812 registPjaxViewers(document.querySelectorAll("a[href]")); 822 registPjaxViewers(document.querySelectorAll("a[href]"));
823 // Enclose "@all" with span
824 for (i of document.querySelectorAll("td.repl")) {
825 let ii = i.innerHTML;
826 if (ii.startsWith("@all")) {
827 ii = ii.replace(/^@all/,'<div class="atall">@all</div>');
828 i.innerHTML = ii;
829 }
830 }
813 } 831 }
814 function initGrpAction() { 832 function initGrpAction() {
815 var rev = document.getElementById("reverse"); 833 var rev = document.getElementById("reverse");
816 if (!rev) return; // Is not grpAction page 834 if (!rev) return; // Is not grpAction page
817 if (rev.tagName.match(/span/i)) { 835 if (rev.tagName.match(/span/i)) {

yatex.org