src/main/webapp/issue-editor.js

changeset 409
109850e92e95
parent 408
179bda934121
equal deleted inserted replaced
408:179bda934121 409:109850e92e95
54 issue_status.style.display = 'inline-block' 54 issue_status.style.display = 'inline-block'
55 variant_status.style.display = 'none' 55 variant_status.style.display = 'none'
56 } 56 }
57 } 57 }
58 58
59 function initMarkdownEditor(id) {
60 const btn_preview = document.getElementById(`${id}-btn-preview`);
61 const btn_edit = document.getElementById(`${id}-btn-edit`);
62 const textarea = document.getElementById(`${id}`);
63 const preview = document.getElementById(`${id}-preview`);
64 btn_preview.addEventListener('click', () => {
65 textarea.style.display = 'none';
66 preview.style.display = 'block';
67 textarea.dataset.original = textarea.value;
68 btn_preview.style.display = 'none';
69 btn_edit.style.display = 'inline-block';
70 const req = new XMLHttpRequest();
71 req.addEventListener("load", (evt) => {
72 if (evt.target.status === 200) {
73 preview.innerHTML = evt.target.responseText;
74 } else {
75 // revert the button click as fallback
76 setTimeout(() => btn_edit.click(), 100);
77 }
78 });
79 let url = baseHref + 'issues/preview-markdown';
80 req.open("POST", url);
81 req.setRequestHeader("Content-Type", "text/plain");
82 req.send(textarea.value);
83 });
84 btn_edit.addEventListener('click', () => {
85 textarea.readOnly = false;
86 textarea.value = textarea.dataset.original;
87 textarea.style.display = 'block';
88 preview.style.display = 'none';
89 textarea.focus();
90 btn_preview.style.display = 'inline-block';
91 btn_edit.style.display = 'none';
92 });
93 btn_edit.style.display = 'none';
94 preview.style.display = 'none';
95 }
96
59 window.addEventListener("load", () => { 97 window.addEventListener("load", () => {
60 toggleVariantStatus(); 98 toggleVariantStatus();
61 const sbox = document.getElementById('linkable-issues'); 99 const sbox = document.getElementById('linkable-issues');
62 if (!sbox) return; 100 if (!sbox) return;
63 configureSearchBox('linkable-issues', sbox.dataset.project); 101 configureSearchBox('linkable-issues', sbox.dataset.project);

mercurial