diff --git a/UI/Templates/PreferencesUI/UIxPreferences.wox b/UI/Templates/PreferencesUI/UIxPreferences.wox index 252b37523..bb9fc3044 100644 --- a/UI/Templates/PreferencesUI/UIxPreferences.wox +++ b/UI/Templates/PreferencesUI/UIxPreferences.wox @@ -748,11 +748,9 @@ -
-

- -

-
+ diff --git a/UI/WebServerResources/js/Preferences/Preferences.service.js b/UI/WebServerResources/js/Preferences/Preferences.service.js index deba14aa7..094089231 100644 --- a/UI/WebServerResources/js/Preferences/Preferences.service.js +++ b/UI/WebServerResources/js/Preferences/Preferences.service.js @@ -14,23 +14,38 @@ this.settings = {}; this.defaultsPromise = Preferences.$$resource.fetch("jsonDefaults").then(function(data) { - // We swap $key -> _$key to avoid an Angular bug (https://github.com/angular/angular.js/issues/6266) - var labels = _.object(_.map(data.SOGoMailLabelsColors, function(value, key) { - if (key.charAt(0) == '$') - return ['_' + key, value]; - return [key, value]; - })); + // We swap $key -> _$key to avoid an Angular bug (https://github.com/angular/angular.js/issues/6266) + var labels = _.object(_.map(data.SOGoMailLabelsColors, function(value, key) { + if (key.charAt(0) == '$') + return ['_' + key, value]; + return [key, value]; + })); - data.SOGoMailLabelsColors = labels; + data.SOGoMailLabelsColors = labels; - // We convert our list of autoReplyEmailAddresses/forwardAddress into a string. - if (data.Vacation && data.Vacation.autoReplyEmailAddresses) + // We convert our list of autoReplyEmailAddresses/forwardAddress into a string. + // We also convert our date objects into real date, otherwise we'll have strings + // or undefined values and the md-datepicker does NOT like this. + if (data.Vacation) { + if (data.Vacation.endDate) + data.Vacation.endDate = new Date(parseInt(data.Vacation.endDate) * 1000); + else { + data.Vacation.endDateEnabled = 0; + data.Vacation.endDate = new Date(); + } + + if (data.Vacation.autoReplyEmailAddresses) data.Vacation.autoReplyEmailAddresses = data.Vacation.autoReplyEmailAddresses.join(","); + } else { + data.Vacation = {}; + data.Vacation.endDateEnabled = 0; + data.Vacation.endDate = new Date(); + } - if (data.Forward && data.Forward.forwardAddress) - data.Forward.forwardAddress = data.Forward.forwardAddress.join(","); + if (data.Forward && data.Forward.forwardAddress) + data.Forward.forwardAddress = data.Forward.forwardAddress.join(","); - angular.extend(_this.defaults, data); + angular.extend(_this.defaults, data); return _this.defaults; }); @@ -42,8 +57,6 @@ var match = /^(.+)\s<(\S+)>$/.exec(value); return new Preferences.$User({uid: key, cn: match[1], c_email: match[2]}); }); - else - data.Calendar.PreventInvitationsWhitelist = []; angular.extend(_this.settings, data); @@ -134,8 +147,15 @@ preferences.defaults.SOGoMailLabelsColors = labels; - if (preferences.defaults.Vacation && preferences.defaults.Vacation.autoReplyEmailAddresses) - preferences.defaults.Vacation.autoReplyEmailAddresses = preferences.defaults.Vacation.autoReplyEmailAddresses.split(","); + if (preferences.defaults.Vacation) { + if (preferences.defaults.Vacation.endDateEnabled) + preferences.defaults.Vacation.endDate = preferences.defaults.Vacation.endDate.getTime()/1000; + else + preferences.defaults.Vacation.endDate = 0; + + if (preferences.defaults.Vacation.autoReplyEmailAddresses) + preferences.defaults.Vacation.autoReplyEmailAddresses = preferences.defaults.Vacation.autoReplyEmailAddresses.split(","); + } if (preferences.defaults.Forward && preferences.defaults.Forward.forwardAddress) preferences.defaults.Forward.forwardAddress = preferences.defaults.Forward.forwardAddress.split(","); diff --git a/UI/WebServerResources/scss/components/datepicker/_extends-calendar.scss b/UI/WebServerResources/scss/components/datepicker/_extends-calendar.scss new file mode 100644 index 000000000..45cf3950e --- /dev/null +++ b/UI/WebServerResources/scss/components/datepicker/_extends-calendar.scss @@ -0,0 +1,2 @@ +/*! datepicker/_extends.scss - */ +@import '../../../angular-material/src/components/datepicker/calendar.scss'; diff --git a/UI/WebServerResources/scss/components/datepicker/_extends-datePicker.scss b/UI/WebServerResources/scss/components/datepicker/_extends-datePicker.scss new file mode 100644 index 000000000..fb1a5b11e --- /dev/null +++ b/UI/WebServerResources/scss/components/datepicker/_extends-datePicker.scss @@ -0,0 +1,2 @@ +/*! datepicker/_extends.scss - */ +@import '../../../angular-material/src/components/datepicker/datePicker.scss'; diff --git a/UI/WebServerResources/scss/components/datepicker/calendar.scss b/UI/WebServerResources/scss/components/datepicker/calendar.scss new file mode 100644 index 000000000..165984b49 --- /dev/null +++ b/UI/WebServerResources/scss/components/datepicker/calendar.scss @@ -0,0 +1,2 @@ +/// calendar.scss -*- Mode: scss; indent-tabs-mode: nil; basic-offset: 2 -*- +@import 'extends-calendar'; diff --git a/UI/WebServerResources/scss/components/datepicker/datePicker.scss b/UI/WebServerResources/scss/components/datepicker/datePicker.scss new file mode 100644 index 000000000..c19bac426 --- /dev/null +++ b/UI/WebServerResources/scss/components/datepicker/datePicker.scss @@ -0,0 +1,2 @@ +/// datePicker.scss -*- Mode: scss; indent-tabs-mode: nil; basic-offset: 2 -*- +@import 'extends-datePicker'; diff --git a/UI/WebServerResources/scss/components/menu/menu.scss b/UI/WebServerResources/scss/components/menu/menu.scss index f3304506f..0d3914c8e 100644 --- a/UI/WebServerResources/scss/components/menu/menu.scss +++ b/UI/WebServerResources/scss/components/menu/menu.scss @@ -1,2 +1,2 @@ -/// menu..scss -*- Mode: scss; indent-tabs-mode: nil; basic-offset: 2 -*- +/// menu.scss -*- Mode: scss; indent-tabs-mode: nil; basic-offset: 2 -*- @import 'extends'; diff --git a/UI/WebServerResources/scss/core/variables.scss b/UI/WebServerResources/scss/core/variables.scss index 325ae3684..c3e42b569 100644 --- a/UI/WebServerResources/scss/core/variables.scss +++ b/UI/WebServerResources/scss/core/variables.scss @@ -165,3 +165,9 @@ $swift-ease-in: all $swift-ease-in-duration $swift-ease-in-timing-function !defa $swift-ease-in-out-duration: 0.5s !default; $swift-ease-in-out-timing-function: cubic-bezier(0.35, 0, 0.25, 1) !default; $swift-ease-in-out: all $swift-ease-in-out-duration $swift-ease-in-out-timing-function !default; + +// Fab Buttons (shared between buttons.scss and fab*.scss) +// ------------------------------------------- +$button-fab-width: rem(5.600) !default; +$button-fab-height: rem(5.600) !default; +$button-fab-padding: rem(1.60) !default; \ No newline at end of file diff --git a/UI/WebServerResources/scss/styles.scss b/UI/WebServerResources/scss/styles.scss index f146e9303..6ee0a4ed6 100755 --- a/UI/WebServerResources/scss/styles.scss +++ b/UI/WebServerResources/scss/styles.scss @@ -33,9 +33,11 @@ @import 'components/checkbox/checkbox'; @import 'components/chips/chips'; @import 'components/content/content'; +@import 'components/datepicker/calendar'; +@import 'components/datepicker/datePicker'; @import 'components/dialog/dialog'; @import 'components/divider/divider'; -//@import 'components/favActions/fabActions'; +//@import 'components/fabActions/fabActions'; @import 'components/fabSpeedDial/fabSpeedDial'; //@import 'components/fabToolbar/fabToolbar'; //@import 'components/fabTrigger/fabTrigger';