Skip to content

Commit d2e30f3

Browse files
committed
added isFirst method
fixed isLast method
1 parent d5a0e44 commit d2e30f3

File tree

6 files changed

+76
-11
lines changed

6 files changed

+76
-11
lines changed

CHANGELOG.txt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1-
== 0.1.6
1+
== 0.1.7 - 15 November 2013
2+
* Fix isLast method. https://github.com/maxazan/jquery-treegrid/issues/4
3+
* Add isFirst method
4+
5+
== 0.1.6 - 14 November 2013
26
* Add isNode method
37
* Add getAllNodes method
48
* Fix isLast method. Throw error if method is not node of tree.

index.html

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,7 @@ <h3>Public methods</h3>
279279
</tr>
280280
<tr>
281281
<td>isLast</td>
282-
<td>Is node a last element of its parent</td>
282+
<td>Return true if node is last in branch</td>
283283
<td>
284284
<pre><code class="javascript">// hide all last elements
285285
$('.tree').find('tr').each(function(){
@@ -289,6 +289,18 @@ <h3>Public methods</h3>
289289
});</code></pre>
290290
</td>
291291
</tr>
292+
<tr>
293+
<td>isFirst</td>
294+
<td>Return true if node is first in branch</td>
295+
<td>
296+
<pre><code class="javascript">// hide all last elements
297+
$('.tree').find('tr').each(function(){
298+
if ($(this).treegrid('isFirst')){
299+
$(this).hide();
300+
}
301+
});</code></pre>
302+
</td>
303+
</tr>
292304
<tr>
293305
<td>isExpanded</td>
294306
<td>Is node expanded</td>

js/jquery.treegrid.js

Lines changed: 34 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* jQuery treegrid Plugin 0.1.5
2+
* jQuery treegrid Plugin 0.1.7
33
* https://github.com/maxazan/jquery-treegrid
44
*
55
* Copyright 2013, Pomazan Max
@@ -257,7 +257,7 @@
257257
}
258258
return $(this).treegrid('getParentNode').treegrid('getDepth') + 1;
259259
},
260-
/*
260+
/**
261261
* Method return true if node is root
262262
*
263263
* @returns {Boolean}
@@ -279,11 +279,39 @@
279279
* @returns {Boolean}
280280
*/
281281
isLast: function() {
282-
if ($(this).next() && $(this).next().treegrid('isNode') && $(this).next().treegrid('getParentNodeId') === $(this).treegrid('getParentNodeId')) {
283-
return false;
284-
} else {
285-
return true;
282+
if ($(this).treegrid('isNode')) {
283+
var parentNode = $(this).treegrid('getParentNode');
284+
if (parentNode === null) {
285+
if ($(this).treegrid('getNodeId') === $(this).treegrid('getRootNodes').last().treegrid('getNodeId')) {
286+
return true;
287+
}
288+
} else {
289+
if ($(this).treegrid('getNodeId') === parentNode.treegrid('getChildNodes').last().treegrid('getNodeId')) {
290+
return true;
291+
}
292+
}
293+
}
294+
return false;
295+
},
296+
/**
297+
* Method return true if node first in branch
298+
*
299+
* @returns {Boolean}
300+
*/
301+
isFirst: function() {
302+
if ($(this).treegrid('isNode')) {
303+
var parentNode = $(this).treegrid('getParentNode');
304+
if (parentNode === null) {
305+
if ($(this).treegrid('getNodeId') === $(this).treegrid('getRootNodes').first().treegrid('getNodeId')) {
306+
return true;
307+
}
308+
} else {
309+
if ($(this).treegrid('getNodeId') === parentNode.treegrid('getChildNodes').first().treegrid('getNodeId')) {
310+
return true;
311+
}
312+
}
286313
}
314+
return false;
287315
},
288316
/**
289317
* Return true if node expanded

test.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,10 @@
4545
<tr class='treegrid-8 treegrid-parent-7' id="node-1-4-1">
4646
<td>1.4.1</td><td>Simple text of ...</td>
4747
</tr>
48+
<tr class='treegrid-12 treegrid-parent-1' id="node-1-5">
49+
<td>1.5</td><td>Simple text of ...</td>
50+
</tr>
51+
4852
<tr class="treegrid-11" id="node-2">
4953
<td>2</td><td>Simple text of ...</td>
5054
</tr>

tests/tests.js

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ test("getParentNode()", function() {
3535
});
3636

3737
test("getChildNodes()", function() {
38-
equal($('#node-1').treegrid('getChildNodes').length, 4, "Return 4");
38+
equal($('#node-1').treegrid('getChildNodes').length, 5, "Return 5");
3939
equal($('#node-1-1-2-1').treegrid('getChildNodes').length, [], "Return []");
4040
});
4141

@@ -50,10 +50,27 @@ test("isLeaf()", function() {
5050
});
5151

5252
test("isLast()", function() {
53+
//Test root nodes
54+
ok($('#node-1').treegrid('isLast') === false, "Not Last!");
55+
ok($('#node-2').treegrid('isLast') === true, "Last!");
56+
//Test nodes with branch
57+
ok($('#node-1-4').treegrid('isLast') === false, "Not Last test!");
58+
ok($('#node-1-5').treegrid('isLast') === true, "Last test!");
5359
ok($('#node-1-1-2-1').treegrid('isLast') === true, "Last test!");
5460
ok($('#node-1-2').treegrid('isLast') === false, "Not Last test!");
5561
});
5662

63+
test("isFirst()", function() {
64+
//Test root nodes
65+
ok($('#node-1').treegrid('isFirst') === true, "First!");
66+
ok($('#node-2').treegrid('isFirst') === false, "Not first!");
67+
//Test nodes with branch
68+
ok($('#node-1-1').treegrid('isFirst') === true, "First!");
69+
ok($('#node-1-4').treegrid('isFirst') === false, "Not first!");
70+
ok($('#node-1-1-2-1').treegrid('isFirst') === true, "First!");
71+
ok($('#node-1-2').treegrid('isFirst') === false, "Not First!");
72+
});
73+
5774
test("isRoot()", function() {
5875
ok($('#node-1').treegrid('isRoot') === true, "Root test!");
5976
ok($('#node-1-2').treegrid('isRoot') === false, "Not Root test!");
@@ -115,7 +132,7 @@ test("Alphanumeric id", function() {
115132
});
116133

117134
test("getAllNodes", function() {
118-
equal($('#tree-1').treegrid('getAllNodes').length, 11, "11");
135+
equal($('#tree-1').treegrid('getAllNodes').length, 12, "12");
119136
});
120137

121138
test("isNode", function() {

treegrid.jquery.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"tree",
1212
"ui"
1313
],
14-
"version": "0.1.6",
14+
"version": "0.1.7",
1515
"title": "TreeGrid plugin for jQuery",
1616
"author": {
1717
"name": "Pomazan Max"

0 commit comments

Comments
 (0)