annotate web/views/set.tpl @ 484:4a51e2bf689b

a few fixes
author Matt Johnston <matt@ucc.asn.au>
date Thu, 06 Feb 2014 20:35:43 +0800
parents 93af94e6bd9d
children adbf70d1449f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
2 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
3 <head>
483
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
5 <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=8,minimum-scale=0.1">
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
6 <script src="jquery-2.1.0.min.js"></script>
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
7 <script>
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
8 %include riot.min.js
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
9 </script>
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
10
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
11 <style type="text/css">
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
12 span.no_selection {
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
13 -webkit-user-select: none; // webkit (safari, chrome) browsers
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
14 -moz-user-select: none; // mozilla browsers
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
15 -khtml-user-select: none; // webkit (konqueror) browsers
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
16 }
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
17
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
18 body {
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
19 font-family: "sans-serif";
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
20 }
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
21
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
22 input {
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
23 border: 2px solid transparent;
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
24 border-radius: 4px;
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
25 background-color: white;
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
26 border-color: black;
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
27 padding: 0;
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
28 font-size: 80%;
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
29 }
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
30
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
31 input[type="button"] {
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
32 width: 4em;
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
33 height: 4em;
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
34 margin-left: 0.5em;
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
35 }
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
36
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
37 input[type="submit"] {
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
38 width: 10em;
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
39 height: 4em;
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
40 margin-top: 1em;
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
41 align: center;
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
42 }
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
43
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
44 input[type="text"] {
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
45 height: 4em;
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
46 text-align: center;
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
47 }
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
48
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
49 .onbutton {
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
50 background-color: #cdf;
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
51 }
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
52
484
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
53 .modified {
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
54 color: #d00;
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
55 font-weight: bold;
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
56 }
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
57
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
58 .existing {
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
59 margin-top: 1em;
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
60 font-size: 70%;
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
61 }
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
62
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
63 </style>
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
64 <title>Set templog</title>
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
65 </head>
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
66
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
67 <body>
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
68
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
69 <section id="paramlist">
483
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
70 </section>
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
71
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
72 <div id="jsontest">
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
73 </div>
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
74
483
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
75 <input type="button" id="savebutton" value="Save"/>
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
76
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
77 </body>
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
78
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
79 <script type="html/num_input">
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
80 <div id="{id}">
484
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
81 <span class="existing">{title} <span id="oldvalue">{oldvaluetext}{unit}</span></span>
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
82 <br/>
483
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
83 <input type="text" class="input" name="input_{name}" />
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
84 <input type="button" class="button_down" value="-"/>
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
85 <input type="button" class="button_up" value="+"/>
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
86 </div>
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
87 </script>
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
88
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
89 <script type="html/yesno_button">
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
90 <div id="{id}">
484
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
91 <span class="existing">{title} <span id="oldvalue">{oldvaluetext}</span></span>
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
92 <br/>
483
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
93 <input type="button" class="button_no" value="No"/>
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
94 <input type="button" class="button_yes" value="Yes"/>
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
95 </div>
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
96 </script>
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
97
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
98 <script>
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
99
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
100 function Setter(params) {
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
101 var self = $.observable(this);
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
102
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
103 self.params = params;
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
104
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
105 $.each(self.params, function(idx, param) {
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
106 param.id = "param_id_" + idx;
484
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
107 param.oldvalue = param.value
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
108 if (typeof(param.oldvalue) == "boolean")
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
109 {
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
110 param.oldvaluetext = param.oldvalue ? "Yes" : "No";
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
111 }
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
112 else
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
113 {
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
114 param.oldvaluetext = param.oldvalue;
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
115 }
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
116 });
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
117
484
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
118 self.edit = function(param, newvalue) {
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
119 param.value = newvalue;
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
120 params[param.name] = param;
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
121 self.trigger("edit", param);
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
122 }
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
123
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
124 self.adjust = function(param, updown) {
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
125 // XXX increment
483
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
126 param.value += (param.amount*updown);
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
127 self.trigger("edit", param);
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
128 }
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
129
483
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
130 self.save = function() {
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
131 var j = JSON.stringify(self.params);
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
132 self.trigger("saved", j)
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
133 }
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
134 }
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
135
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
136 (function() { 'use strict';
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
137
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
138 var params = {{!inline_data}};
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
139 window.setter = new Setter(params);
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
140
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
141 var root = $("#paramlist");
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
142
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
143 var number_template = $("[type='html/num_input']").html();
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
144 var button_template = $("[type='html/yesno_button']").html();
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
145
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
146 setter.on("add", add);
483
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
147
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
148 setter.on("edit", function(param)
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
149 {
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
150 var el = $("#" + param.id);
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
151 if (param.kind === "number")
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
152 {
484
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
153 set_text_state(el, param);
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
154 }
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
155 else if (param.kind === "yesno")
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
156 {
483
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
157 set_button_state(el, param.value);
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
158 }
484
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
159 var same;
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
160 switch (typeof(param.oldvalue))
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
161 {
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
162 case "boolean":
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
163 same = ((!param.value) == (!param.oldvalue));
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
164 break;
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
165 case "number":
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
166 same = Math.abs(param.value - param.oldvalue) < 1e-3 * param.amount;
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
167 break;
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
168 default:
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
169 same = (param.value === param.oldvalue);
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
170 }
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
171
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
172 $("#oldvalue", el).toggleClass("modified", !same);
483
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
173 });
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
174
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
175 setter.on("saved", function(j) {
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
176 $("#jsontest").text(j);
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
177 });
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
178
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
179
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
180
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
181 $.route(function(hash) {
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
182
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
183 // clear list and add new ones
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
184 root.empty() && $.each(setter.params, function (idx, p) {
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
185 add(p);
483
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
186
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
187 $("#savebutton").click(function() {
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
188 setter.save();
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
189 })
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
190 })
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
191 })
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
192
484
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
193 function set_text_state(el, param)
483
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
194 {
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
195 var input = $(".input", el);
484
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
196 var s = Number(param.value).toFixed(param.digits)
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
197 input.text(s).val(s)
483
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
198 }
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
199
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
200 function set_button_state(el, value)
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
201 {
484
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
202 $(".button_yes", el).toggleClass("onbutton", value);
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
203 $(".button_no", el).toggleClass("onbutton", !value);
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
204 }
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
205
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
206 function add(param)
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
207 {
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
208 if (param.kind === "number")
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
209 {
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
210 var el = $($.render(number_template, param)).appendTo(root);
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
211 var input = $(".input", el);
483
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
212
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
213 input.keyup(function(e) {
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
214 if (e.which == 13)
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
215 {
484
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
216 setter.edit(param, Number(this.value));
483
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
217 }
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
218 });
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
219
484
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
220 input.blur(function(e) {
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
221 setter.edit(param, Number(this.value));
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
222 });
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
223
483
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
224 $(".button_up", el).click(function() {
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
225 setter.adjust(param, 1);
484
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
226 this.blur()
483
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
227 });
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
228 $(".button_down", el).click(function() {
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
229 setter.adjust(param, -1);
484
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
230 this.blur()
483
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
231 });
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
232
484
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
233 set_text_state(el, param);
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
234 }
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
235 else if (param.kind === "yesno")
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
236 {
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
237 var el = $($.render(button_template, param)).appendTo(root);
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
238 var button_yes = $(".button_yes", el);
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
239 var button_no = $(".button_no", el);
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
240
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
241 button_yes.click(function() {
484
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
242 setter.edit(param, true);
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
243 this.blur()
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
244 })
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
245
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
246 button_no.click(function() {
484
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
247 setter.edit(param, false);
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
248 this.blur()
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
249 })
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
250
483
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
251 set_button_state(el, param.value);
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
252 }
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
253 }
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
254
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
255 })()
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
256
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
257 </script>
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
258
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
259 </html>