You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
2.8 KiB
67 lines
2.8 KiB
extends ../layouts/main
|
|
block content
|
|
|
|
- var actionUrl = newsletter ? `/admin/newsletter/${newsletter._id}` : `/admin/newsletter`;
|
|
|
|
form(method="POST", action= actionUrl).uk-form
|
|
.uk-margin
|
|
label(for="title").uk-form-label.sr-only Newsletter title
|
|
input(id="title", name="title", type="text", placeholder= "Enter newsletter title", value= newsletter ? newsletter.title : undefined, required).uk-input
|
|
|
|
.uk-margin
|
|
label(for="summary").uk-form-label.sr-only Newsletter summary
|
|
textarea(id="summary", name="summary", rows="4", placeholder= "Enter newsletter summary (text only, no HTML)", required).uk-textarea= newsletter ? newsletter.summary : undefined
|
|
|
|
.uk-margin
|
|
label(for="content-html").uk-form-label.sr-only Newsletter HTML body
|
|
textarea(id="content-html", name="content.html", rows="4").uk-textarea= newsletter ? newsletter.content.html : undefined
|
|
|
|
.uk-margin
|
|
button(type="button", onclick="return dtp.app.copyHtmlToText(event, 'content-text');").uk-button.dtp-button-default Copy HTML to Text
|
|
|
|
.uk-margin
|
|
label(for="content-text").uk-form-label.sr-only Newsletter text body
|
|
textarea(id="content-text", name="content.text", rows="4", placeholder= "Enter text-only version of newsletter.", required).uk-textarea= newsletter ? newsletter.content.text : undefined
|
|
|
|
button(type="submit").uk-button.dtp-button-primary= newsletter ? 'Update newsletter' : 'Save newsletter'
|
|
|
|
block viewjs
|
|
script(src="/tinymce/tinymce.min.js")
|
|
script.
|
|
const useDarkMode = document.body.classList.contains('dtp-dark');
|
|
window.addEventListener('dtp-load', async ( ) => {
|
|
const toolbarItems = [
|
|
'undo redo',
|
|
'blocks visualblocks',
|
|
'bold italic backcolor',
|
|
'alignleft aligncenter alignright alignjustify',
|
|
'bullist numlist outdent indent removeformat',
|
|
'link image media code',
|
|
'help'
|
|
];
|
|
const pluginItems = [
|
|
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap',
|
|
'preview', 'anchor', 'searchreplace', 'visualblocks', 'code',
|
|
'fullscreen', 'insertdatetime', 'media', 'table',
|
|
'help', 'wordcount',
|
|
]
|
|
|
|
const editors = await tinymce.init({
|
|
selector: 'textarea#content-html',
|
|
height: 500,
|
|
menubar: false,
|
|
plugins: pluginItems.join(' '),
|
|
toolbar: toolbarItems.join('|'),
|
|
branding: false,
|
|
images_upload_url: '/image/tinymce',
|
|
image_class_list: [
|
|
{ title: 'Body Image', value: 'dtp-image-body' },
|
|
{ title: 'Title Image', value: 'dtp-image-title' },
|
|
],
|
|
convert_urls: false,
|
|
skin: useDarkMode ? "oxide-dark" : "oxide",
|
|
content_css: useDarkMode ? "dark" : "default",
|
|
});
|
|
|
|
window.dtp.app.editor = editors[0];
|
|
});
|