add sppd to git repo
This commit is contained in:
153
assets/pages/jquery.todo.js
Normal file
153
assets/pages/jquery.todo.js
Normal file
@@ -0,0 +1,153 @@
|
||||
/**
|
||||
* Theme: Zircos Admin Template
|
||||
* Author: Coderthemes
|
||||
* Todos-widget
|
||||
*/
|
||||
|
||||
!function($) {
|
||||
"use strict";
|
||||
|
||||
var TodoApp = function() {
|
||||
this.$body = $("body"),
|
||||
this.$todoContainer = $('#todo-container'),
|
||||
this.$todoMessage = $("#todo-message"),
|
||||
this.$todoRemaining = $("#todo-remaining"),
|
||||
this.$todoTotal = $("#todo-total"),
|
||||
this.$archiveBtn = $("#btn-archive"),
|
||||
this.$todoList = $("#todo-list"),
|
||||
this.$todoDonechk = ".todo-done",
|
||||
this.$todoForm = $("#todo-form"),
|
||||
this.$todoInput = $("#todo-input-text"),
|
||||
this.$todoBtn = $("#todo-btn-submit"),
|
||||
|
||||
this.$todoData = [
|
||||
{
|
||||
'id': '1',
|
||||
'text': 'Design One page theme',
|
||||
'done': false
|
||||
},
|
||||
{
|
||||
'id': '2',
|
||||
'text': 'Build a js based app',
|
||||
'done': true
|
||||
},
|
||||
{
|
||||
'id': '3',
|
||||
'text': 'Creating component page',
|
||||
'done': true
|
||||
},
|
||||
{
|
||||
'id': '4',
|
||||
'text': 'Testing??',
|
||||
'done': true
|
||||
},
|
||||
{
|
||||
'id': '5',
|
||||
'text': 'Hehe!! This is looks cool!',
|
||||
'done': false
|
||||
},
|
||||
{
|
||||
'id': '6',
|
||||
'text': 'Build an angular app',
|
||||
'done': true
|
||||
}];
|
||||
|
||||
this.$todoCompletedData = [];
|
||||
this.$todoUnCompletedData = [];
|
||||
};
|
||||
|
||||
//mark/unmark - you can use ajax to save data on server side
|
||||
TodoApp.prototype.markTodo = function(todoId, complete) {
|
||||
for(var count=0; count<this.$todoData.length;count++) {
|
||||
if(this.$todoData[count].id == todoId) {
|
||||
this.$todoData[count].done = complete;
|
||||
}
|
||||
}
|
||||
},
|
||||
//adds new todo
|
||||
TodoApp.prototype.addTodo = function(todoText) {
|
||||
this.$todoData.push({'id': this.$todoData.length, 'text': todoText, 'done': false});
|
||||
//regenerate list
|
||||
this.generate();
|
||||
},
|
||||
//Archives the completed todos
|
||||
TodoApp.prototype.archives = function() {
|
||||
this.$todoUnCompletedData = [];
|
||||
for(var count=0; count<this.$todoData.length;count++) {
|
||||
//geretaing html
|
||||
var todoItem = this.$todoData[count];
|
||||
if(todoItem.done == true) {
|
||||
this.$todoCompletedData.push(todoItem);
|
||||
} else {
|
||||
this.$todoUnCompletedData.push(todoItem);
|
||||
}
|
||||
}
|
||||
this.$todoData = [];
|
||||
this.$todoData = [].concat(this.$todoUnCompletedData);
|
||||
//regenerate todo list
|
||||
this.generate();
|
||||
},
|
||||
//Generates todos
|
||||
TodoApp.prototype.generate = function() {
|
||||
//clear list
|
||||
this.$todoList.html("");
|
||||
var remaining = 0;
|
||||
for(var count=0; count<this.$todoData.length;count++) {
|
||||
//geretaing html
|
||||
var todoItem = this.$todoData[count];
|
||||
if(todoItem.done == true)
|
||||
this.$todoList.prepend('<li class="list-group-item"><div class="checkbox checkbox-primary"><input class="todo-done" id="' + todoItem.id + '" type="checkbox" checked><label for="' + todoItem.id + '">' + todoItem.text + '</label></div></li>');
|
||||
else {
|
||||
remaining = remaining + 1;
|
||||
this.$todoList.prepend('<li class="list-group-item"><div class="checkbox checkbox-primary"><input class="todo-done" id="' + todoItem.id + '" type="checkbox"><label for="' + todoItem.id + '">' + todoItem.text + '</label></div></li>');
|
||||
}
|
||||
}
|
||||
|
||||
//set total in ui
|
||||
this.$todoTotal.text(this.$todoData.length);
|
||||
//set remaining
|
||||
this.$todoRemaining.text(remaining);
|
||||
},
|
||||
//init todo app
|
||||
TodoApp.prototype.init = function () {
|
||||
var $this = this;
|
||||
//generating todo list
|
||||
this.generate();
|
||||
|
||||
//binding archive
|
||||
this.$archiveBtn.on("click", function(e) {
|
||||
e.preventDefault();
|
||||
$this.archives();
|
||||
return false;
|
||||
});
|
||||
|
||||
//binding todo done chk
|
||||
$(document).on("change", this.$todoDonechk, function() {
|
||||
if(this.checked)
|
||||
$this.markTodo($(this).attr('id'), true);
|
||||
else
|
||||
$this.markTodo($(this).attr('id'), false);
|
||||
//regenerate list
|
||||
$this.generate();
|
||||
});
|
||||
|
||||
//binding the new todo button
|
||||
this.$todoBtn.on("click", function() {
|
||||
if ($this.$todoInput.val() == "" || typeof($this.$todoInput.val()) == 'undefined' || $this.$todoInput.val() == null) {
|
||||
sweetAlert("Oops...", "You forgot to enter todo text", "error");
|
||||
$this.$todoInput.focus();
|
||||
} else {
|
||||
$this.addTodo($this.$todoInput.val());
|
||||
}
|
||||
});
|
||||
},
|
||||
//init TodoApp
|
||||
$.TodoApp = new TodoApp, $.TodoApp.Constructor = TodoApp
|
||||
|
||||
}(window.jQuery),
|
||||
|
||||
//initializing todo app
|
||||
function($) {
|
||||
"use strict";
|
||||
$.TodoApp.init()
|
||||
}(window.jQuery);
|
||||
Reference in New Issue
Block a user