diff --git a/assets/app/css/main.css b/assets/app/css/main.css
index a335301b..7a217e8d 100644
--- a/assets/app/css/main.css
+++ b/assets/app/css/main.css
@@ -305,6 +305,11 @@ body {
margin: 0;
}
+.filter-button {
+ all: unset;
+ line-height: 2.0;
+}
+
/*For rounded table border*/
div.dataTables_scrollHead table,
div.dataTables_scrollHead th:first-child {
diff --git a/assets/app/js/controllers/scanDataTable.js b/assets/app/js/controllers/scanDataTable.js
index 3a786fa3..0a28dc02 100644
--- a/assets/app/js/controllers/scanDataTable.js
+++ b/assets/app/js/controllers/scanDataTable.js
@@ -98,11 +98,6 @@ class ScanDataTable extends Controller {
return this._dataTable;
}
- // Adds a footer for each column. This needs to be done before creating
- // the DataTable
- const cells = $.map(ScanDataTable.TABLE_COLUMNS, () => '
| ').join('');
- $(this.dataTableSelector()).append('' + cells + '
');
-
this._dataTable = $(this.dataTableSelector()).DataTable({
serverSide: true,
processing: true,
@@ -204,6 +199,18 @@ class ScanDataTable extends Controller {
hide: ScanDataTable.TABLE_COLUMNS
.filter((column) => ScanDataTable.PACKAGE_GROUP.indexOf(column) < 0)
.map((column) => `${column.name}:name`)
+ },
+ {
+ text: '',
+ className: 'filter-button activate-filters-button'
+ },
+ {
+ text: '',
+ className: 'filter-button reset-filters-button'
+ },
+ {
+ text: '',
+ className: 'filter-button clear-filters-button'
}
],
dom: // Needed to keep datatables buttons and search inline
@@ -384,20 +391,6 @@ class ScanDataTable extends Controller {
}
_initComplete() {
- const pathCol = this.dataTable().columns(0);
-
- const footer = $(pathCol.footer());
- // keep the buttons horizontally aligned
- footer.css('white-space', 'nowrap');
-
- const genFiltersButton = $(``);
- const resetFiltersButton = $(``);
- const clearFiltersButton = $(``);
-
- footer.append(genFiltersButton);
- footer.append(resetFiltersButton);
- footer.append(clearFiltersButton);
-
this.dataTable().columns().every(function (columnIndex) {
const columnInfo = ScanDataTable.TABLE_COLUMNS[columnIndex];
@@ -406,10 +399,10 @@ class ScanDataTable extends Controller {
}
const column = this;
- const footer = $(column.footer());
+ const header = $(column.header());
const columnName = columnInfo.name;
- const select = $(``)
+ const select = $(` |
`)
.on('change', function () {
const val = $(this).val();
column
@@ -417,7 +410,10 @@ class ScanDataTable extends Controller {
.draw();
});
- footer.append(select);
+ $('.sorting select').click((e) => {
+ e.stopPropagation();
+ });
+ header.append(select);
});
}
@@ -456,11 +452,9 @@ class ScanDataTable extends Controller {
}
const column = this;
- const footer = $(column.footer());
+ const header = $(column.header());
const columnName = columnInfo.name;
- footer.empty();
-
const select = $('#scandata-' + columnName)
.empty()
.on('change', function () {
@@ -501,7 +495,7 @@ class ScanDataTable extends Controller {
select.append(``);
});
});
- footer.append(select);
+ header.append(select);
});
}
diff --git a/assets/app/js/renderer.js b/assets/app/js/renderer.js
index 48caff43..c7cbb1f4 100644
--- a/assets/app/js/renderer.js
+++ b/assets/app/js/renderer.js
@@ -88,17 +88,17 @@ $(document).ready(() => {
updateViewsByPath(node.id);
});
- $(document).on('click', '#activate-filters-button', () => {
+ $(document).on('click', '.activate-filters-button', () => {
scanDataTable.genFilters();
updateViewsByPath(scanDataTable._selectedPath);
});
- $(document).on('click', '#reset-filters-button', () => {
+ $(document).on('click', '.reset-filters-button', () => {
scanDataTable.resetColumnFilters();
updateViewsByPath(scanDataTable._selectedPath);
});
- $(document).on('click', '#clear-filters-button', () => {
+ $(document).on('click', '.clear-filters-button', () => {
scanDataTable.clearColumnFilters();
updateViewsByPath(scanDataTable._selectedPath);
});
diff --git a/assets/thirdparty/DataTables/DataTables-1.10.11/css/dataTables.bootstrap.css b/assets/thirdparty/DataTables/DataTables-1.10.11/css/dataTables.bootstrap.css
index 9abe1b5b..cc82c28d 100755
--- a/assets/thirdparty/DataTables/DataTables-1.10.11/css/dataTables.bootstrap.css
+++ b/assets/thirdparty/DataTables/DataTables-1.10.11/css/dataTables.bootstrap.css
@@ -82,6 +82,7 @@ table.dataTable thead .sorting_asc_disabled,
table.dataTable thead .sorting_desc_disabled {
cursor: pointer;
position: relative;
+ vertical-align: middle;
}
table.dataTable thead .sorting:after,
table.dataTable thead .sorting_asc:after,
@@ -89,7 +90,7 @@ table.dataTable thead .sorting_desc:after,
table.dataTable thead .sorting_asc_disabled:after,
table.dataTable thead .sorting_desc_disabled:after {
position: absolute;
- bottom: 8px;
+ bottom: 20px;
right: 8px;
display: block;
font-family: 'Glyphicons Halflings';