diff --git a/interfaces/Glitter/templates/static/javascripts/glitter.main.js b/interfaces/Glitter/templates/static/javascripts/glitter.main.js
index 4bc0a26..f22954e 100644
--- a/interfaces/Glitter/templates/static/javascripts/glitter.main.js
+++ b/interfaces/Glitter/templates/static/javascripts/glitter.main.js
@@ -629,6 +629,37 @@ function ViewModel() {
}
})
+ // Save the rest in config if global-settings
+ var saveInterfaceSettings = function(newValue) {
+ if(self.useGlobalOptions()) {
+ var interfaceSettings = {
+ "dateFormat": self.dateFormat,
+ "extraQueueColumns": self.extraQueueColumns,
+ "extraHistoryColumns": self.extraHistoryColumns,
+ "displayCompact": self.displayCompact,
+ "displayFullWidth": self.displayFullWidth,
+ "displayTabbed": self.displayTabbed,
+ "confirmDeleteQueue": self.confirmDeleteQueue,
+ "confirmDeleteHistory": self.confirmDeleteHistory
+ };
+ callAPI({
+ mode: "set_config",
+ section: "misc",
+ keyword: "interface_settings",
+ value: ko.toJSON(interfaceSettings)
+ })
+ }
+ }
+
+ self.dateFormat.subscribe(saveInterfaceSettings);
+ self.extraQueueColumns.subscribe(saveInterfaceSettings);
+ self.extraHistoryColumns.subscribe(saveInterfaceSettings);
+ self.displayCompact.subscribe(saveInterfaceSettings);
+ self.displayFullWidth.subscribe(saveInterfaceSettings);
+ self.displayTabbed.subscribe(saveInterfaceSettings);
+ self.confirmDeleteQueue.subscribe(saveInterfaceSettings);
+ self.confirmDeleteHistory.subscribe(saveInterfaceSettings);
+
/***
Add NZB's
***/
@@ -1073,6 +1104,17 @@ function ViewModel() {
// Set queue limit
self.queue.paginationLimit(response.config.misc.queue_limit.toString())
+
+ // Import the rest of the settings
+ var interfaceSettings = JSON.parse(response.config.misc.interface_settings);
+ self.dateFormat(interfaceSettings['dateFormat']);
+ self.extraQueueColumns(interfaceSettings['extraQueueColumns']);
+ self.extraHistoryColumns(interfaceSettings['extraHistoryColumns']);
+ self.displayCompact(interfaceSettings['displayCompact']);
+ self.displayFullWidth(interfaceSettings['displayFullWidth']);
+ self.displayTabbed(interfaceSettings['displayTabbed']);
+ self.confirmDeleteQueue(interfaceSettings['confirmDeleteQueue']);
+ self.confirmDeleteHistory(interfaceSettings['confirmDeleteHistory']);
}
// Set bandwidth limit
diff --git a/sabnzbd/api.py b/sabnzbd/api.py
index 3ba80f8..98f2986 100644
--- a/sabnzbd/api.py
+++ b/sabnzbd/api.py
@@ -1318,6 +1318,7 @@ def build_queue(start=0, limit=0, trans=False, output=None, search=None, nzo_ids
start = int_conv(start)
info["refresh_rate"] = str(cfg.refresh_rate()) if cfg.refresh_rate() > 0 else ""
+ info["interface_settings"] = cfg.interface_settings()
info["scripts"] = list_scripts()
info["categories"] = list_cats(output is None)
info["rating_enable"] = bool(cfg.rating_enable())
diff --git a/sabnzbd/cfg.py b/sabnzbd/cfg.py
index 75d003f..d08dc76 100644
--- a/sabnzbd/cfg.py
+++ b/sabnzbd/cfg.py
@@ -85,6 +85,7 @@ queue_complete = OptionStr("misc", "queue_complete")
queue_complete_pers = OptionBool("misc", "queue_complete_pers", False)
bandwidth_perc = OptionNumber("misc", "bandwidth_perc", 100, 0, 100)
refresh_rate = OptionNumber("misc", "refresh_rate", 0)
+interface_settings = OptionStr("misc", "interface_settings")
log_level = OptionNumber("logging", "log_level", 1, -1, 2)
log_size = OptionNumber("logging", "max_log_size", 5242880)
log_backups = OptionNumber("logging", "log_backups", 5, 1, 1024)
diff --git a/tests/data/tavern/api_queue_empty.yaml b/tests/data/tavern/api_queue_empty.yaml
index d5e8750..5a04caf 100755
--- a/tests/data/tavern/api_queue_empty.yaml
+++ b/tests/data/tavern/api_queue_empty.yaml
@@ -54,6 +54,7 @@ stages:
timeleft: "0:00:00"
eta: "unknown"
refresh_rate: !re_match "[0-9]*"
+ interface_settings: !re_match ".*"
scripts: !anylist
categories: !anylist
rating_enable: !anybool
@@ -151,6 +152,7 @@ stages:
0:00:00
unknown
!anything
+ !anything
!anystr
!anystr
!anybool
diff --git a/tests/data/tavern/api_queue_format.yaml b/tests/data/tavern/api_queue_format.yaml
index 229b4d0..09f61fa 100755
--- a/tests/data/tavern/api_queue_format.yaml
+++ b/tests/data/tavern/api_queue_format.yaml
@@ -55,6 +55,7 @@ stages:
timeleft: "0:00:00"
eta: "unknown"
refresh_rate: !re_match "[0-9]*"
+ interface_settings: !re_match ".*"
scripts: !anylist
categories: !anylist
rating_enable: !anybool
@@ -176,6 +177,7 @@ stages:
0:00:00
unknown
!anything
+ !anything