# HG changeset patch # User hertzhaft # Date 1478469725 -3600 # Node ID 54d53b949bd28bc27957fdaf3f06b080fe73599e # Parent a0dcfe71b999c2904051cbd521e2c1ebebe35116 sliders plugin: on action remove window if onscreen diff -r a0dcfe71b999 -r 54d53b949bd2 webapp/src/main/webapp/jquery/jquery.digilib.sliders.js --- 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 = '\
\
\ @@ -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 = $('
'); - var startvalue = data.settings[options.param] || options.start; + var $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 = $('
'); - var $table = $(''); + var $div = $('
'); + var $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 = $('').appendTo($table); + var $tr = $('').appendTo($table); var html = '\
\
'+color.label+'
\ @@ -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')); - $('
').append($brgt).appendTo($tr); - $('').append($cont).appendTo($tr); + $('', { class: css+'rgb' }).append($brgt).appendTo($tr); + $('', { class: css+'rgb' }).append($cont).appendTo($tr); }; var onChange = function ($slider) { // show effects of color brightness/contrast on a grey scale