68 lines
1.8 KiB
JavaScript
68 lines
1.8 KiB
JavaScript
/**
|
|
Slider, based on the Slider plugin by Stefan Petre (http://www.eyecon.ro/bootstrap-slider).
|
|
|
|
Make sure to include the plugin's code before using this editor.
|
|
|
|
@class slider
|
|
@extends text
|
|
@since 1.5.0
|
|
@final
|
|
**/
|
|
(function ($) {
|
|
"use strict";
|
|
|
|
var Constructor = function (options) {
|
|
this.init('slider', options, Constructor.defaults);
|
|
};
|
|
|
|
$.fn.editableutils.inherit(Constructor, $.fn.editabletypes.text);
|
|
|
|
$.extend(Constructor.prototype, {
|
|
render: function() {
|
|
// need to set kewdown handler before apply slider
|
|
// for correct autosubmit
|
|
this.isAutosubmit = false;
|
|
var that = this;
|
|
this.$input.on('keydown', function (e) {
|
|
if (!that.isAutosubmit) {
|
|
return;
|
|
}
|
|
if (e.which === 13) {
|
|
that.$input.closest('form').submit();
|
|
}
|
|
});
|
|
|
|
// apply slider
|
|
this.$input.slider(this.options.slider);
|
|
},
|
|
|
|
value2input: function(value) {
|
|
// make sure it's a number
|
|
if(typeof value!='number')
|
|
value=Number(value);
|
|
if(isNaN(value))
|
|
value=0;
|
|
|
|
this.$input.val(value);
|
|
this.$input.slider('setValue', value);
|
|
},
|
|
|
|
autosubmit: function() {
|
|
this.isAutosubmit = true;
|
|
}
|
|
});
|
|
|
|
Constructor.defaults = $.extend({}, $.fn.editabletypes.list.defaults, {
|
|
/**
|
|
@property tpl
|
|
@default <input type="text">
|
|
**/
|
|
tpl:'<input type="text">',
|
|
/**
|
|
**/
|
|
slider: null,
|
|
});
|
|
|
|
$.fn.editabletypes.slider = Constructor;
|
|
|
|
}(window.jQuery)); |