comparison webapp/src/main/webapp/jquery/jquery.digilib.sliders.js @ 1061:8437372976a9

button for resetting sliders to default value
author hertzhaft
date Mon, 23 Apr 2012 23:08:03 +0200
parents 46e5e640de47
children 109055299cc8
comparison
equal deleted inserted replaced
1060:46e5e640de47 1061:8437372976a9
1 /** 1 /**
2 digilib sliders plugin 2 digilib sliders plugin
3 */ 3 */
4 4
5 // TODO: add a "default" button that resets slider to the default value 5 // TODO:
6 // (not to the current URL param) 6 // IE sets rgb contrast sliders initially to 0.4 instead of 0 - ???
7 7
8 (function($) { 8 (function($) {
9 // plugin object with digilib data 9 // plugin object with digilib data
10 var digilib = null; 10 var digilib = null;
11 // the functions made available by digilib 11 // the functions made available by digilib
19 rot : { 19 rot : {
20 label : "Rotation angle", 20 label : "Rotation angle",
21 tooltip : "rotate image", 21 tooltip : "rotate image",
22 icon : "rotate.png", 22 icon : "rotate.png",
23 preview : false, 23 preview : false,
24 'min' : 0, 24 min : 0,
25 'max' : 360, 25 max : 360,
26 'step' : 0.1, 26 step : 0.1,
27 'start' : 90 27 start : 90
28 }, 28 },
29 brgt : { 29 brgt : {
30 label : "Brightness", 30 label : "Brightness",
31 tooltip : "set numeric value to be added", 31 tooltip : "set numeric value to be added",
32 icon : "brightness.png", 32 icon : "brightness.png",
33 preview : true, 33 preview : true,
34 'min' : -255, 34 min : -255,
35 'max' : 255, 35 max : 255,
36 'step' : 10, 36 step : 10,
37 'start' : 0 37 start : 0
38 }, 38 },
39 cont : { 39 cont : {
40 label : "Contrast", 40 label : "Contrast",
41 tooltip : "set numeric value to be multiplied", 41 tooltip : "set numeric value to be multiplied",
42 icon : "contrast.png", 42 icon : "contrast.png",
43 preview : true, 43 preview : true,
44 'min' : -4, 44 min : -4,
45 'max' : 4, 45 max : 4,
46 'step' : 0.01, 46 step : 0.1,
47 'start' : 0 47 start : 0
48 } 48 }
49 }; 49 };
50 50
51 var primaryColors = ['r', 'g', 'b']; 51 var primaryColors = ['r', 'g', 'b'];
52 var colorVals = { 52 var colorVals = {
214 var html = '\ 214 var html = '\
215 <div id="'+cssPrefix+'slider" class="'+cls+'">\ 215 <div id="'+cssPrefix+'slider" class="'+cls+'">\
216 <form class="'+cls+'">\ 216 <form class="'+cls+'">\
217 <input class="'+cls+'cancel" type="button" value="Cancel"/>\ 217 <input class="'+cls+'cancel" type="button" value="Cancel"/>\
218 <input class="'+cls+'reset" type="button" value="Reset"/>\ 218 <input class="'+cls+'reset" type="button" value="Reset"/>\
219 <input class="'+cls+'default" type="button" value="Default"/>\
219 <input type="submit" name="sub" value="Ok"/>\ 220 <input type="submit" name="sub" value="Ok"/>\
220 </form>\ 221 </form>\
221 </div>'; 222 </div>';
222 $div = $(html).appendTo($elem); 223 $div = $(html).appendTo($elem);
223 var $form = $div.find('form'); 224 var $form = $div.find('form');
231 // handle reset 232 // handle reset
232 $form.find('.'+cls+'reset').on('click', function () { 233 $form.find('.'+cls+'reset').on('click', function () {
233 var sliders = $form.find('div.'+tiny); 234 var sliders = $form.find('div.'+tiny);
234 sliders.each(function () { 235 sliders.each(function () {
235 var reset = $(this).data('reset'); 236 var reset = $(this).data('reset');
237 reset();
238 });
239 });
240 // handle default
241 $form.find('.'+cls+'default').on('click', function () {
242 var sliders = $form.find('div.'+tiny);
243 sliders.each(function () {
244 var reset = $(this).data('default');
236 reset(); 245 reset();
237 }); 246 });
238 }); 247 });
239 // handle cancel 248 // handle cancel
240 $form.find('.'+cls+'cancel').on('click', function () { 249 $form.find('.'+cls+'cancel').on('click', function () {
296 }; 305 };
297 var reset = function () { 306 var reset = function () {
298 $text.val(startvalue); 307 $text.val(startvalue);
299 textChange(); 308 textChange();
300 }; 309 };
310 var resetdefault = function () {
311 $text.val(opts.start);
312 textChange();
313 };
301 // connect slider and input 314 // connect slider and input
302 $range.on('change', rangeChange); 315 $range.on('change', rangeChange);
303 $text.on('change', textChange); 316 $text.on('change', textChange);
304 $slider.data({ 317 $slider.data({
305 '$text' : $text, 318 '$text' : $text,
306 '$range' : $range, 319 '$range' : $range,
307 'reset' : reset, 320 'reset' : reset,
321 'default' : resetdefault,
308 'update' : null 322 'update' : null
309 }); 323 });
310 return $slider; 324 return $slider;
311 }; 325 };
312 326