comparison web/views/set.tpl @ 185:adbf70d1449f

working
author Matt Johnston <matt@ucc.asn.au>
date Thu, 06 Feb 2014 22:45:16 +0800
parents cbe14244a372
children ae5efca89001
comparison
equal deleted inserted replaced
184:cbe14244a372 185:adbf70d1449f
44 input[type="text"] { 44 input[type="text"] {
45 height: 4em; 45 height: 4em;
46 text-align: center; 46 text-align: center;
47 } 47 }
48 48
49 #savebox {
50 align: center;
51 width: 100%;
52 }
53
49 .onbutton { 54 .onbutton {
50 background-color: #cdf; 55 background-color: #cdf;
51 } 56 }
52 57
53 .modified { 58 .modified {
62 67
63 </style> 68 </style>
64 <title>Set templog</title> 69 <title>Set templog</title>
65 </head> 70 </head>
66 71
67 <body>
68
69 <section id="paramlist">
70 </section>
71
72 <div id="jsontest">
73 </div>
74
75 <input type="button" id="savebutton" value="Save"/>
76
77 </body>
78 72
79 <script type="html/num_input"> 73 <script type="html/num_input">
80 <div id="{id}"> 74 <div id="{id}">
81 <span class="existing">{title} <span id="oldvalue">{oldvaluetext}{unit}</span></span> 75 <span class="existing">{title} <span id="oldvalue">{oldvaluetext}{unit}</span></span>
82 <br/> 76 <br/>
95 </div> 89 </div>
96 </script> 90 </script>
97 91
98 <script> 92 <script>
99 93
100 function Setter(params) { 94 function Setter(params, csrf_blob) {
101 var self = $.observable(this); 95 var self = $.observable(this);
102 96
103 self.params = params; 97 self.params = params;
98 self.csrf_blob = csrf_blob
104 99
105 $.each(self.params, function(idx, param) { 100 $.each(self.params, function(idx, param) {
106 param.id = "param_id_" + idx; 101 param.id = "param_id_" + idx;
107 param.oldvalue = param.value 102 param.oldvalue = param.value
108 if (typeof(param.oldvalue) == "boolean") 103 if (typeof(param.oldvalue) == "boolean")
126 param.value += (param.amount*updown); 121 param.value += (param.amount*updown);
127 self.trigger("edit", param); 122 self.trigger("edit", param);
128 } 123 }
129 124
130 self.save = function() { 125 self.save = function() {
131 var j = JSON.stringify(self.params); 126 self.trigger("status", "Saving...")
132 self.trigger("saved", j) 127
128 var post_json = {};
129 post_json.csrf_blob = self.csrf_blob;
130 post_json.params =
131 self.params.map(function(v, idx, array) {
132 return {
133 name: v.name,
134 value: v.value
135 };
136 });
137
138 var post_data = {data: JSON.stringify(post_json)};
139
140 var req = $.ajax({type: "POST",
141 url: "setparams",
142 data: post_data});
143
144 req.done(function(data, status, hdr) {
145 self.trigger("status", "Saved")
146 });
147
148 req.fail(function(data, status, hdr) {
149 self.trigger("status",
150 "Failed: " + status + "\n" + hdr.responseText)
151 });
133 } 152 }
134 } 153 }
135 154
136 (function() { 'use strict'; 155 (function() { 'use strict';
137 156
138 var params = {{!inline_data}}; 157 var params = {{!inline_data}};
139 window.setter = new Setter(params); 158 var csrf_blob = "{{!csrf_blob}}";
140 159 window.setter = new Setter(params, csrf_blob);
141 var root = $("#paramlist");
142 160
143 var number_template = $("[type='html/num_input']").html(); 161 var number_template = $("[type='html/num_input']").html();
144 var button_template = $("[type='html/yesno_button']").html(); 162 var button_template = $("[type='html/yesno_button']").html();
145 163
146 setter.on("add", add); 164 setter.on("add", add);
170 } 188 }
171 189
172 $("#oldvalue", el).toggleClass("modified", !same); 190 $("#oldvalue", el).toggleClass("modified", !same);
173 }); 191 });
174 192
175 setter.on("saved", function(j) { 193 setter.on("status", function(status) {
176 $("#jsontest").text(j); 194 $('#status').text(status)
177 }); 195 })
178 196
179 197 var root;
180 198
181 $.route(function(hash) { 199 window.onload = function() {
182 200 // clear list and add new ones
183 // clear list and add new ones 201 root = $("#paramlist");
184 root.empty() && $.each(setter.params, function (idx, p) { 202
185 add(p); 203 root.empty() && $.each(setter.params, function (idx, p) {
204 add(p);
205 })
186 206
187 $("#savebutton").click(function() { 207 $("#savebutton").click(function() {
188 setter.save(); 208 setter.save();
189 }) 209 })
190 }) 210 }
191 })
192 211
193 function set_text_state(el, param) 212 function set_text_state(el, param)
194 { 213 {
195 var input = $(".input", el); 214 var input = $(".input", el);
196 var s = Number(param.value).toFixed(param.digits) 215 var s = Number(param.value).toFixed(param.digits)
254 273
255 })() 274 })()
256 275
257 </script> 276 </script>
258 277
278 <body>
279
280 <section id="paramlist">
281 </section>
282
283 <div id="savebox">
284 <input type="button" id="savebutton" value="Save"/>
285
286 <div id="status">
287 </div>
288 </div>
289
290
291 </body>
292
259 </html> 293 </html>