Browse Source

Save all interface values if useGlobalOptions is true (#1761)

* Save all interface values if useGlobalOptions is true

* Try to fix the tests

* New test test

* Another test test

* Remove default value for interface_settings
pull/1763/head
puzzledsab 4 years ago
committed by GitHub
parent
commit
a56c522068
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 42
      interfaces/Glitter/templates/static/javascripts/glitter.main.js
  2. 1
      sabnzbd/api.py
  3. 1
      sabnzbd/cfg.py
  4. 2
      tests/data/tavern/api_queue_empty.yaml
  5. 2
      tests/data/tavern/api_queue_format.yaml

42
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

1
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())

1
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)

2
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:
<timeleft>0:00:00</timeleft>
<eta>unknown</eta>
<refresh_rate>!anything</refresh_rate>
<interface_settings>!anything</interface_settings>
<scripts>!anystr</scripts>
<categories>!anystr</categories>
<rating_enable>!anybool</rating_enable>

2
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:
<timeleft>0:00:00</timeleft>
<eta>unknown</eta>
<refresh_rate>!anything</refresh_rate>
<interface_settings>!anything</interface_settings>
<scripts>
<script>!anystr</script>
</scripts>

Loading…
Cancel
Save