sogo/UI/WebServerResources/js/Contacts.js
2016-08-11 01:28:23 -04:00

2 lines
14 KiB
JavaScript

!function(){"use strict";function a(a,h){a.state("app",{url:"/addressbooks",abstract:!0,views:{addressbooks:{templateUrl:"UIxContactFoldersView",controller:"AddressBooksController",controllerAs:"app"}},resolve:{stateAddressbooks:b}}).state("app.addressbook",{url:"/:addressbookId",views:{addressbook:{templateUrl:"addressbook",controller:"AddressBookController",controllerAs:"addressbook"}},resolve:{stateAddressbook:c}}).state("app.addressbook.new",{url:"/{contactType:(?:card|list)}/new",views:{card:{templateUrl:"UIxContactEditorTemplate",controller:"CardController",controllerAs:"editor"}},resolve:{stateCard:d}}).state("app.addressbook.card",{url:"/:cardId",abstract:!0,views:{card:{template:"<ui-view/>"}},resolve:{stateCard:e},onEnter:f,onExit:g}).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"}}}),h.otherwise("/addressbooks/personal")}function b(a){return a.$findAll(window.contactFolders)}function c(a,b,c,d){var e=_.find(d.$findAll(),function(a){return a.id==c.addressbookId});return e?(delete e.selectedCard,e.$reload(),e):a.reject("Addressbook "+c.addressbookId+" not found")}function d(a,b,c){var d="v"+a.contactType,e=new c({pid:a.addressbookId,c_component:d});return b.selectedCard=!0,e}function e(a,b,c){var d;return(d=_.find(c.$cards,function(a){return a.id==b.cardId}))?d.$reload():void a.go("app.addressbook")}function f(a,b){b.selectedCard=a.cardId}function g(a){delete c.selectedCard}function h(a,b,c){a.$on("$stateChangeError",function(a,d,e,f,g,h){b.error(h),c.go("app.addressbook",{addressbookId:"personal"})}),a.$on("$routeChangeError",function(a,c,d,e){b.error(a,c,d,e)})}angular.module("SOGo.ContactsUI",["ngCookies","ui.router","angularFileUpload","ck","SOGo.Common","SOGo.PreferencesUI","SOGo.MailerUI"]).config(a).run(h),a.$inject=["$stateProvider","$urlRouterProvider"],b.$inject=["AddressBook"],c.$inject=["$q","$state","$stateParams","AddressBook"],d.$inject=["$stateParams","stateAddressbook","Card"],e.$inject=["$state","$stateParams","stateAddressbook"],f.$inject=["$stateParams","stateAddressbook"],g.$inject=["stateAddressbook"],h.$inject=["$rootScope","$log","$state"]}(),function(){"use strict";function a(a,b,c,d,e,f,g,h,i,j,k,m,n,o){function p(a){d.go("app.addressbook.card.view",{cardId:a.id})}function q(a,b){b.selected=!b.selected,E.mode.multiple+=b.selected?1:-1,a.preventDefault(),a.stopPropagation()}function r(a){d.go("app.addressbook.new",{contactType:a})}function s(){_.forEach(E.selectedFolder.$cards,function(a){a.selected=!1}),E.mode.multiple=0}function t(){k.confirm(l("Warning"),l("Are you sure you want to delete the selected contacts?"),{ok:l("Delete")}).then(function(){var a=_.filter(E.selectedFolder.$cards,function(a){return a.selected});E.selectedFolder.$deleteCards(a).then(function(){E.mode.multiple=0,E.selectedFolder.selectedCard||d.go("app.addressbook")})})}function u(a,b){var c,e,f,h,i,j,k;c=E.selectedFolder,i=!1,e=c.$selectedCards(),f=_.filter(e,function(a){return a.$isCard()}),f.length!=e.length&&g.show(g.simple().content(l("Lists can't be moved or copied.")).position("top right").hideDelay(2e3)),f.length&&("copy"==a?(j=c.$copyCards(f,b),k=l("%{0} card(s) copied",f.length)):(j=c.$moveCards(f,b),k=l("%{0} card(s) moved",f.length),h=_.map(f,"id"),i=c.selectedCard&&h.indexOf(c.selectedCard)>=0),j.then(function(){i&&d.go("app.addressbook"),g.show(g.simple().content(k).position("top right").hideDelay(2e3))}))}function v(a){u("copy",a)}function w(a){u("move",a)}function x(){_.forEach(E.selectedFolder.$cards,function(a){a.selected=!0}),E.mode.multiple=E.selectedFolder.$cards.length}function y(a){E.selectedFolder.$filter("",{sort:a})}function z(a){return j.$query.sort==a}function A(){E.mode.search=!1,E.selectedFolder.$filter("")}function B(a,b){h.$findAll().then(function(c){var d=_.find(c,function(a){if(0===a.id)return a});d.$getMailboxes().then(function(c){d.$newMessage().then(function(c){angular.extend(c.editable,{to:b}),f.show({parent:angular.element(document.body),targetEvent:a,clickOutsideToClose:!1,escapeToClose:!1,templateUrl:"../Mail/UIxMailEditor",controller:"MessageEditorController",controllerAs:"editor",locals:{stateAccount:d,stateMessage:c}})})})})}function C(a,b,c){var d=[c+" <"+b+">"];E.newMessage(a,d),a.stopPropagation(),a.preventDefault()}function D(a){var c=_.filter(E.selectedFolder.$cards,function(a){return a.selected}),d=[],e=[];_.forEach(c,function(a){a.$isList({expandable:!0})?angular.isDefined(a.refs)&&a.refs.length?_.forEach(a.refs,function(a){a.email.length&&e.push(a.$shortFormat())}):d.push(a.$reload().then(function(a){_.forEach(a.refs,function(a){a.email.length&&e.push(a.$shortFormat())})})):a.c_mail.length&&e.push(a.$shortFormat())}),b.all(d).then(function(){e=_.uniq(e),e.length&&E.newMessage(a,e)})}var E=this;j.selectedFolder=o,E.service=j,E.selectedFolder=o,E.selectCard=p,E.toggleCardSelection=q,E.newComponent=r,E.unselectCards=s,E.confirmDeleteSelectedCards=t,E.copySelectedCards=v,E.moveSelectedCards=w,E.selectAll=x,E.sort=y,E.sortedBy=z,E.cancelSearch=A,E.newMessage=B,E.newMessageWithSelectedCards=D,E.newMessageWithRecipient=C,E.mode={search:!1,multiple:0}}a.$inject=["$scope","$q","$window","$state","$timeout","$mdDialog","$mdToast","Account","Card","AddressBook","Dialog","sgSettings","stateAddressbooks","stateAddressbook"],angular.module("SOGo.ContactsUI").controller("AddressBookController",a)}(),function(){"use strict";function a(a,b,c,d,e,f,g,h,i,j,k,m,n,o,p,q,r,s,t){function u(b,c){a.params.addressbookId!=c.id&&H.editMode!=c.id?(H.editMode=!1,p.$query.value="",i(m["gt-md"])||j("left").close(),a.go("app.addressbook",{addressbookId:c.id})):(b.preventDefault(),b.stopPropagation())}function v(){q.prompt(l("New addressbook"),l("Name of new addressbook")).then(function(a){var b=new p({name:a,isEditable:!0,isRemote:!1,owner:UserLogin});p.$add(b)})}function w(a){a.isRemote||(H.editMode=a.id,H.originalAddressbook=angular.extend({},a.$omit()),n("addressBookName_"+a.id))}function x(a){a.name=H.originalAddressbook.name,H.editMode=!1}function y(a){var b=a.name;b&&b.length>0&&b!=H.originalAddressbook.name&&a.$rename(b).then(function(a){H.editMode=!1},function(a,b){q.alert(l("Warning"),a)})}function z(){H.service.selectedFolder.isSubscription?H.service.selectedFolder.$delete().then(function(){H.service.selectedFolder=null,a.go("app.addressbook",{addressbookId:"personal"})},function(a,b){q.alert(l('An error occured while deleting the addressbook "%{0}".',H.service.selectedFolder.name),l(a.error))}):q.confirm(l("Warning"),l('Are you sure you want to delete the addressbook "%{0}"?',H.service.selectedFolder.name),{ok:l("Delete")}).then(function(){return H.service.selectedFolder.$delete()}).then(function(){return H.service.selectedFolder=null,a.go("app.addressbook",{addressbookId:"personal"}),!0}).catch(function(a){var b=a.data.message||a.statusText;q.alert(l('An error occured while deleting the addressbook "%{0}".',H.service.selectedFolder.name),b)})}function A(a,b){function c(a,b,c){function d(a){var b=0===a.type.indexOf("text")||/\.(ldif|vcf|vcard)$/.test(a.name);return b||h.show({template:["<md-toast>",' <div class="md-toast-content">',' <md-icon class="md-warn md-hue-1">error_outline</md-icon>'," <span>"+l("Select a vCard or LDIF file.")+"</span>"," </div>","</md-toast>"].join(""),position:"top right",hideDelay:3e3}),b}var e=this;e.uploader=new k({url:ApplicationBaseURL+[c.id,"import"].join("/"),autoUpload:!0,queueLimit:1,filters:[{name:d,fn:d}],onSuccessItem:function(a,c,d,e){var f;b.hide(),0===c.imported?f=l("No card was imported."):(f=l("A total of %{0} cards were imported in the addressbook.",c.imported),p.selectedFolder.$reload()),h.show(h.simple().content(f).position("top right").hideDelay(3e3))},onErrorItem:function(a,b,c,d){h.show({template:["<md-toast>",' <div class="md-toast-content">',' <md-icon class="md-warn md-hue-1">error_outline</md-icon>'," <span>"+l("An error occured while importing contacts.")+"</span>"," </div>","</md-toast>"].join(""),position:"top right",hideDelay:3e3})}}),e.close=function(){b.hide()}}g.show({parent:angular.element(document.body),targetEvent:a,clickOutsideToClose:!0,escapeToClose:!0,templateUrl:"UIxContactsImportDialog",controller:c,controllerAs:"$CardsImportDialogController",locals:{folder:b}}),c.$inject=["scope","$mdDialog","folder"]}function B(a){function b(a,b){function c(){a.hide()}this.addressbook=b,this.close=c}g.show({parent:angular.element(document.body),clickOutsideToClose:!0,escapeToClose:!0,templateUrl:a.id+"/links",controller:b,controllerAs:"links",locals:{addressbook:a}}),b.$inject=["$mdDialog","addressbook"]}function C(a){function b(a,b,c){function d(){f.addressbook.$save().then(function(){c.init(f.addressbook.$omit()),b.hide()})}function e(){b.cancel()}var f=this;f.addressbook=new p(c.$omit()),f.saveProperties=d,f.close=e}g.show({templateUrl:a.id+"/properties",controller:b,controllerAs:"properties",clickOutsideToClose:!0,escapeToClose:!0,locals:{srcAddressBook:a}}).catch(function(){}),b.$inject=["$scope","$mdDialog","srcAddressBook"]}function D(a){a.$acl.$users().then(function(){g.show({templateUrl:a.id+"/UIxAclEditor",controller:"AclController",controllerAs:"acl",clickOutsideToClose:!0,escapeToClose:!0,locals:{usersWithACL:a.$acl.users,User:s,folder:a}})})}function E(a){console.debug("subscribeToFolder "+a.owner+a.name),p.$subscribe(a.owner,a.name).then(function(a){h.show(h.simple().content(l("Successfully subscribed to address book")).position("top right").hideDelay(3e3))})}function F(a,b){return b.id!=a.id&&(b.isOwned||b.acls.objectCreator)}function G(b,c,d){var e,f,g,i,j,k,m;e=c.id,j=!1,f=b.$selectedCards(),0===f.length&&(f=[b.$selectedCard()]),g=_.filter(f,function(a){return a.$isCard()}),g.length!=f.length&&h.show(h.simple().content(l("Lists can't be moved or copied.")).position("top right").hideDelay(2e3)),g.length&&("copy"==d?(k=b.$copyCards(g,e),m=l("%{0} card(s) copied",g.length)):(k=b.$moveCards(g,e),m=l("%{0} card(s) moved",g.length),i=_.map(g,"id"),j=b.selectedCard&&i.indexOf(b.selectedCard)>=0),k.then(function(){j&&a.go("app.addressbook"),h.show(h.simple().content(m).position("top right").hideDelay(2e3))}))}var H=this;H.activeUser=r.activeUser,H.service=p,H.select=u,H.newAddressbook=v,H.edit=w,H.revertEditing=x,H.save=y,H.confirmDelete=z,H.importCards=A,H.showLinks=B,H.showProperties=C,H.share=D,H.subscribeToFolder=E,H.isDroppableFolder=F,H.dragSelectedCards=G}a.$inject=["$state","$scope","$rootScope","$stateParams","$timeout","$window","$mdDialog","$mdToast","$mdMedia","$mdSidenav","FileUploader","sgConstant","sgFocus","Card","AddressBook","Dialog","sgSettings","User","stateAddressbooks"],angular.module("SOGo.ContactsUI").controller("AddressBooksController",a)}(),function(){"use strict";function a(a,b,c,d,e,f,g,h,i,j,k){function m(a){return angular.isString(a)?{value:a}:a}function n(){var a=B.card.$addOrgUnit("");h("orgUnit_"+a)}function o(){B.card.birthday=new Date}function p(){B.card.$addScreenName("")}function q(){var a=B.card.$addEmail("");h("email_"+a)}function r(){var a=B.card.$addPhone("");h("phone_"+a)}function s(){var a=B.card.$addUrl("","");h("url_"+a)}function t(){var a=B.card.$addAddress("","","","","","","","");h("address_"+a)}function u(a,b){return e.selectedFolder.$filter(a,{dry:!0,excludeLists:!0},b),e.selectedFolder.$$cards}function v(a){a.$valid&&B.card.$save().then(function(a){var b=_.indexOf(_.map(e.selectedFolder.$cards,"id"),B.card.id);b<0?e.selectedFolder.$reload():e.selectedFolder.$cards[b]=angular.copy(B.card),i.go("app.addressbook.card.view",{cardId:B.card.id})})}function w(){i.go("app.addressbook").then(function(){B.card=null,delete e.selectedFolder.selectedCard})}function x(){B.card.$reset()}function y(){B.card.$reset(),B.card.isNew?(B.card=null,delete e.selectedFolder.selectedCard,i.go("app.addressbook",{addressbookId:e.selectedFolder.id})):i.go("app.addressbook.card.view",{cardId:B.card.id})}function z(a){g.confirm(l("Warning"),l("Are you sure you want to delete the card of %{0}?","<b>"+a.$fullname()+"</b>"),{ok:l("Delete")}).then(function(){e.selectedFolder.$deleteCards([a]).then(function(){w()},function(b,c){g.alert(l("Warning"),l('An error occured while deleting the card "%{0}".',a.$fullname()))})})}function A(a){B.showRawSource||B.rawSource?B.showRawSource=!B.showRawSource:f.$$resource.post(B.currentFolder.id+"/"+B.card.id,"raw").then(function(a){B.rawSource=a,B.showRawSource=!0})}var B=this;B.card=k,B.currentFolder=e.selectedFolder,B.allEmailTypes=f.$EMAIL_TYPES,B.allTelTypes=f.$TEL_TYPES,B.allUrlTypes=f.$URL_TYPES,B.allAddressTypes=f.$ADDRESS_TYPES,B.categories={},B.userFilterResults=[],B.transformCategory=m,B.addOrgUnit=n,B.addBirthday=o,B.addScreenName=p,B.addEmail=q,B.addPhone=r,B.addUrl=s,B.addAddress=t,B.userFilter=u,B.save=v,B.close=w,B.reset=x,B.cancel=y,B.confirmDelete=z,B.toggleRawSource=A,B.showRawSource=!1}a.$inject=["$scope","$timeout","$window","$mdDialog","AddressBook","Card","Dialog","sgFocus","$state","$stateParams","stateCard"],angular.module("SOGo.ContactsUI").controller("CardController",a)}(),function(){"use strict";function a(){return{restrict:"A",scope:{data:"=sgAddress"},controller:["$scope",function(a){a.addressLines=function(a){var b=[],c=[];return a.street&&b.push(a.street),a.street2&&b.push(a.street2),a.locality&&c.push(a.locality),a.region&&c.push(a.region),c.length>0&&b.push(c.join(", ")),a.country&&b.push(a.country),a.postalcode&&b.push(a.postalcode),b.join("<br>")}}],template:'<address ng-bind-html="addressLines(data)"></address>'}}angular.module("SOGo.Common").directive("sgAddress",a)}();
//# sourceMappingURL=Contacts.js.map