path debug output #593, docs #598, Unassign network node #601

This commit is contained in:
Jokob-sk
2024-03-22 11:37:17 +11:00
parent 63fc716359
commit 8d4d985fba
8 changed files with 42 additions and 27 deletions

View File

@@ -621,6 +621,10 @@
<script src="lib/AdminLTE/bower_components/moment/moment.js"></script>
<script src="lib/AdminLTE/bower_components/fullcalendar/dist/fullcalendar.min.js"></script>
<script src="lib/AdminLTE/bower_components/fullcalendar/dist/locale-all.js"></script>
<!-- ----------------------------------------------------------------------- -->
<script src="js/ui_components.js"></script>
<script src="js/db_methods.js"></script>
<!-- ----------------------------------------------------------------------- -->
<!-- Dark-Mode Patch -->
<?php
@@ -825,6 +829,10 @@ function initializeCombos () {
initializeCombo ( '#dropdownGroup', 'getGroups', 'txtGroup', true);
initializeCombo ( '#dropdownLocation', 'getLocations', 'txtLocation', true);
initializeCombo ( '#dropdownNetworkNodeMac', 'getNetworkNodes', 'txtNetworkNodeMac', false);
// initSettingDropdown("NEWDEV_dev_Network_Node_MAC_ADDR", [], "dropdownNetworkNodeMac", generateList)
initializeCombo ( '#dropdownIcon', 'getIcons', 'txtIcon', false);
initializeCombo ( '#dropdownAction', 'getActions', 'txtAction', false);
initializeCombo ( '#dropdownDevices', 'getDevices', 'txtFromDevice', false);

View File

@@ -113,7 +113,7 @@ $(function () {
// -----------------------------------------------------------------------------
// Initiate dropdown
function initSettingDropdown(settingKey, valuesArray, targetLocation)
function initSettingDropdown(settingKey, valuesArray, targetLocation, callbackToGenerateEntries)
{
var optionsHtml = ""
@@ -127,7 +127,7 @@ function initSettingDropdown(settingKey, valuesArray, targetLocation)
optionsHtml += `<option id="${targetLocation_options}"></option>`;
readData(optionsArray[0], generateDropdownOptions, valuesArray, targetLocation_options);
readData(optionsArray[0], callbackToGenerateEntries, valuesArray, targetLocation_options);
} else // this should be already an array, e.g. from a setting or pre-defined
{

View File

@@ -112,7 +112,7 @@
targetLocation = columns[j].Code_Name + "_initSettingDropdown"
initSettingDropdown(columns[j].Code_Name, [], targetLocation)
initSettingDropdown(columns[j].Code_Name, [], targetLocation, generateDropdownOptions)
input = `<select class="form-control"
id="${columns[j].Code_Name}"

View File

@@ -799,6 +799,9 @@ function getNetworkNodes() {
$tableData[] = array('id' => $row['dev_MAC'],
'name' => $row['dev_Name'] );
}
// Add an empty option at the bottom
$tableData[] = array('id' => '', 'name' => '❌'.lang("Network_ManageUnassign")); // Add empty option
// Control no rows
if (empty($tableData)) {

View File

@@ -170,7 +170,7 @@ while ($row = $result -> fetchArray (SQLITE3_ASSOC)) {
pluginsData = res["data"];
initSettingsPage(settingsData, pluginsData);
initSettingsPage(settingsData, pluginsData, generateDropdownOptions);
})
})
}
@@ -536,28 +536,15 @@ while ($row = $result -> fetchArray (SQLITE3_ASSOC)) {
optionsArray = getSettingOptions(set['Code_Name'] )
valuesArray = createArray(set['Value']);
// // check if the result is a SQL query - if so, dropdown will be populated async with AJAX
// if(isSQLQuery(optionsArray))
// {
var targetLocation = set['Code_Name'] + "_initSettingDropdown";
// placeholder option which will be replaced on callback
optionsHtml += `<option id="${targetLocation}" temporary="temporary"></option>`;
// execute AJAX callabck + SQL query resolution
initSettingDropdown(set['Code_Name'] , valuesArray, targetLocation)
var targetLocation = set['Code_Name'] + "_initSettingDropdown";
// placeholder option which will be replaced on callback
optionsHtml += `<option id="${targetLocation}" temporary="temporary"></option>`;
// }
// else // it's a string without a SQL resolution requirements
// {
// options = createArray(optionsArray);
// options.forEach(option => {
// let selected = valuesArray.includes(option) ? 'selected' : '';
// optionsHtml += `<option value="${option}" ${selected}>${option}</option>`;
// });
// }
// execute AJAX callabck + SQL query resolution
initSettingDropdown(set['Code_Name'] , valuesArray, targetLocation, generateDropdownOptions)
// main selection dropdown wrapper
input += `