Skip to content

Commit 608c941

Browse files
committed
release v2.4.45 - update github.io
1 parent 608aacf commit 608c941

18 files changed

Lines changed: 6513 additions & 29 deletions

SlickGrid/controls/slick.gridmenu.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -667,6 +667,7 @@
667667
"showGridMenu": showGridMenu,
668668
"setOptions": setOptions,
669669
"updateAllTitles": updateAllTitles,
670+
"hideMenu": hideMenu,
670671

671672
"onAfterMenuShow": new Slick.Event(),
672673
"onBeforeMenuShow": new Slick.Event(),

SlickGrid/examples/example-drag-row-between-grids.html

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ <h2>View Source:</h2>
9090
<script src="../lib/jquery.event.drop-2.3.0.js"></script>
9191

9292
<script src="../slick.core.js"></script>
93+
<script src="../plugins/slick.cellrangedecorator.js"></script>
9394
<script src="../plugins/slick.cellrangeselector.js"></script>
9495
<script src="../plugins/slick.cellselectionmodel.js"></script>
9596
<script src="../plugins/slick.rowselectionmodel.js"></script>
@@ -187,11 +188,15 @@ <h2>View Source:</h2>
187188

188189
grid = new Slick.Grid("#myGrid", data, columns, options);
189190

190-
grid.setSelectionModel(new Slick.RowSelectionModel());
191+
grid.setSelectionModel(new Slick.RowSelectionModel({
192+
dragToSelect: true
193+
}));
191194

192195
toGrid = new Slick.Grid("#myGrid2", data2, columns2, options);
193196

194-
toGrid.setSelectionModel(new Slick.RowSelectionModel());
197+
toGrid.setSelectionModel(new Slick.RowSelectionModel({
198+
dragToSelect: true
199+
}));
195200

196201
var moveRowsPlugin = new Slick.CrossGridRowMoveManager({
197202
cancelEditOnDrag: true,
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
<!DOCTYPE HTML>
2+
<html>
3+
<head>
4+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
5+
<link rel="shortcut icon" type="image/ico" href="favicon.ico" />
6+
<title>SlickGrid example: Sanitizer</title>
7+
<link rel="stylesheet" href="../slick.grid.css" type="text/css"/>
8+
<link rel="stylesheet" href="../css/smoothness/jquery-ui.css" type="text/css"/>
9+
<link rel="stylesheet" href="examples.css" type="text/css"/>
10+
</head>
11+
<body>
12+
<table width="100%">
13+
<tr>
14+
<td valign="top" width="50%">
15+
<div id="myGrid" style="width:700px;height:500px;"></div>
16+
</td>
17+
<td valign="top">
18+
<h2>Demonstrates:</h2>
19+
<ul>
20+
<li>blocking events in formatter HTML</li>
21+
<li>logs first 30 hits (where HTML is changed)</li>
22+
</ul>
23+
<h2>View Source:</h2>
24+
<ul>
25+
<li><A href="https://github.com/6pac/SlickGrid/blob/master/examples/example-html-sanitizer.html" target="_sourcewindow"> View the source for this example on Github</a></li>
26+
</ul>
27+
</td>
28+
</tr>
29+
</table>
30+
31+
<script src="../lib/firebugx.js"></script>
32+
33+
<script src="../lib/jquery-1.12.4.min.js"></script>
34+
<script src="../lib/jquery-ui.min.js"></script>
35+
<script src="../lib/jquery.event.drag-2.3.0.js"></script>
36+
37+
<script src="../slick.core.js"></script>
38+
<script src="../slick.editors.js"></script>
39+
<script src="../slick.formatters.js"></script>
40+
<script src="../slick.grid.js"></script>
41+
42+
<script>
43+
// a standard formatter returns a string
44+
function maliciousFormatter(row, cell, value, columnDef, dataContext) {
45+
return '<div onclick="maliciousFunction();">Click Me to Earn $' + value + '!!!</div>';
46+
}
47+
48+
function niceFormatter(row, cell, value, columnDef, dataContext) {
49+
return '<div>Click Me to open your document #' + value + '</div>';
50+
}
51+
52+
var grid;
53+
var data = [];
54+
var columns = [
55+
{id: "id", name: "Link", field: "id", width: 250, formatter: maliciousFormatter}
56+
];
57+
58+
var options = {
59+
editable: true,
60+
enableAddRow: false,
61+
enableCellNavigation: true,
62+
sanitizer: Slick.RegexSanitizer,
63+
logSanitizedHtml: true
64+
};
65+
66+
$(function () {
67+
var id = 1;
68+
for (var i = 0; i < 500; i++) {
69+
var d = (data[i] = {});
70+
71+
d["id"] = id++;
72+
}
73+
74+
grid = new Slick.Grid("#myGrid", data, columns, options);
75+
})
76+
</script>
77+
</body>
78+
</html>

SlickGrid/examples/example-row-detail-selection-and-move.html

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ <h3>Selected Titles:</h3>
126126

127127
<script src="../slick.core.js"></script>
128128
<script src="../slick.formatters.js"></script>
129+
<script src="../plugins/slick.cellrangedecorator.js"></script>
129130
<script src="../plugins/slick.cellrangeselector.js"></script>
130131
<script src="../plugins/slick.checkboxselectcolumn.js"></script>
131132
<script src="../plugins/slick.rowdetailview.js"></script>
@@ -254,7 +255,10 @@ <h3>Selected Titles:</h3>
254255
grid = new Slick.Grid("#myGrid", dataView, columns, options);
255256

256257
// register the Selection Model that will be used for all Plugins
257-
grid.setSelectionModel(new Slick.RowSelectionModel({ selectActiveRow: false }));
258+
grid.setSelectionModel(new Slick.RowSelectionModel({
259+
selectActiveRow: false,
260+
dragToSelect: true
261+
}));
258262

259263
// register all Plugins (Row Selection / Row Detail)
260264
grid.registerPlugin(checkboxSelectorPlugin);
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
<!DOCTYPE HTML>
2+
<html>
3+
<head>
4+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
5+
<link rel="shortcut icon" type="image/ico" href="favicon.ico" />
6+
<title>SlickGrid example 1: Basic grid</title>
7+
<link rel="stylesheet" href="../slick.grid.css" type="text/css"/>
8+
<link rel="stylesheet" href="../css/smoothness/jquery-ui.css" type="text/css"/>
9+
<link rel="stylesheet" href="examples.css" type="text/css"/>
10+
</head>
11+
<body>
12+
<table width="100%">
13+
<tr>
14+
<td valign="top" width="50%">
15+
<div id="myGrid" style="width:600px;height:500px;"></div>
16+
</td>
17+
<td valign="top">
18+
<h2>Demonstrates:</h2>
19+
<ul>
20+
<li>basic grid with minimal configuration</li>
21+
</ul>
22+
<button id="btnHideShow">Hide</button>
23+
24+
<h2>View Source:</h2>
25+
<ul>
26+
<li><A href="https://github.com/6pac/SlickGrid/blob/master/examples/example1-simple.html" target="_sourcewindow"> View the source for this example on Github</a></li>
27+
</ul>
28+
</td>
29+
</tr>
30+
</table>
31+
32+
<script src="../lib/jquery-1.12.4.min.js"></script>
33+
<script src="../lib/jquery.event.drag-2.3.0.js"></script>
34+
35+
<script src="../slick.core.js"></script>
36+
<script src="../slick.grid.js"></script>
37+
<script src="../plugins/slick.cellrangedecorator.js"></script>
38+
<script src="../plugins/slick.cellrangeselector.js"></script>
39+
<script src="../plugins/slick.cellselectionmodel.js"></script>
40+
41+
<script>
42+
var grid;
43+
var columns = [
44+
{id: "title", name: "Title", field: "title"},
45+
{id: "duration", name: "Duration", field: "duration"},
46+
{id: "%", name: "% Complete", field: "percentComplete"},
47+
{id: "start", name: "Start", field: "start"},
48+
{id: "finish", name: "Finish", field: "finish"},
49+
{id: "effort-driven", name: "Effort Driven", field: "effortDriven"}
50+
];
51+
52+
var options = {
53+
enableCellNavigation: true,
54+
enableColumnReorder: false
55+
};
56+
57+
var showCol = true;
58+
59+
$(function () {
60+
var data = [];
61+
for (var i = 0; i < 500; i++) {
62+
data[i] = {
63+
title: "Task " + i,
64+
duration: "5 days",
65+
percentComplete: Math.round(Math.random() * 100),
66+
start: "01/01/2009",
67+
finish: "01/05/2009",
68+
effortDriven: (i % 5 == 0)
69+
};
70+
}
71+
72+
grid = new Slick.Grid("#myGrid", data, columns, options);
73+
grid.setSelectionModel(new Slick.CellSelectionModel());
74+
75+
$("#btnHideShow").click(function () {
76+
showCol= !showCol;
77+
var showColArr = (showCol ? columns : columns.filter(function(x){ return x.id != "duration"; } ))
78+
grid.setColumns(showColArr);
79+
80+
//grid.getSelectionModel().refreshSelections();
81+
});
82+
})
83+
</script>
84+
</body>
85+
</html>

SlickGrid/examples/example9-row-reordering-simple.html

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ <h2>View Source:</h2>
4747
<script src="../lib/jquery.event.drop-2.3.0.js"></script>
4848

4949
<script src="../slick.core.js"></script>
50+
<script src="../plugins/slick.cellrangedecorator.js"></script>
5051
<script src="../plugins/slick.cellrangeselector.js"></script>
5152
<script src="../plugins/slick.cellselectionmodel.js"></script>
5253
<script src="../plugins/slick.rowselectionmodel.js"></script>
@@ -107,7 +108,9 @@ <h2>View Source:</h2>
107108

108109
grid = new Slick.Grid("#myGrid", data, columns, options);
109110

110-
grid.setSelectionModel(new Slick.RowSelectionModel());
111+
grid.setSelectionModel(new Slick.RowSelectionModel({
112+
dragToSelect: true
113+
}));
111114

112115
var moveRowsPlugin = new Slick.RowMoveManager({
113116
cancelEditOnDrag: true

SlickGrid/examples/test3.html

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
<!DOCTYPE HTML>
2+
<html>
3+
<head>
4+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
5+
<link rel="stylesheet" href="../slick.grid.css" type="text/css"/>
6+
<link rel="stylesheet" href="../css/smoothness/jquery-ui.css" type="text/css"/>
7+
<link rel="stylesheet" href="examples.css" type="text/css"/>
8+
</head>
9+
<body>
10+
<div id="myGrid" style="width:300px;height:500px;"></div>
11+
12+
<script src="../lib/jquery-1.12.4.min.js"></script>
13+
<script src="../lib/jquery.event.drag-2.3.0.js"></script>
14+
15+
<script src="../slick.core.js"></script>
16+
<script src="../slick.grid.js"></script>
17+
18+
<script>
19+
var grid;
20+
var columns = [
21+
{id: "col1", name: "A", field: "col1", width: 200}
22+
];
23+
24+
var options = {
25+
enableCellNavigation: true,
26+
enableColumnReorder: false,
27+
maxSupportedCssHeight: 10000000
28+
};
29+
30+
let currentDataLength = 3200000;
31+
32+
var dataProvider = {
33+
getItem: function (row) {
34+
return {
35+
'col1': row + 'col1'
36+
}
37+
},
38+
getLength: function() {
39+
return currentDataLength;
40+
}
41+
};
42+
43+
$(function () {
44+
grid = new Slick.Grid("#myGrid", dataProvider, columns, options);
45+
46+
setInterval(() => {
47+
currentDataLength += 5000
48+
grid.updateRowCount();
49+
//grid.render();
50+
}, 1000);
51+
})
52+
</script>
53+
</body>
54+
</html>

SlickGrid/package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

SlickGrid/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "slickgrid",
3-
"version": "2.4.44",
3+
"version": "2.4.45",
44
"description": "A lightning fast JavaScript grid/spreadsheet",
55
"main": "slick.core.js",
66
"directories": {

SlickGrid/plugins/slick.cellrangeselector.js

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
var _autoScrollTimerId;
4242
var _xDelayForNextCell;
4343
var _yDelayForNextCell;
44+
var _isRowMoveRegistered = false;
4445

4546
// Scrollings
4647
var _scrollTop = 0;
@@ -92,6 +93,7 @@
9293
x: _grid.getAbsoluteColumnMinWidth() / 2,
9394
y: _grid.getOptions().rowHeight / 2
9495
}
96+
_isRowMoveRegistered = hasRowMoveManager();
9597

9698
var c = _$activeCanvas.offset();
9799

@@ -145,10 +147,12 @@
145147
}
146148

147149
function handleDrag(e, dd) {
148-
if (!_dragging) {
150+
if (!_dragging && !_isRowMoveRegistered) {
149151
return;
150152
}
151-
e.stopImmediatePropagation();
153+
if (!_isRowMoveRegistered) {
154+
e.stopImmediatePropagation();
155+
}
152156

153157
if (options.autoScroll) {
154158
_draggingMouseOffset = getMouseOffsetViewport(e, dd);
@@ -315,13 +319,19 @@
315319
return;
316320
}
317321

318-
dd.range.end = end;
322+
if (dd && dd.range) {
323+
dd.range.end = end;
319324

320-
var range = new Slick.Range(dd.range.start.row, dd.range.start.cell, end.row, end.cell);
321-
_decorator.show(range);
322-
_self.onCellRangeSelecting.notify({
323-
range: range
324-
});
325+
var range = new Slick.Range(dd.range.start.row, dd.range.start.cell, end.row, end.cell);
326+
_decorator.show(range);
327+
_self.onCellRangeSelecting.notify({
328+
range: range
329+
});
330+
}
331+
}
332+
333+
function hasRowMoveManager() {
334+
return !!(_grid.getPluginByName('RowMoveManager') || _grid.getPluginByName('CrossGridRowMoveManager'));
325335
}
326336

327337
function handleDragEnd(e, dd) {

0 commit comments

Comments
 (0)