Skip to content

Commit f9ab83e

Browse files
authored
Merge pull request #2369 from getredash/query-refresh
Add: configuration for query refresh intervals.
2 parents bf86d17 + c24bfe8 commit f9ab83e

4 files changed

Lines changed: 9 additions & 40 deletions

File tree

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
# Change Log
22

3-
## v4.0.0-rc.1 - 2018-03-04
3+
## v4.0.0-rc.1 - 2018-03-05
44

55
### Added
66

7+
- Configuration for query refresh intervals.
78
- [Prometheus] Support for range queries. @jubel-han
89
- Extensions system based on Python entrypoints. @jezdez
910
- Funnel visualization. @tonyjiangh

client/app/components/queries/schedule-dialog.js

Lines changed: 4 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import moment from 'moment';
22
import { map, range, partial } from 'underscore';
3+
import { durationHumanize } from '@/filters';
34

45
import template from './schedule-dialog.html';
56

@@ -57,7 +58,7 @@ function queryTimePicker() {
5758
};
5859
}
5960

60-
function queryRefreshSelect() {
61+
function queryRefreshSelect(clientConfig) {
6162
return {
6263
restrict: 'E',
6364
scope: {
@@ -73,43 +74,8 @@ function queryRefreshSelect() {
7374
<option value="">No Refresh</option>
7475
</select>`,
7576
link($scope) {
76-
$scope.refreshOptions = [
77-
{
78-
value: '60',
79-
name: 'Every minute',
80-
},
81-
];
82-
83-
[5, 10, 15, 30].forEach((i) => {
84-
$scope.refreshOptions.push({
85-
value: String(i * 60),
86-
name: `Every ${i} minutes`,
87-
});
88-
});
89-
90-
range(1, 13).forEach((i) => {
91-
$scope.refreshOptions.push({
92-
value: String(i * 3600),
93-
name: `Every ${i}h`,
94-
});
95-
});
96-
97-
$scope.refreshOptions.push({
98-
value: String(24 * 3600),
99-
name: 'Every 24h',
100-
});
101-
$scope.refreshOptions.push({
102-
value: String(7 * 24 * 3600),
103-
name: 'Every 7 days',
104-
});
105-
$scope.refreshOptions.push({
106-
value: String(14 * 24 * 3600),
107-
name: 'Every 14 days',
108-
});
109-
$scope.refreshOptions.push({
110-
value: String(30 * 24 * 3600),
111-
name: 'Every 30 days',
112-
});
77+
$scope.refreshOptions =
78+
clientConfig.queryRefreshIntervals.map(interval => ({ value: String(interval), name: `Every ${durationHumanize(interval)}` }));
11379

11480
$scope.$watch('refreshType', () => {
11581
if ($scope.refreshType === 'periodic') {

redash/handlers/authentication.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,8 @@ def client_config():
174174
'dateTimeFormat': "{0} HH:mm".format(date_format),
175175
'mailSettingsMissing': settings.MAIL_DEFAULT_SENDER is None,
176176
'dashboardRefreshIntervals': settings.DASHBOARD_REFRESH_INTERVALS,
177-
'googleLoginEnabled': settings.GOOGLE_OAUTH_ENABLED
177+
'queryRefreshIntervals': settings.QUERY_REFRESH_INTERVALS,
178+
'googleLoginEnabled': settings.GOOGLE_OAUTH_ENABLED,
178179
}
179180

180181
client_config.update(defaults)

redash/settings/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,7 @@ def all_settings():
201201
ALLOW_SCRIPTS_IN_USER_INPUT = parse_boolean(os.environ.get("REDASH_ALLOW_SCRIPTS_IN_USER_INPUT", "false"))
202202
DATE_FORMAT = os.environ.get("REDASH_DATE_FORMAT", "DD/MM/YY")
203203
DASHBOARD_REFRESH_INTERVALS = map(int, array_from_string(os.environ.get("REDASH_DASHBOARD_REFRESH_INTERVALS", "60,300,600,1800,3600,43200,86400")))
204+
QUERY_REFRESH_INTERVALS = map(int, array_from_string(os.environ.get("REDASH_QUERY_REFRESH_INTERVALS", "60, 300, 600, 900, 1800, 3600, 7200, 10800, 14400, 18000, 21600, 25200, 28800, 32400, 36000, 39600, 43200, 86400, 604800, 1209600, 2592000")))
204205

205206
# Features:
206207
VERSION_CHECK = parse_boolean(os.environ.get("REDASH_VERSION_CHECK", "true"))

0 commit comments

Comments
 (0)