diff --git a/assets/webconfig/js/ui_utils.js b/assets/webconfig/js/ui_utils.js
index 01f7a0a7..ab0a1256 100644
--- a/assets/webconfig/js/ui_utils.js
+++ b/assets/webconfig/js/ui_utils.js
@@ -89,11 +89,13 @@ function loadContent(event, forceRefresh) {
var lastSelectedInstance = getStorage('lastSelectedInstance', false);
- if (lastSelectedInstance && (lastSelectedInstance != window.currentHyperionInstance))
- if (typeof (window.serverInfo.instance[lastSelectedInstance].running) !== 'undefined' && window.serverInfo.instance[lastSelectedInstance].running)
+ if (lastSelectedInstance && (lastSelectedInstance != window.currentHyperionInstance)) {
+ if (window.serverInfo.instance[lastSelectedInstance] && window.serverInfo.instance[lastSelectedInstance].running) {
instanceSwitch(lastSelectedInstance);
- else
+ } else {
removeStorage('lastSelectedInstance', false);
+ }
+ }
if (typeof event != "undefined") {
tag = event.currentTarget.hash;
@@ -132,13 +134,13 @@ function updateHyperionInstanceListing() {
var currInstMarker = (data[key].instance == window.currentHyperionInstance) ? "component-on" : "";
var html = '
\
- \
- \
- \
- '+ data[key].friendly_name + ' \
-
\
- \
- '
+ \
+ \
+ \
+ '+ data[key].friendly_name + ' \
+
\
+ \
+ '
if (data.length - 1 > key)
html += ''
@@ -181,7 +183,6 @@ function initLanguageSelection() {
langText = availLangText[langIdx];
}
}
-
$('#language-select').prop('title', langText);
$("#language-select").val(langIdx);
$("#language-select").selectpicker("refresh");
diff --git a/include/hyperion/SettingsManager.h b/include/hyperion/SettingsManager.h
index 954c0eb5..027d0ece 100644
--- a/include/hyperion/SettingsManager.h
+++ b/include/hyperion/SettingsManager.h
@@ -42,7 +42,7 @@ public:
/// @brief get the full settings object of this instance (with global settings)
/// @return The requested json
///
- const QJsonObject & getSettings() const { return _qconfig; }
+ QJsonObject getSettings() const;
signals:
///
diff --git a/libsrc/hyperion/SettingsManager.cpp b/libsrc/hyperion/SettingsManager.cpp
index 7ced9b8c..b21c4c96 100644
--- a/libsrc/hyperion/SettingsManager.cpp
+++ b/libsrc/hyperion/SettingsManager.cpp
@@ -114,6 +114,25 @@ QJsonDocument SettingsManager::getSetting(settings::type type) const
return _sTable->getSettingsRecord(settings::typeToString(type));
}
+QJsonObject SettingsManager::getSettings() const
+{
+ QJsonObject config;
+ for(const auto & key : _qconfig.keys())
+ {
+ //Read all records from database to ensure that global settings are read across instances
+ QJsonDocument doc = _sTable->getSettingsRecord(key);
+ if(doc.isArray())
+ {
+ config.insert(key, doc.array());
+ }
+ else
+ {
+ config.insert(key, doc.object());
+ }
+ }
+ return config;
+}
+
bool SettingsManager::saveSettings(QJsonObject config, bool correct)
{
// optional data upgrades e.g. imported legacy/older configs