annotate web/views/set.tpl @ 488:4792e9910cde

watcher script
author Matt Johnston <matt@ucc.asn.au>
date Sun, 09 Feb 2014 11:41:13 +0800
parents 931408ce71d9
children 8318d50d766d
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">
488
4792e9910cde watcher script
Matt Johnston <matt@ucc.asn.au>
parents: 487
diff changeset
5 <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1,minimum-scale=1">
483
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>
487
931408ce71d9 working OK
Matt Johnston <matt@ucc.asn.au>
parents: 485
diff changeset
7 <script src="jquery.mobile.custom.min.js"></script>
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
8 <script>
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
9 %include riot.min.js
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
10 </script>
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
11
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
12 <style type="text/css">
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
13 span.no_selection {
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
14 -webkit-user-select: none; // webkit (safari, chrome) browsers
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
15 -moz-user-select: none; // mozilla browsers
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
16 -khtml-user-select: none; // webkit (konqueror) browsers
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
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
19 body {
488
4792e9910cde watcher script
Matt Johnston <matt@ucc.asn.au>
parents: 487
diff changeset
20 font-family: sans-serif;
482
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
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
23 input {
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
24 border: 2px solid transparent;
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
25 border-radius: 4px;
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
26 background-color: white;
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
27 border-color: black;
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
28 padding: 0;
488
4792e9910cde watcher script
Matt Johnston <matt@ucc.asn.au>
parents: 487
diff changeset
29 font-size: 30pt;
4792e9910cde watcher script
Matt Johnston <matt@ucc.asn.au>
parents: 487
diff changeset
30 height: 34pt;
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
31 }
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
32
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
33 input[type="button"] {
488
4792e9910cde watcher script
Matt Johnston <matt@ucc.asn.au>
parents: 487
diff changeset
34 width: 34pt;
4792e9910cde watcher script
Matt Johnston <matt@ucc.asn.au>
parents: 487
diff changeset
35 margin-left: 4pt;
4792e9910cde watcher script
Matt Johnston <matt@ucc.asn.au>
parents: 487
diff changeset
36 -webkit-appearance: none;
4792e9910cde watcher script
Matt Johnston <matt@ucc.asn.au>
parents: 487
diff changeset
37 -moz-appearance: none;
4792e9910cde watcher script
Matt Johnston <matt@ucc.asn.au>
parents: 487
diff changeset
38 background:#fff;
4792e9910cde watcher script
Matt Johnston <matt@ucc.asn.au>
parents: 487
diff changeset
39 vertical-align: center;
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
40 }
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
41
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
42 input[type="submit"] {
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
43 margin-top: 1em;
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
44 align: center;
488
4792e9910cde watcher script
Matt Johnston <matt@ucc.asn.au>
parents: 487
diff changeset
45 width: 10em;
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
46 }
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
47
487
931408ce71d9 working OK
Matt Johnston <matt@ucc.asn.au>
parents: 485
diff changeset
48 input[type="text"], input[type="number"] {
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
49 text-align: center;
488
4792e9910cde watcher script
Matt Johnston <matt@ucc.asn.au>
parents: 487
diff changeset
50 width: 4em;
482
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
485
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
53 #savebox {
488
4792e9910cde watcher script
Matt Johnston <matt@ucc.asn.au>
parents: 487
diff changeset
54 vertical-align: center;
485
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
55 width: 100%;
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
56 }
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
57
488
4792e9910cde watcher script
Matt Johnston <matt@ucc.asn.au>
parents: 487
diff changeset
58 input[type="button"].onbutton {
4792e9910cde watcher script
Matt Johnston <matt@ucc.asn.au>
parents: 487
diff changeset
59 background: #ccc;
4792e9910cde watcher script
Matt Johnston <matt@ucc.asn.au>
parents: 487
diff changeset
60 }
4792e9910cde watcher script
Matt Johnston <matt@ucc.asn.au>
parents: 487
diff changeset
61
4792e9910cde watcher script
Matt Johnston <matt@ucc.asn.au>
parents: 487
diff changeset
62 input[type="button"].yesno {
4792e9910cde watcher script
Matt Johnston <matt@ucc.asn.au>
parents: 487
diff changeset
63 width: 2.5em;
4792e9910cde watcher script
Matt Johnston <matt@ucc.asn.au>
parents: 487
diff changeset
64 }
4792e9910cde watcher script
Matt Johnston <matt@ucc.asn.au>
parents: 487
diff changeset
65
4792e9910cde watcher script
Matt Johnston <matt@ucc.asn.au>
parents: 487
diff changeset
66 input[type="button"]#savebutton {
4792e9910cde watcher script
Matt Johnston <matt@ucc.asn.au>
parents: 487
diff changeset
67 width: 5em;
482
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
484
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
70 .modified {
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
71 color: #d00;
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
72 font-weight: bold;
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
73 }
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
74
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
75 .existing {
488
4792e9910cde watcher script
Matt Johnston <matt@ucc.asn.au>
parents: 487
diff changeset
76 margin-top: 10pt;
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
77 }
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 </style>
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
80 <title>Set templog</title>
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
81 </head>
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
82
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
83
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
84 <script type="html/num_input">
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
85 <div id="{id}">
484
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
86 <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
87 <br/>
487
931408ce71d9 working OK
Matt Johnston <matt@ucc.asn.au>
parents: 485
diff changeset
88 <input type="number" class="input" name="input_{name}" />
483
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
89 <input type="button" class="button_down" value="-"/>
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
90 <input type="button" class="button_up" value="+"/>
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
91 </div>
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
92 </script>
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
93
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
94 <script type="html/yesno_button">
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
95 <div id="{id}">
484
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
96 <span class="existing">{title} <span id="oldvalue">{oldvaluetext}</span></span>
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
97 <br/>
488
4792e9910cde watcher script
Matt Johnston <matt@ucc.asn.au>
parents: 487
diff changeset
98 <input type="button" class="button_no yesno" value="No"/>
4792e9910cde watcher script
Matt Johnston <matt@ucc.asn.au>
parents: 487
diff changeset
99 <input type="button" class="button_yes yesno" value="Yes"/>
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
100 </div>
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
101 </script>
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 <script>
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
104
485
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
105 function Setter(params, csrf_blob) {
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
106 var self = $.observable(this);
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
107
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
108 self.params = params;
485
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
109 self.csrf_blob = csrf_blob
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
110
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
111 $.each(self.params, function(idx, param) {
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
112 param.id = "param_id_" + idx;
484
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
113 param.oldvalue = param.value
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
114 if (typeof(param.oldvalue) == "boolean")
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
115 {
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
116 param.oldvaluetext = param.oldvalue ? "Yes" : "No";
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
117 }
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
118 else
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
119 {
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
120 param.oldvaluetext = param.oldvalue;
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
121 }
482
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
484
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
124 self.edit = function(param, newvalue) {
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
125 param.value = newvalue;
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
126 params[param.name] = param;
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
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
130 self.adjust = function(param, updown) {
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
131 // XXX increment
483
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
132 param.value += (param.amount*updown);
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
133 self.trigger("edit", param);
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
483
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
136 self.save = function() {
485
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
137 self.trigger("status", "Saving...")
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
138
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
139 var post_json = {};
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
140 post_json.csrf_blob = self.csrf_blob;
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
141 post_json.params =
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
142 self.params.map(function(v, idx, array) {
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
143 return {
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
144 name: v.name,
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
145 value: v.value
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
146 };
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
147 });
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
148
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
149 var post_data = {data: JSON.stringify(post_json)};
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
150
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
151 var req = $.ajax({type: "POST",
487
931408ce71d9 working OK
Matt Johnston <matt@ucc.asn.au>
parents: 485
diff changeset
152 url: "set/update",
485
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
153 data: post_data});
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
154
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
155 req.done(function(data, status, hdr) {
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
156 self.trigger("status", "Saved")
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
157 });
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
158
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
159 req.fail(function(data, status, hdr) {
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
160 self.trigger("status",
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
161 "Failed: " + status + "\n" + hdr.responseText)
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
162 });
483
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
163 }
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
164 }
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
165
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
166 (function() { 'use strict';
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
167
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
168 var params = {{!inline_data}};
485
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
169 var csrf_blob = "{{!csrf_blob}}";
488
4792e9910cde watcher script
Matt Johnston <matt@ucc.asn.au>
parents: 487
diff changeset
170 var allowed = {{allowed}};
485
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
171 window.setter = new Setter(params, csrf_blob);
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
172
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
173 var number_template = $("[type='html/num_input']").html();
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
174 var button_template = $("[type='html/yesno_button']").html();
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
175
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
176 setter.on("add", add);
483
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
177
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
178 setter.on("edit", function(param)
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
179 {
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
180 var el = $("#" + param.id);
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
181 if (param.kind === "number")
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
182 {
484
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
183 set_text_state(el, param);
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
184 }
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
185 else if (param.kind === "yesno")
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
186 {
483
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
187 set_button_state(el, param.value);
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
188 }
484
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
189 var same;
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
190 switch (typeof(param.oldvalue))
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
191 {
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
192 case "boolean":
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
193 same = ((!param.value) == (!param.oldvalue));
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
194 break;
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
195 case "number":
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
196 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
197 break;
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
198 default:
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
199 same = (param.value === param.oldvalue);
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
200 }
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
201
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
202 $("#oldvalue", el).toggleClass("modified", !same);
483
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
203 });
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
204
485
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
205 setter.on("status", function(status) {
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
206 $('#status').text(status)
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
207 })
483
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
208
485
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
209 var root;
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
210
485
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
211 window.onload = function() {
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
212 // clear list and add new ones
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
213 root = $("#paramlist");
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
214
485
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
215 root.empty() && $.each(setter.params, function (idx, p) {
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
216 add(p);
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
217 })
483
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
218
488
4792e9910cde watcher script
Matt Johnston <matt@ucc.asn.au>
parents: 487
diff changeset
219 if (!allowed) {
4792e9910cde watcher script
Matt Johnston <matt@ucc.asn.au>
parents: 487
diff changeset
220 $("#savebutton").attr("disabled", true);
4792e9910cde watcher script
Matt Johnston <matt@ucc.asn.au>
parents: 487
diff changeset
221 $('#status').text("No cert")
4792e9910cde watcher script
Matt Johnston <matt@ucc.asn.au>
parents: 487
diff changeset
222 }
4792e9910cde watcher script
Matt Johnston <matt@ucc.asn.au>
parents: 487
diff changeset
223
483
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
224 $("#savebutton").click(function() {
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
225 setter.save();
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
226 })
485
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
227 }
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
228
484
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
229 function set_text_state(el, param)
483
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
230 {
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
231 var input = $(".input", el);
484
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
232 var s = Number(param.value).toFixed(param.digits)
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
233 input.text(s).val(s)
483
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
234 }
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
235
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
236 function set_button_state(el, value)
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
237 {
484
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
238 $(".button_yes", el).toggleClass("onbutton", value);
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
239 $(".button_no", el).toggleClass("onbutton", !value);
482
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
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
242 function add(param)
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
243 {
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
244 if (param.kind === "number")
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 var el = $($.render(number_template, param)).appendTo(root);
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
247 var input = $(".input", el);
483
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
248
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
249 input.keyup(function(e) {
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
250 if (e.which == 13)
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
251 {
484
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
252 setter.edit(param, Number(this.value));
483
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
253 }
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
254 });
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
255
484
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
256 input.blur(function(e) {
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
257 setter.edit(param, Number(this.value));
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
258 });
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
259
487
931408ce71d9 working OK
Matt Johnston <matt@ucc.asn.au>
parents: 485
diff changeset
260 $(".button_up", el).on("vmousedown", function() {
483
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
261 setter.adjust(param, 1);
484
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
262 this.blur()
483
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
263 });
487
931408ce71d9 working OK
Matt Johnston <matt@ucc.asn.au>
parents: 485
diff changeset
264 $(".button_down", el).on("vmousedown", function() {
483
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
265 setter.adjust(param, -1);
484
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
266 this.blur()
483
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
267 });
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
268
484
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
269 set_text_state(el, param);
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
270 }
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
271 else if (param.kind === "yesno")
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
272 {
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
273 var el = $($.render(button_template, param)).appendTo(root);
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
274 var button_yes = $(".button_yes", el);
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
275 var button_no = $(".button_no", el);
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
276
487
931408ce71d9 working OK
Matt Johnston <matt@ucc.asn.au>
parents: 485
diff changeset
277 button_yes.on("vmousedown", function() {
484
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
278 setter.edit(param, true);
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
279 this.blur()
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
280 })
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
281
487
931408ce71d9 working OK
Matt Johnston <matt@ucc.asn.au>
parents: 485
diff changeset
282 button_no.on("vmousedown", function() {
484
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
283 setter.edit(param, false);
4a51e2bf689b a few fixes
Matt Johnston <matt@ucc.asn.au>
parents: 483
diff changeset
284 this.blur()
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
285 })
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
286
483
93af94e6bd9d param editor roughly working
Matt Johnston <matt@ucc.asn.au>
parents: 482
diff changeset
287 set_button_state(el, param.value);
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
288 }
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
289 }
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
290
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
291 })()
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
292
487
931408ce71d9 working OK
Matt Johnston <matt@ucc.asn.au>
parents: 485
diff changeset
293
931408ce71d9 working OK
Matt Johnston <matt@ucc.asn.au>
parents: 485
diff changeset
294
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
295 </script>
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
296
485
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
297 <body>
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
298
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
299 <section id="paramlist">
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
300 </section>
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
301
488
4792e9910cde watcher script
Matt Johnston <matt@ucc.asn.au>
parents: 487
diff changeset
302 <span id="savebox">
485
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
303 <input type="button" id="savebutton" value="Save"/>
488
4792e9910cde watcher script
Matt Johnston <matt@ucc.asn.au>
parents: 487
diff changeset
304 <span id="status"></span>
4792e9910cde watcher script
Matt Johnston <matt@ucc.asn.au>
parents: 487
diff changeset
305 </span>
485
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
306
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
307
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
308 </body>
d68af9e84485 working
Matt Johnston <matt@ucc.asn.au>
parents: 484
diff changeset
309
482
9950ffa9a79b set nearly working
Matt Johnston <matt@ucc.asn.au>
parents:
diff changeset
310 </html>