diff --git a/index.js b/index.js
index 565119fa..87360c74 100644
--- a/index.js
+++ b/index.js
@@ -12,6 +12,7 @@ let sender = require('./services/sender');
let importer = require('./services/importer');
let verpServer = require('./services/verp-server');
let testServer = require('./services/test-server');
+let tzupdate = require('./services/tzupdate');
let dbcheck = require('./lib/dbcheck');
let port = config.www.port;
@@ -72,25 +73,27 @@ server.on('listening', () => {
// start additional services
testServer(() => {
verpServer(() => {
- importer(() => {
- sender(() => {
- log.info('Service', 'All services started');
- if (config.group) {
- try {
- process.setgid(config.group);
- log.info('Service', 'Changed group to "%s" (%s)', config.group, process.getgid());
- } catch (E) {
- log.info('Service', 'Failed changed group to "%s"', config.group);
+ tzupdate(() => {
+ importer(() => {
+ sender(() => {
+ log.info('Service', 'All services started');
+ if (config.group) {
+ try {
+ process.setgid(config.group);
+ log.info('Service', 'Changed group to "%s" (%s)', config.group, process.getgid());
+ } catch (E) {
+ log.info('Service', 'Failed changed group to "%s"', config.group);
+ }
}
- }
- if (config.user) {
- try {
- process.setuid(config.user);
- log.info('Service', 'Changed user to "%s" (%s)', config.user, process.getuid());
- } catch (E) {
- log.info('Service', 'Failed changed user to "%s"', config.user);
+ if (config.user) {
+ try {
+ process.setuid(config.user);
+ log.info('Service', 'Changed user to "%s" (%s)', config.user, process.getuid());
+ } catch (E) {
+ log.info('Service', 'Failed changed user to "%s"', config.user);
+ }
}
- }
+ });
});
});
});
diff --git a/services/tzupdate.js b/services/tzupdate.js
index f2791a4d..7c8266b3 100644
--- a/services/tzupdate.js
+++ b/services/tzupdate.js
@@ -4,8 +4,11 @@
let moment = require('moment-timezone');
let db = require('../lib/db');
+let lastCheck = false;
+let log = require('npmlog');
function updateTimezoneOffsets(callback) {
+ log.verbose('UTC', 'Updating timezone offsets');
db.getConnection((err, connection) => {
if (err) {
return callback(err);
@@ -29,4 +32,26 @@ function updateTimezoneOffsets(callback) {
});
}
-updateTimezoneOffsets(console.log);
+module.exports = callback => {
+ updateTimezoneOffsets(err => {
+ if (err) {
+ return callback(err);
+ }
+ let checkLoop = () => {
+ let curUtcDate = new Date().toISOString().split('T').shift();
+ if (curUtcDate !== lastCheck) {
+ updateTimezoneOffsets(err => {
+ if (err) {
+ log.error('UTC', err);
+ }
+ setTimeout(checkLoop, 60 * 60 * 1000);
+ });
+ } else {
+ setTimeout(checkLoop, 60 * 60 * 1000);
+ }
+ lastCheck = curUtcDate;
+ };
+ setTimeout(checkLoop, 60 * 60 * 1000);
+ callback(null, true);
+ });
+};
diff --git a/views/subscription/layout.hbs b/views/subscription/layout.hbs
index ba5835f4..f325f225 100644
--- a/views/subscription/layout.hbs
+++ b/views/subscription/layout.hbs
@@ -48,7 +48,7 @@
-
+
{{#if useEditor}}