Mercurial > hg > digilib
changeset 1567:54d53b949bd2
sliders plugin: on action remove window if onscreen
author | hertzhaft |
---|---|
date | Sun, 06 Nov 2016 23:02:05 +0100 |
parents | a0dcfe71b999 |
children | 830cbb4952f2 |
files | webapp/src/main/webapp/jquery/jquery.digilib.sliders.js |
diffstat | 1 files changed, 34 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/webapp/src/main/webapp/jquery/jquery.digilib.sliders.js Fri Nov 04 01:01:16 2016 +0100 +++ b/webapp/src/main/webapp/jquery/jquery.digilib.sliders.js Sun Nov 06 23:02:05 2016 +0100 @@ -100,6 +100,9 @@ var actions = { // shows brightness slider sliderBrgt : function (data) { + if (removeSlider(data)) { + return; + } // adjust min and max for contrast value (not nice to change sliderOptions) var maxBrgt = Math.max(Math.round(255 * Math.pow(2, data.settings.cont)), 255); var options = sliderOptions.brightness; @@ -117,6 +120,9 @@ // shows contrast slider sliderCont : function (data) { + if (removeSlider(data)) { + return; + } var options = sliderOptions.contrast; var onChange = function($slider, val) { var m = Math.pow(2, parseFloat(val)); @@ -132,6 +138,9 @@ // shows rotate slider sliderRot : function (data) { + if (removeSlider(data)) { + return; + } var options = sliderOptions.rotation; var onChange = null; var onSubmit = function(val) { @@ -142,6 +151,9 @@ // shows RGB sliders sliderRGB : function (data) { + if (removeSlider(data)) { + return; + } var onSubmit = function(m, a) { digilib.actions.setRGB(data, m, a); }; @@ -248,8 +260,6 @@ var cls = cssPrefix + cssSuffix; var tiny = cssPrefix + 'tinyslider'; var $elem = data.$elem; - var sliderSelector = '#'+cssPrefix+'slider'; - if (fn.isOnScreen(data, sliderSelector)) return null; // already onscreen var html = '\ <div id="'+cssPrefix+'slider" class="'+cls+'">\ <form class="'+cls+'">\ @@ -303,6 +313,19 @@ return $div; }; + /** removes slider window if on screen + */ + var removeSlider = function (data) { + var selector = '#'+ data.settings.cssPrefix + 'slider'; + if (fn.isOnScreen(data, selector)) { + var $div = $(selector); + fn.withdraw($div); + return true; + } + return false; + }; + + /** creates a TinyRange slider */ var tinySlider = function (data, options, startvalue) { @@ -366,9 +389,10 @@ the new value is passed to the "onSubmit" function. */ var singleSlider = function (data, options, onChange, onSubmit) { + var settings = data.settings; var classname = 'singleslider'; - var $div = $('<div/>'); - var startvalue = data.settings[options.param] || options.start; + var $div = $('<div>'); + var startvalue = settings[options.param] || options.start; var $slider = tinySlider(data, options, startvalue); var getValue = function () { // get the new value and do something with it @@ -381,7 +405,7 @@ setupFormDiv(data, $div, classname, getValue); var hasPreview = options.preview; if (hasPreview) { - var cls = data.settings.cssPrefix + classname; + var cls = settings.cssPrefix + classname; var $preview = preview(cls); $div.append($preview); $slider.data({ @@ -398,8 +422,8 @@ var rgbSlider = function (data, onSubmit) { var css = data.settings.cssPrefix; var cls = css + 'rgbslider'; - var $div = $('<div/>'); - var $table = $('<table class="'+cls+'" />'); + var $div = $('<div>'); + var $table = $('<table>', { class: cls }); var $preview = preview(cls); $div.append($table); $div.append($preview); @@ -407,7 +431,7 @@ var insertTableRow = function(index, value) { var color = colorVals[value]; // start values are set in "handleSetup" - var $tr = $('<tr/>').appendTo($table); + var $tr = $('<tr>').appendTo($table); var html = '\ <td class="'+css+'color '+css+value+'">\ <div>'+color.label+'</div>\ @@ -417,8 +441,8 @@ var $cont = tinySlider(data, sliderOptions.contrast, color.m); $table.data(value+'a', $brgt.data('$text')); $table.data(value+'m', $cont.data('$text')); - $('<td class="'+css+'rgb"/>').append($brgt).appendTo($tr); - $('<td class="'+css+'rgb"/>').append($cont).appendTo($tr); + $('<td>', { class: css+'rgb' }).append($brgt).appendTo($tr); + $('<td>', { class: css+'rgb' }).append($cont).appendTo($tr); }; var onChange = function ($slider) { // show effects of color brightness/contrast on a grey scale