Guest User

Untitled

a guest
Jul 16th, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.29 KB | None | 0 0
  1. account1
  2. >contact1
  3. >Contact 2
  4. account 2
  5. >contact 3
  6. >contact 4
  7.  
  8. <aura:component controller="TreeController" implements="force:appHostable,flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId,forceCommunity:availableForAllPageTypes,force:lightningQuickAction" access="global" >
  9. <aura:handler name="init" value="{!this}" action="{!c.doInit}" />
  10. <aura:attribute name="data" type="List" default="[]"/>
  11. <lightning:tree header="Accounts" class="slds-is-selected" items="{!v.data}" onselect="{!c.handleSelect}"/>
  12. </aura:component>
  13.  
  14. ({
  15. doInit : function(component, event, helper) {
  16. console.log("Going here");
  17. var action = component.get("c.getAccountList");
  18. action.setParams({ accountId : component.get("v.recordId")});
  19. //action.setCallback(this, result => helper.parse(component, result));
  20. action.setCallback(this, function(response) {
  21. var state = response.getState();
  22. console.log('state'+state);
  23. console.log('response'+JSON.stringify(response.getReturnValue()));
  24. if (state === "SUCCESS") {
  25. var result = response.getReturnValue();
  26. helper.parse(component, result);
  27. console.log('result----'+JSON.stringify(result));
  28. }
  29. });
  30. $A.enqueueAction(action);
  31. },
  32. handleSelect: function (component, event, helper) {
  33. //return name of selected tree item
  34. var myName = event.getParam('name');
  35. alert("You selected: " + myName);
  36. }
  37. })
  38.  
  39. ({
  40. parse: function(component, result) {
  41. var accounts = result;
  42. console.log('accounts'+JSON.stringify(accounts));
  43. var parents = { undefined: { items: [] }};
  44. var parentcontact = { undefined: { items: [] }};
  45. console.log('parentsA'+JSON.stringify(parents));
  46. accounts.forEach(account => parents[account.Id] = { items: [], name: account.Id, label:account.Name, expanded: false});
  47. console.log('parentsB'+JSON.stringify(parents));
  48. accounts.forEach(account => { if(account.Contacts) { account.Contacts.forEach(contact => parents[account.Id].items.push(parentcontact[contact.Id] = { items: [], name: contact.Id, label:contact.Name, expanded: false}))}});
  49. console.log('parentsC'+JSON.stringify(parents));
  50. accounts.forEach(account => { if(account.Contacts) { account.Contacts.forEach(contact => parents[account.Id].items.push( parentcontact[contact.parentId__c].items.push(parentcontact[contact.Id])))}});
  51. //account.Contacts.forEach(contact =>parentcontact[contact.parentId__c].items.push(parentcontact[contact.Id] ));
  52. console.log('parentsD'+JSON.stringify(parents));
  53. accounts.forEach(account => parents[account.ImmediateParent__c].items.push(parents[account.Id]));
  54. console.log('parentscontact'+JSON.stringify(parentcontact));
  55. console.log('parentsE'+JSON.stringify(parents[undefined].items));
  56. component.set("v.data",parents[undefined].items);
  57. }
  58. })
  59.  
  60. @AuraEnabled
  61. public static List<Account> getAccountList(Id accountId) {
  62. List<Account> finalvalue = new List<Account>();
  63. for(Account accA : [ Select Id, Name,(SELECT Id,Contact.Name,parentId__c, Phone FROM contacts),ParentId,ImmediateChildFlag__c,ImmediateParent__c,ImmediateParent__r.Name From Account Where ParentId =: accountId or Name LIKE'TreeAccount%']) {
  64. finalvalue.add(accA);
  65. }
  66. System.debug('finalvalue:::' + finalvalue);
  67. return finalvalue;
  68. }
Add Comment
Please, Sign In to add comment