/* Template Name: Grenviro Monitoring Author: Themesbrand Website: https://Themesbrand.com/ Contact: Themesbrand@gmail.com File: CRM-companies Js File */ // list js var checkAll = document.getElementById("checkAll"); if (checkAll) { checkAll.onclick = function () { var checkboxes = document.querySelectorAll('.form-check-all input[type="checkbox"]'); var checkedCount = document.querySelectorAll('.form-check-all input[type="checkbox"]:checked').length; for (var i = 0; i < checkboxes.length; i++) { checkboxes[i].checked = this.checked; if (checkboxes[i].checked) { checkboxes[i].closest("tr").classList.add("table-active"); } else { checkboxes[i].closest("tr").classList.remove("table-active"); } } (checkedCount > 0) ? document.getElementById("remove-actions").style.display = 'none' : document.getElementById("remove-actions").style.display = 'block'; }; } var perPage = 8; var editlist = false; //Table var options = { valueNames: [ "id", "name", "owner", "industry_type", "star_value", "location", "employee", "website", "contact_email", "since", { attr: "src", name: "image_src" } ], page: perPage, pagination: true, plugins: [ ListPagination({ left: 2, right: 2 }) ] }; // Init list var companyList = new List("companyList", options).on("updated", function (list) { list.matchingItems.length == 0 ? (document.getElementsByClassName("noresult")[0].style.display = "block") : (document.getElementsByClassName("noresult")[0].style.display = "none"); var isFirst = list.i == 1; var isLast = list.i > list.matchingItems.length - list.page; // make the Prev and Nex buttons disabled on first and last pages accordingly (document.querySelector(".pagination-prev.disabled")) ? document.querySelector(".pagination-prev.disabled").classList.remove("disabled"): ''; (document.querySelector(".pagination-next.disabled")) ? document.querySelector(".pagination-next.disabled").classList.remove("disabled"): ''; if (isFirst) { document.querySelector(".pagination-prev").classList.add("disabled"); } if (isLast) { document.querySelector(".pagination-next").classList.add("disabled"); } if (list.matchingItems.length <= perPage) { document.querySelector(".pagination-wrap").style.display = "none"; } else { document.querySelector(".pagination-wrap").style.display = "flex"; } if (list.matchingItems.length > 0) { document.getElementsByClassName("noresult")[0].style.display = "none"; } else { document.getElementsByClassName("noresult")[0].style.display = "block"; } }); const xhttp = new XMLHttpRequest(); xhttp.onload = function () { var json_records = JSON.parse(this.responseText); Array.from(json_records).forEach(function (raw){ companyList.add({ id: '#VZ' + raw.id + "", name: raw.name, owner: raw.owner, desc: raw.desc, industry_type: raw.industry_type, star_value: raw.star_value, location: raw.location, employee: raw.employee, website: raw.website, contact_email: raw.contact_email, since: raw.since, image_src: raw.image_src }); companyList.sort('id', { order: "desc" }); refreshCallbacks(); }); companyList.remove("id", `#VZ001`); } xhttp.open("GET", "build/json/company-list.json"); xhttp.send(); isCount = new DOMParser().parseFromString( companyList.items.slice(-1)[0]._values.id, "text/html" ); // customer image document.querySelector("#company-logo-input").addEventListener("change", function () { var preview = document.querySelector("#companylogo-img"); var file = document.querySelector("#company-logo-input").files[0]; var reader = new FileReader(); reader.addEventListener("load",function () { preview.src = reader.result; },false); if (file) { reader.readAsDataURL(file); } }); var isValue = isCount.body.firstElementChild.innerHTML; var idField = document.getElementById("id-field"), companyNameField = document.getElementById("companyname-field"), companyLogoImg = document.getElementById("companylogo-img"), ownerField = document.getElementById("owner-field"), industry_typeField = document.getElementById("industry_type-field"), star_valueField = document.getElementById("star_value-field"), locationField = document.getElementById("location-field"), employeeField = document.getElementById("employee-field"), websiteField = document.getElementById("website-field"), contact_emailField = document.getElementById("contact_email-field"), sinceField = document.getElementById("since-field"), addBtn = document.getElementById("add-btn"), editBtn = document.getElementById("edit-btn"), removeBtns = document.getElementsByClassName("remove-item-btn"), editBtns = document.getElementsByClassName("edit-item-btn"); viewBtns = document.getElementsByClassName("view-item-btn"); refreshCallbacks(); document.getElementById("showModal").addEventListener("show.bs.modal", function (e) { if (e.relatedTarget.classList.contains("edit-item-btn")) { document.getElementById("exampleModalLabel").innerHTML = "Edit Company"; document.getElementById("showModal").querySelector(".modal-footer").style.display = "block"; document.getElementById("add-btn").innerHTML = "Update"; } else if (e.relatedTarget.classList.contains("add-btn")) { document.getElementById("exampleModalLabel").innerHTML = "Add Company"; document.getElementById("showModal").querySelector(".modal-footer").style.display = "block"; document.getElementById("add-btn").innerHTML = "Add Company"; } else { document.getElementById("exampleModalLabel").innerHTML = "List Company"; document.getElementById("showModal").querySelector(".modal-footer").style.display = "none"; } }); ischeckboxcheck(); document.getElementById("showModal").addEventListener("hidden.bs.modal", function () { clearFields(); }); document.querySelector("#companyList").addEventListener("click", function () { ischeckboxcheck(); }); var table = document.getElementById("customerTable"); // save all tr var tr = table.getElementsByTagName("tr"); var trlist = table.querySelectorAll(".list tr"); var count = 11; var forms = document.querySelectorAll('.tablelist-form') Array.prototype.slice.call(forms).forEach(function (form) { form.addEventListener('submit', function (event) { if (!form.checkValidity()) { event.preventDefault(); event.stopPropagation(); } else { event.preventDefault(); if ( companyNameField.value !== "" && ownerField.value !== "" && industry_typeField.value !== "" && star_valueField.value !== "" && locationField.value !== "" && employeeField.value !== "" && websiteField.value !== "" && contact_emailField.value !== "" && sinceField.value !== "" && !editlist) { companyList.add({ id: '#VZ' + count + "", image_src: companyLogoImg.src, name: companyNameField.value, owner: ownerField.value, industry_type: industry_typeField.value, star_value: star_valueField.value, location: locationField.value, employee: employeeField.value, website: websiteField.value, contact_email: contact_emailField.value, since: sinceField.value }); companyList.sort('id', { order: "desc" }); document.getElementById("close-modal").click(); clearFields(); refreshCallbacks(); count++; Swal.fire({ position: 'center', icon: 'success', title: 'Company inserted successfully!', showConfirmButton: false, timer: 2000, showCloseButton: true }); }else if( companyNameField.value !== "" && ownerField.value !== "" && industry_typeField.value !== "" && star_valueField.value !== "" && locationField.value !== "" && employeeField.value !== "" && websiteField.value !== "" && contact_emailField.value !== "" && sinceField.value !== "" && editlist) { var editValues = companyList.get({ id: idField.value, }); Array.from(editValues).forEach(function (x) { isid = new DOMParser().parseFromString(x._values.id, "text/html"); var selectedid = isid.body.firstElementChild.innerHTML; if (selectedid == itemId) { x.values({ id: `${idField.value}`, image_src: companyLogoImg.src, name: companyNameField.value, owner: ownerField.value, industry_type: industry_typeField.value, star_value: star_valueField.value, location: locationField.value, employee: employeeField.value, website: websiteField.value, contact_email: contact_emailField.value, since: sinceField.value }); } }); document.getElementById("close-modal").click(); clearFields(); Swal.fire({ position: 'center', icon: 'success', title: 'Company updated Successfully!', showConfirmButton: false, timer: 2000, showCloseButton: true }); } } }, false) }) function ischeckboxcheck() { Array.from(document.getElementsByName("chk_child")).forEach(function (x) { x.addEventListener("change", function (e) { if (x.checked == true) { e.target.closest("tr").classList.add("table-active"); } else { e.target.closest("tr").classList.remove("table-active"); } var checkedCount = document.querySelectorAll('[name="chk_child"]:checked').length; if (e.target.closest("tr").classList.contains("table-active")) { (checkedCount > 0) ? document.getElementById("remove-actions").style.display = 'block': document.getElementById("remove-actions").style.display = 'none'; } else { (checkedCount > 0) ? document.getElementById("remove-actions").style.display = 'block': document.getElementById("remove-actions").style.display = 'none'; } }); }); } function refreshCallbacks() { if(removeBtns){ Array.from(removeBtns).forEach(function (btn) { btn.addEventListener("click", function (e) { e.target.closest("tr").children[1].innerText; itemId = e.target.closest("tr").children[1].innerText; var itemValues = companyList.get({ id: itemId, }); Array.from(itemValues).forEach(function (x) { deleteid = new DOMParser().parseFromString(x._values.id, "text/html"); var isElem = deleteid.body.firstElementChild; var isdeleteid = deleteid.body.firstElementChild.innerHTML; if (isdeleteid == itemId) { document.getElementById("delete-record").addEventListener("click", function () { companyList.remove("id", isElem.outerHTML); document.getElementById("deleteRecord-close").click(); }); } }); }); }); } if(editBtns){ Array.from(editBtns).forEach(function (btn) { btn.addEventListener("click", function (e) { e.target.closest("tr").children[1].innerText; itemId = e.target.closest("tr").children[1].innerText; var itemValues = companyList.get({ id: itemId, }); Array.from(itemValues).forEach(function (x) { isid = new DOMParser().parseFromString(x._values.id, "text/html"); var selectedid = isid.body.firstElementChild.innerHTML; if (selectedid == itemId) { editlist = true; idField.value = selectedid; companyLogoImg.src = x._values.image_src; companyNameField.value = x._values.name; ownerField.value = x._values.owner; industry_typeField.value = x._values.industry_type; star_valueField.value = x._values.star_value; locationField.value = x._values.location; employeeField.value = x._values.employee; websiteField.value = x._values.website; contact_emailField.value = x._values.contact_email; sinceField.value = x._values.since; } }); }); }); } Array.from(viewBtns).forEach(function (btn) { btn.addEventListener("click", function (e) { e.target.closest("tr").children[1].innerText; itemId = e.target.closest("tr").children[1].innerText; var itemValues = companyList.get({ id: itemId, }); Array.from(itemValues).forEach(function (x) { isid = new DOMParser().parseFromString(x._values.id, "text/html"); var selectedid = isid.body.firstElementChild.innerHTML; if (selectedid == itemId) { var codeBlock = `
${x._values.desc}
Industry Type | ${x._values.industry_type} |
Location | ${x._values.location} |
Employee | ${x._values.employee} |
Rating | ${x._values.star_value} |
Website | ${x._values.website} |
Contact Email | ${x._values.contact_email} |
Since | ${x._values.since} |