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);
}
}