Files
PIbd-21_Permyakov_R.G._IP/components/news/board/controller.js

36 lines
923 B
JavaScript

import BoardModel from "./model";
import BoardView from "./view";
class BoardElement extends HTMLElement {
constructor() {
super();
const editCallback = this.editNews.bind(this);
const deleteCallback = this.deleteNews.bind(this);
this.view = new BoardView(this, editCallback, deleteCallback);
this.model = new BoardModel();
}
connectedCallback() {
this.view.render(this.model);
this.getAllNews();
}
async getAllNews() {
await this.model.getAll();
this.view.update(this.model);
}
editNews(item) {
window.location.href = `/news?id=${item.id}`;
}
async deleteNews(item) {
if (await this.view.deleteQuestion(item)) {
await this.model.delete(item);
this.view.successToast();
this.getAllNews();
}
}
}
customElements.define("news-board", BoardElement);