48 lines
1.3 KiB
JavaScript
48 lines
1.3 KiB
JavaScript
import model from "./model";
|
|
import view from "./view";
|
|
|
|
const controller = {
|
|
async init() {
|
|
const addReaderModal = document.getElementById("addReaderModal");
|
|
addReaderModal.addEventListener("show.bs.modal", async () => {
|
|
try {
|
|
const users = await model.getUsers();
|
|
view.renderUsersOptions(users);
|
|
} catch (err) {
|
|
alert(err.message);
|
|
}
|
|
});
|
|
},
|
|
|
|
async loadAuthors() {
|
|
const authors = await model.getAuthors();
|
|
view.renderAuthorsOptions(authors);
|
|
},
|
|
|
|
async loadBooks() {
|
|
const books = await model.getBooks();
|
|
view.renderBooks(books);
|
|
},
|
|
|
|
async handleAddBook(bookData) {
|
|
await model.addBook(bookData);
|
|
await this.loadBooks();
|
|
view.resetAddBookForm();
|
|
},
|
|
|
|
async handleOpenAddReaderModal(bookId) {
|
|
const users = await model.getUsers();
|
|
view.renderUsersOptions(users);
|
|
view.setCurrentBookId(bookId);
|
|
},
|
|
|
|
async handleAddReader(userId) {
|
|
const bookId = view.getCurrentBookId();
|
|
await model.addReaderToBook(userId, bookId);
|
|
// Можно обновить UI, например, обновить список читателей
|
|
view.hideAddReaderModal();
|
|
},
|
|
};
|
|
|
|
export default controller;
|