# APP
# ---------------------------------------------------------
APP_NAME = "network-manager"
-APP_VERSION = "0.0.2"
+APP_VERSION = "0.0.3"
# ---------------------------------------------------------
# Backup System
</div>
<!-- Loader -->
- <div id="loader" class="text-center my-3" style="display: none;">
+ <div id="loader" class="text-center my-3 d-none">
<div class="spinner-border text-primary" role="status">
<span class="visually-hidden" data-i18n="common.loading">Loading...</span>
</div>
cursor: pointer;
}
+.modal-table-scroll {
+ max-height: 250px;
+ overflow-y: auto;
+}
+
+.backup-icon-column {
+ width: 40px;
+}
+
+.backup-actions-column {
+ width: 130px;
+}
+
/* Sort arrows */
.sort-arrow {
display: inline-block;
</div>
<!-- Loader -->
- <div id="loader" class="text-center my-3" style="display: none;">
+ <div id="loader" class="text-center my-3 d-none">
<div class="spinner-border text-primary" role="status">
<span class="visually-hidden" data-i18n="common.loading">Loading...</span>
</div>
</div>
<!-- Loader -->
- <div id="loader" class="text-center my-3" style="display: none;">
+ <div id="loader" class="text-center my-3 d-none">
<div class="spinner-border text-primary" role="status">
<span class="visually-hidden" data-i18n="common.loading">Loading...</span>
</div>
try {
// Show loader
- loader.style.display = "block";
+ loader.classList.remove("d-none");
// Fetch aliases
allAliases = await serviceGetAliases();
tableWrapper.classList.remove("d-none");
}
finally {
- loader.style.display = "none";
+ // Hide loader
+ loader.classList.add("d-none");
}
}
trEmpty.appendChild(tdEmpty);
tbody.appendChild(trEmpty);
// hide loader and show table
- loader.style.display = "none";
+ loader.classList.add("d-none");
tableWrapper.classList.remove("d-none");
return;
}
}
// hide loader and show table
- loader.style.display = "none";
+ loader.classList.add("d-none");
tableWrapper.classList.remove("d-none");
// apply current search filter
};
const onConfirm = () => {
+ document.activeElement?.blur();
cleanUp();
- resolve(true);
modal.hide();
+ resolve(true);
};
const onCancel = () => {
try {
// Show loader
- loader.style.display = "block";
+ loader.classList.remove("d-none");
// Fetch devices
allDevices = await serviceGetDevices();
tableWrapper.classList.remove("d-none");
}
finally {
- loader.style.display = "none";
+ // Hide loader
+ loader.classList.add("d-none");
}
}
trEmpty.appendChild(tdEmpty);
tbody.appendChild(trEmpty);
// hide loader and show table
- loader.style.display = "none";
+ loader.classList.add("d-none");
tableWrapper.classList.remove("d-none");
return;
}
}
// hide loader and show table
- loader.style.display = "none";
+ loader.classList.add("d-none");
tableWrapper.classList.remove("d-none");
// apply current search filter
try {
// Show loader
- loader.style.display = "block";
+ loader.classList.remove("d-none");
// Fetch hosts
allHosts = await serviceGetHosts();
tableWrapper.classList.remove("d-none");
}
finally {
- loader.style.display = "none";
+ // Hide loader
+ loader.classList.add("d-none");
}
}
trEmpty.appendChild(tdEmpty);
tbody.appendChild(trEmpty);
// hide loader and show table
- loader.style.display = "none";
+ loader.classList.add("d-none");
tableWrapper.classList.remove("d-none");
return;
}
}
// hide loader and show table
- loader.style.display = "none";
+ loader.classList.add("d-none");
tableWrapper.classList.remove("d-none");
// apply current search filter
try {
// Show loader
- loader.style.display = "block";
+ loader.classList.remove("d-none");
// Fetch leases
allLeases = await serviceGetDHCPLeases();
tableWrapper.classList.remove("d-none");
}
finally {
- loader.style.display = "none";
+ loader.classList.add("d-none");
}
}
trEmpty.appendChild(tdEmpty);
tbody.appendChild(trEmpty);
// hide loader and show table
- loader.style.display = "none";
+ loader.classList.add("d-none");
tableWrapper.classList.remove("d-none");
return;
}
}
// hide loader and show table
- loader.style.display = "none";
+ loader.classList.add("d-none");
tableWrapper.classList.remove("d-none");
// apply current search filter
loading = true;
const currentRequest = ++requestId;
- loader.style.display = "block";
+ // Show loader
+ loader.classList.remove("d-none");
try {
const data = await serviceGetLogs(type);
} catch (err) {
logViewer.textContent = err.message || "Errore loading logs";
} finally {
- loader.style.display = "none";
+ // Hide loader
+ loader.classList.add("d-none");
loading = false;
}
}
try {
// Show loader
- loader.style.display = "block";
+ loader.classList.remove("d-none");
// Fetch configs
allConfigs = await serviceGetConfigs();
tableWrapper.classList.remove("d-none");
}
finally {
- loader.style.display = "none";
+ // Hide loader
+ loader.classList.add("d-none");
}
}
trEmpty.appendChild(tdEmpty);
tbody.appendChild(trEmpty);
// hide loader and show table
- loader.style.display = "none";
+ loader.classList.add("d-none");
tableWrapper.classList.remove("d-none");
return;
}
tbody.appendChild(frag);
// hide loader and show table
- loader.style.display = "none";
+ loader.classList.add("d-none");
tableWrapper.classList.remove("d-none");
}
</div>
<!-- Loader -->
- <div id="loader" class="text-center my-3" style="display: none;">
+ <div id="loader" class="text-center my-3 d-none">
<div class="spinner-border text-primary" role="status">
<span class="visually-hidden" data-i18n="common.loading">Loading...</span>
</div>
<div id="logViewer" class="log-viewer mobile-scroll mb-0"></div>
<!-- Loader -->
- <div id="loader" class="text-center my-3" style="display: none;">
+ <div id="loader" class="text-center my-3 d-none">
<div class="spinner-border text-primary" role="status">
<span class="visually-hidden" data-i18n="common.loading">Loading...</span>
</div>
<div class="modal-body">
<label class="form-label" data-i18n="backup.available">Available backups</label>
- <div class="table-responsive" style="max-height: 250px; overflow-y: auto;">
+ <div class="table-responsive modal-table-scroll">
<table class="table table-hover table-sm align-middle">
<thead class="table-light sticky-top">
<tr>
- <th style="width: 40px;"></th>
+ <th class="backup-icon-column"></th>
<th data-i18n="backup.name">Name</th>
<th data-i18n="backup.date">Date</th>
<th data-i18n="backup.size">Size</th>
- <th style="width: 130px;"
- class="text-center"
+ <th class="backup-actions-column text-center"
data-i18n="backup.actions">
Actions
</th>
</div>
<!-- Loader -->
- <div id="loader" class="text-center my-3" style="display: none;">
+ <div id="loader" class="text-center my-3 d-none">
<div class="spinner-border text-primary" role="status">
<span class="visually-hidden" data-i18n="common.loading">Loading...</span>
</div>