euscanwww: Adding PoC switches for feed settings
Signed-off-by: volpino <fox91@anche.no>
This commit is contained in:
20
euscanwww/htdocs/js/jquery.js
vendored
20
euscanwww/htdocs/js/jquery.js
vendored
File diff suppressed because one or more lines are too long
105
euscanwww/htdocs/js/jquery.toggle.buttons.js
Normal file
105
euscanwww/htdocs/js/jquery.toggle.buttons.js
Normal file
@ -0,0 +1,105 @@
|
||||
!function ($) {
|
||||
"use strict";
|
||||
// version: 1.3
|
||||
|
||||
$.fn.toggleButtons = function (opt) {
|
||||
var $element
|
||||
, $labelEnabled
|
||||
, options
|
||||
, active
|
||||
, styleActive
|
||||
, styleDisabled
|
||||
, animationCss
|
||||
, transitionSpeed = 0.05
|
||||
, defaultSpeed = 0.05;
|
||||
|
||||
this.each(function () {
|
||||
$element = $(this);
|
||||
|
||||
options = $.extend({}, $.fn.toggleButtons.defaults, opt);
|
||||
|
||||
$element.addClass('toggle-button');
|
||||
|
||||
$labelEnabled = $('<label></label>').attr('for', $element.find('input').attr('id'));
|
||||
$element.append($labelEnabled);
|
||||
|
||||
if (options.animated) {
|
||||
$element.addClass('toggle-button-animated');
|
||||
|
||||
if (options.transitionSpeed !== undefined)
|
||||
if (/^(\d*%$)/.test(options.transitionSpeed)) // is a percent value?
|
||||
transitionSpeed = defaultSpeed * parseInt(options.transitionSpeed) / 100;
|
||||
else
|
||||
transitionSpeed = options.transitionSpeed;
|
||||
|
||||
animationCss = ["-webkit-", "-moz-", "-o-", ""];
|
||||
$(animationCss).each(function () {
|
||||
$element.find('label').css(this + 'transition', 'all ' + transitionSpeed + 's');
|
||||
});
|
||||
}
|
||||
|
||||
$element.css('width', options.width);
|
||||
|
||||
$element.attr("data-enabled", options.label.enabled === undefined ? "ON" : options.label.enabled);
|
||||
$element.attr("data-disabled", options.label.disabled === undefined ? "OFF " : options.label.disabled);
|
||||
|
||||
active = $element.find('input').is(':checked');
|
||||
|
||||
if (!active)
|
||||
$element.addClass('disabled');
|
||||
|
||||
styleActive = options.style.enabled === undefined ? "" : options.style.enabled;
|
||||
styleDisabled = options.style.disabled === undefined ? "" : options.style.disabled;
|
||||
|
||||
if (active && styleActive !== undefined)
|
||||
$element.addClass(styleActive);
|
||||
if (!active && styleDisabled !== undefined)
|
||||
$element.addClass(styleDisabled);
|
||||
|
||||
$element.on('click', function (e) {
|
||||
if ($(e.target).is('input'))
|
||||
return true;
|
||||
|
||||
e.stopPropagation();
|
||||
$(this).find('label').click();
|
||||
});
|
||||
|
||||
|
||||
$element.find('label').on('click', function (e) {
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
|
||||
$element = $(this).parent();
|
||||
|
||||
$element
|
||||
.delay(transitionSpeed * 500).queue(function () {
|
||||
$(this).toggleClass('disabled')
|
||||
.toggleClass(styleActive)
|
||||
.toggleClass(styleDisabled)
|
||||
.dequeue();
|
||||
});
|
||||
|
||||
active = !($element.find('input').is(':checked'));
|
||||
|
||||
$element.find('input').attr('checked', active);
|
||||
options.onChange($element, active, e);
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
$.fn.toggleButtons.defaults = {
|
||||
onChange: function () {
|
||||
},
|
||||
width: 100,
|
||||
animated: true,
|
||||
transitionSpeed: undefined,
|
||||
label: {
|
||||
enabled: undefined,
|
||||
disabled: undefined
|
||||
},
|
||||
style: {
|
||||
enabled: undefined,
|
||||
disabled: undefined
|
||||
}
|
||||
};
|
||||
}($);
|
Reference in New Issue
Block a user