async function changeSite(site){ const response = await fetch(`/changeSite`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ site: site, }), }); data = await response.json(); transaction_status = "success" if (data.error){ transaction_status = "danger" } UIkit.notification({ message: data.message, status: transaction_status, pos: 'top-right', timeout: 5000 }); location.reload(true) } var mode = false async function toggleDarkMode() { let darkMode = document.getElementById("dark-mode"); darkMode.disabled = !darkMode.disabled; mode = !mode; if(mode){ document.getElementById('modeToggle').innerHTML = "light_mode" document.getElementById('main_html').classList.add('uk-light') } else { document.getElementById('modeToggle').innerHTML = "dark_mode" document.getElementById('main_html').classList.remove('uk-light') } } if(session.user.flags.darkmode){ toggleDarkMode() } document.addEventListener('DOMContentLoaded', async function() { let zones = await fetchZones() await updateZonesPagination() await replensihZonesTable(zones) let locations = await fetchLocations() await updateLocationsPagination() await replenishLocationsTable(locations) let vendors = await fetchVendors() await updateVendorsPagination() await replenishVendorsTable(vendors) let brands = await fetchBrands() await updateBrandsPagination() await replenishBrandsTable(brands) let prefixes = await fetchPrefixes() await updatePrefixesPagination() await replenishPrefixesTable(prefixes) }); // ZONES TAB FUNCTIONS let zones_current_page = 1 let zones_end_page = 10 let zones_limit = 25 async function fetchZones(){ const url = new URL('/site_management/api/getZones', window.location.origin) url.searchParams.append('page', zones_current_page) url.searchParams.append('limit', zones_limit) const response = await fetch(url) data = await response.json() zones_end_page = data.end return data.zones } async function replensihZonesTable(zones){ let zonesTableBody = document.getElementById('zonesTableBody') zonesTableBody.innerHTML = "" for(let i=0; i < zones.length; i++){ let tableRow = document.createElement('tr') let idCell = document.createElement('td') idCell.innerHTML = `${zones[i].id}` let nameCell = document.createElement('td') nameCell.innerHTML = `${zones[i].name}` let descriptionCell = document.createElement('td') descriptionCell.innerHTML = `${zones[i].description}` let opCell = document.createElement('td') opCell.innerHTML = `` let editOp = document.createElement('button') editOp.setAttribute('class', 'uk-button uk-button-small uk-button-default') editOp.innerHTML = "edit" editOp.onclick = async function () { await openEditZoneModal(zones[i]) } opCell.append(editOp) tableRow.append(idCell, nameCell, descriptionCell, opCell) zonesTableBody.append(tableRow) } } async function updateZonesPagination() { let paginationElement = document.getElementById("zonesPagination"); paginationElement.innerHTML = ""; // previous let previousElement = document.createElement('li') if(zones_current_page<=1){ previousElement.innerHTML = ``; previousElement.classList.add('uk-disabled'); }else { previousElement.innerHTML = ``; } paginationElement.append(previousElement) //first let firstElement = document.createElement('li') if(zones_current_page<=1){ firstElement.innerHTML = `1`; firstElement.classList.add('uk-disabled'); }else { firstElement.innerHTML = `1`; } paginationElement.append(firstElement) // ... if(zones_current_page-2>1){ let firstDotElement = document.createElement('li') firstDotElement.classList.add('uk-disabled') firstDotElement.innerHTML = ``; paginationElement.append(firstDotElement) } // last if(zones_current_page-2>0){ let lastElement = document.createElement('li') lastElement.innerHTML = `${zones_current_page-1}` paginationElement.append(lastElement) } // current if(zones_current_page!=1 && zones_current_page != zones_end_page){ let currentElement = document.createElement('li') currentElement.innerHTML = `
  • ${zones_current_page}
  • ` paginationElement.append(currentElement) } // next if(zones_current_page+2${zones_current_page+1}` paginationElement.append(nextElement) } // ... if(zones_current_page+2<=zones_end_page){ let secondDotElement = document.createElement('li') secondDotElement.classList.add('uk-disabled') secondDotElement.innerHTML = ``; paginationElement.append(secondDotElement) } //end let endElement = document.createElement('li') if(zones_current_page>=zones_end_page){ endElement.innerHTML = `${zones_end_page}`; endElement.classList.add('uk-disabled'); }else { endElement.innerHTML = `${zones_end_page}`; } paginationElement.append(endElement) //next button let nextElement = document.createElement('li') if(zones_current_page>=zones_end_page){ nextElement.innerHTML = ``; nextElement.classList.add('uk-disabled'); }else { nextElement.innerHTML = ``; } paginationElement.append(nextElement) } async function setZonePage(pageNumber){ zones_current_page = pageNumber; let zones = await fetchZones() await updateZonesPagination() await replensihZonesTable(zones) } async function openAddZoneModal() { document.getElementById('ZonesModalHeader').innerHTML = "Add Zone to system..." document.getElementById('ZonesModalSubmitButton').innerHTML = "Add" document.getElementById('ZoneName').value = "" document.getElementById('ZoneName').classList.remove('uk-disabled') document.getElementById('ZoneDescription').value = "" document.getElementById('ZonesModalSubmitButton').onclick = async function() { await postAddZone() } UIkit.modal(document.getElementById('ZonesModal')).show(); } async function openEditZoneModal(zone) { document.getElementById('ZonesModalHeader').innerHTML = `Edit Zone: ${zone.name}...` document.getElementById('ZonesModalSubmitButton').innerHTML = "Save" document.getElementById('ZoneName').value = zone.name document.getElementById('ZoneName').classList.add('uk-disabled') document.getElementById('ZoneDescription').value = zone.description document.getElementById('ZonesModalSubmitButton').onclick = async function() { await postEditZone(zone.id) } UIkit.modal(document.getElementById('ZonesModal')).show(); } async function postAddZone() { let zoneName = `${document.getElementById('ZoneName').value}` let description = `${document.getElementById('ZoneDescription').value}` const response = await fetch(`/site_management/api/postAddZone`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ name: zoneName, description: description, }), }); data = await response.json(); transaction_status = "success" if (data.error){ transaction_status = "danger" } UIkit.notification({ message: data.message, status: transaction_status, pos: 'top-right', timeout: 5000 }); let zones = await fetchZones() await updateZonesPagination() await replensihZonesTable(zones) UIkit.modal(document.getElementById('ZonesModal')).hide(); } async function postEditZone(zone_id) { let description = `${document.getElementById('ZoneDescription').value}` const response = await fetch(`/site_management/api/postEditZone`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ zone_id: zone_id, update: {'description': description} }), }); data = await response.json(); transaction_status = "success" if (data.error){ transaction_status = "danger" } UIkit.notification({ message: data.message, status: transaction_status, pos: 'top-right', timeout: 5000 }); let zones = await fetchZones() await updateZonesPagination() await replensihZonesTable(zones) UIkit.modal(document.getElementById('ZonesModal')).hide(); } // LOCATIONS TAB FUNCTIONS let locations_current_page = 1 let locations_end_page = 10 let locations_limit = 25 async function fetchLocations(){ const url = new URL('/site_management/api/getLocations', window.location.origin) url.searchParams.append('page', locations_current_page) url.searchParams.append('limit', locations_limit) const response = await fetch(url) data = await response.json() locations_end_page = data.end return data.locations } async function replenishLocationsTable(locations){ let locationsTableBody = document.getElementById('locationsTableBody') locationsTableBody.innerHTML = "" for(let i=0; i < locations.length; i++){ let tableRow = document.createElement('tr') let idCell = document.createElement('td') idCell.innerHTML = `${locations[i].id}` let uuidCell = document.createElement('td') uuidCell.innerHTML = `${locations[i].uuid}` let nameCell = document.createElement('td') nameCell.innerHTML = `${locations[i].name}` let descriptionCell = document.createElement('td') descriptionCell.innerHTML = `` let opCell = document.createElement('td') opCell.innerHTML = `` tableRow.append(idCell, uuidCell,nameCell, descriptionCell, opCell) locationsTableBody.append(tableRow) } } async function updateLocationsPagination() { let paginationElement = document.getElementById("locationsPagination"); paginationElement.innerHTML = ""; // previous let previousElement = document.createElement('li') if(locations_current_page<=1){ previousElement.innerHTML = ``; previousElement.classList.add('uk-disabled'); }else { previousElement.innerHTML = ``; } paginationElement.append(previousElement) //first let firstElement = document.createElement('li') if(locations_current_page<=1){ firstElement.innerHTML = `1`; firstElement.classList.add('uk-disabled'); }else { firstElement.innerHTML = `1`; } paginationElement.append(firstElement) // ... if(locations_current_page-2>1){ let firstDotElement = document.createElement('li') firstDotElement.classList.add('uk-disabled') firstDotElement.innerHTML = ``; paginationElement.append(firstDotElement) } // last if(locations_current_page-2>0){ let lastElement = document.createElement('li') lastElement.innerHTML = `${locations_current_page-1}` paginationElement.append(lastElement) } // current if(locations_current_page!=1 && locations_current_page != locations_end_page){ let currentElement = document.createElement('li') currentElement.innerHTML = `
  • ${locations_current_page}
  • ` paginationElement.append(currentElement) } // next if(locations_current_page+2${locations_current_page+1}` paginationElement.append(nextElement) } // ... if(locations_current_page+2<=locations_end_page){ let secondDotElement = document.createElement('li') secondDotElement.classList.add('uk-disabled') secondDotElement.innerHTML = ``; paginationElement.append(secondDotElement) } //end let endElement = document.createElement('li') if(locations_current_page>=locations_end_page){ endElement.innerHTML = `${locations_end_page}`; endElement.classList.add('uk-disabled'); }else { endElement.innerHTML = `${locations_end_page}`; } paginationElement.append(endElement) //next button let nextElement = document.createElement('li') if(locations_current_page>=locations_end_page){ nextElement.innerHTML = ``; nextElement.classList.add('uk-disabled'); }else { nextElement.innerHTML = ``; } paginationElement.append(nextElement) } async function setLocationsPage(pageNumber){ locations_current_page = pageNumber; let locations = await fetchLocations() await updateLocationsPagination() await replenishLocationsTable(locations) } async function openAddLocationModal() { document.getElementById('LocationsModalHeader').innerHTML = "Add Location to system..." document.getElementById('LocationsModalSubmitButton').innerHTML = "Add" document.getElementById('LocationUUID').value = "" document.getElementById('LocationName').value = "" document.getElementById('LocationName').classList.remove('uk-disabled') document.getElementById('LocationsModalSubmitButton').onclick = async function() { await postAddLocation() } UIkit.modal(document.getElementById('LocationsModal')).show(); } async function postAddLocation() { let zone_id = parseInt(`${document.getElementById('LocationZoneId').value}`) let locationName = `${document.getElementById('LocationName').value}` let zone_name = document.getElementById(`locationzone_${zone_id}`).innerHTML let uuid = `${zone_name}@${locationName}` const response = await fetch(`/site_management/api/postAddLocation`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ uuid: uuid, name: locationName, zone_id: zone_id }), }); data = await response.json(); transaction_status = "success" if (data.error){ transaction_status = "danger" } UIkit.notification({ message: data.message, status: transaction_status, pos: 'top-right', timeout: 5000 }); let locations = await fetchLocations() await updateLocationsPagination() await replenishLocationsTable(locations) UIkit.modal(document.getElementById('LocationsModal')).hide(); } // VENDORS TAB FUNCTIONS let vendors_current_page = 1 let vendors_end_page = 10 let vendors_limit = 25 async function fetchVendors(){ const url = new URL('/site_management/api/getVendors', window.location.origin) url.searchParams.append('page', vendors_current_page) url.searchParams.append('limit', vendors_limit) const response = await fetch(url) data = await response.json() vendors_end_page = data.end return data.vendors } async function replenishVendorsTable(vendors){ let vendorsTableBody = document.getElementById('vendorsTableBody') vendorsTableBody.innerHTML = "" for(let i=0; i < vendors.length; i++){ let tableRow = document.createElement('tr') let idCell = document.createElement('td') idCell.innerHTML = `${vendors[i].id}` let nameCell = document.createElement('td') nameCell.innerHTML = `${vendors[i].vendor_name}` let createdByCell = document.createElement('td') createdByCell.innerHTML = `${vendors[i].created_by}` let opCell = document.createElement('td') opCell.innerHTML = `` let editOp = document.createElement('button') editOp.innerHTML = "edit" editOp.setAttribute('class', 'uk-button uk-button-small uk-button-default') editOp.onclick = async function () { await openEditVendorsModal(vendors[i]) } opCell.append(editOp) tableRow.append(idCell,nameCell, createdByCell, opCell) vendorsTableBody.append(tableRow) } } async function updateVendorsPagination() { let paginationElement = document.getElementById("vendorsPagination"); paginationElement.innerHTML = ""; // previous let previousElement = document.createElement('li') if(vendors_current_page<=1){ previousElement.innerHTML = ``; previousElement.classList.add('uk-disabled'); }else { previousElement.innerHTML = ``; } paginationElement.append(previousElement) //first let firstElement = document.createElement('li') if(vendors_current_page<=1){ firstElement.innerHTML = `1`; firstElement.classList.add('uk-disabled'); }else { firstElement.innerHTML = `1`; } paginationElement.append(firstElement) // ... if(vendors_current_page-2>1){ let firstDotElement = document.createElement('li') firstDotElement.classList.add('uk-disabled') firstDotElement.innerHTML = ``; paginationElement.append(firstDotElement) } // last if(vendors_current_page-2>0){ let lastElement = document.createElement('li') lastElement.innerHTML = `${vendors_current_page-1}` paginationElement.append(lastElement) } // current if(vendors_current_page!=1 && vendors_current_page != vendors_end_page){ let currentElement = document.createElement('li') currentElement.innerHTML = `
  • ${vendors_current_page}
  • ` paginationElement.append(currentElement) } // next if(vendors_current_page+2${vendors_current_page+1}` paginationElement.append(nextElement) } // ... if(vendors_current_page+2<=vendors_end_page){ let secondDotElement = document.createElement('li') secondDotElement.classList.add('uk-disabled') secondDotElement.innerHTML = ``; paginationElement.append(secondDotElement) } //end let endElement = document.createElement('li') if(vendors_current_page>=vendors_end_page){ endElement.innerHTML = `${vendors_end_page}`; endElement.classList.add('uk-disabled'); }else { endElement.innerHTML = `${vendors_end_page}`; } paginationElement.append(endElement) //next button let nextElement = document.createElement('li') if(vendors_current_page>=vendors_end_page){ nextElement.innerHTML = ``; nextElement.classList.add('uk-disabled'); }else { nextElement.innerHTML = ``; } paginationElement.append(nextElement) } async function setVendorsPage(pageNumber){ vendors_current_page = pageNumber; let vendors = await fetchVendors() await updateVendorsPagination() await replenishVendorsTable(vendors) } async function openAddVendorsModal() { document.getElementById('VendorsModalHeader').innerHTML = "Add Vendor to system..." document.getElementById('VendorsModalSubmitButton').innerHTML = "Add" document.getElementById('VendorName').value = "" document.getElementById('VendorPhoneNumber').value = "" document.getElementById('VendorAddress').value = "" document.getElementById('vendor_created').value = "" document.getElementById('vendor_created_by').value = "" document.getElementById('VendorsModalSubmitButton').onclick = async function() { await postAddVendor() } UIkit.modal(document.getElementById('VendorsModal')).show(); } async function openEditVendorsModal(vendor) { document.getElementById('VendorsModalHeader').innerHTML = `Edit Vendor: ${vendor.vendor_name}` document.getElementById('VendorsModalSubmitButton').innerHTML = "Edit" document.getElementById('VendorName').value = vendor.vendor_name document.getElementById('VendorPhoneNumber').value = vendor.phone_number document.getElementById('VendorAddress').value = vendor.vendor_address document.getElementById('vendor_created').value = vendor.creation_date document.getElementById('vendor_created_by').value = vendor.created_by document.getElementById('VendorsModalSubmitButton').onclick = async function() { await postEditVendor(vendor.id) } UIkit.modal(document.getElementById('VendorsModal')).show(); } async function postAddVendor() { let vendor_name = document.getElementById('VendorName').value let vendor_phone_number = document.getElementById('VendorPhoneNumber').value let vendor_address = document.getElementById('VendorAddress').value const response = await fetch(`/site_management/api/postAddVendor`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ vendor_name: vendor_name, vendor_phone_number: vendor_phone_number, vendor_address: vendor_address }), }); data = await response.json(); transaction_status = "success" if (data.error){ transaction_status = "danger" } UIkit.notification({ message: data.message, status: transaction_status, pos: 'top-right', timeout: 5000 }); let vendors = await fetchVendors() await updateVendorsPagination() await replenishVendorsTable(vendors) UIkit.modal(document.getElementById('VendorsModal')).hide(); } async function postEditVendor(vendor_id) { let vendor_name = document.getElementById('VendorName').value let vendor_phone_number = document.getElementById('VendorPhoneNumber').value let vendor_address = document.getElementById('VendorAddress').value const response = await fetch(`/site_management/api/postEditVendor`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ vendor_id: vendor_id, update: {'vendor_name': vendor_name, 'phone_number': vendor_phone_number, 'vendor_address': vendor_address} }), }); data = await response.json(); transaction_status = "success" if (data.error){ transaction_status = "danger" } UIkit.notification({ message: data.message, status: transaction_status, pos: 'top-right', timeout: 5000 }); let vendors = await fetchVendors() await updateVendorsPagination() await replenishVendorsTable(vendors) UIkit.modal(document.getElementById('VendorsModal')).hide(); } // BRANDS TAB FUNCTIONS let brands_current_page = 1 let brands_end_page = 10 let brands_limit = 25 async function fetchBrands(){ const url = new URL('/site_management/api/getBrands', window.location.origin) url.searchParams.append('page', brands_current_page) url.searchParams.append('limit', brands_limit) const response = await fetch(url) data = await response.json() brands_end_page = data.end return data.brands } async function replenishBrandsTable(brands){ let brandsTableBody = document.getElementById('brandsTableBody') brandsTableBody.innerHTML = "" for(let i=0; i < brands.length; i++){ let tableRow = document.createElement('tr') let idCell = document.createElement('td') idCell.innerHTML = `${brands[i].id}` let nameCell = document.createElement('td') nameCell.innerHTML = `${brands[i].name}` let opCell = document.createElement('td') opCell.innerHTML = `` let editOp = document.createElement('button') editOp.innerHTML = "edit" editOp.setAttribute('class', 'uk-button uk-button-small uk-button-default') editOp.onclick = async function() { await openEditBrandsModal(brands[i]) } opCell.append(editOp) tableRow.append(idCell,nameCell, opCell) brandsTableBody.append(tableRow) } } async function updateBrandsPagination() { let paginationElement = document.getElementById("brandsPagination"); paginationElement.innerHTML = ""; // previous let previousElement = document.createElement('li') if(brands_current_page<=1){ previousElement.innerHTML = ``; previousElement.classList.add('uk-disabled'); }else { previousElement.innerHTML = ``; } paginationElement.append(previousElement) //first let firstElement = document.createElement('li') if(brands_current_page<=1){ firstElement.innerHTML = `1`; firstElement.classList.add('uk-disabled'); }else { firstElement.innerHTML = `1`; } paginationElement.append(firstElement) // ... if(brands_current_page-2>1){ let firstDotElement = document.createElement('li') firstDotElement.classList.add('uk-disabled') firstDotElement.innerHTML = ``; paginationElement.append(firstDotElement) } // last if(brands_current_page-2>0){ let lastElement = document.createElement('li') lastElement.innerHTML = `${brands_current_page-1}` paginationElement.append(lastElement) } // current if(brands_current_page!=1 && brands_current_page != brands_end_page){ let currentElement = document.createElement('li') currentElement.innerHTML = `
  • ${brands_current_page}
  • ` paginationElement.append(currentElement) } // next if(brands_current_page+2${brands_current_page+1}` paginationElement.append(nextElement) } // ... if(brands_current_page+2<=brands_end_page){ let secondDotElement = document.createElement('li') secondDotElement.classList.add('uk-disabled') secondDotElement.innerHTML = ``; paginationElement.append(secondDotElement) } //end let endElement = document.createElement('li') if(brands_current_page>=brands_end_page){ endElement.innerHTML = `${brands_end_page}`; endElement.classList.add('uk-disabled'); }else { endElement.innerHTML = `${brands_end_page}`; } paginationElement.append(endElement) //next button let nextElement = document.createElement('li') if(brands_current_page>=brands_end_page){ nextElement.innerHTML = ``; nextElement.classList.add('uk-disabled'); }else { nextElement.innerHTML = ``; } paginationElement.append(nextElement) } async function setBrandsPage(pageNumber){ brands_current_page = pageNumber; let brands = await fetchBrands() await updateBrandsPagination() await replenishBrandsTable(brands) } async function openAddBrandsModal() { document.getElementById('BrandsModalHeader').innerHTML = "Add Vendor to system..." document.getElementById('BrandsModalSubmitButton').innerHTML = "Add" document.getElementById('BrandName').value = "" document.getElementById('BrandsModalSubmitButton').onclick = async function() { await postAddBrand() } UIkit.modal(document.getElementById('BrandsModal')).show(); } async function openEditBrandsModal(brand) { document.getElementById('BrandsModalHeader').innerHTML = `Edit Brand: ${brand.name}` document.getElementById('BrandsModalSubmitButton').innerHTML = "Edit" document.getElementById('BrandName').value = brand.name document.getElementById('BrandsModalSubmitButton').onclick = async function() { await postEditBrand(brand.id) } UIkit.modal(document.getElementById('BrandsModal')).show(); } async function postAddBrand() { let brand_name = document.getElementById('BrandName').value const response = await fetch(`/site_management/api/postAddBrand`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ brand_name: brand_name }), }); data = await response.json(); transaction_status = "success" if (data.error){ transaction_status = "danger" } UIkit.notification({ message: data.message, status: transaction_status, pos: 'top-right', timeout: 5000 }); let brands = await fetchBrands() await updateBrandsPagination() await replenishBrandsTable(brands) UIkit.modal(document.getElementById('BrandsModal')).hide(); } async function postEditBrand(brand_id) { let brand_name = document.getElementById('BrandName').value const response = await fetch(`/site_management/api/postEditBrand`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ brand_id: brand_id, update: {'name': brand_name} }), }); data = await response.json(); transaction_status = "success" if (data.error){ transaction_status = "danger" } UIkit.notification({ message: data.message, status: transaction_status, pos: 'top-right', timeout: 5000 }); let brands = await fetchBrands() await updateBrandsPagination() await replenishBrandsTable(brands) UIkit.modal(document.getElementById('BrandsModal')).hide(); } // PREFIXES TAB FUNCTIONS let prefix_current_page = 1 let prefix_end_page = 10 let prefix_limit = 25 async function fetchPrefixes(){ const url = new URL('/site_management/api/getPrefixes', window.location.origin) url.searchParams.append('page', prefix_current_page) url.searchParams.append('limit', prefix_limit) const response = await fetch(url) data = await response.json() prefix_end_page = data.end return data.prefixes } async function replenishPrefixesTable(prefixes){ let prefixesTableBody = document.getElementById('prefixesTableBody') prefixesTableBody.innerHTML = "" for(let i=0; i < prefixes.length; i++){ let tableRow = document.createElement('tr') let idCell = document.createElement('td') idCell.innerHTML = `${prefixes[i].id}` let uuidCell = document.createElement('td') uuidCell.innerHTML = `${prefixes[i].uuid}` let nameCell = document.createElement('td') nameCell.innerHTML = `${prefixes[i].name}` let descriptionCell = document.createElement('td') descriptionCell.innerHTML = `${prefixes[i].description}` let opCell = document.createElement('td') opCell.innerHTML = `` let editOp = document.createElement('button') editOp.innerHTML = "edit" editOp.setAttribute('class', 'uk-button uk-button-small uk-button-default') editOp.onclick = async function() { await openEditPrefixModal(prefixes[i]) } opCell.append(editOp) tableRow.append(idCell,uuidCell, nameCell, descriptionCell, opCell) prefixesTableBody.append(tableRow) } } async function updatePrefixesPagination() { let paginationElement = document.getElementById("prefixesPagination"); paginationElement.innerHTML = ""; // previous let previousElement = document.createElement('li') if(prefix_current_page<=1){ previousElement.innerHTML = ``; previousElement.classList.add('uk-disabled'); }else { previousElement.innerHTML = ``; } paginationElement.append(previousElement) //first let firstElement = document.createElement('li') if(prefix_current_page<=1){ firstElement.innerHTML = `1`; firstElement.classList.add('uk-disabled'); }else { firstElement.innerHTML = `1`; } paginationElement.append(firstElement) // ... if(prefix_current_page-2>1){ let firstDotElement = document.createElement('li') firstDotElement.classList.add('uk-disabled') firstDotElement.innerHTML = ``; paginationElement.append(firstDotElement) } // last if(prefix_current_page-2>0){ let lastElement = document.createElement('li') lastElement.innerHTML = `${prefix_current_page-1}` paginationElement.append(lastElement) } // current if(prefix_current_page!=1 && prefix_current_page != prefix_end_page){ let currentElement = document.createElement('li') currentElement.innerHTML = `
  • ${prefix_current_page}
  • ` paginationElement.append(currentElement) } // next if(prefix_current_page+2${prefix_current_page+1}` paginationElement.append(nextElement) } // ... if(prefix_current_page+2<=prefix_end_page){ let secondDotElement = document.createElement('li') secondDotElement.classList.add('uk-disabled') secondDotElement.innerHTML = ``; paginationElement.append(secondDotElement) } //end let endElement = document.createElement('li') if(prefix_current_page>=prefix_end_page){ endElement.innerHTML = `${prefix_end_page}`; endElement.classList.add('uk-disabled'); }else { endElement.innerHTML = `${prefix_end_page}`; } paginationElement.append(endElement) //next button let nextElement = document.createElement('li') if(prefix_current_page>=prefix_end_page){ nextElement.innerHTML = ``; nextElement.classList.add('uk-disabled'); }else { nextElement.innerHTML = ``; } paginationElement.append(nextElement) } async function setPrefixesPage(pageNumber){ prefix_current_page = pageNumber; let prefixes = await fetchPrefixes() await updatePrefixesPagination() await replenishPrefixesTable(prefixes) } async function openAddPrefixModal() { document.getElementById('PrefixModalHeader').innerHTML = "Add Prefix to system..." document.getElementById('PrefixModalSubmitButton').innerHTML = "Add" document.getElementById('PrefixUUID').value = "" document.getElementById('PrefixName').value = "" document.getElementById('PrefixDescription').value = "" document.getElementById('PrefixModalSubmitButton').onclick = async function() { await postAddPrefix() } UIkit.modal(document.getElementById('PrefixModal')).show(); } async function openEditPrefixModal(prefix) { document.getElementById('PrefixModalHeader').innerHTML = `Edit Prefix: ${prefix.name}` document.getElementById('PrefixModalSubmitButton').innerHTML = "Edit" document.getElementById('PrefixUUID').value = prefix.uuid document.getElementById('PrefixName').value = prefix.name document.getElementById('PrefixDescription').value = prefix.description document.getElementById('PrefixModalSubmitButton').onclick = async function() { await postEditPrefix(prefix.id) } UIkit.modal(document.getElementById('PrefixModal')).show(); } async function postAddPrefix() { let prefix_uuid = document.getElementById('PrefixUUID').value let prefix_name = document.getElementById('PrefixName').value let prefix_description = document.getElementById('PrefixDescription').value const response = await fetch(`/site_management/api/postAddPrefix`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ prefix_uuid: prefix_uuid, prefix_name:prefix_name, prefix_description:prefix_description }), }); data = await response.json(); transaction_status = "success" if (data.error){ transaction_status = "danger" } UIkit.notification({ message: data.message, status: transaction_status, pos: 'top-right', timeout: 5000 }); let prefixes = await fetchPrefixes() await updatePrefixesPagination() await replenishPrefixesTable(prefixes) UIkit.modal(document.getElementById('PrefixModal')).hide(); } async function postEditPrefix(prefix_id) { let prefix_uuid = document.getElementById('PrefixUUID').value let prefix_name = document.getElementById('PrefixName').value let prefix_description = document.getElementById('PrefixDescription').value const response = await fetch(`/site_management/api/postEditPrefix`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ prefix_id: prefix_id, update: {'name': prefix_name, 'uuid': prefix_uuid, 'description': prefix_description} }), }); data = await response.json(); transaction_status = "success" if (data.error){ transaction_status = "danger" } UIkit.notification({ message: data.message, status: transaction_status, pos: 'top-right', timeout: 5000 }); let prefixes = await fetchPrefixes() await updatePrefixesPagination() await replenishPrefixesTable(prefixes) UIkit.modal(document.getElementById('PrefixModal')).hide(); }