Change UI to allow disabling squeezelite

This commit is contained in:
Sebastien L
2023-10-11 14:34:44 -04:00
parent a0d3c60f62
commit 9b97404fa2
3 changed files with 88 additions and 13 deletions

48
ToggleGitTracking.ps1 Normal file
View File

@@ -0,0 +1,48 @@
param (
[Parameter(Position=0, Mandatory=$false)]
[ValidateSet("t", "u")]
[string]$option
)
# Define the directory to apply changes to
$targetDir = "components\wifi-manager\webapp\dist"
# Get the current directory
$currentDir = Get-Location
# Get list of files from the file system
$fsFiles = Get-ChildItem -Recurse $targetDir -File | ForEach-Object {
$_.FullName.Substring($currentDir.Path.Length + 1).Replace("\", "/")
}
# Get list of files from the Git index
$indexFiles = git ls-files -s $targetDir | ForEach-Object {
($_ -split "\s+")[3]
}
# Combine and remove duplicates
$allFiles = $fsFiles + $indexFiles | Sort-Object -Unique
# Apply the git command based on the option
$allFiles | ForEach-Object {
$relativePath = $_
$isInIndex = $indexFiles -contains $relativePath
if ($null -eq $option) {
$status = if ($isInIndex) { 'tracked' } else { 'not tracked' }
Write-Host "$relativePath is $status"
}
elseif ($isInIndex) {
if ($option -eq "t") {
git update-index --no-skip-worktree $relativePath
Write-Host "Started tracking changes in $relativePath"
}
elseif ($option -eq "u") {
git update-index --skip-worktree $relativePath
Write-Host "Stopped tracking changes in $relativePath"
}
}
else {
Write-Host "File $relativePath is not tracked."
}
}

View File

@@ -331,8 +331,7 @@
<div class="form-check"> <div class="form-check">
<label class="form-check-label"> <label class="form-check-label">
<input class="form-check-input" type="checkbox" id="disable-squeezelite" <input class="form-check-input" type="checkbox" id="disable-squeezelite" value="" >
value="" checked="">
Disable Squeezelite Disable Squeezelite
</label> </label>
</div> </div>

View File

@@ -923,10 +923,10 @@ window.saveAutoexec1 = function (apply) {
}; };
data.config = { data.config = {
autoexec1: { value: commandLine, type: 33 }, autoexec1: { value: commandLine, type: 33 },
autoexec: { // autoexec: {
value: $('#disable-squeezelite').prop('checked') ? '0' : '1', // value: $('#disable-squeezelite').prop('checked') ? '0' : '1',
type: 33, // type: 33,
}, // },
}; };
$.ajax({ $.ajax({
@@ -1216,6 +1216,28 @@ $(document).ready(function () {
} }
}); });
$('#disable-squeezelite').on('click', function () {
// this.checked = this.checked ? 1 : 0;
// $('#disable-squeezelite').prop('checked')
if (this.checked) {
// Store the current value before overwriting it
const currentValue = $('#cmd_opt_s').val();
$('#cmd_opt_s').data('originalValue', currentValue);
// Overwrite the value with '-disable'
$('#cmd_opt_s').val('-disable');
} else {
// Retrieve the original value
const originalValue = $('#cmd_opt_s').data('originalValue');
// Restore the original value if it exists, otherwise set it to an empty string
$('#cmd_opt_s').val(originalValue ? originalValue : '');
}
});
$('input#show-nvs').on('click', function () { $('input#show-nvs').on('click', function () {
this.checked = this.checked ? 1 : 0; this.checked = this.checked ? 1 : 0;
Cookies.set("show-nvs", this.checked ? 'Y' : 'N'); Cookies.set("show-nvs", this.checked ? 'Y' : 'N');
@@ -2199,13 +2221,7 @@ function getConfig() {
.sort() .sort()
.forEach(function (key) { .forEach(function (key) {
let val = data[key].value; let val = data[key].value;
if (key === 'autoexec') { if (key === 'autoexec1') {
if (data.autoexec.value === '0') {
$('#disable-squeezelite')[0].checked = true;
} else {
$('#disable-squeezelite')[0].checked = false;
}
} else if (key === 'autoexec1') {
/* call new function to parse the squeezelite options */ /* call new function to parse the squeezelite options */
processSqueezeliteCommandLine(val); processSqueezeliteCommandLine(val);
} else if (key === 'host_name') { } else if (key === 'host_name') {
@@ -2294,6 +2310,7 @@ function processSqueezeliteCommandLine(val) {
commandBTSinkName= parsed.otherOptions.btname; commandBTSinkName= parsed.otherOptions.btname;
} }
handleTemplateTypeRadio('bt'); handleTemplateTypeRadio('bt');
} }
Object.keys(parsed.options).forEach(function (key) { Object.keys(parsed.options).forEach(function (key) {
const option = parsed.options[key]; const option = parsed.options[key];
@@ -2312,6 +2329,17 @@ function processSqueezeliteCommandLine(val) {
$('#resample_i').prop('checked', true); $('#resample_i').prop('checked', true);
} }
} }
if (parsed.options.hasOwnProperty('s')) {
// parse -u v[:i] and check the appropriate radio button with id #resample_v
if(parsed.options.s === '-disable'){
$('#disable-squeezelite')[0].checked = true;
}
else {
$('#disable-squeezelite')[0].checked = false;
}
}
} }