Mercurial > hgrepos > hgweb.cgi > s4
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)) { |