diff options
Diffstat (limited to 'public/bower_components/admin-lte/build/js/TodoList.js')
-rw-r--r-- | public/bower_components/admin-lte/build/js/TodoList.js | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/public/bower_components/admin-lte/build/js/TodoList.js b/public/bower_components/admin-lte/build/js/TodoList.js new file mode 100644 index 0000000..65a6758 --- /dev/null +++ b/public/bower_components/admin-lte/build/js/TodoList.js @@ -0,0 +1,108 @@ +/* TodoList() + * ========= + * Converts a list into a todoList. + * + * @Usage: $('.my-list').todoList(options) + * or add [data-widget="todo-list"] to the ul element + * Pass any option as data-option="value" + */ ++function ($) { + 'use strict'; + + var DataKey = 'lte.todolist'; + + var Default = { + onCheck : function (item) { + return item; + }, + onUnCheck: function (item) { + return item; + } + }; + + var Selector = { + data: '[data-widget="todo-list"]' + }; + + var ClassName = { + done: 'done' + }; + + // TodoList Class Definition + // ========================= + var TodoList = function (element, options) { + this.element = element; + this.options = options; + + this._setUpListeners(); + }; + + TodoList.prototype.toggle = function (item) { + item.parents(Selector.li).first().toggleClass(ClassName.done); + if (!item.prop('checked')) { + this.unCheck(item); + return; + } + + this.check(item); + }; + + TodoList.prototype.check = function (item) { + this.options.onCheck.call(item); + }; + + TodoList.prototype.unCheck = function (item) { + this.options.onUnCheck.call(item); + }; + + // Private + + TodoList.prototype._setUpListeners = function () { + var that = this; + $(this.element).on('change ifChanged', 'input:checkbox', function () { + that.toggle($(this)); + }); + }; + + // Plugin Definition + // ================= + function Plugin(option) { + return this.each(function () { + var $this = $(this); + var data = $this.data(DataKey); + + if (!data) { + var options = $.extend({}, Default, $this.data(), typeof option == 'object' && option); + $this.data(DataKey, (data = new TodoList($this, options))); + } + + if (typeof data == 'string') { + if (typeof data[option] == 'undefined') { + throw new Error('No method named ' + option); + } + data[option](); + } + }); + } + + var old = $.fn.todoList; + + $.fn.todoList = Plugin; + $.fn.todoList.Constructor = TodoList; + + // No Conflict Mode + // ================ + $.fn.todoList.noConflict = function () { + $.fn.todoList = old; + return this; + }; + + // TodoList Data API + // ================= + $(window).on('load', function () { + $(Selector.data).each(function () { + Plugin.call($(this)); + }); + }); + +}(jQuery); |