summaryrefslogtreecommitdiff
path: root/tests/examplefiles/jbst_example2.jbst
blob: 2b5e0489b70ed89f9a2b986aa7bf28e61cbe1d0e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<%@ Control Name="Foo.MyZebraList" Language="JavaScript" %>

<script type="text/javascript">

	/* private members ------------------------------------------ */

	/*int*/ function digits(/*int*/ n) {
		return (n < 10) ? '0' + n : n;
	}

	/* public members ------------------------------------------- */

	// use the item index to alternate colors and highlight
	/*string*/ this.zebraStripe = function(/*bool*/ selected, /*int*/ index, /*int*/ count) {
		var css = [ "item" ];
		if (index % 2 === 0) {
			css.push("item-alt");
		}
		if (selected) {
			css.push("item-selected");
		}
		return css.join(" ");
	};

	/*string*/ this.formatTime = function(/*Date*/ time) {
		return time.getHours() + ':' + digits(time.getMinutes()) + ':' + digits(time.getSeconds());
	};

</script>

<div class="example">
	<h2><%= this.data.title %> as of <%= this.formatTime(this.data.timestamp) %>!</h2>
	<p><%= this.data.description %></p>
	<ul class="items" jbst:visible="<%= this.data.children.length > 0 %>">

		<!-- anonymous inner template -->
		<jbst:control data="<%= this.data.children %>">
			<!-- populate list item for each item of the parent's children property -->
			<li class="<%= Foo.MyZebraList.zebraStripe(this.data.selected, this.index, this.count) %>">
				<%= this.data.label %> (<%= this.index+1 %> of <%= this.count %>)
			</li>
		</jbst:control>

	</ul>
</div>