Newer
Older
vmk-demo-bot / admin / src / html / partials / edit-knentry.html
<div class="modal fade" id="knbaseEditEntryForm" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
	<div class="modal-dialog">
		<div class="modal-content">
			<div class="modal-header">
				<h5 class="modal-title" id="exampleModalLabel">Редагування запису</h5>
				<button type="button" class="btn-close" data-coreui-dismiss="modal" aria-label="Close"></button>
			</div>
			<div class="modal-body">
				<form action="update_entry" class="edit-entry">
					<input type="hidden" name="id" value="">
					@@include("knbase-form.html")
				</form>

			</div>
			<div class="modal-footer">
				<button type="button" class="btn btn-primary submit-form">Зберегти</button>
				<button type="button" class="btn btn-secondary reset-form" data-coreui-dismiss="modal">Відмінити зміни</button>
				<button type="button" class="btn btn-outline-danger" data-coreui-toggle="modal" data-coreui-target="#knbaseRemoveEntryForm"><span class="mdi mdi-delete-outline"></span> Видалити</button>
			</div>
		</div>
	</div>
</div>


<div class="modal fade" id="knbaseRemoveEntryForm" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
	<div class="modal-dialog">
		<div class="modal-content">
			<div class="modal-header">
				<h5 class="modal-title" id="exampleModalLabel">Підтвердіть видалення запису</h5>
				<button type="button" class="btn-close" data-coreui-dismiss="modal" aria-label="Close"></button>
			</div>
			<div class="modal-body">
				<button type="button" class="btn btn-danger apply-remove-entry" data-coreui-dismiss="modal"><span class="mdi mdi-delete-outline"></span> Так, видалити</button>
				<button type="button" class="btn btn-primary cancel" data-coreui-toggle="modal" data-coreui-target="#knbaseEditEntryForm">Відмінити дію</button>
			</div>
		</div>
	</div>
</div>

<script>
	document.addEventListener("DOMContentLoaded", e => {
		const editForm = document.getElementById("knbaseEditEntryForm");
		editForm.viewEntryData = function(entry){
			console.log("viewEntryData", entry);
			const form = this.querySelector("form.edit-entry");
			form.reset();
			
			form.querySelector(`[name="id"]`).value = entry.id;
			
			const selectType = form.querySelector("select.knbase");
			selectType.value = entry.type;

			form.querySelector(`[name="title"]`).value = entry.title;
			form.querySelector(`[name="content"]`).value = entry.content;
			form.querySelector(`[name="hlink"]`).value = entry.hlink;
			form.querySelector(`[name="price"]`).value = entry.price;

			let includes = entry.include_to.split(",");
			for(let i of includes) {
				form.querySelector(`[name="${i}"]`).checked = true;
			}
		}


		const form = editForm.querySelector(".edit-entry");
		const modal = new coreui.Modal(editForm);

		form.validityChecking = function(e){
      return validityChecking(this);
    }

		form.submitting = function(e){
			e.preventDefault();

			const data = {};
			data["type"] = form.querySelector("select.knbase").value;
			data["include_to"] = getSwitchersVal(form.querySelector(".bots-multi"));

			data["id"] = form.querySelector('[name="id"]').value;
			data["title"] = form.querySelector('[name="title"]').value;
			data["content"] = form.querySelector('[name="content"]').value;
			data["hlink"] = form.querySelector('[name="hlink"]').value;
			data["price"] = form.querySelector('[name="price"]').value;

			if(!this.validityChecking()) {
        return;
      }
			
			doAction("knbase.update_entry", data, resp => {
				document.querySelector("table.entries").loadDataFromServer();
			});

			document.activeElement.blur();
			modal.hide();
			form.reset();
		}

		form.addEventListener("submit", e => {
			form.submitting(e);
		});

		editForm.querySelector(".submit-form").addEventListener("click", e => {
			form.submitting(e);
		});

		editForm.querySelector(".reset-form").addEventListener("click", e => {
			document.activeElement.blur();
			form.reset();
		});

		document.querySelector("#knbaseRemoveEntryForm .apply-remove-entry").addEventListener("click", e => {
			const id = form.querySelector('[name="id"]').value;
			doAction("knbase.remove_entry", {
				"id": id
			}, resp => {
				document.querySelector("table.entries").loadDataFromServer();
				
			});
		});
	});
</script>