diff --git a/src-full-width/myApp.jsx b/src-full-width/myApp.jsx index 271f039..8c4b467 100644 --- a/src-full-width/myApp.jsx +++ b/src-full-width/myApp.jsx @@ -7,106 +7,94 @@ import MyReactHeaderComponent from "./MyReactHeaderComponent.jsx"; import "./myApp.css"; import "ag-grid-enterprise"; -function DetailPanelCellRenderer() {} -DetailPanelCellRenderer.prototype.init = function(params) { - // trick to convert string of html into dom object - var eTemp = document.createElement('div'); - eTemp.innerHTML = this.getTemplate(params); - this.eGui = eTemp.firstElementChild; - - this.setupDetailGrid(params.data); - this.consumeMouseWheelOnDetailGrid(); - this.addSeachFeature(); - this.addButtonListeners(); -}; - -DetailPanelCellRenderer.prototype.setupDetailGrid = function(callRecords) { - - this.detailGridOptions = { - enableSorting: true, - enableFilter: true, - enableColResize: true, - rowData: callRecords, - columnDefs: detailColumnDefs, - onGridReady: function(params) { - setTimeout( function() { params.api.sizeColumnsToFit(); }, 0); - } - }; - - var eDetailGrid = this.eGui.querySelector('.full-width-grid'); - new agGrid.Grid(eDetailGrid, this.detailGridOptions); -}; - -DetailPanelCellRenderer.prototype.getTemplate = function(params) { - - var parentRecord = params.node.parent.data; - - var template = - '
' + - '
' + - '
' + - '
Name: '+parentRecord.name+'
' + - '
Account: '+parentRecord.account+'
' + - '
'+ - '
' + - '
' + - ' ' + - ' ' + - ' ' + - ' ' + - ' ' + - '
'+ - '
'; - - return template; -}; - -DetailPanelCellRenderer.prototype.getGui = function() { - return this.eGui; -}; - -DetailPanelCellRenderer.prototype.destroy = function() { - this.detailGridOptions.api.destroy(); -}; - -DetailPanelCellRenderer.prototype.addSeachFeature = function() { - var tfSearch = this.eGui.querySelector('.full-width-search'); - var gridApi = this.detailGridOptions.api; - - var searchListener = function() { - var filterText = tfSearch.value; - gridApi.setQuickFilter(filterText); - }; - - tfSearch.addEventListener('input', searchListener); -}; - -DetailPanelCellRenderer.prototype.addButtonListeners = function() { - var eButtons = this.eGui.querySelectorAll('.full-width-grid-toolbar button'); - - for (var i = 0; i
+
+
Name: +parentRecord.name+
+
Account: +parentRecord.account+
+
+
+
+ + + + + +
+
; + } +} - var mouseWheelListener = function(event) { - event.stopPropagation(); - }; - // event is 'mousewheel' for IE9, Chrome, Safari, Opera - eDetailGrid.addEventListener('mousewheel', mouseWheelListener); - // event is 'DOMMouseScroll' Firefox - eDetailGrid.addEventListener('DOMMouseScroll', mouseWheelListener); -}; // take this line out if you do not want to use ag-Grid-Enterprise // a list of names we pick from when generating data @@ -164,11 +152,11 @@ function createRowData() { return rowData; } -var minuteCellFormatter = function(params) { +var minuteCellFormatter = function (params) { return params.value.toLocaleString() + 'm'; }; -var secondCellFormatter = function(params) { +var secondCellFormatter= function (params) { return params.value.toLocaleString() + 's'; }; @@ -310,7 +298,7 @@ export default class MyApp extends React.Component { onGetRowHeight (params) { var rowIsDetailRow = params.node.level===1; // return 100 when detail row, otherwise return 25 - return rowIsDetailRow ? 200 : 25; + return rowIsDetailRow ? 75 : 25; } onGetNodeChildDetails (record) { @@ -419,7 +407,7 @@ export default class MyApp extends React.Component { suppressMenuFilterPanel="true" isFullWidthCell = {this.onIsFullWidthCell.bind(this)} // see ag-Grid docs cellRenderer for details on how to build cellRenderers - fullWidthCellRenderer= {DetailPanelCellRenderer} + fullWidthCellRendererFramework= {DetailPanelCellRenderer} getRowHeight={this.onGetRowHeight.bind(this)} getNodeChildDetails={this.onGetNodeChildDetails.bind(this)} />