mirror of
https://github.com/sle118/squeezelite-esp32.git
synced 2025-12-09 13:07:03 +03:00
Change UI to allow disabling squeezelite
This commit is contained in:
48
ToggleGitTracking.ps1
Normal file
48
ToggleGitTracking.ps1
Normal 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."
|
||||
}
|
||||
}
|
||||
@@ -331,8 +331,7 @@
|
||||
|
||||
<div class="form-check">
|
||||
<label class="form-check-label">
|
||||
<input class="form-check-input" type="checkbox" id="disable-squeezelite"
|
||||
value="" checked="">
|
||||
<input class="form-check-input" type="checkbox" id="disable-squeezelite" value="" >
|
||||
Disable Squeezelite
|
||||
</label>
|
||||
</div>
|
||||
|
||||
@@ -923,10 +923,10 @@ window.saveAutoexec1 = function (apply) {
|
||||
};
|
||||
data.config = {
|
||||
autoexec1: { value: commandLine, type: 33 },
|
||||
autoexec: {
|
||||
value: $('#disable-squeezelite').prop('checked') ? '0' : '1',
|
||||
type: 33,
|
||||
},
|
||||
// autoexec: {
|
||||
// value: $('#disable-squeezelite').prop('checked') ? '0' : '1',
|
||||
// type: 33,
|
||||
// },
|
||||
};
|
||||
|
||||
$.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 () {
|
||||
this.checked = this.checked ? 1 : 0;
|
||||
Cookies.set("show-nvs", this.checked ? 'Y' : 'N');
|
||||
@@ -2199,13 +2221,7 @@ function getConfig() {
|
||||
.sort()
|
||||
.forEach(function (key) {
|
||||
let val = data[key].value;
|
||||
if (key === 'autoexec') {
|
||||
if (data.autoexec.value === '0') {
|
||||
$('#disable-squeezelite')[0].checked = true;
|
||||
} else {
|
||||
$('#disable-squeezelite')[0].checked = false;
|
||||
}
|
||||
} else if (key === 'autoexec1') {
|
||||
if (key === 'autoexec1') {
|
||||
/* call new function to parse the squeezelite options */
|
||||
processSqueezeliteCommandLine(val);
|
||||
} else if (key === 'host_name') {
|
||||
@@ -2294,6 +2310,7 @@ function processSqueezeliteCommandLine(val) {
|
||||
commandBTSinkName= parsed.otherOptions.btname;
|
||||
}
|
||||
handleTemplateTypeRadio('bt');
|
||||
|
||||
}
|
||||
Object.keys(parsed.options).forEach(function (key) {
|
||||
const option = parsed.options[key];
|
||||
@@ -2312,6 +2329,17 @@ function processSqueezeliteCommandLine(val) {
|
||||
$('#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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user