wait for container station on start, web panel update

This commit is contained in:
crieke
2026-04-15 03:12:19 +02:00
parent a1fc9585d3
commit 1222396af4
9 changed files with 224 additions and 153 deletions

View File

@@ -90,7 +90,7 @@ $ContributorsManual = array(
<br><br>
<div id="about-github" style="background-color: #d7d7d7; padding: 20px; text-align: center;">
<div id="about-github" style="padding: 20px; text-align: center;">
<div>
<?php echo localize("MODAL_ABOUT_GITHUB"); ?><br>
<div style="text-align: center; font-size: 50px;">

View File

@@ -28,7 +28,7 @@ include_once("/home/httpd/cgi-bin/qpkg/RoonServer/__functions.php");
<p class="lead"><?php echo localize("OVERVIEW_TEXT1"); ?><br>
<?php echo localize("OVERVIEW_TEXT2"); ?></p>-->
<div class="row">
<div class="col-sm-6">
<div class="col-sm-8">
<div class="card">
<div class="card-body">
<span class="fa-stack fa-2x">
@@ -39,7 +39,7 @@ include_once("/home/httpd/cgi-bin/qpkg/RoonServer/__functions.php");
<p class="card-text">
<b><?php echo localize("OVERVIEW_ROONSERVER_PANEL_STATUS"); ?>
:</b> <?php if (strlen(isRunning()) > 1 ) {
echo '<span data-bs-toggle="tooltip" title="' . localize("OVERVIEW_ROONSERVER_PANEL_CONTAINER_ID") .': ' . isRunning() . '" style="color: green;">' . localize("OVERVIEW_ROONSERVER_PANEL_STATUS_RUNNING") . '</span>';
echo '<span data-bs-toggle="tooltip" data-bs-title="' . localize("OVERVIEW_ROONSERVER_PANEL_CONTAINER_ID") .': ' . isRunning() . '" style="color: green;">' . localize("OVERVIEW_ROONSERVER_PANEL_STATUS_RUNNING") . '</span>';
} else {
echo '<span style="color: red;">' . localize("OVERVIEW_ROONSERVER_PANEL_STATUS_STOPPED") . '</span>';
} ?><br>
@@ -49,7 +49,7 @@ include_once("/home/httpd/cgi-bin/qpkg/RoonServer/__functions.php");
:</b> <?php echo $qpkg_conf['RoonServer']['Version']; ?></span>
</p>
<h5><?php echo localize("OVERVIEW_ROONSERVER_PANEL_SUBHEAD_DATABASE"); ?></h5>
<span data-bs-toggle="tooltip" title="<?php echo $dblocation; ?>">
<span data-bs-toggle="tooltip" data-bs-title="<?php echo $dblocation; ?>">
<b><?php echo localize("OVERVIEW_ROONSERVER_PANEL_LOCATION"); ?>: </b><?php echo $dblocation; ?>
</span>
<div class="progress" style="height: 20px;">
@@ -59,19 +59,21 @@ include_once("/home/httpd/cgi-bin/qpkg/RoonServer/__functions.php");
<?php echo $db_perc . '% ' . localize("OVERVIEW_ROONSERVER_PANEL_SPACE_OF") . ' ' . displayStorage($db_vol_cap) . ' ' . localize("OVERVIEW_ROONSERVER_PANEL_SPACE_USED") . '.'; ?>
</p>
<div class="row">
<span id="log" class="col getModal d-flex justify-content-start">
<span id="log" class="col-2 getModal d-flex justify-content-start">
<a href="#"
class="btn btn-light btn-icon float-left"
class="btn btn-outline-danger"
data-bs-theme="dark"
data-bs-toggle="tooltip"
title="<?php echo localize("MODAL_LOGFILES_ICON_TOOLTIP"); ?>">
data-bs-title="<?php echo localize("MODAL_LOGFILES_ICON_TOOLTIP"); ?>">
<i class="fas fa-ambulance"></i>
</a>
</span>
<span id="setStorage" class="col-6 getModal float-right">
<span id="setStorage" class="col-9 getModal ms-auto float-end">
<a href="#"
class="btn btn-primary"
data-bs-theme="dark"
data-bs-toggle="tooltip"
title="<?php echo localize("OVERVIEW_ROONSERVER_PANEL_CHANGE_DB_LOCATION_TOOLTIP"); ?>">
data-bs-title="<?php echo localize("OVERVIEW_ROONSERVER_PANEL_CHANGE_DB_LOCATION_TOOLTIP"); ?>">
<?php echo localize("OVERVIEW_ROONSERVER_PANEL_CHANGE_DB_LOCATION"); ?>
</a>
</span>
@@ -79,23 +81,22 @@ include_once("/home/httpd/cgi-bin/qpkg/RoonServer/__functions.php");
</div>
</div>
</div>
<div class="col-sm-6">
<div class="col-sm-4">
<div class="card">
<div class="card-body">
<span class="fa-stack fa-2x">
<i class="fa fa-circle fa-stack-2x" style="color: #222222;"></i>
<i class="fas fa-cog fa-stack-1x" style="color: #ffffff;"></i>
</span>
<h5>Settings</h5>
<div class=" d-grid gap-3 w-50">
<h5><?php echo localize("OVERVIEW_OPTIONS_PANEL_TITLE"); ?></h5>
<div class="form-check form-switch">
<input class="form-check-input" type="checkbox" role="switch" id="smb_cifs" onchange="changeSettings(this)">
<label class="form-check-label justify-content-start" for="flexSwitchCheckChecked">SMB/CIFS mount support</label>
</div>
<div class="form-check form-switch">
<input class="form-check-input" type="checkbox" role="switch" id="usb_audio" onchange="changeSettings(this)">
<label class="form-check-label justify-content-start" for="flexSwitchCheckChecked">USB audio (DAC)</label>
<label class="form-check-label justify-content-start" for="flexSwitchCheckChecked" data-bs-toggle="tooltip" data-bs-title="<?php echo localize("OVERVIEW_OPTIONS_PANEL_USB_AUDIO_TOOLTIP"); ?>">USB audio (DAC)</label>
</div>
<div class="form-check form-switch">
@@ -103,14 +104,15 @@ include_once("/home/httpd/cgi-bin/qpkg/RoonServer/__functions.php");
<label class="form-check-label justify-content-start text-left" for="flexSwitchCheckChecked">HDMI audio</label>
</div>
</div>
<span id="saveOptions" class="getModal">
<span id="save" class="getModal">
<a href="#"
class="btn btn-primary float-right"
id="saveButton"
class="btn btn-primary float-right disabled"
data-bs-toggle="tooltip"
onclick="saveOptions()"
title="Save Options">
Save
data-bs-title="Save & Restart"
data-bs-theme="dark"
><?php echo localize("OVERVIEW_OPTIONS_PANEL_SAVE_BTN"); ?>
</a>
</span>
</div>
@@ -127,11 +129,6 @@ include_once("/home/httpd/cgi-bin/qpkg/RoonServer/__functions.php");
echo "false";
} ?>;
// Enable Tooltips
$(function () {
document.querySelectorAll('[data-bs-toggle="tooltip"]')
});
// Action when button for Modal is clicked
$('.getModal').on('click', function (e) {
@@ -149,20 +146,42 @@ include_once("/home/httpd/cgi-bin/qpkg/RoonServer/__functions.php");
$('#modal').modal('show');
return false;
});
function changeSettings(el) {
// add code to guide user to press save next
//console.log(el.id + ": " + el.checked);
function changeSettings() {
var qpkg_options_str = "<?php echo $qpkg_conf_options ?>";
var qpkg_options_arr = qpkg_options_str.split(' ');
var qnap_opt_arr = [];
document.getElementById('smb_cifs').checked && qnap_opt_arr.push("smb_cifs");
document.getElementById('usb_audio').checked && qnap_opt_arr.push("usb_audio");
document.getElementById('hdmi_audio').checked && qnap_opt_arr.push("hdmi_audio");
console.log(qnap_opt_arr.join(' ') == qpkg_options_arr.join(' '));
console.log(qnap_opt_arr.join(' ') == qpkg_options_arr.join(' '));
if ( qnap_opt_arr.join(' ') == qpkg_options_arr.join(' ') ) {
$("#saveButton").addClass("disabled");
} else {
$("#saveButton").removeClass("disabled");
}
}
$( document ).ready(function() {
var qpkg_options_str = "<?php echo $qpkg_conf_options ?>";
var qpkg_options_arr = qpkg_options_str.split(' ');
for (let conf_option of qpkg_options_arr) {
document.getElementById(conf_option).checked = true;
}
const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]')
const tooltipList = [...tooltipTriggerList].map(tooltipTriggerEl => new bootstrap.Tooltip(tooltipTriggerEl))
if ( qpkg_options_str.length > 0 ) {
var qpkg_options_arr = qpkg_options_str.split(' ');
for (let conf_option of qpkg_options_arr) {
document.getElementById(conf_option).checked = true;
}
}
});
// Function to download log files
function saveOptions () {
var qnap_options = "";
@@ -170,6 +189,8 @@ function saveOptions () {
qnap_options += document.getElementById('usb_audio').checked ? "usb_audio;" : "" ;
qnap_options += document.getElementById('hdmi_audio').checked ? "hdmi_audio;" : "" ;
$("#saveButton").addClass("disabled");
document.getElementById('smb_cifs').checked
var strUrl = '<?php echo NASHOST;?>/cgi-bin/qpkg/RoonServer/ajax/ajax.php?a=setOptions&o=' + qnap_options;

View File

@@ -57,6 +57,7 @@ include_once("/home/httpd/cgi-bin/qpkg/RoonServer/__functions.php");
imageCssClassField: 'faCssClass',
uiLibrary: 'bootstrap5',
cascadeSelection: false,
cascadeCheck: false,
selectionType: 'single',
icons: {
expand: '<i class="fas fa-angle-right" />',
@@ -121,10 +122,11 @@ include_once("/home/httpd/cgi-bin/qpkg/RoonServer/__functions.php");
<div class="input-group">
<span class="input-group-btn">
<span class="form form-control"
style="background: #F5F5F5; border-radius: 0.25em 0 0 0.25em !important;"
style="background: var(--bs-dark-bg-subtle); border-radius: 0.25em 0 0 0.25em !important;"
readonly><?php echo localize("MODAL_SETUP_DB_LOCATION"); ?></span>
</span>
<input id="dblocform" type="text" class="form-control" style="background: #ffffff;" value="<?php
<input id="dblocform" type="text" class="form-control" style="background: var(--bs-dark
); color: var(--bs-dark-text-emphasis)" value="<?php
if (isset($dblocation)) {
echo $dblocation;
} else {

View File

@@ -38,13 +38,16 @@
"OVERVIEW_ROONSERVER_PANEL_STATUS_STOPPED": "Stopped",
"OVERVIEW_ROONSERVER_PANEL_VERSION": "Version",
"OVERVIEW_ROONSERVER_PANEL_QPKG_VERSION": "QPKG-Version",
"OVERVIEW_ROONSERVER_PANEL_PID": "Process ID",
"OVERVIEW_ROONSERVER_PANEL_SUBHEAD_DATABASE": "Database",
"OVERVIEW_ROONSERVER_PANEL_LOCATION": "Location",
"OVERVIEW_ROONSERVER_PANEL_SPACE_OF": "of",
"OVERVIEW_ROONSERVER_PANEL_SPACE_USED": "used",
"OVERVIEW_ROONSERVER_PANEL_CONTAINER_ID": "ID",
"OVERVIEW_ROONSERVER_PANEL_CHANGE_DB_LOCATION": "Change database location",
"OVERVIEW_ROONSERVER_PANEL_CHANGE_DB_LOCATION_TOOLTIP": "Change the location, where Roon Server stores its database.",
"OVERVIEW_OPTIONS_PANEL_USB_AUDIO_TOOLTIP": "Enable this, if you want to connect usb audio devices directly to your QNAP NAS.",
"OVERVIEW_OPTIONS_PANEL_TITLE": "Settings",
"OVERVIEW_OPTIONS_PANEL_SAVE_BTN": "Save & Restart",
"OVERVIEW_AUDIO_PANEL_HEADLINE": "Connected Audio Devices",
"OVERVIEW_AUDIO_PANEL_NO_MULTIMEDIA_HEADLINE": "Multimedia Functions disabled",
"OVERVIEW_AUDIO_PANEL_NO_MULTIMEDIA_DESCRIPTION1": "To use audio devices on your NAS, you'll need to turn them on in the General section of the QNAP ControlPanel.",

View File

@@ -39,28 +39,17 @@
"OVERVIEW_ROONSERVER_PANEL_STATUS_STOPPED": "Angehalten",
"OVERVIEW_ROONSERVER_PANEL_VERSION": "Version",
"OVERVIEW_ROONSERVER_PANEL_QPKG_VERSION": "QPKG-Version",
"OVERVIEW_ROONSERVER_PANEL_PID": "Prozess ID",
"OVERVIEW_ROONSERVER_PANEL_CONTAINER_ID": "ID",
"OVERVIEW_ROONSERVER_PANEL_SUBHEAD_DATABASE": "Datenbank",
"OVERVIEW_ROONSERVER_PANEL_LOCATION": "Speicherort",
"OVERVIEW_ROONSERVER_PANEL_SPACE_OF": "von",
"OVERVIEW_ROONSERVER_PANEL_SPACE_USED": "belegt",
"OVERVIEW_ROONSERVER_PANEL_CHANGE_DB_LOCATION": "Speicherort ändern",
"OVERVIEW_ROONSERVER_PANEL_CHANGE_DB_LOCATION_TOOLTIP": "Speicherort ändern, an dem Roon Server seine Datenbank sichert.",
"OVERVIEW_AUDIO_PANEL_NO_MULTIMEDIA_HEADLINE": "Multimediafunktionen deaktiviert",
"OVERVIEW_AUDIO_PANEL_NO_MULTIMEDIA_DESCRIPTION1": "Zur Verwendung von lokalen Audiogeräten am QNAP, aktiviere Multimediafunktionen in den allgemeinen Einstellungen der QNAP Systemsteuerung.",
"OVERVIEW_OPTIONS_PANEL_USB_AUDIO_TOOLTIP": "Zur Verwendung von lokalen Audiogeräten direkt am QNAP.",
"OVERVIEW_OPTIONS_PANEL_TITLE": "Einstellungen",
"OVERVIEW_OPTIONS_PANEL_SAVE_BTN": "Speichern & Neustarten",
"OVERVIEW_AUDIO_PANEL_NO_MULTIMEDIA_DESCRIPTION2": "Um Audiogeräte direkt an deinem QNAP zu verwenden, muss Roon Server neu gestartet werden.",
"OVERVIEW_AUDIO_PANEL_HEADLINE": "Verbundene Audiogeräte",
"OVERVIEW_AUDIO_PANEL_BTN_AUDIO_DEVICES": "Audiogeräte",
"OVERVIEW_AUDIO_PANEL_BTN_AUDIO_DEVICES_TOOLTIP": "Zeigt den Inhalt der Datei '<i>/proc/asound/cards</i>'",
"MODAL_REINSTALL_HEADLINE": "Roon Server erneut installieren?",
"MODAL_REINSTALL_DESCRIPTION_1": "Möchtest du die aktuelle Version von Roon Server installieren?",
"MODAL_REINSTALL_DESCRIPTION_2": "Bei diesem Vorgang werden die Programmdateien, durch die aktuelle Version von der Roon Labs Webseite ersetzt.",
"MODAL_REINSTALL_LOADING": "Laden...",
"MODAL_REINSTALL_ICON_TOOLTIP": "Aktuelle Version des Roon Server erneut von der Roon Labs Webseite laden.",
"MODAL_REINSTALL_DB_UNTOUCHED": "Deine Roon Datanbank bleibt dabei unberührt.",
"MODAL_REINSTALL_ROONSERVER_WILL_STOP": "Roon Server wird für diesen Vorgang kurzzeitig beendet.",
"MODAL_REINSTALL_PROCEED_TEXT": "Ja, mein QNAP soll die aktuelle Roon Server Version laden und installieren",
"MODAL_REINSTALL_DONE": "Roon Server wurde durch die aktuelle Version von der Roon Labs Webseite ersetzt.",
"MODAL_LOGFILES_HEADLINE": "Log-Dateien laden",
"MODAL_LOGFILES_ICON_TOOLTIP": "Sämtliche Log-Dateien als .zip-Datei laden.",
"MODAL_LOGFILES_CHECK_DOWNLOAD_FOLDER": "Bitte schaue in deinen Download-Ordner.",

View File

@@ -4,7 +4,7 @@ include_once("/home/httpd/cgi-bin/qpkg/RoonServer/__functions.php");
?>
<!DOCTYPE html>
<html>
<html data-bs-theme="dark">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
@@ -73,44 +73,56 @@ include_once("/home/httpd/cgi-bin/qpkg/RoonServer/__functions.php");
}
?>
<!-- <nav class="navbar navbar-expand-lg navbar-light bg-light"> -->
<nav class="navbar navbar-expand-md navbar-dark bg-dark fixed-top">
<a class="navbar-brand " href="index.php">
<img src="img/roonIcon.svg" alt="Roon Icon" style="height: 40px;">
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-target="#navbarsExampleDefault"
aria-controls="navbarsExampleDefault" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
<nav class="navbar navbar-expand-lg bg-body-tertiary" data-bs-theme="dark">
<div class="container-fluid">
<a class="navbar-brand" href="#">
<img src="img/roonIcon.svg" alt="Roon Icon" style="height: 40px;">
Roon Server</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarsExampleDefault">
<ul class="navbar-nav mr-auto">
<li class="nav-item">
<a class="nav-link active" href="index.php"><?php echo localize("NAV_MENU_ROONSERVER"); ?></a>
</li>
</ul>
';
<ul class="navbar-nav ml-auto">
<li class="nav-item dropdown pull-right dropdown-menu-right">
<a class="nav-link dropdown-toggle" href="#" id="dropdown01" data-bs-toggle="dropdown"
aria-haspopup="true" aria-expanded="false"><?php echo localize("NAV_MENU_MORE"); ?></a>
<div class="dropdown-menu pull-right" aria-labelledby="dropdown01">
<a class="dropdown-item" href="https://roon.app/de/downloads" target="_blank">
<?php echo localize("NAV_MENU_DOWNLOADS"); ?></a>
<a class="dropdown-item" href="https://community.roonlabs.com"
target="_blank"><?php echo localize("NAV_MENU_COMMUNITY"); ?></a>
<a class="dropdown-item" href="https://kb.roonlabs.com/Roon_Server_on_NAS"
target="_blank"><?php echo localize("NAV_MENU_ROON_ON_NAS"); ?></a>
<a class="dropdown-item" href="https://roon.app/de/pricing" target="_blank">
<?php echo localize("NAV_MENU_TRY_ROON"); ?></a>
</div>
</li>
<li class="nav-item">
<a id="about" class="getModal nav-link float-right" href="#"><i class="fas fa-info-circle"></i> <?php echo localize('NAV_MENU_INFO'); ?></a>
</li>
</ul>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav me-auto">
<li class="nav-item dropdown pull-right dropdown-menu-right">
<a class="nav-link dropdown-toggle" href="#" id="dropdown01" data-bs-toggle="dropdown"
aria-haspopup="true" aria-expanded="false"><?php echo localize("NAV_MENU_MORE"); ?></a>
<div class="dropdown-menu pull-right" aria-labelledby="dropdown01">
<a class="dropdown-item" href="https://roon.app/de/downloads" target="_blank">
<?php echo localize("NAV_MENU_DOWNLOADS"); ?></a>
<a class="dropdown-item" href="https://community.roonlabs.com"
target="_blank"><?php echo localize("NAV_MENU_COMMUNITY"); ?></a>
<a class="dropdown-item" href="https://kb.roonlabs.com/Roon_Server_on_NAS"
target="_blank"><?php echo localize("NAV_MENU_ROON_ON_NAS"); ?></a>
<a class="dropdown-item" href="https://roon.app/de/pricing" target="_blank">
<?php echo localize("NAV_MENU_TRY_ROON"); ?></a>
</div>
</li>
<li class="nav-item">
<a id="about" class="getModal nav-link float-right" href="#"><i class="fas fa-info-circle"></i> <?php echo localize('NAV_MENU_INFO'); ?></a>
</li>
</ul>
<!--
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item me-auto dropdown">
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
Dropdown
</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
</ul>
</li>
</ul>-->
</div>
</div>
</nav>
<div id="contentblock">
<?php
$section = "info";