aboutsummaryrefslogtreecommitdiffstats
path: root/dbdocs/bower/admin-lte/dist/js/app.js
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--dbdocs/bower/admin-lte/dist/js/app.js772
1 files changed, 772 insertions, 0 deletions
diff --git a/dbdocs/bower/admin-lte/dist/js/app.js b/dbdocs/bower/admin-lte/dist/js/app.js
new file mode 100644
index 0000000..8759426
--- /dev/null
+++ b/dbdocs/bower/admin-lte/dist/js/app.js
@@ -0,0 +1,772 @@
+/*! AdminLTE app.js
+ * ================
+ * Main JS application file for AdminLTE v2. This file
+ * should be included in all pages. It controls some layout
+ * options and implements exclusive AdminLTE plugins.
+ *
+ * @Author Almsaeed Studio
+ * @Support <http://www.almsaeedstudio.com>
+ * @Email <abdullah@almsaeedstudio.com>
+ * @version 2.3.8
+ * @license MIT <http://opensource.org/licenses/MIT>
+ */
+
+//Make sure jQuery has been loaded before app.js
+if (typeof jQuery === "undefined") {
+ throw new Error("AdminLTE requires jQuery");
+}
+
+/* AdminLTE
+ *
+ * @type Object
+ * @description $.AdminLTE is the main object for the template's app.
+ * It's used for implementing functions and options related
+ * to the template. Keeping everything wrapped in an object
+ * prevents conflict with other plugins and is a better
+ * way to organize our code.
+ */
+$.AdminLTE = {};
+
+/* --------------------
+ * - AdminLTE Options -
+ * --------------------
+ * Modify these options to suit your implementation
+ */
+$.AdminLTE.options = {
+ //Add slimscroll to navbar menus
+ //This requires you to load the slimscroll plugin
+ //in every page before app.js
+ navbarMenuSlimscroll: true,
+ navbarMenuSlimscrollWidth: "3px", //The width of the scroll bar
+ navbarMenuHeight: "200px", //The height of the inner menu
+ //General animation speed for JS animated elements such as box collapse/expand and
+ //sidebar treeview slide up/down. This options accepts an integer as milliseconds,
+ //'fast', 'normal', or 'slow'
+ animationSpeed: 500,
+ //Sidebar push menu toggle button selector
+ sidebarToggleSelector: "[data-toggle='offcanvas']",
+ //Activate sidebar push menu
+ sidebarPushMenu: true,
+ //Activate sidebar slimscroll if the fixed layout is set (requires SlimScroll Plugin)
+ sidebarSlimScroll: true,
+ //Enable sidebar expand on hover effect for sidebar mini
+ //This option is forced to true if both the fixed layout and sidebar mini
+ //are used together
+ sidebarExpandOnHover: false,
+ //BoxRefresh Plugin
+ enableBoxRefresh: true,
+ //Bootstrap.js tooltip
+ enableBSToppltip: true,
+ BSTooltipSelector: "[data-toggle='tooltip']",
+ //Enable Fast Click. Fastclick.js creates a more
+ //native touch experience with touch devices. If you
+ //choose to enable the plugin, make sure you load the script
+ //before AdminLTE's app.js
+ enableFastclick: false,
+ //Control Sidebar Tree views
+ enableControlTreeView: true,
+ //Control Sidebar Options
+ enableControlSidebar: true,
+ controlSidebarOptions: {
+ //Which button should trigger the open/close event
+ toggleBtnSelector: "[data-toggle='control-sidebar']",
+ //The sidebar selector
+ selector: ".control-sidebar",
+ //Enable slide over content
+ slide: true
+ },
+ //Box Widget Plugin. Enable this plugin
+ //to allow boxes to be collapsed and/or removed
+ enableBoxWidget: true,
+ //Box Widget plugin options
+ boxWidgetOptions: {
+ boxWidgetIcons: {
+ //Collapse icon
+ collapse: 'fa-minus',
+ //Open icon
+ open: 'fa-plus',
+ //Remove icon
+ remove: 'fa-times'
+ },
+ boxWidgetSelectors: {
+ //Remove button selector
+ remove: '[data-widget="remove"]',
+ //Collapse button selector
+ collapse: '[data-widget="collapse"]'
+ }
+ },
+ //Direct Chat plugin options
+ directChat: {
+ //Enable direct chat by default
+ enable: true,
+ //The button to open and close the chat contacts pane
+ contactToggleSelector: '[data-widget="chat-pane-toggle"]'
+ },
+ //Define the set of colors to use globally around the website
+ colors: {
+ lightBlue: "#3c8dbc",
+ red: "#f56954",
+ green: "#00a65a",
+ aqua: "#00c0ef",
+ yellow: "#f39c12",
+ blue: "#0073b7",
+ navy: "#001F3F",
+ teal: "#39CCCC",
+ olive: "#3D9970",
+ lime: "#01FF70",
+ orange: "#FF851B",
+ fuchsia: "#F012BE",
+ purple: "#8E24AA",
+ maroon: "#D81B60",
+ black: "#222222",
+ gray: "#d2d6de"
+ },
+ //The standard screen sizes that bootstrap uses.
+ //If you change these in the variables.less file, change
+ //them here too.
+ screenSizes: {
+ xs: 480,
+ sm: 768,
+ md: 992,
+ lg: 1200
+ }
+};
+
+/* ------------------
+ * - Implementation -
+ * ------------------
+ * The next block of code implements AdminLTE's
+ * functions and plugins as specified by the
+ * options above.
+ */
+$(function () {
+ "use strict";
+
+ //Fix for IE page transitions
+ $("body").removeClass("hold-transition");
+
+ //Extend options if external options exist
+ if (typeof AdminLTEOptions !== "undefined") {
+ $.extend(true,
+ $.AdminLTE.options,
+ AdminLTEOptions);
+ }
+
+ //Easy access to options
+ var o = $.AdminLTE.options;
+
+ //Set up the object
+ _init();
+
+ //Activate the layout maker
+ $.AdminLTE.layout.activate();
+
+ //Enable sidebar tree view controls
+ if (o.enableControlTreeView) {
+ $.AdminLTE.tree('.sidebar');
+ }
+
+ //Enable control sidebar
+ if (o.enableControlSidebar) {
+ $.AdminLTE.controlSidebar.activate();
+ }
+
+ //Add slimscroll to navbar dropdown
+ if (o.navbarMenuSlimscroll && typeof $.fn.slimscroll != 'undefined') {
+ $(".navbar .menu").slimscroll({
+ height: o.navbarMenuHeight,
+ alwaysVisible: false,
+ size: o.navbarMenuSlimscrollWidth
+ }).css("width", "100%");
+ }
+
+ //Activate sidebar push menu
+ if (o.sidebarPushMenu) {
+ $.AdminLTE.pushMenu.activate(o.sidebarToggleSelector);
+ }
+
+ //Activate Bootstrap tooltip
+ if (o.enableBSToppltip) {
+ $('body').tooltip({
+ selector: o.BSTooltipSelector,
+ container: 'body'
+ });
+ }
+
+ //Activate box widget
+ if (o.enableBoxWidget) {
+ $.AdminLTE.boxWidget.activate();
+ }
+
+ //Activate fast click
+ if (o.enableFastclick && typeof FastClick != 'undefined') {
+ FastClick.attach(document.body);
+ }
+
+ //Activate direct chat widget
+ if (o.directChat.enable) {
+ $(document).on('click', o.directChat.contactToggleSelector, function () {
+ var box = $(this).parents('.direct-chat').first();
+ box.toggleClass('direct-chat-contacts-open');
+ });
+ }
+
+ /*
+ * INITIALIZE BUTTON TOGGLE
+ * ------------------------
+ */
+ $('.btn-group[data-toggle="btn-toggle"]').each(function () {
+ var group = $(this);
+ $(this).find(".btn").on('click', function (e) {
+ group.find(".btn.active").removeClass("active");
+ $(this).addClass("active");
+ e.preventDefault();
+ });
+
+ });
+});
+
+/* ----------------------------------
+ * - Initialize the AdminLTE Object -
+ * ----------------------------------
+ * All AdminLTE functions are implemented below.
+ */
+function _init() {
+ 'use strict';
+ /* Layout
+ * ======
+ * Fixes the layout height in case min-height fails.
+ *
+ * @type Object
+ * @usage $.AdminLTE.layout.activate()
+ * $.AdminLTE.layout.fix()
+ * $.AdminLTE.layout.fixSidebar()
+ */
+ $.AdminLTE.layout = {
+ activate: function () {
+ var _this = this;
+ _this.fix();
+ _this.fixSidebar();
+ $('body, html, .wrapper').css('height', 'auto');
+ $(window, ".wrapper").resize(function () {
+ _this.fix();
+ _this.fixSidebar();
+ });
+ },
+ fix: function () {
+ // Remove overflow from .wrapper if layout-boxed exists
+ $(".layout-boxed > .wrapper").css('overflow', 'hidden');
+ //Get window height and the wrapper height
+ var footer_height = $('.main-footer').outerHeight() || 0;
+ var neg = $('.main-header').outerHeight() + footer_height;
+ var window_height = $(window).height();
+ var sidebar_height = $(".sidebar").height() || 0;
+ //Set the min-height of the content and sidebar based on the
+ //the height of the document.
+ if ($("body").hasClass("fixed")) {
+ $(".content-wrapper, .right-side").css('min-height', window_height - footer_height);
+ } else {
+ var postSetWidth;
+ if (window_height >= sidebar_height) {
+ $(".content-wrapper, .right-side").css('min-height', window_height - neg);
+ postSetWidth = window_height - neg;
+ } else {
+ $(".content-wrapper, .right-side").css('min-height', sidebar_height);
+ postSetWidth = sidebar_height;
+ }
+
+ //Fix for the control sidebar height
+ var controlSidebar = $($.AdminLTE.options.controlSidebarOptions.selector);
+ if (typeof controlSidebar !== "undefined") {
+ if (controlSidebar.height() > postSetWidth)
+ $(".content-wrapper, .right-side").css('min-height', controlSidebar.height());
+ }
+
+ }
+ },
+ fixSidebar: function () {
+ //Make sure the body tag has the .fixed class
+ if (!$("body").hasClass("fixed")) {
+ if (typeof $.fn.slimScroll != 'undefined') {
+ $(".sidebar").slimScroll({destroy: true}).height("auto");
+ }
+ return;
+ } else if (typeof $.fn.slimScroll == 'undefined' && window.console) {
+ window.console.error("Error: the fixed layout requires the slimscroll plugin!");
+ }
+ //Enable slimscroll for fixed layout
+ if ($.AdminLTE.options.sidebarSlimScroll) {
+ if (typeof $.fn.slimScroll != 'undefined') {
+ //Destroy if it exists
+ $(".sidebar").slimScroll({destroy: true}).height("auto");
+ //Add slimscroll
+ $(".sidebar").slimScroll({
+ height: ($(window).height() - $(".main-header").height()) + "px",
+ color: "rgba(0,0,0,0.2)",
+ size: "3px"
+ });
+ }
+ }
+ }
+ };
+
+ /* PushMenu()
+ * ==========
+ * Adds the push menu functionality to the sidebar.
+ *
+ * @type Function
+ * @usage: $.AdminLTE.pushMenu("[data-toggle='offcanvas']")
+ */
+ $.AdminLTE.pushMenu = {
+ activate: function (toggleBtn) {
+ //Get the screen sizes
+ var screenSizes = $.AdminLTE.options.screenSizes;
+
+ //Enable sidebar toggle
+ $(document).on('click', toggleBtn, function (e) {
+ e.preventDefault();
+
+ //Enable sidebar push menu
+ if ($(window).width() > (screenSizes.sm - 1)) {
+ if ($("body").hasClass('sidebar-collapse')) {
+ $("body").removeClass('sidebar-collapse').trigger('expanded.pushMenu');
+ } else {
+ $("body").addClass('sidebar-collapse').trigger('collapsed.pushMenu');
+ }
+ }
+ //Handle sidebar push menu for small screens
+ else {
+ if ($("body").hasClass('sidebar-open')) {
+ $("body").removeClass('sidebar-open').removeClass('sidebar-collapse').trigger('collapsed.pushMenu');
+ } else {
+ $("body").addClass('sidebar-open').trigger('expanded.pushMenu');
+ }
+ }
+ });
+
+ $(".content-wrapper").click(function () {
+ //Enable hide menu when clicking on the content-wrapper on small screens
+ if ($(window).width() <= (screenSizes.sm - 1) && $("body").hasClass("sidebar-open")) {
+ $("body").removeClass('sidebar-open');
+ }
+ });
+
+ //Enable expand on hover for sidebar mini
+ if ($.AdminLTE.options.sidebarExpandOnHover
+ || ($('body').hasClass('fixed')
+ && $('body').hasClass('sidebar-mini'))) {
+ this.expandOnHover();
+ }
+ },
+ expandOnHover: function () {
+ var _this = this;
+ var screenWidth = $.AdminLTE.options.screenSizes.sm - 1;
+ //Expand sidebar on hover
+ $('.main-sidebar').hover(function () {
+ if ($('body').hasClass('sidebar-mini')
+ && $("body").hasClass('sidebar-collapse')
+ && $(window).width() > screenWidth) {
+ _this.expand();
+ }
+ }, function () {
+ if ($('body').hasClass('sidebar-mini')
+ && $('body').hasClass('sidebar-expanded-on-hover')
+ && $(window).width() > screenWidth) {
+ _this.collapse();
+ }
+ });
+ },
+ expand: function () {
+ $("body").removeClass('sidebar-collapse').addClass('sidebar-expanded-on-hover');
+ },
+ collapse: function () {
+ if ($('body').hasClass('sidebar-expanded-on-hover')) {
+ $('body').removeClass('sidebar-expanded-on-hover').addClass('sidebar-collapse');
+ }
+ }
+ };
+
+ /* Tree()
+ * ======
+ * Converts the sidebar into a multilevel
+ * tree view menu.
+ *
+ * @type Function
+ * @Usage: $.AdminLTE.tree('.sidebar')
+ */
+ $.AdminLTE.tree = function (menu) {
+ var _this = this;
+ var animationSpeed = $.AdminLTE.options.animationSpeed;
+ $(document).off('click', menu + ' li a')
+ .on('click', menu + ' li a', function (e) {
+ //Get the clicked link and the next element
+ var $this = $(this);
+ var checkElement = $this.next();
+
+ //Check if the next element is a menu and is visible
+ if ((checkElement.is('.treeview-menu')) && (checkElement.is(':visible')) && (!$('body').hasClass('sidebar-collapse'))) {
+ //Close the menu
+ checkElement.slideUp(animationSpeed, function () {
+ checkElement.removeClass('menu-open');
+ //Fix the layout in case the sidebar stretches over the height of the window
+ //_this.layout.fix();
+ });
+ checkElement.parent("li").removeClass("active");
+ }
+ //If the menu is not visible
+ else if ((checkElement.is('.treeview-menu')) && (!checkElement.is(':visible'))) {
+ //Get the parent menu
+ var parent = $this.parents('ul').first();
+ //Close all open menus within the parent
+ var ul = parent.find('ul:visible').slideUp(animationSpeed);
+ //Remove the menu-open class from the parent
+ ul.removeClass('menu-open');
+ //Get the parent li
+ var parent_li = $this.parent("li");
+
+ //Open the target menu and add the menu-open class
+ checkElement.slideDown(animationSpeed, function () {
+ //Add the class active to the parent li
+ checkElement.addClass('menu-open');
+ parent.find('li.active').removeClass('active');
+ parent_li.addClass('active');
+ //Fix the layout in case the sidebar stretches over the height of the window
+ _this.layout.fix();
+ });
+ }
+ //if this isn't a link, prevent the page from being redirected
+ if (checkElement.is('.treeview-menu')) {
+ e.preventDefault();
+ }
+ });
+ };
+
+ /* ControlSidebar
+ * ==============
+ * Adds functionality to the right sidebar
+ *
+ * @type Object
+ * @usage $.AdminLTE.controlSidebar.activate(options)
+ */
+ $.AdminLTE.controlSidebar = {
+ //instantiate the object
+ activate: function () {
+ //Get the object
+ var _this = this;
+ //Update options
+ var o = $.AdminLTE.options.controlSidebarOptions;
+ //Get the sidebar
+ var sidebar = $(o.selector);
+ //The toggle button
+ var btn = $(o.toggleBtnSelector);
+
+ //Listen to the click event
+ btn.on('click', function (e) {
+ e.preventDefault();
+ //If the sidebar is not open
+ if (!sidebar.hasClass('control-sidebar-open')
+ && !$('body').hasClass('control-sidebar-open')) {
+ //Open the sidebar
+ _this.open(sidebar, o.slide);
+ } else {
+ _this.close(sidebar, o.slide);
+ }
+ });
+
+ //If the body has a boxed layout, fix the sidebar bg position
+ var bg = $(".control-sidebar-bg");
+ _this._fix(bg);
+
+ //If the body has a fixed layout, make the control sidebar fixed
+ if ($('body').hasClass('fixed')) {
+ _this._fixForFixed(sidebar);
+ } else {
+ //If the content height is less than the sidebar's height, force max height
+ if ($('.content-wrapper, .right-side').height() < sidebar.height()) {
+ _this._fixForContent(sidebar);
+ }
+ }
+ },
+ //Open the control sidebar
+ open: function (sidebar, slide) {
+ //Slide over content
+ if (slide) {
+ sidebar.addClass('control-sidebar-open');
+ } else {
+ //Push the content by adding the open class to the body instead
+ //of the sidebar itself
+ $('body').addClass('control-sidebar-open');
+ }
+ },
+ //Close the control sidebar
+ close: function (sidebar, slide) {
+ if (slide) {
+ sidebar.removeClass('control-sidebar-open');
+ } else {
+ $('body').removeClass('control-sidebar-open');
+ }
+ },
+ _fix: function (sidebar) {
+ var _this = this;
+ if ($("body").hasClass('layout-boxed')) {
+ sidebar.css('position', 'absolute');
+ sidebar.height($(".wrapper").height());
+ if (_this.hasBindedResize) {
+ return;
+ }
+ $(window).resize(function () {
+ _this._fix(sidebar);
+ });
+ _this.hasBindedResize = true;
+ } else {
+ sidebar.css({
+ 'position': 'fixed',
+ 'height': 'auto'
+ });
+ }
+ },
+ _fixForFixed: function (sidebar) {
+ sidebar.css({
+ 'position': 'fixed',
+ 'max-height': '100%',
+ 'overflow': 'auto',
+ 'padding-bottom': '50px'
+ });
+ },
+ _fixForContent: function (sidebar) {
+ $(".content-wrapper, .right-side").css('min-height', sidebar.height());
+ }
+ };
+
+ /* BoxWidget
+ * =========
+ * BoxWidget is a plugin to handle collapsing and
+ * removing boxes from the screen.
+ *
+ * @type Object
+ * @usage $.AdminLTE.boxWidget.activate()
+ * Set all your options in the main $.AdminLTE.options object
+ */
+ $.AdminLTE.boxWidget = {
+ selectors: $.AdminLTE.options.boxWidgetOptions.boxWidgetSelectors,
+ icons: $.AdminLTE.options.boxWidgetOptions.boxWidgetIcons,
+ animationSpeed: $.AdminLTE.options.animationSpeed,
+ activate: function (_box) {
+ var _this = this;
+ if (!_box) {
+ _box = document; // activate all boxes per default
+ }
+ //Listen for collapse event triggers
+ $(_box).on('click', _this.selectors.collapse, function (e) {
+ e.preventDefault();
+ _this.collapse($(this));
+ });
+
+ //Listen for remove event triggers
+ $(_box).on('click', _this.selectors.remove, function (e) {
+ e.preventDefault();
+ _this.remove($(this));
+ });
+ },
+ collapse: function (element) {
+ var _this = this;
+ //Find the box parent
+ var box = element.parents(".box").first();
+ //Find the body and the footer
+ var box_content = box.find("> .box-body, > .box-footer, > form >.box-body, > form > .box-footer");
+ if (!box.hasClass("collapsed-box")) {
+ //Convert minus into plus
+ element.children(":first")
+ .removeClass(_this.icons.collapse)
+ .addClass(_this.icons.open);
+ //Hide the content
+ box_content.slideUp(_this.animationSpeed, function () {
+ box.addClass("collapsed-box");
+ });
+ } else {
+ //Convert plus into minus
+ element.children(":first")
+ .removeClass(_this.icons.open)
+ .addClass(_this.icons.collapse);
+ //Show the content
+ box_content.slideDown(_this.animationSpeed, function () {
+ box.removeClass("collapsed-box");
+ });
+ }
+ },
+ remove: function (element) {
+ //Find the box parent
+ var box = element.parents(".box").first();
+ box.slideUp(this.animationSpeed);
+ }
+ };
+}
+
+/* ------------------
+ * - Custom Plugins -
+ * ------------------
+ * All custom plugins are defined below.
+ */
+
+/*
+ * BOX REFRESH BUTTON
+ * ------------------
+ * This is a custom plugin to use with the component BOX. It allows you to add
+ * a refresh button to the box. It converts the box's state to a loading state.
+ *
+ * @type plugin
+ * @usage $("#box-widget").boxRefresh( options );
+ */
+(function ($) {
+
+ "use strict";
+
+ $.fn.boxRefresh = function (options) {
+
+ // Render options
+ var settings = $.extend({
+ //Refresh button selector
+ trigger: ".refresh-btn",
+ //File source to be loaded (e.g: ajax/src.php)
+ source: "",
+ //Callbacks
+ onLoadStart: function (box) {
+ return box;
+ }, //Right after the button has been clicked
+ onLoadDone: function (box) {
+ return box;
+ } //When the source has been loaded
+
+ }, options);
+
+ //The overlay
+ var overlay = $('<div class="overlay"><div class="fa fa-refresh fa-spin"></div></div>');
+
+ return this.each(function () {
+ //if a source is specified
+ if (settings.source === "") {
+ if (window.console) {
+ window.console.log("Please specify a source first - boxRefresh()");
+ }
+ return;
+ }
+ //the box
+ var box = $(this);
+ //the button
+ var rBtn = box.find(settings.trigger).first();
+
+ //On trigger click
+ rBtn.on('click', function (e) {
+ e.preventDefault();
+ //Add loading overlay
+ start(box);
+
+ //Perform ajax call
+ box.find(".box-body").load(settings.source, function () {
+ done(box);
+ });
+ });
+ });
+
+ function start(box) {
+ //Add overlay and loading img
+ box.append(overlay);
+
+ settings.onLoadStart.call(box);
+ }
+
+ function done(box) {
+ //Remove overlay and loading img
+ box.find(overlay).remove();
+
+ settings.onLoadDone.call(box);
+ }
+
+ };
+
+})(jQuery);
+
+/*
+ * EXPLICIT BOX CONTROLS
+ * -----------------------
+ * This is a custom plugin to use with the component BOX. It allows you to activate
+ * a box inserted in the DOM after the app.js was loaded, toggle and remove box.
+ *
+ * @type plugin
+ * @usage $("#box-widget").activateBox();
+ * @usage $("#box-widget").toggleBox();
+ * @usage $("#box-widget").removeBox();
+ */
+(function ($) {
+
+ 'use strict';
+
+ $.fn.activateBox = function () {
+ $.AdminLTE.boxWidget.activate(this);
+ };
+
+ $.fn.toggleBox = function () {
+ var button = $($.AdminLTE.boxWidget.selectors.collapse, this);
+ $.AdminLTE.boxWidget.collapse(button);
+ };
+
+ $.fn.removeBox = function () {
+ var button = $($.AdminLTE.boxWidget.selectors.remove, this);
+ $.AdminLTE.boxWidget.remove(button);
+ };
+
+})(jQuery);
+
+/*
+ * TODO LIST CUSTOM PLUGIN
+ * -----------------------
+ * This plugin depends on iCheck plugin for checkbox and radio inputs
+ *
+ * @type plugin
+ * @usage $("#todo-widget").todolist( options );
+ */
+(function ($) {
+
+ 'use strict';
+
+ $.fn.todolist = function (options) {
+ // Render options
+ var settings = $.extend({
+ //When the user checks the input
+ onCheck: function (ele) {
+ return ele;
+ },
+ //When the user unchecks the input
+ onUncheck: function (ele) {
+ return ele;
+ }
+ }, options);
+
+ return this.each(function () {
+
+ if (typeof $.fn.iCheck != 'undefined') {
+ $('input', this).on('ifChecked', function () {
+ var ele = $(this).parents("li").first();
+ ele.toggleClass("done");
+ settings.onCheck.call(ele);
+ });
+
+ $('input', this).on('ifUnchecked', function () {
+ var ele = $(this).parents("li").first();
+ ele.toggleClass("done");
+ settings.onUncheck.call(ele);
+ });
+ } else {
+ $('input', this).on('change', function () {
+ var ele = $(this).parents("li").first();
+ ele.toggleClass("done");
+ if ($('input', ele).is(":checked")) {
+ settings.onCheck.call(ele);
+ } else {
+ settings.onUncheck.call(ele);
+ }
+ });
+ }
+ });
+ };
+}(jQuery));