mirror of
https://code.castopod.org/adaures/castopod
synced 2025-05-14 10:15:46 +00:00

- clarify distiction between the announcement post and the show notes - change "note" occurences in UI by "post" - show warning message explaining why the podcaster should fill the message area - the podcaster can choose to publish the episode with an empty message anyways - redirect user to episode dashboard with error message when episode publication pages are inaccessible instead of showing a 404 error - add a cancel publication button in publish-edit form when episode is scheduled closes #129
52 lines
1.5 KiB
TypeScript
52 lines
1.5 KiB
TypeScript
const PublishMessageWarning = (): void => {
|
|
const publishForm: HTMLFormElement | null = document.querySelector(
|
|
"form[data-submit='validate-message']"
|
|
);
|
|
|
|
if (publishForm) {
|
|
const messageTextArea: HTMLTextAreaElement | null = publishForm.querySelector(
|
|
"[name='message']"
|
|
);
|
|
const submitButton: HTMLButtonElement | null = publishForm.querySelector(
|
|
"button[type='submit']"
|
|
);
|
|
const publishMessageWarning: HTMLDivElement | null = publishForm.querySelector(
|
|
"[id='publish-warning']"
|
|
);
|
|
|
|
if (
|
|
messageTextArea &&
|
|
submitButton &&
|
|
submitButton.dataset.btnTextWarning &&
|
|
submitButton.dataset.btnText &&
|
|
publishMessageWarning
|
|
) {
|
|
publishForm.addEventListener("submit", (event) => {
|
|
if (
|
|
messageTextArea.value === "" &&
|
|
publishMessageWarning.classList.contains("hidden")
|
|
) {
|
|
event.preventDefault();
|
|
|
|
publishMessageWarning.classList.remove("hidden");
|
|
messageTextArea.focus();
|
|
submitButton.innerText = submitButton.dataset
|
|
.btnTextWarning as string;
|
|
}
|
|
});
|
|
|
|
messageTextArea.addEventListener("input", () => {
|
|
if (
|
|
submitButton.innerText !== submitButton.dataset.btnText &&
|
|
messageTextArea.value !== ""
|
|
) {
|
|
publishMessageWarning.classList.add("hidden");
|
|
submitButton.innerText = submitButton.dataset.btnText as string;
|
|
}
|
|
});
|
|
}
|
|
}
|
|
};
|
|
|
|
export default PublishMessageWarning;
|