sogo/UI/WebServerResources/js/Preferences.js.map
2016-02-10 01:34:40 -05:00

1 line
29 KiB
Plaintext

{"version":3,"sources":["Preferences/Preferences.app.js","Preferences/AccountDialogController.js","Preferences/FiltersDialogController.js","Preferences/PreferencesController.js"],"names":["configure","$stateProvider","$urlRouterProvider","state","abstract","views","preferences","templateUrl","controller","controllerAs","resolve","statePreferences","url","module","otherwise","Preferences","runBlock","$rootScope","$on","event","current","previous","rejection","console","error","angular","config","run","$inject","AccountDialogController","$mdDialog","defaults","account","accountId","mailCustomFromEnabled","customFromIsReadonly","cancel","save","hide","vm","this","FiltersDialogController","$scope","$window","filter","mailboxes","labels","form","addMailFilterRule","rules","push","field","operator","removeMailFilterRule","index","splice","addMailFilterAction","actions","method","removeMailFilterAction","sieveCapabilities","forwardEnabled","vacationEnabled","fieldLabels","subject","l","from","to","cc","to_or_cc","size","header","indexOf","body","methodLabels","discard","keep","stop","redirect","vacation","reject","fileinto","addflag","numberOperatorLabels","under","over","textOperatorLabels","is","is_not","contains","contains_not","matches","matches_not","regex","regex_not","flagLabels","seen","deleted","answered","flagged","junk","not_junk","PreferencesController","$q","$state","$mdMedia","$mdSidenav","$mdToast","focus","Dialog","User","Account","Authentication","go","close","onLanguageChange","confirm","ok","then","location","reload","addCalendarCategory","SOGoCalendarCategoriesColors","SOGoCalendarCategories","length","removeCalendarCategory","key","addContactCategory","SOGoContactsCategories","removeContactCategory","addMailAccount","ev","AuxiliaryMailAccounts","_","last","name","identities","fullName","email","receipts","receiptAction","receiptNonRecipientAction","receiptOutsideDomainAction","receiptAnyAction","show","targetEvent","locals","window","editMailAccount","removeMailAccount","addMailLabel","guid","SOGoMailLabelsColors","removeMailLabel","addMailFilter","match","SOGoSieveFilters","editMailFilter","copy","removeMailFilter","addDefaultEmailAddresses","v","isDefined","Vacation","autoReplyEmailAddresses","split","union","defaultEmailAddresses","join","i","sendForm","addresses","defaultAddresses","domains","domain","forwardConstraints","Forward","enabled","forwardAddress","forEach","adr","toLowerCase","alert","$save","data","template","hideDelay","position","canChangePassword","passwords","newPassword","newPasswordConfirmation","changePassword","title","content","undefined","msg","timeZonesListFilter","timeZonesList","value","toUpperCase","userFilter","$filter","timeZonesSearchText","id","$getMailboxes","allMailboxes","$flattenMailboxes","all","ready","SOGoAlternateAvatar","$alternateAvatar","savePreferencesToastCtrl","closeToast"],"mappings":"CAGA,WACE,YAUA,SAASA,GAAUC,EAAgBC,GACjCD,EACGE,MAAM,eACLC,YAAU,EACVC,OACEC,aACEC,YAAa,mBACbC,WAAY,wBACZC,aAAc,QAGlBC,SACEC,iBAAkBA,KAGrBR,MAAM,uBACLS,IAAK,WACLP,OACEQ,QACEN,YAAa,8BAIlBJ,MAAM,yBACLS,IAAK,aACLP,OACEQ,QACEN,YAAa,gCAIlBJ,MAAM,4BACLS,IAAK,gBACLP,OACEQ,QACEN,YAAa,mCAIlBJ,MAAM,sBACLS,IAAK,UACLP,OACEQ,QACEN,YAAa,6BAMrBL,EAAmBY,UAAU,YAO/B,QAASH,GAAiBI,GACxB,MAAOA,GAOT,QAASC,GAASC,GAChBA,EAAWC,IAAI,oBAAqB,SAASC,EAAOC,EAASC,EAAUC,GACrEC,QAAQC,MAAML,EAAOC,EAASC,EAAUC,KA1E5CG,QAAQZ,OAAO,sBAAuB,YAAa,KAAM,cAAe,gBAAiB,kBAAmB,sBAAuB,gBAChIa,OAAO1B,GACP2B,IAAIX,GAKPhB,EAAU4B,SAAW,iBAAkB,sBAwDvCjB,EAAiBiB,SAAW,eAQ5BZ,EAASY,SAAW,iBC1EtB,WACE,YAMA,SAASC,GAAwBC,EAAWC,EAAUC,EAASC,EAAWC,GAUxE,QAASC,KACP,MAAIF,GAAY,GACP,GAEDC,EAGV,QAASE,KACPN,EAAUM,SAGZ,QAASC,KACPP,EAAUQ,OArBZ,GAAIC,GAAKC,IAETD,GAAGR,SAAWA,EACdQ,EAAGP,QAAUA,EACbO,EAAGN,UAAYA,EACfM,EAAGJ,qBAAuBA,EAC1BI,EAAGH,OAASA,EACZG,EAAGF,KAAOA,EATZR,EAAwBD,SAAW,YAAa,WAAY,UAAW,YAAa,yBA2BpFH,QACGZ,OAAO,sBACPL,WAAW,0BAA2BqB,MCnC3C,WACE,YAMA,SAASY,GAAwBC,EAAQC,EAASb,EAAWc,EAAQC,EAAWC,GA8E9E,QAASV,KACPN,EAAUM,SAGZ,QAASC,GAAKU,GACZjB,EAAUQ,OAGZ,QAASU,GAAkB7B,GACpBoB,EAAGK,OAAOK,QACbV,EAAGK,OAAOK,UAEZV,EAAGK,OAAOK,MAAMC,MAAOC,MAAO,UAAWC,SAAU,aAGrD,QAASC,GAAqBC,GAC5Bf,EAAGK,OAAOK,MAAMM,OAAOD,EAAO,GAGhC,QAASE,GAAoBrC,GACtBoB,EAAGK,OAAOa,UACblB,EAAGK,OAAOa,YAEZlB,EAAGK,OAAOa,QAAQP,MAAOQ,OAAQ,YAGnC,QAASC,GAAuBL,GAC9Bf,EAAGK,OAAOa,QAAQF,OAAOD,EAAO,GAxGlC,GAAIf,GAAKC,KACLoB,EAAoBjB,EAAQiB,kBAC5BC,EAAiBlB,EAAQkB,eACzBC,EAAkBnB,EAAQmB,eAE9BvB,GAAGK,OAASA,EACZL,EAAGM,UAAYA,EACfN,EAAGO,OAASA,EACZP,EAAGH,OAASA,EACZG,EAAGF,KAAOA,EACVE,EAAGS,kBAAoBA,EACvBT,EAAGc,qBAAuBA,EAC1Bd,EAAGiB,oBAAsBA,EACzBjB,EAAGoB,uBAAyBA,EAE5BpB,EAAGwB,aACDC,QAAWC,EAAE,WACbC,KAAQD,EAAE,QACVE,GAAMF,EAAE,MACRG,GAAMH,EAAE,MACRI,SAAYJ,EAAE,YACdK,KAAQL,EAAE,aACVM,OAAUN,EAAE,WAGVL,EAAkBY,QAAQ,QAAU,KACtCjC,EAAGwB,YAAYU,KAAOR,EAAE,SAE1B1B,EAAGmC,cACDC,QAAWV,EAAE,uBACbW,KAAQX,EAAE,oBACVY,KAAQZ,EAAE,iCAGRJ,IACFtB,EAAGmC,aAAaI,SAAWb,EAAE,2BAE3BH,IACFvB,EAAGmC,aAAaK,SAAWd,EAAE,4BAE3BL,EAAkBY,QAAQ,UAAY,KACxCjC,EAAGmC,aAAaM,OAASf,EAAE,0BAEzBL,EAAkBY,QAAQ,YAAc,KAC1CjC,EAAGmC,aAAaO,SAAWhB,EAAE,yBAE3BL,EAAkBY,QAAQ,aAAe,IAAMZ,EAAkBY,QAAQ,cAAgB,MAC3FjC,EAAGmC,aAAaQ,QAAUjB,EAAE,0BAE9B1B,EAAG4C,sBACDC,MAASnB,EAAE,YACXoB,KAAQpB,EAAE,YAGZ1B,EAAG+C,oBACDC,GAAMtB,EAAE,MACRuB,OAAUvB,EAAE,UACZwB,SAAYxB,EAAE,YACdyB,aAAgBzB,EAAE,oBAClB0B,QAAW1B,EAAE,WACb2B,YAAe3B,EAAE,mBAGfL,EAAkBY,QAAQ,SAAW,KACvCjC,EAAG+C,mBAAmBO,MAAQ5B,EAAE,iBAChC1B,EAAG+C,mBAAmBQ,UAAY7B,EAAE,yBAGtC1B,EAAGwD,YACDC,KAAQ/B,EAAE,QACVgC,QAAWhC,EAAE,WACbiC,SAAYjC,EAAE,YACdkC,QAAWlC,EAAE,WACbmC,KAAQnC,EAAE,QACVoC,SAAYpC,EAAE,aA5ElBxB,EAAwBb,SAAW,SAAU,UAAW,YAAa,SAAU,YAAa,UA8G5FH,QACGZ,OAAO,sBACPL,WAAW,0BAA2BiC,MCtH3C,WACE,YAMA,SAAS6D,GAAsBC,EAAI5D,EAAS6D,EAAQC,EAAUC,EAAY5E,EAAW6E,EAAUC,EAAOC,EAAQC,EAAMC,EAASpG,EAAkBqG,GA+C7I,QAASC,GAAGpG,GAEN4F,EAAS,OACXC,EAAW,QAAQQ,QACrBV,EAAOS,GAAG,eAAiBpG,GAG7B,QAASsG,KACPN,EAAOO,QAAQnD,EAAE,WACFA,EAAE,0CACDoD,GAAIpD,EAAE,OAAQ7B,OAAQ6B,EAAE,QACrCqD,KAAK,WACJjF,IAAOiF,KAAK,WACV3E,EAAQ4E,SAASC,QAAO,OAKhC,QAASC,KACPlF,EAAGjC,YAAYyB,SAAS2F,6BAA6B,gBAAkB,OACvEnF,EAAGjC,YAAYyB,SAAS4F,uBAAuBzE,KAAK,gBACpD0D,EAAM,qBAAuBrE,EAAGjC,YAAYyB,SAAS4F,uBAAuBC,OAAS,IAGvF,QAASC,GAAuBvE,GAC9B,GAAIwE,GAAMvF,EAAGjC,YAAYyB,SAAS4F,uBAAuBrE,EACzDf,GAAGjC,YAAYyB,SAAS4F,uBAAuBpE,OAAOD,EAAO,SACtDf,GAAGjC,YAAYyB,SAAS2F,6BAA6BI,GAG9D,QAASC,KACPxF,EAAGjC,YAAYyB,SAASiG,uBAAuB9E,KAAK,IACpD0D,EAAM,oBAAsBrE,EAAGjC,YAAYyB,SAASiG,uBAAuBJ,OAAS,IAGtF,QAASK,GAAsB3E,GAC7Bf,EAAGjC,YAAYyB,SAASiG,uBAAuBzE,OAAOD,EAAO,GAG/D,QAAS4E,GAAeC,GACtB,GAAInG,EAEJO,GAAGjC,YAAYyB,SAASqG,sBAAsBlF,SAE9ClB,EAAUqG,EAAEC,KAAK/F,EAAGjC,YAAYyB,SAASqG,uBACzCpG,EAAQuG,KAAOtE,EAAE,eACjBjC,EAAQwG,aAEJC,SAAU,GACVC,MAAO,KAGX1G,EAAQ2G,UACNC,cAAe,SACfC,0BAA2B,SAC3BC,2BAA4B,SAC5BC,iBAAkB,UAGpBjH,EAAUkH,MACRxI,WAAY,0BACZC,aAAc,2BACdF,YAAa,0BACb0I,YAAad,EACbe,QACEnH,SAAUQ,EAAGjC,YAAYyB,SACzBC,QAASA,EACTC,UAAYM,EAAGjC,YAAYyB,SAASqG,sBAAsBR,OAAO,EACjE1F,sBAAuBiH,OAAOjH,yBAKpC,QAASkH,GAAgBjI,EAAOmC,GAC9B,GAAItB,GAAUO,EAAGjC,YAAYyB,SAASqG,sBAAsB9E,EAC5DxB,GAAUkH,MACRxI,WAAY,0BACZC,aAAc,2BACdF,YAAa,uBAAyB+C,EACtC2F,YAAa9H,EACb+H,QACEnH,SAAUQ,EAAGjC,YAAYyB,SACzBC,QAASA,EACTC,UAAWqB,EACXpB,sBAAuBiH,OAAOjH,yBAE/BoF,KAAK,WACN/E,EAAGjC,YAAYyB,SAASqG,sBAAsB9E,GAAStB,IAI3D,QAASqH,GAAkB/F,GACzBf,EAAGjC,YAAYyB,SAASqG,sBAAsB7E,OAAOD,EAAO,GAG9D,QAASgG,KAEP,GAAIxB,GAAM,MAAQyB,MAClBhH,GAAGjC,YAAYyB,SAASyH,qBAAqB1B,IAAS,YAAa,QAGrE,QAAS2B,GAAgB3B,SAChBvF,GAAGjC,YAAYyB,SAASyH,qBAAqB1B,GAGtD,QAAS4B,GAAcvB,GACrB,GAAIvF,IAAW+G,MAAO,MAEtB7H,GAAUkH,MACRzI,YAAa,wBACbC,WAAY,0BACZC,aAAc,eACdwI,YAAad,EACbe,QACEtG,OAAQA,EACRC,UAAWA,EACXC,OAAQP,EAAGjC,YAAYyB,SAASyH,wBAEjClC,KAAK,WACD/E,EAAGjC,YAAYyB,SAAS6H,mBAC3BrH,EAAGjC,YAAYyB,SAAS6H,qBAC1BrH,EAAGjC,YAAYyB,SAAS6H,iBAAiB1G,KAAKN,KAIlD,QAASiH,GAAe1B,EAAI7E,GAC1B,GAAIV,GAASnB,QAAQqI,KAAKvH,EAAGjC,YAAYyB,SAAS6H,iBAAiBtG,GAEnExB,GAAUkH,MACRzI,YAAa,qBAAuB+C,EACpC9C,WAAY,0BACZC,aAAc,eACdwI,YAAa,KACbC,QACEtG,OAAQA,EACRC,UAAWA,EACXC,OAAQP,EAAGjC,YAAYyB,SAASyH,wBAEjClC,KAAK,WACN/E,EAAGjC,YAAYyB,SAAS6H,iBAAiBtG,GAASV,IAItD,QAASmH,GAAiBzG,GACxBf,EAAGjC,YAAYyB,SAAS6H,iBAAiBrG,OAAOD,EAAO,GAGzD,QAAS0G,KACP,GAAIC,KAEAxI,SAAQyI,UAAU3H,EAAGjC,YAAYyB,SAASoI,SAASC,2BACrDH,EAAI1H,EAAGjC,YAAYyB,SAASoI,SAASC,wBAAwBC,MAAM,MAGrE9H,EAAGjC,YAAYyB,SAASoI,SAASC,wBAA2B/B,EAAEiC,MAAMnB,OAAOoB,sBAAsBF,MAAM,KAAMJ,GAAIO,KAAK,KAGxH,QAASnI,KACP,GAAIoI,GAAGC,EAAUC,EAAWC,EAAkBC,EAASC,CAMvD,IAJAJ,GAAW,EACXG,KAGI1B,OAAO4B,mBAAqB,GAC5BtJ,QAAQyI,UAAU3H,EAAGjC,YAAYyB,SAASiJ,UAC1CzI,EAAGjC,YAAYyB,SAASiJ,QAAQC,SAChCxJ,QAAQyI,UAAU3H,EAAGjC,YAAYyB,SAASiJ,QAAQE,gBAepD,IAbAP,EAAYpI,EAAGjC,YAAYyB,SAASiJ,QAAQE,eAAeb,MAAM,KAGjEO,EAAmBzB,OAAOoB,sBAAsBF,MAAM,OAEtDhC,EAAE8C,QAAQP,EAAkB,SAASQ,GACnC,GAAIN,GAASM,EAAIf,MAAM,KAAK,EACxBS,IACFD,EAAQ3H,KAAK4H,EAAOO,iBAKnBZ,EAAI,EAAGA,EAAIE,EAAU/C,QAAU8C,EAAUD,IAC5CK,EAASH,EAAUF,GAAGJ,MAAM,KAAK,GAAGgB,cAChCR,EAAQrG,QAAQsG,GAAU,GAAkC,GAA7B3B,OAAO4B,oBACxClE,EAAOyE,MAAMrH,EAAE,SAAUA,EAAE,+EAC3ByG,GAAW,GAEJG,EAAQrG,QAAQsG,IAAW,GAAkC,GAA7B3B,OAAO4B,qBAC9ClE,EAAOyE,MAAMrH,EAAE,SAAUA,EAAE,+EAC3ByG,GAAW,EAKjB,OAAIA,GACKnI,EAAGjC,YAAYiL,QAAQjE,KAAK,SAASkE,GAC1C7E,EAASqC,MACPxI,WAAY,2BACZiL,UACE,aACA,mCACA,kBAAoBxH,EAAE,qBAAuB,UAC7C,4EACA,iCACA,mBACA,WACA,eACAuG,KAAK,IACPkB,UAAW,IACXC,SAAU,gBAITpF,EAAGvB,SAGZ,QAAS4G,KACP,MAAIrJ,GAAGsJ,UAAUC,aAAevJ,EAAGsJ,UAAUC,YAAYlE,OAAS,GAC9DrF,EAAGsJ,UAAUE,yBAA2BxJ,EAAGsJ,UAAUE,wBAAwBnE,QAC7ErF,EAAGsJ,UAAUC,aAAevJ,EAAGsJ,UAAUE,yBACpC,GAEF,EAGT,QAASC,KACPhF,EAAegF,eAAezJ,EAAGsJ,UAAUC,aAAaxE,KAAK,WAC3D,GAAIgE,GAAQxJ,EAAUwJ,OACpBW,MAAOhI,EAAE,YACTiI,QAASjI,EAAE,0CACXoD,GAAIpD,EAAE,OAERnC,GAAUkH,KAAMsC,GAAhBxJ,WACW,WACPwJ,EAAQa,UAEX,SAASC,GACV,GAAId,GAAQxJ,EAAUwJ,OACpBW,MAAOhI,EAAE,YACTiI,QAASE,EACT/E,GAAIpD,EAAE,OAERnC,GAAUkH,KAAMsC,GAAhBxJ,WACW,WACPwJ,EAAQa,WAKhB,QAASE,GAAoBzJ,GAC3B,MAAOyF,GAAEzF,OAAOL,EAAG+J,cAAe,SAASC,GACzC,MAAOA,GAAMC,cAAchI,QAAQ5B,EAAO4J,gBAAkB,IA1ShE,GAAexK,GAAXO,EAAKC,KAAeK,IAExBN,GAAGjC,YAAcK,EACjB4B,EAAGsJ,WAAcC,YAAa,KAAMC,wBAAyB,MAE7DxJ,EAAG0E,GAAKA,EACR1E,EAAG4E,iBAAmBA,EACtB5E,EAAGkF,oBAAsBA,EACzBlF,EAAGsF,uBAAyBA,EAC5BtF,EAAGwF,mBAAqBA,EACxBxF,EAAG0F,sBAAwBA,EAC3B1F,EAAG2F,eAAiBA,EACpB3F,EAAG6G,gBAAkBA,EACrB7G,EAAG8G,kBAAoBA,EACvB9G,EAAG+G,aAAeA,EAClB/G,EAAGkH,gBAAkBA,EACrBlH,EAAGmH,cAAgBA,EACnBnH,EAAGsH,eAAiBA,EACpBtH,EAAGwH,iBAAmBA,EACtBxH,EAAGyH,yBAA2BA,EAC9BzH,EAAGkK,WAAa3F,EAAK4F,QACrBnK,EAAGF,KAAOA,EACVE,EAAGqJ,kBAAoBA,EACvBrJ,EAAGyJ,eAAiBA,EACpBzJ,EAAG+J,cAAgBnD,OAAOmD,cAC1B/J,EAAG8J,oBAAsBA,EACzB9J,EAAGoK,oBAAsB,GAIzB3K,EAAU,GAAI+E,IAAU6F,GAAI,IAC5B5K,EAAQ6K,gBAAgBvF,KAAK,WAI3B,IAHA,GAAIwF,GAAe9K,EAAQ+K,mBAAmBC,KAAK,IAC/C1J,EAAQ,GACRsE,EAASkF,EAAalF,SACjBtE,EAAQsE,GACf/E,EAAUK,KAAK4J,EAAaxJ,MAKhC3C,EAAiBsM,QAAQ3F,KAAK,WACxB3G,EAAiBoB,SAASmL,sBAC5BpG,EAAKqG,iBAAmBxM,EAAiBoB,SAASmL,uBAqQxD,QAASE,GAAyB1K,EAAQiE,GACxCjE,EAAO2K,WAAa,WAClB1G,EAASrE,QApTbgE,EAAsB1E,SAAW,KAAM,UAAW,SAAU,WAAY,aAAc,YAAa,WAAY,UAAW,SAAU,OAAQ,UAAW,mBAAoB,kBAiT3KwL,EAAyBxL,SAAW,SAAU,YAO9CH,QACGZ,OAAO,sBACPL,WAAW,2BAA4B4M,GACvC5M,WAAW,wBAAyB8F","file":"Preferences.js","sourcesContent":["/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* JavaScript for SOGoPreferences */\n\n(function() {\n 'use strict';\n\n angular.module('SOGo.PreferencesUI', ['ui.router', 'ck', 'SOGo.Common', 'SOGo.MailerUI', 'SOGo.ContactsUI', 'SOGo.Authentication', 'ng-sortable'])\n .config(configure)\n .run(runBlock);\n\n /**\n * @ngInject\n */\n configure.$inject = ['$stateProvider', '$urlRouterProvider'];\n function configure($stateProvider, $urlRouterProvider) {\n $stateProvider\n .state('preferences', {\n abstract: true,\n views: {\n preferences: {\n templateUrl: 'preferences.html',\n controller: 'PreferencesController',\n controllerAs: 'app'\n }\n },\n resolve: {\n statePreferences: statePreferences\n }\n })\n .state('preferences.general', {\n url: '/general',\n views: {\n module: {\n templateUrl: 'generalPreferences.html'\n }\n }\n })\n .state('preferences.calendars', {\n url: '/calendars',\n views: {\n module: {\n templateUrl: 'calendarsPreferences.html'\n }\n }\n })\n .state('preferences.addressbooks', {\n url: '/addressbooks',\n views: {\n module: {\n templateUrl: 'addressbooksPreferences.html'\n }\n }\n })\n .state('preferences.mailer', {\n url: '/mailer',\n views: {\n module: {\n templateUrl: 'mailerPreferences.html'\n }\n }\n });\n\n // if none of the above states are matched, use this as the fallback\n $urlRouterProvider.otherwise('/general');\n }\n\n /**\n * @ngInject\n */\n statePreferences.$inject = ['Preferences'];\n function statePreferences(Preferences) {\n return Preferences;\n }\n\n /**\n * @ngInject\n */\n runBlock.$inject = ['$rootScope'];\n function runBlock($rootScope) {\n $rootScope.$on('$routeChangeError', function(event, current, previous, rejection) {\n console.error(event, current, previous, rejection);\n });\n }\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* JavaScript for SOGoPreferences */\n\n(function() {\n 'use strict';\n\n /**\n * @ngInject\n */\n AccountDialogController.$inject = ['$mdDialog', 'defaults', 'account', 'accountId', 'mailCustomFromEnabled'];\n function AccountDialogController($mdDialog, defaults, account, accountId, mailCustomFromEnabled) {\n var vm = this;\n\n vm.defaults = defaults;\n vm.account = account;\n vm.accountId = accountId;\n vm.customFromIsReadonly = customFromIsReadonly;\n vm.cancel = cancel;\n vm.save = save;\n\n function customFromIsReadonly() {\n if (accountId > 0)\n return false;\n\n return !mailCustomFromEnabled;\n }\n\n function cancel() {\n $mdDialog.cancel();\n }\n\n function save() {\n $mdDialog.hide();\n }\n }\n\n angular\n .module('SOGo.PreferencesUI')\n .controller('AccountDialogController', AccountDialogController);\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* JavaScript for SOGoPreferences */\n\n(function() {\n 'use strict';\n\n /**\n * @ngInject\n */\n FiltersDialogController.$inject = ['$scope', '$window', '$mdDialog', 'filter', 'mailboxes', 'labels'];\n function FiltersDialogController($scope, $window, $mdDialog, filter, mailboxes, labels) {\n var vm = this,\n sieveCapabilities = $window.sieveCapabilities,\n forwardEnabled = $window.forwardEnabled,\n vacationEnabled = $window.vacationEnabled;\n\n vm.filter = filter;\n vm.mailboxes = mailboxes;\n vm.labels = labels;\n vm.cancel = cancel;\n vm.save = save;\n vm.addMailFilterRule = addMailFilterRule;\n vm.removeMailFilterRule = removeMailFilterRule;\n vm.addMailFilterAction = addMailFilterAction;\n vm.removeMailFilterAction = removeMailFilterAction;\n\n vm.fieldLabels = {\n \"subject\": l(\"Subject\"),\n \"from\": l(\"From\"),\n \"to\": l(\"To\"),\n \"cc\": l(\"Cc\"),\n \"to_or_cc\": l(\"To or Cc\"),\n \"size\": l(\"Size (Kb)\"),\n \"header\": l(\"Header\")\n };\n\n if (sieveCapabilities.indexOf(\"body\") > -1)\n vm.fieldLabels.body = l(\"Body\");\n\n vm.methodLabels = {\n \"discard\": l(\"Discard the message\"),\n \"keep\": l(\"Keep the message\"),\n \"stop\": l(\"Stop processing filter rules\")\n };\n\n if (forwardEnabled)\n vm.methodLabels.redirect = l(\"Forward the message to\");\n\n if (vacationEnabled)\n vm.methodLabels.vacation = l(\"Send a vacation message\");\n\n if (sieveCapabilities.indexOf(\"reject\") > -1)\n vm.methodLabels.reject = l(\"Send a reject message\");\n\n if (sieveCapabilities.indexOf(\"fileinto\") > -1)\n vm.methodLabels.fileinto = l(\"File the message in\");\n\n if (sieveCapabilities.indexOf(\"imapflags\") > -1 || sieveCapabilities.indexOf(\"imap4flags\") > -1)\n vm.methodLabels.addflag = l(\"Flag the message with\");\n\n vm.numberOperatorLabels = {\n \"under\": l(\"is under\"),\n \"over\": l(\"is over\")\n };\n\n vm.textOperatorLabels = {\n \"is\": l(\"is\"),\n \"is_not\": l(\"is not\"),\n \"contains\": l(\"contains\"),\n \"contains_not\": l(\"does not contain\"),\n \"matches\": l(\"matches\"),\n \"matches_not\": l(\"does not match\")\n };\n\n if (sieveCapabilities.indexOf(\"regex\") > -1) {\n vm.textOperatorLabels.regex = l(\"matches regex\");\n vm.textOperatorLabels.regex_not = l(\"does not match regex\");\n }\n\n vm.flagLabels = {\n \"seen\": l(\"Seen\"),\n \"deleted\": l(\"Deleted\"),\n \"answered\": l(\"Answered\"),\n \"flagged\": l(\"Flagged\"),\n \"junk\": l(\"Junk\"),\n \"not_junk\": l(\"Not Junk\")\n };\n \n function cancel() {\n $mdDialog.cancel();\n }\n \n function save(form) {\n $mdDialog.hide();\n }\n \n function addMailFilterRule(event) {\n if (!vm.filter.rules)\n vm.filter.rules = [];\n\n vm.filter.rules.push({ field: 'subject', operator: 'contains' });\n }\n \n function removeMailFilterRule(index) {\n vm.filter.rules.splice(index, 1);\n }\n \n function addMailFilterAction(event) {\n if (!vm.filter.actions)\n vm.filter.actions = [];\n\n vm.filter.actions.push({ method: 'discard' });\n }\n \n function removeMailFilterAction(index) {\n vm.filter.actions.splice(index, 1);\n }\n }\n\n angular\n .module('SOGo.PreferencesUI')\n .controller('FiltersDialogController', FiltersDialogController);\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* JavaScript for SOGoPreferences */\n\n(function() {\n 'use strict';\n \n /**\n * @ngInject\n */\n PreferencesController.$inject = ['$q', '$window', '$state', '$mdMedia', '$mdSidenav', '$mdDialog', '$mdToast', 'sgFocus', 'Dialog', 'User', 'Account', 'statePreferences', 'Authentication'];\n function PreferencesController($q, $window, $state, $mdMedia, $mdSidenav, $mdDialog, $mdToast, focus, Dialog, User, Account, statePreferences, Authentication) {\n var vm = this, account, mailboxes = [];\n\n vm.preferences = statePreferences;\n vm.passwords = { newPassword: null, newPasswordConfirmation: null };\n\n vm.go = go;\n vm.onLanguageChange = onLanguageChange;\n vm.addCalendarCategory = addCalendarCategory;\n vm.removeCalendarCategory = removeCalendarCategory;\n vm.addContactCategory = addContactCategory;\n vm.removeContactCategory = removeContactCategory;\n vm.addMailAccount = addMailAccount;\n vm.editMailAccount = editMailAccount;\n vm.removeMailAccount = removeMailAccount;\n vm.addMailLabel = addMailLabel;\n vm.removeMailLabel = removeMailLabel;\n vm.addMailFilter = addMailFilter;\n vm.editMailFilter = editMailFilter;\n vm.removeMailFilter = removeMailFilter;\n vm.addDefaultEmailAddresses = addDefaultEmailAddresses;\n vm.userFilter = User.$filter;\n vm.save = save;\n vm.canChangePassword = canChangePassword;\n vm.changePassword = changePassword;\n vm.timeZonesList = window.timeZonesList;\n vm.timeZonesListFilter = timeZonesListFilter;\n vm.timeZonesSearchText = '';\n\n // Fetch a flatten version of the mailboxes list of the main account (0)\n // This list will be forwarded to the Sieve filter controller\n account = new Account({ id: 0 });\n account.$getMailboxes().then(function() {\n var allMailboxes = account.$flattenMailboxes({all: true}),\n index = -1,\n length = allMailboxes.length;\n while (++index < length) {\n mailboxes.push(allMailboxes[index]);\n }\n });\n\n // Set alternate avatar in User service\n statePreferences.ready().then(function() {\n if (statePreferences.defaults.SOGoAlternateAvatar)\n User.$alternateAvatar = statePreferences.defaults.SOGoAlternateAvatar;\n });\n\n function go(module) {\n // Close sidenav on small devices\n if ($mdMedia('xs'))\n $mdSidenav('left').close();\n $state.go('preferences.' + module);\n }\n\n function onLanguageChange() {\n Dialog.confirm(l('Warning'),\n l('Save preferences and reload page now?'),\n {ok: l('Yes'), cancel: l('No')})\n .then(function() {\n save().then(function() {\n $window.location.reload(true);\n });\n });\n }\n\n function addCalendarCategory() {\n vm.preferences.defaults.SOGoCalendarCategoriesColors[\"New category\"] = \"#aaa\";\n vm.preferences.defaults.SOGoCalendarCategories.push(\"New category\");\n focus('calendarCategory_' + (vm.preferences.defaults.SOGoCalendarCategories.length - 1));\n }\n\n function removeCalendarCategory(index) {\n var key = vm.preferences.defaults.SOGoCalendarCategories[index];\n vm.preferences.defaults.SOGoCalendarCategories.splice(index, 1);\n delete vm.preferences.defaults.SOGoCalendarCategoriesColors[key];\n }\n\n function addContactCategory() {\n vm.preferences.defaults.SOGoContactsCategories.push(\"\");\n focus('contactCategory_' + (vm.preferences.defaults.SOGoContactsCategories.length - 1));\n }\n\n function removeContactCategory(index) {\n vm.preferences.defaults.SOGoContactsCategories.splice(index, 1);\n }\n\n function addMailAccount(ev) {\n var account;\n\n vm.preferences.defaults.AuxiliaryMailAccounts.push({});\n\n account = _.last(vm.preferences.defaults.AuxiliaryMailAccounts);\n account.name = l(\"New account\");\n account.identities = [\n {\n fullName: \"\",\n email: \"\"\n }\n ];\n account.receipts = {\n receiptAction: \"ignore\",\n receiptNonRecipientAction: \"ignore\",\n receiptOutsideDomainAction: \"ignore\",\n receiptAnyAction: \"ignore\"\n };\n\n $mdDialog.show({\n controller: 'AccountDialogController',\n controllerAs: '$AccountDialogController',\n templateUrl: 'editAccount?account=new',\n targetEvent: ev,\n locals: {\n defaults: vm.preferences.defaults,\n account: account,\n accountId: (vm.preferences.defaults.AuxiliaryMailAccounts.length-1),\n mailCustomFromEnabled: window.mailCustomFromEnabled\n }\n });\n }\n\n function editMailAccount(event, index) {\n var account = vm.preferences.defaults.AuxiliaryMailAccounts[index];\n $mdDialog.show({\n controller: 'AccountDialogController',\n controllerAs: '$AccountDialogController',\n templateUrl: 'editAccount?account=' + index,\n targetEvent: event,\n locals: {\n defaults: vm.preferences.defaults,\n account: account,\n accountId: index,\n mailCustomFromEnabled: window.mailCustomFromEnabled\n }\n }).then(function() {\n vm.preferences.defaults.AuxiliaryMailAccounts[index] = account;\n });\n }\n\n function removeMailAccount(index) {\n vm.preferences.defaults.AuxiliaryMailAccounts.splice(index, 1);\n }\n \n function addMailLabel() {\n // See $omit() in the Preferences services for real key generation\n var key = '_$$' + guid();\n vm.preferences.defaults.SOGoMailLabelsColors[key] = [\"New label\", \"#aaa\"];\n }\n\n function removeMailLabel(key) {\n delete vm.preferences.defaults.SOGoMailLabelsColors[key];\n }\n\n function addMailFilter(ev) {\n var filter = { match: 'all' };\n\n $mdDialog.show({\n templateUrl: 'editFilter?filter=new',\n controller: 'FiltersDialogController',\n controllerAs: 'filterEditor',\n targetEvent: ev,\n locals: {\n filter: filter,\n mailboxes: mailboxes,\n labels: vm.preferences.defaults.SOGoMailLabelsColors\n }\n }).then(function() {\n if (!vm.preferences.defaults.SOGoSieveFilters)\n vm.preferences.defaults.SOGoSieveFilters = [];\n vm.preferences.defaults.SOGoSieveFilters.push(filter);\n });\n }\n \n function editMailFilter(ev, index) {\n var filter = angular.copy(vm.preferences.defaults.SOGoSieveFilters[index]);\n \n $mdDialog.show({\n templateUrl: 'editFilter?filter=' + index,\n controller: 'FiltersDialogController',\n controllerAs: 'filterEditor',\n targetEvent: null,\n locals: {\n filter: filter,\n mailboxes: mailboxes,\n labels: vm.preferences.defaults.SOGoMailLabelsColors\n }\n }).then(function() {\n vm.preferences.defaults.SOGoSieveFilters[index] = filter;\n });\n }\n\n function removeMailFilter(index) {\n vm.preferences.defaults.SOGoSieveFilters.splice(index, 1);\n }\n\n function addDefaultEmailAddresses() {\n var v = [];\n\n if (angular.isDefined(vm.preferences.defaults.Vacation.autoReplyEmailAddresses)) {\n v = vm.preferences.defaults.Vacation.autoReplyEmailAddresses.split(',');\n }\n\n vm.preferences.defaults.Vacation.autoReplyEmailAddresses = (_.union(window.defaultEmailAddresses.split(','), v)).join(',');\n }\n \n function save() {\n var i, sendForm, addresses, defaultAddresses, domains, domain;\n\n sendForm = true;\n domains = [];\n\n // We do some sanity checks\n if (window.forwardConstraints > 0 &&\n angular.isDefined(vm.preferences.defaults.Forward) &&\n vm.preferences.defaults.Forward.enabled &&\n angular.isDefined(vm.preferences.defaults.Forward.forwardAddress)) {\n\n addresses = vm.preferences.defaults.Forward.forwardAddress.split(\",\");\n\n // We first extract the list of 'known domains' to SOGo\n defaultAddresses = window.defaultEmailAddresses.split(/, */);\n\n _.forEach(defaultAddresses, function(adr) {\n var domain = adr.split(\"@\")[1];\n if (domain) {\n domains.push(domain.toLowerCase());\n }\n });\n\n // We check if we're allowed or not to forward based on the domain defaults\n for (i = 0; i < addresses.length && sendForm; i++) {\n domain = addresses[i].split(\"@\")[1].toLowerCase();\n if (domains.indexOf(domain) < 0 && window.forwardConstraints == 1) {\n Dialog.alert(l('Error'), l(\"You are not allowed to forward your messages to an external email address.\"));\n sendForm = false;\n }\n else if (domains.indexOf(domain) >= 0 && window.forwardConstraints == 2) {\n Dialog.alert(l('Error'), l(\"You are not allowed to forward your messages to an internal email address.\"));\n sendForm = false;\n }\n }\n }\n\n if (sendForm)\n return vm.preferences.$save().then(function(data) {\n $mdToast.show({\n controller: 'savePreferencesToastCtrl',\n template: [\n '<md-toast>',\n ' <div class=\"md-toast-content\">',\n ' <span flex>' + l('Preferences saved') + '</span>',\n ' <md-button class=\"md-icon-button md-primary\" ng-click=\"closeToast()\">',\n ' <md-icon>close</md-icon>',\n ' </md-button>',\n ' </div>',\n '</md-toast>'\n ].join(''),\n hideDelay: 2000,\n position: 'top right'\n });\n });\n\n return $q.reject();\n }\n\n function canChangePassword() {\n if (vm.passwords.newPassword && vm.passwords.newPassword.length > 0 &&\n vm.passwords.newPasswordConfirmation && vm.passwords.newPasswordConfirmation.length &&\n vm.passwords.newPassword == vm.passwords.newPasswordConfirmation)\n return true;\n\n return false;\n }\n \n function changePassword() {\n Authentication.changePassword(vm.passwords.newPassword).then(function() {\n var alert = $mdDialog.alert({\n title: l('Password'),\n content: l('The password was changed successfully.'),\n ok: l('OK')\n });\n $mdDialog.show( alert )\n .finally(function() {\n alert = undefined;\n });\n }, function(msg) {\n var alert = $mdDialog.alert({\n title: l('Password'),\n content: msg,\n ok: l('OK')\n });\n $mdDialog.show( alert )\n .finally(function() {\n alert = undefined;\n });\n });\n }\n\n function timeZonesListFilter(filter) {\n return _.filter(vm.timeZonesList, function(value) {\n return value.toUpperCase().indexOf(filter.toUpperCase()) >= 0;\n });\n }\n }\n\n savePreferencesToastCtrl.$inject = ['$scope', '$mdToast'];\n function savePreferencesToastCtrl($scope, $mdToast) {\n $scope.closeToast = function() {\n $mdToast.hide();\n };\n }\n\n angular\n .module('SOGo.PreferencesUI')\n .controller('savePreferencesToastCtrl', savePreferencesToastCtrl)\n .controller('PreferencesController', PreferencesController);\n\n})();\n"]}