varroot,mailboxes=[],_visit=function(folders){_.each(folders,function(o){mailboxes.push(o),o.children&&o.children.length>0&&_visit(o.children)})};vm.virtualMailbox=newVirtualMailbox(vm.accounts[0]),Mailbox.$virtualMode||(vm.searchPreviousMailbox=Mailbox.selectedFolder),Mailbox.selectedFolder=vm.virtualMailbox,Mailbox.$virtualMode=!0,angular.isDefined(vm.search.mailbox)?(root=vm.accounts[0].$getMailboxByPath(vm.search.mailbox),mailboxes.push(root),vm.search.subfolders&&root.children.length&&_visit(root.children)):mailboxes=vm.accounts[0].$flattenMailboxes(),vm.virtualMailbox.setMailboxes(mailboxes),vm.virtualMailbox.startSearch(vm.search.match,vm.search.params),$state.go("mail.account.virtualMailbox",{accountId:vm.accounts[0].id})}}functionaddSearchParam(v){returnvm.currentSearchParam=v,focus("advancedSearch"),!1}functionnewSearchParam(pattern){if(pattern.length&&vm.currentSearchParam.length){varn=0,searchParam=vm.currentSearchParam;returnpattern.startsWith("!")&&(n=1,pattern=pattern.substring(1).trim()),vm.currentSearchParam="",{searchBy:searchParam,searchInput:pattern,negative:n}}}functionnewFolder(parentFolder){Dialog.prompt(l("New folder"),l("Enter the new name of your folder :")).then(function(name){parentFolder.$newMailbox(parentFolder.id,name).then(function(){},function(data,status){Dialog.alert(l('An error occured while creating the mailbox "%{0}".',name),l(data.error))})})}functiondelegate(account){functionMailboxDelegationController($scope,$mdDialog,User,account){functionuserFilter($query){returnUser.$filter($query,account.delegates)}functioncloseModal(){$mdDialog.hide()}functionremoveUser(user){account.$removeDelegate(user.uid)["catch"](function(data,status){Dialog.alert(l("Warning"),l("An error occured please try again."))})}functionaddUser(data){data&&account.$addDelegate(data).then(function(){vm.userToAdd="",vm.searchText=""},function(error){Dialog.alert(l("Warning"),error)})}varvm=this;vm.users=account.delegates,vm.account=account,vm.userToAdd="",vm.searchText="",vm.userFilter=userFilter,vm.closeModal=closeModal,vm.removeUser=removeUser,vm.addUser=addUser}$mdDialog.show({templateUrl:account.id+"/delegation",controller:MailboxDelegationController,controllerAs:"delegate",clickOutsideToClose:!0,escapeToClose:!0,locals:{User:User,account:account}}),MailboxDelegationController.$inject=["$scope","$mdDialog","User","account"]}functioneditFolder(folder){vm.editMode=folder.path,focus("mailboxName_"+folder.path)}functionrevertEditing(folder){folder.$reset(),vm.editMode=!1}functionselectFolder(account,folder){vm.editMode!=folder.path&&(vm.editMode=!1,vm.showingAdvancedSearch=!1,vm.service.$virtualMode=!1,$state.go("mail.account.mailbox",{accountId:account.id,mailboxId:encodeUriFilter(folder.path)}))}functionsaveFolder(folder){folder.$rename().then(function(data){vm.editMode=!1},function(data,status){Dialog.alert(l("Warning"),data)})}functioncompactFolder(folder){folder.$compact().then(function(){},function(error){Dialog.alert(l("Warning"),error)})}functionemptyTrashFolder(folder){folder.$emptyTrash().then(function(){},function(error){Dialog.alert(l("Warning"),error)})}functionexportMails(folder){window.location.href=ApplicationBaseURL+"/"+folder.id+"/exportFolder"}functionconfirmDelete(folder){Dialog.confirm(l("Confirmation"),l("Do you really want to move this folder into the trash ?")).then(function(){folder.$delete().then(function(){$state.go("mail")},function(data,status){Dialog.alert(l('An error occured while deleting the mailbox "%{0}".',folder.name),l(data.error))})})}functionmarkFolderRead(folder){folder.$markAsRead()}functionshare(folder){folder.$acl.$users().then(function(){$mdDialog.show({templateUrl:folder.id+"/UIxAclEditor",controller:"AclController",controllerAs:"acl",clickOutsideToClose:!0,escapeToClose:!0,locals:{usersWithACL:folder.$acl.users,User:User,folder:folder}})})}functionmetadataForFolder(folder){return"inbox"==folder.type?{name:folder.name,icon:"inbox"}:"draft"==folder.type?{name:l("DraftsFolderName"),icon:"drafts"}:"sent"==folder.type?{name:l("SentFolderName"),icon