Guest User

Untitled

a guest
Oct 18th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.51 KB | None | 0 0
  1. ({
  2. /*
  3. * This finction defined column header
  4. * and calls getAccounts helper method for column data
  5. * editable:'true' will make the column editable
  6. * */
  7. doInit : function(component, event, helper) {
  8. component.set('v.columns', [
  9. {label: 'Name', fieldName: 'Name', type: 'text',
  10. actions:[
  11. {label: 'All',
  12. checked: false,
  13. name:'All'},
  14. {label: 'Active',
  15. checked: false,
  16. name:'Active'}]},
  17. {label: 'Phone', fieldName: 'Phone', type: 'phone'},
  18. {label: 'Active', fieldName: 'Active__c', type: 'text'},
  19. {label: 'Custom Field', fieldName: 'My_Custom_Field__c', type: 'text'}
  20. ]);
  21.  
  22. helper.getAccounts(component, helper);
  23. },
  24.  
  25. onNext : function(component, event, helper) {
  26. //get current page numbe
  27. var pageNumber = component.get("v.pageNumber");
  28. //Setting current page number
  29. component.set("v.pageNumber", pageNumber+1);
  30. //Setting pageChange variable to true
  31. component.set("v.hasPageChanged", true);
  32.  
  33. helper.getAccounts(component, helper);
  34. },
  35.  
  36. onPrev : function(component, event, helper) {
  37. //get current page number
  38. var pageNumber = component.get("v.pageNumber");
  39. //Setting current page number
  40. component.set("v.pageNumber", pageNumber-1);
  41. //Setting pageChange variable to true
  42. component.set("v.hasPageChanged", true);
  43.  
  44. helper.getAccounts(component, helper);
  45. },
  46.  
  47. /**
  48. * This method will keep record of all selected rows
  49. * */
  50. onRowSelection : function(component, event, helper) {
  51. // Avoid any operation if page has changed
  52. // as this event will be fired when new data will be loaded in page
  53. // after clicking on next or prev page
  54. if(!component.get("v.hasPageChanged")){
  55. //Get currently select rows, This will only give the rows available on current page
  56. var selectedRows = event.getParam('selectedRows');
  57.  
  58. //Get all selected rows from datatable, this will give all the selected data from all the pages
  59. var allSelectedRows = component.get("v.selection");
  60.  
  61. //Get current page number
  62. var currentPageNumber = component.get("v.pageNumber");
  63.  
  64. //Process the rows now
  65. //Condition 1 -> If any new row selected, add to our allSelectedRows attribute
  66. //Condition 2 -> If any row is deselected, remove from allSelectedRows attribute
  67. //Solution - Remove all rows from current page from allSelectedRows attribute and then add again
  68.  
  69. //Removing all rows coming from curent page from allSelectedRows
  70. var i = allSelectedRows.length;
  71. while (i--) {
  72. var pageNumber = allSelectedRows[i].split("-")[1];
  73. if (pageNumber && pageNumber == currentPageNumber) {
  74. allSelectedRows.splice(i, 1);
  75. }
  76. }
  77.  
  78. //Adding all the new selected rows in allSelectedRows
  79. selectedRows.forEach(function(row) {
  80. allSelectedRows.push(row.Id);
  81. });
  82.  
  83. //Setting new value in selection attribute
  84. component.set("v.selection", allSelectedRows);
  85. } else{
  86. component.set("v.hasPageChanged", false);
  87. }
  88. },
  89.  
  90.  
  91. })
Add Comment
Please, Sign In to add comment