Advertisement
Guest User

Untitled

a guest
Jun 25th, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.41 KB | None | 0 0
  1. <div class="slds-dropdown slds-dropdown_fluid slds-scrollable" style="max-height:200px;min-height:40px;margin-top:0px !important" >
  2.  
  3. <lightning-tree items={emailTree} onselect={handleSelection}></lightning-tree>
  4.  
  5. </div>
  6.  
  7. /* eslint-disable vars-on-top */
  8.  
  9. connectedCallback() {
  10. this.getRootFolders();
  11. }
  12.  
  13. getRootFolders() {
  14. getRootEmailFolders( { buId: this.buId } )
  15. .then(result => {
  16. this.emailTree = result;
  17. this.initialLoading = false;
  18. this.emailTree.forEach(folder => {
  19. this.emailTreeMap[folder.name] = folder;
  20. });
  21. })
  22. .catch(error => {
  23. this.error = error;
  24. this.initialLoading = false;
  25. this.errorMessage = error.body.message;
  26. })
  27. }
  28.  
  29. displayEmailTree() {
  30. this.error = undefined;
  31. this.errorMessage = undefined;
  32. this.showEmailTree = true;
  33. }
  34.  
  35. hideEmailTree() {
  36. this.showEmailTree = false;
  37. for (var key in this.emailTreeMap) {
  38. if (this.emailTreeMap[key].type === 'folder'){
  39. this.emailTreeMap[key].expanded = false;
  40. }
  41. }
  42. }
  43.  
  44. expandFolder(fId) {
  45. getEmailFolder( { fId: fId, buId: this.buId } )
  46. .then(result => {
  47. this.emailTreeMap[fId].items = result;
  48. if (this.emailTreeMap[fId].items.length === 0) {
  49. this.emailTreeMap[fId].metatext = 'this folder is empty';
  50. }
  51. this.emailTreeMap[fId].retrieved = true;
  52. this.emailTreeMap[fId].items.forEach(item => {
  53. this.emailTreeMap[item.name] = item;
  54. });
  55.  
  56. var refreshTree = Array.from(this.emailTree);
  57. this.emailTree = refreshTree;
  58. })
  59. .catch(error => {
  60. this.error = error;
  61. this.hideEmailTree();
  62. this.errorMessage = error.body.message;
  63. })
  64. }
  65.  
  66. handleSelection(event) {
  67. var id = event.detail.name;
  68.  
  69. if (this.emailTreeMap[id].type === 'folder') {
  70. this.handleExpansion(id);
  71. }
  72. else {
  73. this.selectedEmail = this.emailTreeMap[id];
  74. this.hideEmailTree();
  75. }
  76. }
  77.  
  78. handleExpansion(id) {
  79.  
  80. if (this.emailTreeMap[id].retrieved === false) {
  81. this.expandFolder(id);
  82. }
  83.  
  84. if (this.emailTreeMap[id].expanded === false) {
  85. this.emailTreeMap[id].expanded = true;
  86. }
  87. else {
  88. this.emailTreeMap[id].expanded = false;
  89. }
  90. }
  91.  
  92. clearSelection() {
  93. this.selectedEmail = undefined;
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement