Difference between revisions of "BZtodo"
From Wiki2
Line 4: | Line 4: | ||
:(857)498-2574 | :(857)498-2574 | ||
:http://mckennatim.github.io/mckennatim/ | :http://mckennatim.github.io/mckennatim/ | ||
:https://github.com/mckennatim/BZtodo | |||
====[https://github.com/mckennatim/BZtodo/blob/master/client/js/main.js main.js]==== | ====[https://github.com/mckennatim/BZtodo/blob/master/client/js/main.js main.js]==== | ||
<source lang="javascript"> | <source lang="javascript"> |
Revision as of 03:07, 3 April 2014
running on http://cascada.sitebuilt.net/BZtodo/client/
- by Timothy S. McKenna
- mckenna.tim@gmail.com
- (857)498-2574
- http://mckennatim.github.io/mckennatim/
- https://github.com/mckennatim/BZtodo
main.js
<source lang="javascript"> $( document ).ready(function() {
ctrl.loadList(); console.log(ctrl.priorityOptions());
$('form').submit(function(){ var newItem = $('input').val(); if(newItem.length>1){ ctrl.addItem(newItem); } $('input').val(); return false; });
$('input[type="checkbox"]').live('click',function(){ ctrl.updDone($(this)); })
$('#priority').live('change', function(){ ctrl.updPriority($(this)); })
$('a').live('click', function(){ ctrl.deleteItem($(this)); return false; })
$('#sortDoneBut').click(function(){ ctrl.sortOnDone(); return false; })
$('#sortPriorBut').click(function(){ ctrl.sortOnPriority(); return false; })
});
var ctrl ={
list: {BZtodo:[]}, priority: ['high', 'normal', 'low'], defaultPriority: 'normal', defaultPriorityIdx: 1, priorityOptions: function(pridx){ var ostr= '<select id="priority">'; $.each(this.priority, function(index, opt){ if(index==pridx){ ostr+= '<option value='+index+' selected="selected">'+opt+'</option>'; }else{ ostr+= '<option value='+index+'>'+opt+'</option>'; } }) ostr+='</select>'; return ostr; }, addItem: function(item){ this.add2list(item); }, add2list:function(item){ var itemObject ={ item: item, done: false, priority: this.defaultPriorityIdx } view.appendLi(itemObject); this.list.BZtodo.push(itemObject); this.saveList(); }, saveList: function(){ var listJ=JSON.stringify(this.list); localStorage.setItem('BZtodo', listJ); //$.post("../server/post.php", {data: listJ}).done(function(data){}); }, loadList: function(){ /* var nqrep = 'list=BZtodo'; $.getJSON('../server/get.php', nqrep, function(data) { var sdata= list.BZtodos = data.items; localStorage.setItem('BZtodo',JSON.stringify(sdata)); }); */ if(localStorage.BZtodo!=undefined){ this.list= JSON.parse(localStorage.BZtodo); view.refreshList(this.list.BZtodo); } }, updDone: function(el){ var done; if(el.prop('checked')){ done=true; }else{ done=false } console.log(el.parent().index()) this.list.BZtodo[el.parent().index()].done=done; this.saveList(); }, updPriority: function(el){ this.list.BZtodo[el.parent().index()].priority=el.val()*1; this.saveList(); }, deleteItem: function(el){ var idx = el.parent().index(); if (idx > -1) { this.list.BZtodo.splice(idx, 1); } view.refreshList(this.list.BZtodo); this.saveList(); }, sortOnDone: function(){ this.list.BZtodo.sort(function(a,b){ return a.done-b.done }) console.log(this.list.BZtodo) view.refreshList(this.list.BZtodo); this.saveList(); }, sortOnPriority: function(){ this.list.BZtodo.sort(function(a,b){ return a.priority-b.priority }) console.log(this.list.BZtodo) view.refreshList(this.list.BZtodo); this.saveList(); }
}
var view ={
appendLi: function(itemObj){ var item = itemObj.item; var priority = itemObj.priority; var checked=; if(itemObj.done){checked='checked="checked"'}
$('ul').append('
'); }, refreshList: function(list){ $('ul').empty(); $.each(list, function(index, itemObj) { view.appendLi(itemObj); }); } } </source>
index.html
<source lang="html5"> <!DOCTYPE html>
</source>