diff options
Diffstat (limited to 'packages/wekan-ldap/server/sync.js')
-rw-r--r-- | packages/wekan-ldap/server/sync.js | 36 |
1 files changed, 21 insertions, 15 deletions
diff --git a/packages/wekan-ldap/server/sync.js b/packages/wekan-ldap/server/sync.js index 141ef349..dd3855d3 100644 --- a/packages/wekan-ldap/server/sync.js +++ b/packages/wekan-ldap/server/sync.js @@ -1,4 +1,5 @@ import _ from 'underscore'; +import SyncedCron from 'meteor/percolate:synced-cron'; import LDAP from './ldap'; import { log_debug, log_info, log_warn, log_error } from './logger'; @@ -418,30 +419,35 @@ function sync() { const jobName = 'LDAP_Sync'; const addCronJob = _.debounce(Meteor.bindEnvironment(function addCronJobDebounced() { + let sc=SyncedCron.SyncedCron; //Why ?? something must be wrong in the import if (LDAP.settings_get('LDAP_BACKGROUND_SYNC') !== true) { log_info('Disabling LDAP Background Sync'); - if (SyncedCron.nextScheduledAtDate(jobName)) { - SyncedCron.remove(jobName); + if (sc.nextScheduledAtDate(jobName)) { + sc.remove(jobName); } return; } - if (LDAP.settings_get('LDAP_BACKGROUND_SYNC_INTERVAL')) { - log_info('Enabling LDAP Background Sync'); - SyncedCron.add({ - name: jobName, - schedule: (parser) => parser.text(LDAP.settings_get('LDAP_BACKGROUND_SYNC_INTERVAL')), - job() { - sync(); - }, - }); - SyncedCron.start(); - } + log_info('Enabling LDAP Background Sync'); + sc.add({ + name: jobName, + schedule: function(parser) { + if (LDAP.settings_get('LDAP_BACKGROUND_SYNC_INTERVAL')) { + return parser.text(LDAP.settings_get('LDAP_BACKGROUND_SYNC_INTERVAL')); + } + else { + return parser.recur().on(0).minute(); + }}, + job: function() { + sync(); + }, + }); + sc.start(); + }), 500); Meteor.startup(() => { Meteor.defer(() => { - LDAP.settings_get('LDAP_BACKGROUND_SYNC', addCronJob); - LDAP.settings_get('LDAP_BACKGROUND_SYNC_INTERVAL', addCronJob); + if(LDAP.settings_get('LDAP_BACKGROUND_SYNC')){addCronJob();} }); }); |