Merge @dr-dolomite 's for-merging branch

-Create new development-v2 branch to work on simpleadmin v2

-Merged @dr-dolomite work from:
2d197220a4

Co-Authored-By: Russel Yasol <73575327+dr-dolomite@users.noreply.github.com>
This commit is contained in:
iamromulan
2024-05-03 15:46:25 -04:00
parent 906688f458
commit c9d0e45aa3
32 changed files with 3702 additions and 2053 deletions

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,29 @@
// Function to toggle dark mode
const toggleDarkMode = () => {
const html = document.querySelector('html');
const currentTheme = html.getAttribute('data-bs-theme');
if (currentTheme === 'dark') {
html.removeAttribute('data-bs-theme');
darkModeToggle.textContent = 'Dark Mode';
localStorage.setItem('theme', 'light'); // Store the theme in localStorage
} else {
html.setAttribute('data-bs-theme', 'dark');
darkModeToggle.textContent = 'Light Mode';
localStorage.setItem('theme', 'dark'); // Store the theme in localStorage
}
};
const darkModeToggle = document.getElementById('darkModeToggle');
// Check if theme preference is stored in localStorage
const storedTheme = localStorage.getItem('theme');
if (storedTheme) {
const html = document.querySelector('html');
html.setAttribute('data-bs-theme', storedTheme);
if (storedTheme === 'dark') {
darkModeToggle.textContent = 'Light Mode';
}
}
darkModeToggle.addEventListener('click', toggleDarkMode);

View File

@@ -0,0 +1,37 @@
const freqNumbersContainer = document.getElementById(
"freqNumbersContainer"
);
function generateFreqNumberInputs(num) {
let html = "";
const maxFields = Math.min(num, 10); // Limit to a maximum of 10 fields
for (let i = 1; i <= maxFields; i++) {
html += `
<div class="input-group mb-3" x-show="cellNum >= ${i} && networkModeCell == 'LTE'">
<input
type="text"
aria-label="EARFCN"
placeholder="EARFCN"
class="form-control"
x-model="earfcn${i}"
/>
<input
type="text"
aria-label="PCI"
placeholder="PCI"
class="form-control"
x-model="pci${i}"
/>
</div>
`;
}
return html;
}
document.addEventListener("DOMContentLoaded", function () {
const cellNumInput = document.querySelector("[aria-label='NumCells']");
cellNumInput.addEventListener("input", function () {
const cellNum = parseInt(this.value);
freqNumbersContainer.innerHTML = generateFreqNumberInputs(cellNum);
});
});

View File

@@ -0,0 +1,58 @@
function parseCurrentSettings(rawdata) {
const data = rawdata;
const lines = data.split("\n");
console.log(lines);
// Remove QUIMSLOT and only take 1 or 2
this.sim = lines[1].split(":")[1].trim();
this.apn = lines[3].split(",")[2].replace(/\"/g, "");
this.cellLock4GStatus = lines[5].split(",")[1].replace(/\"/g, "");
this.cellLock5GStatus = lines[7].split(",")[1].replace(/\"/g, "");
this.prefNetwork = lines[9].split(",")[1].replace(/\"/g, "");
this.nrModeControlStatus = lines[11].split(",")[1].replace(/\"/g, "");
let bands = [];
// Append the values if there is separated by comma
for (let i = 13; i < 17; i++) {
if (lines[i].split(",").length > 1) {
bands.push(lines[i].split(",")[3].replace(/\"/g, ""));
}
}
this.bands = bands;
if (this.cellLock4GStatus == 1 && this.cellLock5GStatus == 1) {
this.cellLockStatus = "Locked to 4G and 5G";
} else if (this.cellLock4GStatus == 1) {
this.cellLockStatus = "Locked to 4G";
}
else if (this.cellLock5GStatus == 1) {
this.cellLockStatus = "Locked to 5G";
}
else {
this.cellLockStatus = "Not Locked";
}
if (this.nrModeControlStatus == 0) {
this.nrModeControlStatus = "Not Disabled";
}
else if (this.nrModeControlStatus == 1) {
this.nrModeControlStatus = "SA Disabled";
}
else {
this.nrModeControlStatus = "NSA Disabled";
}
return {
sim: sim,
apn: apn,
cellLockStatus: cellLockStatus,
prefNetwork: prefNetwork,
nrModeControl: nrModeControlStatus,
bands: bands
};
}

View File

@@ -0,0 +1,76 @@
function populateCheckboxes(lte_band, nsa_nr5g_band, nr5g_band, locked_lte_bands, locked_nsa_bands, locked_sa_bands, cellLock) {
var checkboxesForm = document.getElementById("checkboxForm");
var selectedMode = document.getElementById("networkModeBand").value;
var bands;
// Determine bands based on selected network mode
if (selectedMode === "LTE") {
bands = lte_band;
} else if (selectedMode === "NSA") {
bands = nsa_nr5g_band;
} else if (selectedMode === "SA") {
bands = nr5g_band;
}
checkboxesForm.innerHTML = ""; // Clear existing checkboxes
var bandsArray;
if (bands !== null) {
bandsArray = bands.split(":");
bandsArray.forEach(function(band, index) {
if (index % 5 === 0) {
currentRow = document.createElement("div");
currentRow.className = "row mb-2 mx-auto"; // Add margin bottom for spacing
checkboxesForm.appendChild(currentRow);
}
var checkboxDiv = document.createElement("div");
checkboxDiv.className = "form-check form-check-reverse col-2"; // Each checkbox takes a column
var checkboxInput = document.createElement("input");
checkboxInput.className = "form-check-input";
checkboxInput.type = "checkbox";
checkboxInput.id = "inlineCheckbox" + band;
checkboxInput.value = band;
checkboxInput.autocomplete = "off";
// Store the locked bands in an array
var locked_lte_bands_array = locked_lte_bands.split(":");
var locked_nsa_bands_array = locked_nsa_bands.split(":");
var locked_sa_bands_array = locked_sa_bands.split(":");
// Check if the current band is locked
var isLocked = false;
if (selectedMode === "LTE") {
if (locked_lte_bands_array.includes(band)) {
isLocked = true;
}
} else if (selectedMode === "NSA") {
if (locked_nsa_bands_array.includes(band)) {
isLocked = true;
}
} else if (selectedMode === "SA") {
if (locked_sa_bands_array.includes(band)) {
isLocked = true;
}
}
if (isLocked) {
checkboxInput.checked = true;
}
var checkboxLabel = document.createElement("label");
checkboxLabel.className = "form-check-label";
checkboxLabel.htmlFor = "inlineCheckbox" + band;
checkboxLabel.innerText = "B" + band;
checkboxDiv.appendChild(checkboxInput);
checkboxDiv.appendChild(checkboxLabel);
currentRow.appendChild(checkboxDiv);
});
} else {
// Do nothing
}
var currentRow;
addCheckboxListeners(cellLock);
}