!function(){"use strict";function e(e,t){e.state("app",{url:"/addressbooks",abstract:!0,views:{addressbooks:{templateUrl:"UIxContactFoldersView",controller:"AddressBooksController",controllerAs:"app"}},resolve:{stateAddressbooks:o}}).state("app.addressbook",{url:"/:addressbookId",views:{addressbook:{templateUrl:"addressbook",controller:"AddressBookController",controllerAs:"addressbook"}},resolve:{stateAddressbook:r}}).state("app.addressbook.new",{url:"/{contactType:(?:card|list)}/new",params:{refs:{array:!0}},views:{card:{templateUrl:"UIxContactEditorTemplate",controller:"CardController",controllerAs:"editor"}},resolve:{stateCard:s}}).state("app.addressbook.card",{url:"/:cardId",abstract:!0,views:{card:{template:""}},resolve:{stateCard:d},onEnter:n,onExit:a}).state("app.addressbook.card.view",{url:"/view",views:{"card@app.addressbook":{templateUrl:"UIxContactViewTemplate",controller:"CardController",controllerAs:"editor"}}}).state("app.addressbook.card.editor",{url:"/edit",views:{"card@app.addressbook":{templateUrl:"UIxContactEditorTemplate",controller:"CardController",controllerAs:"editor"}}}),t.rules.otherwise({state:"app.addressbook",params:{addressbookId:"personal"}})}function o(e){return e.$findAll(window.contactFolders)}function r(e,t,o,r){var s=_.find(r.$findAll(),function(e){return e.id==o.addressbookId});return s?(delete s.selectedCard,s.$reload(),s):e.reject("Addressbook "+o.addressbookId+" not found")}function s(e,t,o){var r="v"+e.contactType,s=new o({pid:e.addressbookId,c_component:r,refs:e.refs});return t.selectedCard=!0,s}function d(t,o,r){return r.$futureAddressBookData.then(function(){var e=_.find(r.$cards,function(e){return e.id==o.cardId});if(e)return e.$reload();t.go("app.addressbook")})}function n(e,t){t.selectedCard=e.cardId}function a(e){delete r.selectedCard}function t(e,t,o,r){e.DebugEnabled||r.defaultErrorHandler(function(){}),o.onError({to:"app.**"},function(e){"app"==e.to().name||e.ignored()||(t.error("transition error to "+e.to().name+": "+e.error().detail),r.go("app.addressbook",{addressbookId:"personal"}))})}angular.module("SOGo.ContactsUI",["ngCookies","ui.router","angularFileUpload","ck","SOGo.Common","SOGo.PreferencesUI","SOGo.MailerUI"]).config(e).run(t),e.$inject=["$stateProvider","$urlServiceProvider"],o.$inject=["AddressBook"],r.$inject=["$q","$state","$stateParams","AddressBook"],s.$inject=["$stateParams","stateAddressbook","Card"],d.$inject=["$state","$stateParams","stateAddressbook"],n.$inject=["$stateParams","stateAddressbook"],a.$inject=["stateAddressbook"],t.$inject=["$window","$log","$transitions","$state"]}(),function(){"use strict";function e(e,n,t,i,o,a,u,c,r,s,d,f,p,h,m,g){var $,k=this,b=[];function C(e){var t=k.selectedFolder.$selectedCardIndex();return angular.isDefined(t)?(t--,0"];this.newMessage(e,r,"to"),e.stopPropagation(),e.preventDefault()},this.newMessageWithSelectedCards=function(e,t){var o=_.filter(this.selectedFolder.$cards,function(e){return e.selected}),r=[],s=[];_.forEach(o,function(e){e.$isList({expandable:!0})?angular.isDefined(e.refs)&&e.refs.length?_.forEach(e.refs,function(e){e.email.length&&s.push(e.$shortFormat())}):r.push(e.$reload().then(function(e){_.forEach(e.refs,function(e){e.email.length&&s.push(e.$shortFormat())})})):e.c_mail.length&&s.push(e.$shortFormat())}),n.all(r).then(function(){(s=_.uniq(s)).length&&k.newMessage(e,s,t)})},this.newListWithSelectedCards=function(){var e=_.filter(this.selectedFolder.$cards,function(e){return e.selected}),t=[],o=[];_.forEach(e,function(e){e.$isList({expandable:!0})?angular.isDefined(e.refs)&&e.refs.length?_.forEach(e.refs,function(e){e.email.length&&o.push(e)}):t.push(e.$reload().then(function(e){_.forEach(e.refs,function(e){e.email.length&&o.push(e)})})):e.$$email&&e.$$email.length&&o.push(e)}),n.all(t).then(function(){(o=_.uniqBy(_.map(o,function(e){return{reference:e.id||e.reference,email:e.$$email||e.email}}),"reference")).length&&i.go("app.addressbook.new",{contactType:"list",refs:o})})}}e.$inject=["$scope","$q","$window","$state","$timeout","$mdDialog","$mdToast","Account","Card","AddressBook","sgFocus","Dialog","sgSettings","sgHotkeys","stateAddressbooks","stateAddressbook"],angular.module("SOGo.ContactsUI").controller("AddressBookController",e)}(),function(){"use strict";function e(r,u,e,t,o,s,d,n,f,a,c,i,p,h,m,g,$,k,b,C,v){var w,y=this,F=[];function A(){y.service.selectedFolder.isSubscription?y.service.selectedFolder.$delete().then(function(){y.service.selectedFolder=null,u.go("app.addressbook",{addressbookId:"personal"})},function(e,t){k.alert(l('An error occured while deleting the addressbook "%{0}".',y.service.selectedFolder.name),l(e.error))}):k.confirm(l("Warning"),l('Are you sure you want to delete the addressbook "%{0}"?',y.service.selectedFolder.name),{ok:l("Delete")}).then(function(){return y.service.selectedFolder.$delete()}).then(function(){return y.service.selectedFolder=null,u.go("app.addressbook",{addressbookId:"personal"}),!0}).catch(function(e){if(e){var t=e.data.message||e.statusText;k.alert(l('An error occured while deleting the addressbook "%{0}".',y.service.selectedFolder.name),t)}})}y.activeUser=b.activeUser,y.service=$,y.select=function(e,t){u.params.addressbookId!=t.id&&y.editMode!=t.id&&(y.editMode=!1,$.$query.value="",a(p["gt-md"])||c("left").close(),u.go("app.addressbook",{addressbookId:t.id}))},y.newAddressbook=function(){k.prompt(l("New Addressbook..."),l("Name of the Address Book")).then(function(e){var t=new $({name:e,isEditable:!0,isRemote:!1,owner:UserLogin});$.$add(t)})},y.edit=function(e){e.isRemote||(y.editMode=e.id,y.originalAddressbook=e.$omit(),m("addressBookName_"+e.id))},y.revertEditing=function(e){e.name=y.originalAddressbook.name,y.editMode=!1},y.save=function(e){var t=e.name;t&&0",'
',' error_outline'," "+l("Select a vCard or LDIF file.")+"","
",""].join(""),position:"top right",hideDelay:3e3}),t}this.uploader=new i({url:ApplicationBaseURL+[t.id,"import"].join("/"),autoUpload:!0,queueLimit:1,filters:[{name:o,fn:o}],onSuccessItem:function(e,t,o,r){var s;d.hide(),0===t.imported?s=l("No card was imported."):(s=l("A total of %{0} cards were imported in the addressbook.",t.imported),$.selectedFolder.$reload()),f.show(f.simple().content(s).position("top right").hideDelay(3e3))},onErrorItem:function(e,t,o,r){f.show({template:["",'
',' error_outline'," "+l("An error occured while importing contacts.")+"","
","
"].join(""),position:"top right",hideDelay:3e3})}}),this.close=function(){d.hide()}}n.show({parent:angular.element(document.body),targetEvent:e,clickOutsideToClose:!0,escapeToClose:!0,templateUrl:"UIxContactsImportDialog",controller:o,controllerAs:"$CardsImportDialogController",locals:{folder:t}}),o.$inject=["scope","$mdDialog","folder"]},y.showLinks=function(e){var t;t=e.urls?r.when():$.$reloadAll();function o(e,t){this.addressbook=t,this.close=function(){e.hide()}}t.then(function(){n.show({parent:angular.element(document.body),clickOutsideToClose:!0,escapeToClose:!0,templateUrl:e.id+"/links",controller:o,controllerAs:"links",locals:{addressbook:e}})}),o.$inject=["$mdDialog","addressbook"]},y.showProperties=function(e){function t(e,t,o){var r=this;r.addressbook=new $(o.$omit()),r.saveProperties=function(){r.addressbook.$save().then(function(){o.init(r.addressbook.$omit()),t.hide()})},r.close=function(){t.cancel()}}n.show({templateUrl:e.id+"/properties",controller:t,controllerAs:"properties",clickOutsideToClose:!0,escapeToClose:!0,locals:{srcAddressBook:e}}).catch(function(){}),t.$inject=["$scope","$mdDialog","srcAddressBook"]},y.share=function(e){e.$acl.$users().then(function(){n.show({templateUrl:e.id+"/UIxAclEditor",controller:"AclController",controllerAs:"acl",clickOutsideToClose:!0,escapeToClose:!0,locals:{usersWithACL:e.$acl.users,User:C,folder:e}})})},y.subscribeToFolder=function(e){console.debug("subscribeToFolder "+e.owner+e.name),$.$subscribe(e.owner,e.name).then(function(e){f.show(f.simple().content(l("Successfully subscribed to address book")).position("top right").hideDelay(3e3))})},y.isDroppableFolder=function(e,t){return t.id!=e.id&&(t.isOwned||t.acls.objectCreator)},y.dragSelectedCards=function(e,t,o){var r,s,d,n,a,c,i;r=t.id,a=!1,0===(s=e.$selectedCards()).length&&(s=[e.$selectedCard()]);(d=_.filter(s,function(e){return e.$isCard()})).length!=s.length&&f.show(f.simple().content(l("Lists can't be moved or copied.")).position("top right").hideDelay(2e3));d.length&&("copy"==o?(c=e.$copyCards(d,r),i=l("%{0} card(s) copied",d.length)):(c=e.$moveCards(d,r),i=l("%{0} card(s) moved",d.length),n=_.map(d,"id"),a=e.selectedCard&&0<=n.indexOf(e.selectedCard)),c.then(function(){a&&u.go("app.addressbook"),f.show(f.simple().content(i).position("top right").hideDelay(2e3))}))},w=F,_.forEach(["backspace","delete"],function(e){w.push(h.createHotkey({key:e,description:l("Delete selected card or address book"),callback:function(){$.selectedFolder&&!$.selectedFolder.hasSelectedCard()&&A()}}))}),_.forEach(w,function(e){h.registerHotkey(e)}),e.$on("$destroy",function(){_.forEach(F,function(e){h.deregisterHotkey(e)})})}e.$inject=["$q","$state","$scope","$rootScope","$stateParams","$timeout","$window","$mdDialog","$mdToast","$mdMedia","$mdSidenav","FileUploader","sgConstant","sgHotkeys","sgFocus","Card","AddressBook","Dialog","sgSettings","User","stateAddressbooks"],angular.module("SOGo.ContactsUI").controller("AddressBooksController",e)}(),function(){"use strict";function e(e,t,o,r,s,d,n,a,c,i,u,f,p){var h,m=this,g=[];function $(){u.go("app.addressbook").then(function(){m.card=null,delete d.selectedFolder.selectedCard})}function k(){var o=p;a.confirm(l("Warning"),l("Are you sure you want to delete the card of %{0}?",""+o.$fullname()+""),{ok:l("Delete")}).then(function(){d.selectedFolder.$deleteCards([o]).then(function(){$()},function(e,t){a.alert(l("Warning"),l('An error occured while deleting the card "%{0}".',o.$fullname()))})})}m.card=p,m.currentFolder=d.selectedFolder,m.allEmailTypes=n.$EMAIL_TYPES,m.allTelTypes=n.$TEL_TYPES,m.allUrlTypes=n.$URL_TYPES,m.allAddressTypes=n.$ADDRESS_TYPES,m.categories={},m.userFilterResults=[],m.transformCategory=function(e){return angular.isString(e)?{value:e}:e},m.removeAttribute=function(e,t,o){m.card.$delete(t,o),e.$setDirty()},m.addOrg=function(){var e=m.card.$addOrg({value:""});i("org_"+e)},m.addBirthday=function(){m.card.birthday=new Date},m.addScreenName=function(){m.card.$addScreenName("")},m.addEmail=function(){var e=m.card.$addEmail("");i("email_"+e)},m.addPhone=function(){var e=m.card.$addPhone("");i("phone_"+e)},m.addUrl=function(){var e=m.card.$addUrl("","https://www.fsf.org/");i("url_"+e)},m.addAddress=function(){var e=m.card.$addAddress("","","","","","","","");i("address_"+e)},m.canAddCustomField=function(){return _.keys(p.customFields).length<4},m.addCustomField=function(){angular.isDefined(m.card.customFields)||(m.card.customFields={});var e=_.pullAll(["1","2","3","4"],_.keys(p.customFields));m.card.customFields[e[0]]=""},m.deleteCustomField=function(e){delete m.card.customFields[e]},m.userFilter=function(e,t){return e.length")}}],template:'
'}})}(); //# sourceMappingURL=Contacts.js.map