36 lines
923 B
JavaScript
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); |