sogo/UI/WebServerResources/js/Preferences.js
2017-11-27 01:27:38 -05:00

2 lines
12 KiB
JavaScript

!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,s){console.error(e,t,a,s)})}angular.module("SOGo.PreferencesUI",["ui.router","ck","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,s,r){this.defaultPort=143,this.defaults=t,this.account=a,this.accountId=s,this.customFromIsReadonly=function(){return!(s>0||r)},this.cancel=function(){e.cancel()},this.save=function(){e.hide()},this.hostnameRE=s>0?/^(?!(127\.0\.0\.1|localhost(?:\.localdomain)?)$)/:/./,this.account.encryption?"ssl"==this.account.encryption&&(this.defaultPort=993):this.account.encryption="none"}e.$inject=["$mdDialog","defaults","account","accountId","mailCustomFromEnabled"],angular.module("SOGo.PreferencesUI").controller("AccountDialogController",e)}(),function(){"use strict";function e(e,t,a,s,r,n){var i=this,o=t.sieveCapabilities,c=t.forwardEnabled;t.vacationEnabled;i.filter=s,i.mailboxes=r,i.labels=n,i.cancel=function(){a.cancel()},i.hasRulesAndActions=function(){var e=[i.filter.actions];return"allmessages"!=i.filter.match&&e.push(i.filter.rules),_.every(e,function(e){return e&&e.length>0})},i.save=function(e){a.hide()},i.addMailFilterRule=function(e){i.filter.rules||(i.filter.rules=[]),i.filter.rules.push({field:"subject",operator:"contains"})},i.removeMailFilterRule=function(e){i.filter.rules.splice(e,1)},i.addMailFilterAction=function(e){i.filter.actions||(i.filter.actions=[]),i.filter.actions.push({method:"discard"})},i.removeMailFilterAction=function(e){i.filter.actions.splice(e,1)},i.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&&(i.fieldLabels.body=l("Body")),i.methodLabels={discard:l("Discard the message"),keep:l("Keep the message"),stop:l("Stop processing filter rules")},c&&(i.methodLabels.redirect=l("Forward the message to")),o.indexOf("reject")>-1&&(i.methodLabels.reject=l("Send a reject message")),o.indexOf("fileinto")>-1&&(i.methodLabels.fileinto=l("File the message in")),(o.indexOf("imapflags")>-1||o.indexOf("imap4flags")>-1)&&(i.methodLabels.addflag=l("Flag the message with")),i.numberOperatorLabels={under:l("is under"),over:l("is over")},i.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&&(i.textOperatorLabels.regex=l("matches regex"),i.textOperatorLabels.regex_not=l("does not match regex")),i.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,s,r,n,i,o,c,d,f,u,h,p){var m,g=this,b=[],w=(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&&(m=new u({id:0})).$getMailboxes().then(function(){for(var e=m.$flattenMailboxes({all:!0}),t=-1,a=e.length;++t<a;)b.push(e[t])}),h.defaults.SOGoAlternateAvatar&&(f.$alternateAvatar=h.defaults.SOGoAlternateAvatar),this.updateVacationDates()},this.go=function(e,t){t.$valid&&(s("gt-sm")||r("left").close(),a.go("preferences."+e))},this.onLanguageChange=function(e){e.$valid&&d.confirm(l("Warning"),l("Save preferences and reload page now?"),{ok:l("Yes"),cancel:l("No")}).then(function(){g.save(e,{quick:!0}).then(function(){t.location.reload(!0)})})},this.addCalendarCategory=function(e){this.preferences.defaults.SOGoCalendarCategoriesColors["New category"]="#aaa",this.preferences.defaults.SOGoCalendarCategories.push("New category"),c("calendarCategory_"+(this.preferences.defaults.SOGoCalendarCategories.length-1)),e.$setDirty()},this.removeCalendarCategory=function(e,t){var a=this.preferences.defaults.SOGoCalendarCategories[e];this.preferences.defaults.SOGoCalendarCategories.splice(e,1),delete this.preferences.defaults.SOGoCalendarCategoriesColors[a],t.$setDirty()},this.addContactCategory=function(e){var t=_.indexOf(this.preferences.defaults.SOGoContactsCategories,"");t<0&&(this.preferences.defaults.SOGoContactsCategories.push(""),t=this.preferences.defaults.SOGoContactsCategories.length-1),c("contactCategory_"+t),e.$setDirty()},this.removeContactCategory=function(e,t){this.preferences.defaults.SOGoContactsCategories.splice(e,1),t.$setDirty()},this.addMailAccount=function(e,a){var s;this.preferences.defaults.AuxiliaryMailAccounts.push({}),s=_.last(this.preferences.defaults.AuxiliaryMailAccounts),angular.extend(s,{name:"",identities:[{fullName:"",email:""}],receipts:{receiptAction:"ignore",receiptNonRecipientAction:"ignore",receiptOutsideDomainAction:"ignore",receiptAnyAction:"ignore"}}),n.show({controller:"AccountDialogController",controllerAs:"$AccountDialogController",templateUrl:"editAccount?account=new",targetEvent:e,locals:{defaults:this.preferences.defaults,account:s,accountId:this.preferences.defaults.AuxiliaryMailAccounts.length-1,mailCustomFromEnabled:t.mailCustomFromEnabled}}).then(function(){a.$setDirty()}).catch(function(){g.preferences.defaults.AuxiliaryMailAccounts.pop()})},this.editMailAccount=function(e,a,s){var r=this.preferences.defaults.AuxiliaryMailAccounts[a];n.show({controller:"AccountDialogController",controllerAs:"$AccountDialogController",templateUrl:"editAccount?account="+a,targetEvent:e,locals:{defaults:this.preferences.defaults,account:r,accountId:a,mailCustomFromEnabled:t.mailCustomFromEnabled}}).then(function(){g.preferences.defaults.AuxiliaryMailAccounts[a]=r,s.$setDirty()})},this.removeMailAccount=function(e,t){this.preferences.defaults.AuxiliaryMailAccounts.splice(e,1),t.$setDirty()},this.resetMailLabelValidity=function(e,t){t["mailIMAPLabel_"+e].$setValidity("duplicate",!0)},this.addMailLabel=function(e){guid();this.preferences.defaults.SOGoMailLabelsColorsKeys.push("label"),this.preferences.defaults.SOGoMailLabelsColorsValues.push(["New label","#aaa"]),c("mailLabel_"+(_.size(this.preferences.defaults.SOGoMailLabelsColorsKeys)-1)),e.$setDirty()},this.removeMailLabel=function(e,t){this.preferences.defaults.SOGoMailLabelsColorsKeys.splice(e,1),this.preferences.defaults.SOGoMailLabelsColorsValues.splice(e,1),t.$setDirty()},this.addMailFilter=function(e,t){var a={match:"all"};n.show({templateUrl:"editFilter?filter=new",controller:"FiltersDialogController",controllerAs:"filterEditor",targetEvent:e,locals:{filter:a,mailboxes:b,labels:this.preferences.defaults.SOGoMailLabelsColors}}).then(function(){g.preferences.defaults.SOGoSieveFilters||(g.preferences.defaults.SOGoSieveFilters=[]),g.preferences.defaults.SOGoSieveFilters.push(a),t.$setDirty()})},this.editMailFilter=function(e,t,a){var s=angular.copy(this.preferences.defaults.SOGoSieveFilters[t]);n.show({templateUrl:"editFilter?filter="+t,controller:"FiltersDialogController",controllerAs:"filterEditor",targetEvent:null,locals:{filter:s,mailboxes:b,labels:this.preferences.defaults.SOGoMailLabelsColors}}).then(function(){g.preferences.defaults.SOGoSieveFilters[t]=s,a.$setDirty()})},this.removeMailFilter=function(e,t){this.preferences.defaults.SOGoSieveFilters.splice(e,1),t.$setDirty()},this.addDefaultEmailAddresses=function(e){var a=[];angular.isDefined(this.preferences.defaults.Vacation.autoReplyEmailAddresses)&&(a=this.preferences.defaults.Vacation.autoReplyEmailAddresses.split(",")),this.preferences.defaults.Vacation.autoReplyEmailAddresses=_.union(t.defaultEmailAddresses.split(","),a).join(","),e.$setDirty()},this.userFilter=function(e,t){return e.length<o.minimumSearchLength()?[]:f.$filter(e,t).then(function(e){return _.forEach(e,function(e){e.$$image||(e.image?e.$$image=e.image:g.preferences.avatar(e.c_email,32,{no_404:!0}).then(function(t){e.$$image=t}))}),e})},this.confirmChanges=function(e,a){var s;if(a.$dirty&&$form.$valid){for(e.preventDefault(),e.stopPropagation(),s=e.target;"A"!=s.tagName;)s=s.parentNode;d.confirm(l("Unsaved Changes"),l("Do you want to save your changes made to the configuration?"),{ok:l("Save"),cancel:l("Don't Save")}).then(function(){g.save(a,{quick:!0}).then(function(){t.location=s.href})},function(){t.location=s.href})}},this.save=function(a,s){var r,n,o,c,f,u;if(n=!0,f=[],t.forwardConstraints>0&&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&&f.push(t.toLowerCase())}),r=0;r<o.length&&n;r++)u=o[r].split("@")[1].toLowerCase(),f.indexOf(u)<0&&1==t.forwardConstraints?(d.alert(l("Error"),l("You are not allowed to forward your messages to an external email address.")),n=!1):f.indexOf(u)>=0&&2==t.forwardConstraints&&(d.alert(l("Error"),l("You are not allowed to forward your messages to an internal email address.")),n=!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,s){a["mailIMAPLabel_"+t].$dirty&&(s.indexOf(e)!=t||s.indexOf(e,t+1)>-1)&&(a["mailIMAPLabel_"+t].$setValidity("duplicate",!1),n=!1)})),n?this.preferences.$save().then(function(e){s&&s.quick||(i.show(i.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(){p.changePassword(this.passwords.newPassword).then(function(){var e=n.alert({title:l("Password"),content:l("The password was changed successfully."),ok:l("OK")});n.show(e).finally(function(){e=void 0})},function(e){var t=n.alert({title:l("Password"),content:e,ok:l("OK")});n.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()<e.startDate.getTime()&&(e.endDate=new Date(e.startDate.getTime()),e.endDate.addDays(1))},this.validateVacationStartDate=function(e){var t=g.preferences.defaults,a=!0;return t&&t.Vacation&&t.Vacation.enabled&&t.Vacation.startDateEnabled&&(a=(!t.Vacation.endDateEnabled||e.getTime()<t.Vacation.endDate.getTime())&&e.getTime()>=w.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()>=w.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