diff --git a/UI/Templates/ContactsUI/UIxContactFoldersView.wox b/UI/Templates/ContactsUI/UIxContactFoldersView.wox
index d59295993..35bc994b5 100644
--- a/UI/Templates/ContactsUI/UIxContactFoldersView.wox
+++ b/UI/Templates/ContactsUI/UIxContactFoldersView.wox
@@ -331,6 +331,9 @@
+
+ refresh
+
diff --git a/UI/Templates/MailerUI/UIxMailMainFrame.wox b/UI/Templates/MailerUI/UIxMailMainFrame.wox
index db2e16811..80b64c245 100644
--- a/UI/Templates/MailerUI/UIxMailMainFrame.wox
+++ b/UI/Templates/MailerUI/UIxMailMainFrame.wox
@@ -401,6 +401,9 @@
+
+ refresh
+
diff --git a/UI/WebServerResources/js/Contacts/AddressBookController.js b/UI/WebServerResources/js/Contacts/AddressBookController.js
index 2e0352eb9..a8bf32547 100644
--- a/UI/WebServerResources/js/Contacts/AddressBookController.js
+++ b/UI/WebServerResources/js/Contacts/AddressBookController.js
@@ -6,8 +6,8 @@
/**
* @ngInject
*/
- AddressBookController.$inject = ['$scope', '$state', '$mdDialog', 'sgFocus', 'Card', 'AddressBook', 'Dialog', 'sgSettings', 'stateAddressbooks', 'stateAddressbook'];
- function AddressBookController($scope, $state, $mdDialog, focus, Card, AddressBook, Dialog, Settings, stateAddressbooks, stateAddressbook) {
+ AddressBookController.$inject = ['$scope', '$state', '$timeout', '$mdDialog', 'sgFocus', 'Card', 'AddressBook', 'Dialog', 'Preferences', 'sgSettings', 'stateAddressbooks', 'stateAddressbook'];
+ function AddressBookController($scope, $state, $timeout, $mdDialog, focus, Card, AddressBook, Dialog, Preferences, Settings, stateAddressbooks, stateAddressbook) {
var vm = this;
AddressBook.selectedFolder = stateAddressbook;
@@ -98,6 +98,24 @@
vm.mode.search = false;
vm.selectedFolder.$filter('');
}
+
+ // Start the address book refresh timer based on user's preferences
+ Preferences.ready().then(function() {
+ var refreshViewCheck = Preferences.defaults.SOGoRefreshViewCheck;
+ if (refreshViewCheck && refreshViewCheck != 'manually') {
+ var interval;
+ if (refreshViewCheck == "once_per_hour")
+ interval = 3600;
+ else if (refreshViewCheck == "every_minute")
+ interval = 60;
+ else {
+ interval = parseInt(refreshViewCheck.substr(6)) * 60;
+ }
+
+ var f = angular.bind(vm.selectedFolder, AddressBook.prototype.$reload);
+ $timeout(f, interval*1000);
+ }
+ });
}
angular
diff --git a/UI/WebServerResources/js/Mailer/MailboxController.js b/UI/WebServerResources/js/Mailer/MailboxController.js
index 4b1f4f525..1951b5899 100644
--- a/UI/WebServerResources/js/Mailer/MailboxController.js
+++ b/UI/WebServerResources/js/Mailer/MailboxController.js
@@ -6,8 +6,8 @@
/**
* @ngInject
*/
- MailboxController.$inject = ['$state', 'stateAccounts', 'stateAccount', 'stateMailbox', 'encodeUriFilter', 'sgFocus', 'Dialog', 'Account', 'Mailbox'];
- function MailboxController($state, stateAccounts, stateAccount, stateMailbox, encodeUriFilter, focus, Dialog, Account, Mailbox) {
+ MailboxController.$inject = ['$state', '$timeout', 'stateAccounts', 'stateAccount', 'stateMailbox', 'encodeUriFilter', 'sgFocus', 'Dialog', 'Account', 'Mailbox', 'Preferences'];
+ function MailboxController($state, $timeout, stateAccounts, stateAccount, stateMailbox, encodeUriFilter, focus, Dialog, Account, Mailbox, Preferences) {
var vm = this;
Mailbox.selectedFolder = stateMailbox;
@@ -87,6 +87,24 @@
vm.mode.search = false;
vm.selectedFolder.$filter();
}
+
+ // Start the mailbox refresh timer based on user's preferences
+ Preferences.ready().then(function() {
+ var refreshViewCheck = Preferences.defaults.SOGoRefreshViewCheck;
+ if (refreshViewCheck && refreshViewCheck != 'manually') {
+ var interval;
+ if (refreshViewCheck == "once_per_hour")
+ interval = 3600;
+ else if (refreshViewCheck == "every_minute")
+ interval = 60;
+ else {
+ interval = parseInt(refreshViewCheck.substr(6)) * 60;
+ }
+
+ var f = angular.bind(vm.selectedFolder, Mailbox.prototype.$filter);
+ $timeout(f, interval*1000);
+ }
+ });
}
angular