Changed internal parser selection value from integers to a string enum.
This commit is contained in:
parent
4d53565139
commit
d9f35594e7
32 changed files with 301 additions and 213 deletions
assets/misuzu.js
|
@ -55,17 +55,16 @@ const MszForumEditor = function(form) {
|
|||
uploadElemProgressText.textContent = '';
|
||||
|
||||
const insertTheLinkIntoTheBoxEx2 = () => {
|
||||
const parserMode = parseInt(parserElem.value);
|
||||
let insertText = location.protocol + fileInfo.url;
|
||||
|
||||
if(parserMode == 1) { // bbcode
|
||||
if(parserElem.value == 'bb') { // bbcode
|
||||
if(fileInfo.isImage())
|
||||
insertText = `[img]${fileInfo.url}[/img]`;
|
||||
else if(fileInfo.isAudio())
|
||||
insertText = `[audio]${fileInfo.url}[/audio]`;
|
||||
else if(fileInfo.isVideo())
|
||||
insertText = `[video]${fileInfo.url}[/video]`;
|
||||
} else if(parserMode == 2) { // markdown
|
||||
} else if(parserElem.value == 'md') { // markdown
|
||||
if(fileInfo.isMedia())
|
||||
insertText = ``;
|
||||
}
|
||||
|
@ -181,13 +180,16 @@ const MszForumEditor = function(form) {
|
|||
const renderPreview = async (parser, text) => {
|
||||
if(typeof text !== 'string')
|
||||
return '';
|
||||
if(typeof parser !== 'string')
|
||||
return '';
|
||||
|
||||
const formData = new FormData;
|
||||
formData.append('post[mode]', 'preview');
|
||||
formData.append('post[text]', text);
|
||||
formData.append('post[parser]', parseInt(parser));
|
||||
formData.append('preview', '1');
|
||||
formData.append('text', text);
|
||||
formData.append('format', parser);
|
||||
|
||||
return (await $xhr.post('/forum/posting.php', { authed: true }, formData)).body;
|
||||
const { body } = await $xhr.post('/forum/posting.php', { authed: true }, formData);
|
||||
return body;
|
||||
};
|
||||
|
||||
const previewBtn = <button class="input__button" type="button" value="preview">Preview</button>;
|
||||
|
@ -200,8 +202,8 @@ const MszForumEditor = function(form) {
|
|||
modeElem.textContent = modeElem.dataset.original;
|
||||
modeElem.dataset.original = null;
|
||||
} else {
|
||||
const postText = textElem.value,
|
||||
postParser = parseInt(parserElem.value);
|
||||
const postText = textElem.value;
|
||||
const postParser = parserElem.value;
|
||||
|
||||
if(lastPostText === postText && lastPostParser === postParser) {
|
||||
previewElem.removeAttribute('hidden');
|
||||
|
@ -223,7 +225,7 @@ const MszForumEditor = function(form) {
|
|||
MszShowMessageBox('Failed to render preview.');
|
||||
})
|
||||
.then(body => {
|
||||
previewElem.classList.toggle('markdown', postParser === 2);
|
||||
previewElem.classList.toggle('markdown', postParser === 'md');
|
||||
|
||||
lastPostText = postText;
|
||||
lastPostParser = postParser;
|
||||
|
@ -248,28 +250,27 @@ const MszForumEditor = function(form) {
|
|||
switchButtons(parserElem.value);
|
||||
|
||||
parserElem.addEventListener('change', () => {
|
||||
const postParser = parseInt(parserElem.value);
|
||||
switchButtons(postParser);
|
||||
switchButtons(parserElem.value);
|
||||
|
||||
if(previewElem.hasAttribute('hidden'))
|
||||
return;
|
||||
|
||||
// dunno if this would even be possible, but ech
|
||||
if(postParser === lastPostParser)
|
||||
if(parserElem.value === lastPostParser)
|
||||
return;
|
||||
|
||||
parserElem.setAttribute('disabled', 'disabled');
|
||||
previewBtn.setAttribute('disabled', 'disabled');
|
||||
previewBtn.classList.add('input__button--busy');
|
||||
|
||||
renderPreview(postParser, lastPostText)
|
||||
renderPreview(parserElem.value, lastPostText)
|
||||
.catch(() => {
|
||||
previewElem.innerHTML = '';
|
||||
MszShowMessageBox('Failed to render preview.');
|
||||
})
|
||||
.then(body => {
|
||||
previewElem.classList.add('markdown', postParser === 2);
|
||||
lastPostParser = postParser;
|
||||
previewElem.classList.add('markdown', parserElem.value === 'md');
|
||||
lastPostParser = parserElem.value;
|
||||
previewElem.innerHTML = body;
|
||||
|
||||
MszEmbed.handle($queryAll('.js-msz-embed-media'));
|
||||
|
|
|
@ -29,11 +29,11 @@ const MszMessages = () => {
|
|||
return false;
|
||||
};
|
||||
|
||||
const msgsCreate = async (title, text, parser, draft, recipient, replyTo) => {
|
||||
const msgsCreate = async (title, text, format, draft, recipient, replyTo) => {
|
||||
const formData = new FormData;
|
||||
formData.append('title', title);
|
||||
formData.append('body', text);
|
||||
formData.append('parser', parser);
|
||||
formData.append('format', format);
|
||||
formData.append('draft', draft);
|
||||
formData.append('recipient', recipient);
|
||||
formData.append('reply', replyTo);
|
||||
|
@ -45,11 +45,11 @@ const MszMessages = () => {
|
|||
return body;
|
||||
};
|
||||
|
||||
const msgsUpdate = async (messageId, title, text, parser, draft) => {
|
||||
const msgsUpdate = async (messageId, title, text, format, draft) => {
|
||||
const formData = new FormData;
|
||||
formData.append('title', title);
|
||||
formData.append('body', text);
|
||||
formData.append('parser', parser);
|
||||
formData.append('format', format);
|
||||
formData.append('draft', draft);
|
||||
|
||||
const { body } = await $xhr.post(`/messages/${encodeURIComponent(messageId)}`, { type: 'json', csrf: true }, formData);
|
||||
|
@ -139,14 +139,14 @@ const MszMessages = () => {
|
|||
form.message,
|
||||
form.title,
|
||||
form.body,
|
||||
form.parser,
|
||||
form.format,
|
||||
form.draft
|
||||
);
|
||||
} else {
|
||||
result = await msgsCreate(
|
||||
form.title,
|
||||
form.body,
|
||||
form.parser,
|
||||
form.format,
|
||||
form.draft,
|
||||
form.recipient,
|
||||
form.reply || ''
|
||||
|
|
|
@ -36,12 +36,9 @@ const MszParsing = (() => {
|
|||
];
|
||||
|
||||
const getTagsFor = parser => {
|
||||
if(typeof parser !== 'number')
|
||||
parser = parseInt(parser);
|
||||
|
||||
if(parser === 1)
|
||||
if(parser === 'bb')
|
||||
return bbTags;
|
||||
if(parser === 2)
|
||||
if(parser === 'md')
|
||||
return mdTags;
|
||||
|
||||
return [];
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue