From eaffaf119131cc90fe7418d38c2ecd8ee5d5b5cf Mon Sep 17 00:00:00 2001 From: Jordi Albert <63541019+jarg1023@users.noreply.github.com> Date: Fri, 19 Aug 2022 12:38:46 +0200 Subject: [PATCH] Filter IPs by IT Object status and add loader to improve UI/UX --- msp/msp/doctype/ip_network/ip_network.js | 76 +++++++++++++++++++++++- msp/msp/doctype/ip_network/ip_network.py | 3 +- 2 files changed, 75 insertions(+), 4 deletions(-) diff --git a/msp/msp/doctype/ip_network/ip_network.js b/msp/msp/doctype/ip_network/ip_network.js index 601c760..b72534a 100644 --- a/msp/msp/doctype/ip_network/ip_network.js +++ b/msp/msp/doctype/ip_network/ip_network.js @@ -19,6 +19,8 @@ frappe.ui.form.on('IP Network', { }); function getUsedIpsInNetwork(frm) { + displayLoader(); + frm.call('get_used_ips', {}) .then((response) => { const container = document.getElementById("usage-overview-table"); @@ -32,16 +34,16 @@ function getUsedIpsInNetwork(frm) { data-doctype-name="${element?.ip_address_name ?? ''}" data-doctype-type="IP Address" > - ${element?.ip_address ?? "-"} + ${(element?.ip_address === '') ? "-" : element?.ip_address} - ${element?.title ?? "-"} + ${(element?.title === '') ? "-" : element?.title} - ${element?.type ?? "-"} + ${(element?.type === '') ? "-" : element?.type} `; }); @@ -75,3 +77,71 @@ function getUsedIpsInNetwork(frm) { }); }) } +function displayLoader() { + const container = document.getElementById("usage-overview-table"); + const loader = ` +
+ + `; + + // Set width and height to
parent element and to
grandparent element so relative width and height with % works greate + container.parentElement.parentElement.style.width = '100%'; + container.parentElement.parentElement.style.height = '100%'; + container.parentElement.style.width = '100%'; + + // Set this styles to showcase where the information will appear + container.style.width = '100%'; + container.style.height = '100%'; + container.innerHTML = loader; +} + diff --git a/msp/msp/doctype/ip_network/ip_network.py b/msp/msp/doctype/ip_network/ip_network.py index ba01498..aab3951 100644 --- a/msp/msp/doctype/ip_network/ip_network.py +++ b/msp/msp/doctype/ip_network/ip_network.py @@ -10,7 +10,7 @@ from frappe.model.document import Document class IPNetwork(Document): @frappe.whitelist() def get_used_ips(self): - values = {'ip_network': self.name} + values = {'ip_network': self.name, 'status': 'Decommissioned'} result = [] result = frappe.db.sql(""" SELECT @@ -23,6 +23,7 @@ class IPNetwork(Document): JOIN `tabIT Object` ito ON ipa.it_object = ito.name WHERE ipa.ip_network = %(ip_network)s + AND ito.status != %(status)s """, values=values, as_dict=1) for ip_network_reserved_range in self.ip_network_reserved_ranges_table: