Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var isCtrlKeyPressed = false;
- var isShiftKeyPressed = false;
- var lastSelectedRow = -1;
- var numRequests = 0;
- var onKeyPress = (e) => {
- if (_currentWindowId == null || _currentTable == null)
- return;
- if (e.ctrlKey)
- isCtrlKeyPressed = true;
- if (e.shiftKey)
- isShiftKeyPressed = true;
- if (isCtrlKeyPressed && e.key == 'a') {
- _currentTable.rows().select();
- isShiftKeyPressed = false;
- e.preventDefault();
- e.stopPropagation();
- }
- if (e.key == 'ArrowUp') {
- if (!isShiftKeyPressed)
- _currentTable.rows().deselect();
- var selectedItems = _currentTable.rows(".selected").indexes();
- if (selectedItems.length == 1)
- lastSelectedRow = selectedItems[0] - 1;
- var row = _currentTable.row(lastSelectedRow, { order: 'current' });
- var el = row.node();
- if ($(el).hasClass("selected") && lastSelectedRow > 0) {
- row.deselect();
- }
- else
- row.select();
- el.scrollIntoView({ block: "center" });
- if(lastSelectedRow > 0)
- lastSelectedRow--;
- }
- if (e.key == 'ArrowDown') {
- if (!isShiftKeyPressed)
- _currentTable.rows().deselect();
- var selectedItems = _currentTable.rows(".selected").indexes();
- if (selectedItems.length == 1)
- lastSelectedRow = selectedItems[0];
- var row = _currentTable.row(lastSelectedRow + 1);
- var el = row.node();
- if ($(el).hasClass("selected") && lastSelectedRow < _currentTable.rows().indexes().length - 2) {
- row.deselect();
- }
- else
- row.select();
- el.scrollIntoView({ block: "center" });
- if (lastSelectedRow < _currentTable.rows().indexes().length - 2)
- lastSelectedRow++;
- }
- numRequests++;
- var redrawTable = function () {
- if (numRequests > 1)
- return;
- _currentTable.draw(false);
- numRequests = 0;
- };
- window.setTimeout(redrawTable, 50);
- }
- var onKeyUp = (e) => {
- if (e.ctrlKey)
- isCtrlKeyPressed = false;
- if (e.shiftKey)
- isShiftKeyPressed = false;
- }
- $(function () {
- $(document).on("keydown", onKeyPress);
- $(document).on("keyup", onKeyUp);
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement