mirror of
https://github.com/ACSPRI/queXS
synced 2024-04-02 12:12:16 +00:00
83 lines
3.6 KiB
JavaScript
83 lines
3.6 KiB
JavaScript
/*
|
|
* LimeSurvey
|
|
* Copyright (C) 2007 The LimeSurvey Project Team / Carsten Schmitz
|
|
* All rights reserved.
|
|
* License: GNU/GPL License v2 or later, see LICENSE.php
|
|
* LimeSurvey is free software. This version may have been modified pursuant
|
|
* to the GNU General Public License, and as distributed it includes or
|
|
* is derivative of works licensed under the GNU General Public License or
|
|
* other free or open source software licenses.
|
|
* See COPYRIGHT.php for copyright notices and details.
|
|
*
|
|
* $Id: lime-slider.js 12404 2012-02-08 19:30:28Z tmswhite $
|
|
*/
|
|
|
|
|
|
|
|
// This file will auto convert slider divs to sliders
|
|
$(document).ready(function(){
|
|
// call the init slider routine for each element of the .multinum-slider class
|
|
$(".multinum-slider").each(function(i,e) {
|
|
var basename = e.id.substr(10);
|
|
$('#answer'+basename).hide();
|
|
$(this).prev('label').addClass('slider-label'); //3796 TP - add a class to the labels in slider questions to facilitate styling
|
|
|
|
//$("#slider-"+basename).addClass('ui-slider-2');
|
|
//$("#slider-handle-"+basename).addClass('ui-slider-handle2');
|
|
var slider_divisor = $('#slider-param-divisor-' + basename).attr('value');
|
|
var slider_min = $('#slider-param-min-' + basename).attr('value');
|
|
var slider_max = $('#slider-param-max-' + basename).attr('value');
|
|
var slider_stepping = $('#slider-param-stepping-' + basename).attr('value');
|
|
var slider_startvalue = $('#slider-param-startvalue-' + basename).attr('value');
|
|
var slider_onchange = $('#slider-onchange-js-' + basename).attr('value');
|
|
var slider_prefix = $('#slider-prefix-' + basename).attr('value');
|
|
var slider_suffix = $('#slider-suffix-' + basename).attr('value');
|
|
var sliderparams = Array();
|
|
|
|
sliderparams['min'] = slider_min*1; // to force numerical we multiply with 1
|
|
sliderparams['max'] = slider_max*1; // to force numerical we multiply with 1
|
|
// not using the stepping param because it is not smooth
|
|
// using Math.round workaround instead
|
|
//sliderparams['stepping'] = slider_stepping;
|
|
//sliderparams['animate'] = true;
|
|
if (slider_startvalue != 'NULL')
|
|
{
|
|
sliderparams['value']= slider_startvalue*1;
|
|
}
|
|
sliderparams['slide'] = function(e, ui) {
|
|
//var thevalue = ui.value / slider_divisor;
|
|
if ($('#slider-modifiedstate-'+basename).val() ==0) $('#slider-modifiedstate-'+basename).val('1');
|
|
|
|
function updateCallout() {
|
|
var thevalue = slider_stepping * Math.round(ui.value / slider_stepping) / slider_divisor;
|
|
$('#slider-callout-'+basename).css('left', $(ui.handle).css('left')).text(slider_prefix + thevalue + slider_suffix);
|
|
}
|
|
// Delay updating the callout because it was picking up the last postion of the slider
|
|
setTimeout(updateCallout, 10);
|
|
};
|
|
sliderparams['stop'] = function(e, ui) {
|
|
//var thevalue = ui.value / slider_divisor;
|
|
var thevalue = slider_stepping * Math.round(ui.value / slider_stepping) / slider_divisor;
|
|
$('#slider-callout-'+basename).css('left', $(ui.handle).css('left')).text(slider_prefix + thevalue + slider_suffix);
|
|
};
|
|
|
|
sliderparams['change'] = function(e, ui) {
|
|
//var thevalue = ui.value / slider_divisor;
|
|
var thevalue = slider_stepping * Math.round(ui.value / slider_stepping) / slider_divisor;
|
|
$('#answer'+basename).val(thevalue);
|
|
checkconditions( thevalue,basename,'text');
|
|
eval(slider_onchange);
|
|
};
|
|
|
|
|
|
$('#slider-'+basename).slider(sliderparams);
|
|
|
|
|
|
if (slider_startvalue != 'NULL' && $('#slider-modifiedstate-'+basename).val() !=0)
|
|
{
|
|
var thevalue = slider_startvalue / slider_divisor;
|
|
$('#slider-callout-'+basename).css('left', $('.ui-slider-handle:first').css('left')).text(slider_prefix + thevalue + slider_suffix);
|
|
}
|
|
})
|
|
});
|