class entryModal extends serverFetch { constructor(image) { super(); this.image = image; console.log(this.image); this.modal = document.querySelector('#modal'); this.openModal(); } async openModal() { let url; if(backend.status == "deleted"){ url = '/backend/modal/' + this.image.id + '/deleted'; } else{ url = '/backend/modal/' + this.image.id; } let modalContentElement = document.querySelector('.modal-content'); let modal = new bootstrap.Modal(document.getElementById('modal')); await this.makeFetch(url, modalContentElement); modal.show() let modalBackdrop = document.querySelectorAll(".modal-backdrop"); if(modalBackdrop && modalBackdrop.length > 1){ modalBackdrop[0].remove(); } this.iniModal(); console.log("nach dem fetch"); //loading conversations updateConvModal(this.image.id) } iniModal() { this.iniTags(); this.iniButtons(); } //-----------// iniTags() { this.newTagInput = document.querySelector('#newTag'); this.newTagInput.addEventListener("keydown", (event) => { if (event.key === "Enter") { event.preventDefault(); this.addTag(); } }); this.tags = document.querySelectorAll('[name="tag[]"]'); this.tags.forEach(function (element) { element.addEventListener("change", function (e) { element.type = "hidden"; element.setAttribute("name", "del_tags[]"); let inputId = element.id; let label = document.querySelector('label[for="' + inputId + '"]'); label.style.display = "none"; }); }); } addTag() { this.newTagInput = document.querySelector('#newTag'); if (this.newTagInput.value !== "") { let tag = this.newTagInput.value; let container = document.querySelector('#tagsContainer'); let tagInput = `` + `` container.insertAdjacentHTML('beforeend', tagInput); this.newTagInput.value = ''; } } iniButtons(){ this.saveButton = this.modal.querySelector('#saveButton'); this.saveandnextButton = this.modal.querySelector("#saveAndNext"); this.deleteButton = this.modal.querySelector('#deleteButton'); console.log(this.deleteButton); this.saveButton.addEventListener("click", () =>{ this.save(); }); this.saveandnextButton.addEventListener("click", () =>{ this.save(true); }) this.deleteButton.addEventListener("click", ()=>{ this.delete(); }) } async save(next=false) { this.form = document.querySelector("#modalForm"); let formData = new FormData(this.form); let url = '/backend/insert/'; await this.makeformFetch(url,formData); if(next){ let nextmodal = this.image.getNext(); await new entryModal(nextmodal); } else{ $('#modal').modal('hide'); backend.getEntries(backend.status); } } async delete(){ this.image.delete(); $('#modal').modal('hide'); backend.getEntries(backend.status); } }