mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2025-02-25 18:55:31 -06:00
1) Immediately return this expression instead of assigning it to the temporary variable. 2) Extract this nested ternary operation into an independent statement. 3) Expected a `for-of` loop instead of a `for` loop with this simple iteration.
93 lines
3.3 KiB
JavaScript
93 lines
3.3 KiB
JavaScript
/////////////////////////////////////////////////////////////
|
|
//
|
|
// pgAdmin 4 - PostgreSQL Tools
|
|
//
|
|
// Copyright (C) 2013 - 2022, The pgAdmin Development Team
|
|
// This software is released under the PostgreSQL Licence
|
|
//
|
|
//////////////////////////////////////////////////////////////
|
|
|
|
define(['jquery',
|
|
'sources/gettext',
|
|
'sources/selection/column_selector',
|
|
'sources/selection/row_selector',
|
|
'sources/selection/range_selection_helper',
|
|
'sources/url_for',
|
|
], function ($, gettext, ColumnSelector, RowSelector, RangeSelectionHelper, url_for) {
|
|
return function (columnDefinitions) {
|
|
var Slick = window.Slick,
|
|
rowSelector = new RowSelector(columnDefinitions),
|
|
columnSelector = new ColumnSelector(columnDefinitions),
|
|
onBeforeGridSelectAll = new Slick.Event(),
|
|
onGridSelectAll = new Slick.Event(),
|
|
onBeforeGridColumnSelectAll = columnSelector.onBeforeColumnSelectAll,
|
|
onGridColumnSelectAll = columnSelector.onColumnSelectAll;
|
|
|
|
var init = function (grid) {
|
|
this.grid = grid;
|
|
grid.onHeaderClick.subscribe(function (event, eventArguments) {
|
|
if (eventArguments.column.selectAllOnClick && !$(event.target).hasClass('slick-resizable-handle')) {
|
|
toggleSelectAll(grid, event, eventArguments);
|
|
}
|
|
});
|
|
|
|
grid.getSelectionModel().onSelectedRangesChanged
|
|
.subscribe(handleSelectedRangesChanged.bind(null, grid));
|
|
|
|
grid.registerPlugin(rowSelector);
|
|
grid.registerPlugin(columnSelector);
|
|
|
|
onGridSelectAll.subscribe(function(e, args) {
|
|
RangeSelectionHelper.selectAll(args.grid);
|
|
});
|
|
};
|
|
|
|
var getColumnDefinitions = function (columnDefinition) {
|
|
columnDefinition = columnSelector.getColumnDefinitions(columnDefinition);
|
|
columnDefinition = rowSelector.getColumnDefinitions(columnDefinition);
|
|
|
|
columnDefinition[0].selectAllOnClick = true;
|
|
columnDefinition[0].name = '<span data-id="select-all" ' +
|
|
'title="' + gettext('Select/Deselect All') + '">' +
|
|
'<br>' +
|
|
columnDefinition[0].name +
|
|
'<img class="select-all-icon" src="' + url_for('static', {'filename': 'img/select-all-icon.png'}) + '"></img>' +
|
|
'</span>';
|
|
return columnDefinition;
|
|
};
|
|
|
|
function handleSelectedRangesChanged(grid) {
|
|
if(RangeSelectionHelper.isEntireGridSelected(grid)) {
|
|
$('[data-id=\'select-all\']').addClass('selected');
|
|
} else {
|
|
$('[data-id=\'select-all\']').removeClass('selected');
|
|
}
|
|
}
|
|
|
|
function toggleSelectAll(grid, event, eventArguments) {
|
|
if (RangeSelectionHelper.isEntireGridSelected(grid)) {
|
|
selectNone(grid);
|
|
} else {
|
|
onBeforeGridSelectAll.notify(eventArguments, event);
|
|
if (!(event.isPropagationStopped() || event.isImmediatePropagationStopped())) {
|
|
RangeSelectionHelper.selectAll(grid);
|
|
}
|
|
}
|
|
}
|
|
|
|
function selectNone(grid) {
|
|
var selectionModel = grid.getSelectionModel();
|
|
selectionModel.setSelectedRanges([]);
|
|
}
|
|
|
|
$.extend(this, {
|
|
'init': init,
|
|
'getColumnDefinitions': getColumnDefinitions,
|
|
'onBeforeGridSelectAll': onBeforeGridSelectAll,
|
|
'onGridSelectAll': onGridSelectAll,
|
|
'onBeforeGridColumnSelectAll': onBeforeGridColumnSelectAll,
|
|
'onGridColumnSelectAll': onGridColumnSelectAll,
|
|
});
|
|
};
|
|
});
|