Skip to content

Commit 1afa49c

Browse files
authored
Merge pull request MoveInc#12 from MoveInc/mg-add-deselect-all
Add deselectAll method
2 parents d684ee5 + 229cf86 commit 1afa49c

File tree

9 files changed

+188
-18
lines changed

9 files changed

+188
-18
lines changed

demo/ajax.htm

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,15 @@
5656
<div class="row">
5757
<div class="col-md-3 visible-md visible-lg">
5858
<div class="affix">
59-
Sub Nav
59+
<button id="deselect" type="button" class="btn btn-default">Deselect</button>
60+
<button id="deselectAll" type="button" class="btn btn-default">Deselect All</button>
6061
</div>
6162
</div>
6263
<div class="col-md-9">
6364
<table id="grid" class="table table-condensed table-hover table-striped">
6465
<thead>
6566
<tr>
66-
<th data-column-id="id" data-identifier="true" data-type="numeric">ID</th>
67+
<th data-column-id="id" data-identifier="true" data-type="string">ID</th>
6768
<th data-column-id="sender" data-order="asc">Sender</th>
6869
<th data-column-id="received">Received</th>
6970
</tr>
@@ -89,8 +90,10 @@
8990
ajaxSettings: {
9091
method: "GET"
9192
},
93+
rowCount: 5,
9294
ajax: true,
93-
url: 'http://127.0.0.1:8080/demo/data.json',
95+
keepSelection: true,
96+
url: 'http://127.0.0.1:8080/data',
9497
selection: true,
9598
multiSelect: true
9699
}).on('loaded.rs.jquery.bootgrid', function(){
@@ -101,6 +104,14 @@
101104
}
102105
})
103106
});
107+
108+
$("#deselect").on("click", function() {
109+
$("#grid").bootgrid("deselect");
110+
});
111+
112+
$("#deselectAll").on("click", function() {
113+
$("#grid").bootgrid("deselectAll");
114+
});
104115
});
105116
</script>
106117
</body>

demo/data.json renamed to demo/data1.json

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,23 @@
44
"rows": [{
55
"id": "a0e3a286-4343-4240-8d6d-e79fa2e94b4c",
66
"sender": "test@test.de",
7-
"received": "2014-04-17 15:08:03Z",
8-
"checked": true
7+
"received": "2014-04-17 15:08:03Z"
98
}, {
109
"id": "dd9f2d42-9442-404c-8d2a-dd3bd2156c03",
1110
"sender": "test@test.de",
12-
"received": "2014-04-16 15:19:31Z",
13-
"checked": true
11+
"received": "2014-04-16 15:19:31Z"
1412
}, {
1513
"id": "e9b8ede5-c1bf-4d90-b724-e7379b25f7b3",
1614
"sender": "test@test.de",
17-
"received": "2014-04-16 15:17:05Z",
18-
"checked": false
15+
"received": "2014-04-16 15:17:05Z"
1916
}, {
2017
"id": "153d3acb-efe7-4b5f-a3a9-e8ac18bdec30",
2118
"sender": "test@test.de",
22-
"received": "2014-04-16 15:17:05Z",
23-
"checked": true
19+
"received": "2014-04-16 15:17:05Z"
2420
}, {
2521
"id": "49bad60a-bbf7-42bf-b040-d901805ccbf1",
2622
"sender": "test@test.de",
27-
"received": "2014-04-15 11:23:06Z",
28-
"checked": false
23+
"received": "2014-04-15 11:23:06Z"
2924
}],
30-
"total": 5
25+
"total": 10
3126
}

demo/data2.json

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{
2+
"current": 2,
3+
"rowCount": 5,
4+
"rows": [{
5+
"id": "V5e3a286-4343-4240-8d6d-e79fa2e94b4c",
6+
"sender": "test@test.de",
7+
"received": "2014-04-17 15:08:03Z"
8+
}, {
9+
"id": "pp9f2d42-9442-404c-8d2a-dd3bd2156c03",
10+
"sender": "test@test.de",
11+
"received": "2014-04-16 15:19:31Z"
12+
}, {
13+
"id": "p7b8ede5-c1bf-4d90-b724-e7379b25f7b3",
14+
"sender": "test@test.de",
15+
"received": "2014-04-16 15:17:05Z"
16+
}, {
17+
"id": "553d3acb-efe7-4b5f-a3a9-e8ac18bdec30",
18+
"sender": "test@test.de",
19+
"received": "2014-04-16 15:17:05Z"
20+
}, {
21+
"id": "34bad60a-bbf7-42bf-b040-d901805ccbf1",
22+
"sender": "test@test.de",
23+
"received": "2014-04-15 11:23:06Z"
24+
}],
25+
"total": 10
26+
}

demo/server.js

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
'use strict';
2+
3+
const Hapi = require('hapi');
4+
5+
const server = new Hapi.Server();
6+
server.connection({ port: 8080, host: 'localhost' });
7+
8+
server.register(require('inert'), (err) => {
9+
10+
server.route({
11+
method: 'GET',
12+
path: '/demo/{file}',
13+
handler: function (request, reply) {
14+
reply.file('./demo/' + encodeURIComponent(request.params.file));
15+
}
16+
});
17+
18+
server.route({
19+
method: 'GET',
20+
path: '/data',
21+
handler: function (request, reply) {
22+
reply.file('./demo/data' + request.query.current + '.json');
23+
}
24+
});
25+
26+
server.route({
27+
method: 'GET',
28+
path: '/demo/css/{name*}',
29+
handler: {
30+
directory: {
31+
path: 'demo/css',
32+
redirectToSlash: true
33+
}
34+
}
35+
});
36+
server.route({
37+
method: 'GET',
38+
path: '/dist/{name*}',
39+
handler: {
40+
directory: {
41+
path: 'dist',
42+
redirectToSlash: true
43+
}
44+
}
45+
});
46+
server.route({
47+
method: 'GET',
48+
path: '/demo/{name*}',
49+
handler: {
50+
directory: {
51+
path: 'demo/',
52+
redirectToSlash: true
53+
}
54+
}
55+
});
56+
server.route({
57+
method: 'GET',
58+
path: '/lib/{name*}',
59+
handler: {
60+
directory: {
61+
path: 'lib/',
62+
redirectToSlash: true
63+
}
64+
}
65+
});
66+
});
67+
68+
server.start((err) => {
69+
70+
if (err) {
71+
throw err;
72+
}
73+
console.log(`Server running at: ${server.info.uri}`);
74+
});

dist/jquery.bootgrid.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*!
2-
* jQuery Bootgrid v1.4.2 - 02/10/2017
2+
* jQuery Bootgrid v1.4.2 - 08/02/2017
33
* Copyright (c) 2014-2017 Rafael Staib (http://www.jquery-bootgrid.com)
44
* Licensed under MIT http://www.opensource.org/licenses/MIT
55
*/

dist/jquery.bootgrid.fa.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*!
2-
* jQuery Bootgrid v1.4.2 - 02/10/2017
2+
* jQuery Bootgrid v1.4.2 - 08/02/2017
33
* Copyright (c) 2014-2017 Rafael Staib (http://www.jquery-bootgrid.com)
44
* Licensed under MIT http://www.opensource.org/licenses/MIT
55
*/

dist/jquery.bootgrid.js

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*!
2-
* jQuery Bootgrid v1.4.2 - 02/10/2017
2+
* jQuery Bootgrid v1.4.2 - 08/02/2017
33
* Copyright (c) 2014-2017 Rafael Staib (http://www.jquery-bootgrid.com)
44
* Licensed under MIT http://www.opensource.org/licenses/MIT
55
*/
@@ -1783,6 +1783,37 @@ Grid.prototype.deselect = function(rowIds)
17831783
return this;
17841784
};
17851785

1786+
/**
1787+
* Deselects all rows.
1788+
*
1789+
* @method deselectAll
1790+
* @chainable
1791+
**/
1792+
Grid.prototype.deselectAll = function()
1793+
{
1794+
if (this.selection)
1795+
{
1796+
if (this.selectedRows.length > 0)
1797+
{
1798+
var deselected = [];
1799+
var selectBoxSelector = getCssSelector(this.options.css.selectBox);
1800+
1801+
this.element.find("thead " + selectBoxSelector).prop("checked", false);
1802+
for (var i = 0; i < this.selectedRows.length; i++)
1803+
{
1804+
this.element.find("tbody > tr[data-row-id=\"" + this.selectedRows[i] + "\"]")
1805+
.removeClass(this.options.css.selected)._bgAria("selected", "false")
1806+
.find(selectBoxSelector).prop("checked", false);
1807+
}
1808+
1809+
this.selectedRows = [];
1810+
this.element.trigger("deselected" + namespace, [deselected]);
1811+
}
1812+
}
1813+
1814+
return this;
1815+
};
1816+
17861817
/**
17871818
* Sorts the rows by a given sort descriptor dictionary.
17881819
* The sort filter will be reseted, if no argument is provided.

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,9 @@
6666
"grunt-contrib-yuidoc": "^1.0.0",
6767
"grunt-exec": "^1.0.0",
6868
"grunt-nuget": "~0.1.4",
69-
"grunt-regex-replace": "^0.3.0"
69+
"grunt-regex-replace": "^0.3.0",
70+
"hapi": "^16.5.0",
71+
"inert": "^4.2.1"
7072
},
7173
"readmeFilename": "README.md"
7274
}

src/public.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -800,6 +800,37 @@ Grid.prototype.deselect = function(rowIds)
800800
return this;
801801
};
802802

803+
/**
804+
* Deselects all rows.
805+
*
806+
* @method deselectAll
807+
* @chainable
808+
**/
809+
Grid.prototype.deselectAll = function()
810+
{
811+
if (this.selection)
812+
{
813+
if (this.selectedRows.length > 0)
814+
{
815+
var deselected = [];
816+
var selectBoxSelector = getCssSelector(this.options.css.selectBox);
817+
818+
this.element.find("thead " + selectBoxSelector).prop("checked", false);
819+
for (var i = 0; i < this.selectedRows.length; i++)
820+
{
821+
this.element.find("tbody > tr[data-row-id=\"" + this.selectedRows[i] + "\"]")
822+
.removeClass(this.options.css.selected)._bgAria("selected", "false")
823+
.find(selectBoxSelector).prop("checked", false);
824+
}
825+
826+
this.selectedRows = [];
827+
this.element.trigger("deselected" + namespace, [deselected]);
828+
}
829+
}
830+
831+
return this;
832+
};
833+
803834
/**
804835
* Sorts the rows by a given sort descriptor dictionary.
805836
* The sort filter will be reseted, if no argument is provided.

0 commit comments

Comments
 (0)