aboutsummaryrefslogtreecommitdiffhomepage
path: root/public/bower_components/admin-lte/build/js/TodoList.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/bower_components/admin-lte/build/js/TodoList.js')
-rw-r--r--public/bower_components/admin-lte/build/js/TodoList.js108
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);