/** spinner. a wrapper for fuelux spinner element. it's just a wrapper so you still need to include fuelux spinner script first. */ (function($ , undefined) { //a wrapper for fuelux spinner function ace_spinner(element , _options) { var attrib_values = ace.helper.getattrsettings(element, $.fn.ace_spinner.defaults); var options = $.extend({}, $.fn.ace_spinner.defaults, _options, attrib_values); var max = options.max max = (''+max).length var width = parseint(math.max((max * 20 + 40) , 90)) var $element = $(element); var btn_class = 'btn-sm';//default var sizing = 2; if($element.hasclass('input-sm')) { btn_class = 'btn-xs'; sizing = 1; } else if($element.hasclass('input-lg')) { btn_class = 'btn-lg'; sizing = 3; } if(sizing == 2) width += 25; else if(sizing == 3) width += 50; $element.addclass('spinbox-input form-control text-center').wrap('
') var $parent_div = $element.closest('.ace-spinner').spinbox(options).wrapinner("
") var $spinner = $parent_div.data('fu.spinbox'); if(options.on_sides) { $element .before('
\ \
') .after('
\ \
'); $parent_div.addclass('touch-spinner') $parent_div.css('width' , width+'px') } else { $element .after('
\ \ \
') if(ace.vars['touch'] || options.touch_spinner) { $parent_div.addclass('touch-spinner') $parent_div.css('width' , width+'px') } else { $element.next().addclass('btn-group-vertical'); $parent_div.css('width' , width+'px') } } $parent_div.on('changed', function(){ $element.trigger('change')//trigger the input's change event }); this._call = function(name, arg) { $spinner[name](arg); } } $.fn.ace_spinner = function(option, value) { var retval; var $set = this.each(function() { var $this = $(this); var data = $this.data('ace_spinner'); var options = typeof option === 'object' && option; if (!data) { options = $.extend({}, $.fn.ace_spinner.defaults, option); $this.data('ace_spinner', (data = new ace_spinner(this, options))); } if (typeof option === 'string') retval = data._call(option, value); }); return (retval === undefined) ? $set : retval; } $.fn.ace_spinner.defaults = { 'icon_up' : 'fa fa-chevron-up', 'icon_down': 'fa fa-chevron-down', 'on_sides': false, 'btn_up_class': '', 'btn_down_class' : '', 'max' : 999, 'touch_spinner': false } })(window.jquery);