docbrown/app/javascript/admin/controllers/article_pinned_modal_controller.js
Kushal Niroula 87244c345c
Fix: cannot unpin articles using checkbox (#15090)
Co-authored-by: rhymes <github@rhymes.dev>
Co-authored-by: Arit Amana <msarit@gmail.com>
2021-11-02 13:50:56 -04:00

43 lines
1.1 KiB
JavaScript

import ModalController from './modal_controller';
export default class ArticlePinnedModalController extends ModalController {
static targets = ['title', 'pinnedAt', 'pinnedCheckbox'];
static values = {
cancelButtonId: String,
okButtonId: String,
};
pinArticleForm;
openModal(event) {
const { article, pinArticleForm } = event.detail;
// set the pinArticleForm
this.pinArticleForm = pinArticleForm;
// update the modal's HTML with the data coming from the server
this.titleTarget.setAttribute('href', article.path);
this.titleTarget.innerText = article.title;
this.pinnedAtTarget.setAttribute('datetime', article.pinned_at);
const time = new Date(article.pinned_at);
const localizedTime = new Intl.DateTimeFormat('default', {
dateStyle: 'full',
timeStyle: 'short',
}).format(time);
this.pinnedAtTarget.setAttribute('title', localizedTime);
this.pinnedAtTarget.textContent = localizedTime;
// open the Preact modal
this.toggleModal();
}
unPinAndCloseModal() {
this.closeModal();
}
pinAndCloseModal() {
this.pinArticleForm.submit();
this.closeModal();
}
}