!function(){"use strict";function e(e,t){e.state("preferences",{abstract:!0,views:{preferences:{templateUrl:"preferences.html",controller:"PreferencesController",controllerAs:"app"}}}).state("preferences.general",{url:"/general",views:{module:{templateUrl:"generalPreferences.html"}}}).state("preferences.calendars",{url:"/calendars",views:{module:{templateUrl:"calendarsPreferences.html"}}}).state("preferences.addressbooks",{url:"/addressbooks",views:{module:{templateUrl:"addressbooksPreferences.html"}}}).state("preferences.mailer",{url:"/mailer",views:{module:{templateUrl:"mailerPreferences.html"}}}),t.otherwise("/general")}function t(e){e.$on("$routeChangeError",function(e,t,a,r){console.error(e,t,a,r)})}angular.module("SOGo.PreferencesUI",["ui.router","ck","angularFileUpload","SOGo.Common","SOGo.MailerUI","SOGo.ContactsUI","SOGo.Authentication","as.sortable"]).config(e).run(t),e.$inject=["$stateProvider","$urlRouterProvider"],t.$inject=["$rootScope"]}(),function(){"use strict";function e(e,t,a,r,n,i,s,o,c,d){function u(e){var t=e.type.indexOf("pkcs12")>0||/\.(p12|pfx)$/.test(e.name);return f.form.certificateFilename.$setValidity("fileformat",t),t}var f=this;f.defaultPort=143,f.defaults=s,f.account=o,f.accountId=c,f.customFromIsReadonly=function(){return!(c>0||d)},f.onBeforeUploadCertificate=function(e){f.form=e,f.uploader.clearQueue()},f.certificateIsInstalled=function(){return f.certificateFilename&&0===f.uploader.queue.length},f.removeCertificate=function(){new i({id:c}).$removeCertificate().then(function(){delete f.certificateFilename})},f.importCertificate=function(){f.uploader.queue[0].formData=[{password:f.certificatePassword}],f.uploader.uploadAll()},f.cancel=function(){e.cancel()},f.save=function(){e.hide()},f.hostnameRE=c>0?/^(?!(127\.0\.0\.1|localhost(?:\.localdomain)?)$)/:/./,f.account.encryption?"ssl"==f.account.encryption&&(f.defaultPort=993):f.account.encryption="none",f.account.certificateFilename&&(f.certificateFilename=f.account.certificateFilename),f.uploader=new a({url:[n.activeUser("folderURL")+"Mail",c,"importCertificate"].join("/"),autoUpload:!1,queueLimit:1,filters:[{name:u,fn:u}],onAfterAddingFile:function(e){f.certificateFilename=e.file.name},onSuccessItem:function(e,a,r,n){var i=angular.element(document.getElementById("accountSecurityContent"));t.show(t.simple().content(l("Success")).parent(i).position("top right").hideDelay(3e3)),this.clearQueue()},onErrorItem:function(e,t,a,n){r.alert(l("Error"),l("An error occurred while importing the certificate. Verify your password."))}})}e.$inject=["$mdDialog","$mdToast","FileUploader","Dialog","sgSettings","Account","defaults","account","accountId","mailCustomFromEnabled"],angular.module("SOGo.PreferencesUI").controller("AccountDialogController",e)}(),function(){"use strict";function e(e,t,a,r,n,i){var s=this,o=t.sieveCapabilities,c=t.forwardEnabled;t.vacationEnabled;s.filter=r,s.mailboxes=n,s.labels=i,s.cancel=function(){a.cancel()},s.hasRulesAndActions=function(){var e=[s.filter.actions];return"allmessages"!=s.filter.match&&e.push(s.filter.rules),_.every(e,function(e){return e&&e.length>0})},s.save=function(e){a.hide()},s.addMailFilterRule=function(e){s.filter.rules||(s.filter.rules=[]),s.filter.rules.push({field:"subject",operator:"contains"})},s.removeMailFilterRule=function(e){s.filter.rules.splice(e,1)},s.addMailFilterAction=function(e){s.filter.actions||(s.filter.actions=[]),s.filter.actions.push({method:"discard"})},s.removeMailFilterAction=function(e){s.filter.actions.splice(e,1)},s.fieldLabels={subject:l("Subject"),from:l("From"),to:l("To"),cc:l("Cc"),to_or_cc:l("To or Cc"),size:l("Size (Kb)"),header:l("Header")},o.indexOf("body")>-1&&(s.fieldLabels.body=l("Body")),s.methodLabels={discard:l("Discard the message"),keep:l("Keep the message"),stop:l("Stop processing filter rules")},c&&(s.methodLabels.redirect=l("Forward the message to")),o.indexOf("reject")>-1&&(s.methodLabels.reject=l("Send a reject message")),o.indexOf("fileinto")>-1&&(s.methodLabels.fileinto=l("File the message in")),(o.indexOf("imapflags")>-1||o.indexOf("imap4flags")>-1)&&(s.methodLabels.addflag=l("Flag the message with")),s.numberOperatorLabels={under:l("is under"),over:l("is over")},s.textOperatorLabels={is:l("is"),is_not:l("is not"),contains:l("contains"),contains_not:l("does not contain"),matches:l("matches"),matches_not:l("does not match")},o.indexOf("regex")>-1&&(s.textOperatorLabels.regex=l("matches regex"),s.textOperatorLabels.regex_not=l("does not match regex")),s.flagLabels={seen:l("Seen"),deleted:l("Deleted"),answered:l("Answered"),flagged:l("Flagged"),junk:l("Junk"),not_junk:l("Not Junk")}}e.$inject=["$scope","$window","$mdDialog","filter","mailboxes","labels"],angular.module("SOGo.PreferencesUI").controller("FiltersDialogController",e)}(),function(){"use strict";function e(e,t,a,r,n,i,s,o,c,d,u,f,h,m){var p,g=this,w=[],C=(new Date).beginOfDay();this.$onInit=function(){this.preferences=h,this.passwords={newPassword:null,newPasswordConfirmation:null},this.timeZonesList=t.timeZonesList,this.timeZonesSearchText="",this.sieveVariablesCapability=t.sieveCapabilities.indexOf("variables")>=0,this.mailLabelKeyRE=new RegExp('^[^(){} %*"\\\\]*$'),o.activeUser("path").mail&&(p=new f({id:0})).$getMailboxes().then(function(){for(var e=p.$flattenMailboxes({all:!0}),t=-1,a=e.length;++t0&&angular.isDefined(this.preferences.defaults.Forward)&&this.preferences.defaults.Forward.enabled&&angular.isDefined(this.preferences.defaults.Forward.forwardAddress))for(o=this.preferences.defaults.Forward.forwardAddress.split(","),c=t.defaultEmailAddresses.split(/, */),_.forEach(c,function(e){var t=e.split("@")[1];t&&u.push(t.toLowerCase())}),n=0;n=0&&2==t.forwardConstraints&&(d.alert(l("Error"),l("You are not allowed to forward your messages to an internal email address.")),i=!1);return this.preferences.defaults.SOGoMailLabelsColorsKeys.length==this.preferences.defaults.SOGoMailLabelsColorsValues.length&&this.preferences.defaults.SOGoMailLabelsColorsKeys.length==_.uniq(this.preferences.defaults.SOGoMailLabelsColorsKeys).length||(d.alert(l("Error"),l("IMAP labels must have unique names.")),_.forEach(this.preferences.defaults.SOGoMailLabelsColorsKeys,function(e,t,r){a["mailIMAPLabel_"+t].$dirty&&(r.indexOf(e)!=t||r.indexOf(e,t+1)>-1)&&(a["mailIMAPLabel_"+t].$setValidity("duplicate",!1),i=!1)})),i?this.preferences.$save().then(function(e){r&&r.quick||(s.show(s.simple().content(l("Preferences saved")).position("bottom right").hideDelay(2e3)),a.$setPristine())}):e.reject()},this.canChangePassword=function(){return!!(this.passwords.newPassword&&this.passwords.newPassword.length>0&&this.passwords.newPasswordConfirmation&&this.passwords.newPasswordConfirmation.length&&this.passwords.newPassword==this.passwords.newPasswordConfirmation)},this.changePassword=function(){m.changePassword(this.passwords.newPassword).then(function(){var e=i.alert({title:l("Password"),content:l("The password was changed successfully."),ok:l("OK")});i.show(e).finally(function(){e=void 0})},function(e){var t=i.alert({title:l("Password"),content:e,ok:l("OK")});i.show(t).finally(function(){t=void 0})})},this.timeZonesListFilter=function(e){return _.filter(this.timeZonesList,function(t){return t.toUpperCase().indexOf(e.toUpperCase())>=0})},this.updateVacationDates=function(){var e=this.preferences.defaults;e&&e.Vacation&&e.Vacation.enabled&&(this.toggleVacationStartDate(),this.toggleVacationEndDate())},this.toggleVacationStartDate=function(){var e;(e=this.preferences.defaults.Vacation).startDateEnabled&&e.endDateEnabled&&e.startDate.getTime()>e.endDate.getTime()&&(e.startDate=new Date(e.endDate.getTime()),e.startDate.addDays(-1))},this.toggleVacationEndDate=function(){var e;(e=this.preferences.defaults.Vacation).endDateEnabled&&e.startDateEnabled&&e.endDate.getTime()=C.getTime()),a},this.validateVacationEndDate=function(e){var t=g.preferences.defaults,a=!0;return t&&t.Vacation&&t.Vacation.enabled&&t.Vacation.endDateEnabled&&(a=(!t.Vacation.startDateEnabled||e.getTime()>t.Vacation.startDate.getTime())&&e.getTime()>=C.getTime()),a}}e.$inject=["$q","$window","$state","$mdMedia","$mdSidenav","$mdDialog","$mdToast","sgSettings","sgFocus","Dialog","User","Account","Preferences","Authentication"],angular.module("SOGo.PreferencesUI").controller("PreferencesController",e)}(); //# sourceMappingURL=Preferences.js.map