From 61807729d666d2fe50a23b4cb066c69add221fc2 Mon Sep 17 00:00:00 2001 From: "Yann Esposito (Yogsototh)" Date: Thu, 14 Apr 2011 17:11:39 +0200 Subject: [PATCH] Almost there --- site/css/main.css | 2 +- site/index.html | 8 +++-- site/js/todo.js | 78 ++++++++++++++++++++++++++++++++++++++++++++++ site/src/main.scss | 2 +- 4 files changed, 85 insertions(+), 5 deletions(-) diff --git a/site/css/main.css b/site/css/main.css index 63784bb..fb4c542 100644 --- a/site/css/main.css +++ b/site/css/main.css @@ -159,7 +159,7 @@ input#addtasktextfield { } /* line 132, ../src/main.scss */ -.item.first { +.item:first-child { border-top: 1px solid #DDD; } diff --git a/site/index.html b/site/index.html index 264ae12..5e13b91 100644 --- a/site/index.html +++ b/site/index.html @@ -50,7 +50,8 @@
-
+
diff --git a/site/js/todo.js b/site/js/todo.js index 550aa96..46a3028 100644 --- a/site/js/todo.js +++ b/site/js/todo.js @@ -18,6 +18,84 @@ function autoclear(id, defaultValue) { $('#'+id).blur( function() { inputDefaultValue(this,defaultValue) } ); } +/* Model */ +var TodoList = function() { + this.undone = [ + {id: 1, text: "Read \"Founder at Work\""}, + {id: 2, text: "Eat lunch"}, + {id: 3, text: "Pick up Sally from the airport"}, + {id: 4, text: "Get fresh fruit from the grocery store"}, + ]; + this.done = [ + {id: 5, text: "Brush your teeth"}, + {id: 6, text: "Walk the dog"}, + ]; + this.nextId=7; +} +TodoList.prototype.addTodo= function(text) { + var self = this; + self.undone += { id: self.nextId, text: text }; + self.nextId += 1; +} + +/* Controller */ +var MainController = function() { + this.todolist=new TodoList(); +} +MainController.prototype.addDone = function(text, id) { + var self=this; + if (id === null) { + id=self.todolist.nextId; + self.todolist.nextId+=1; + self.todolist.undone += {id: id, text: text}; + } + $('#todolist').prepend('
'+ + '' + + '
'); +} +MainController.prototype.addTodo = function(text, id) { + var self=this; + $('#todolist').prepend('
'+ + '' + + '' + + '
'); + $('#item_'+id).click(function() {self.finished(id);}); +} + +MainController.prototype.finished = function(item_id) { + var self=this; + log(self.todolist); + log(item_id); + log('loop'); + $.each( self.todolist.undone, function (i,v) { + log(v['id']) + if (v['id'] == item_id) { + element=v; + self.todolist.undone.splice(i,1); + self.todolist.done += v; + } + }); + $('.item').remove(); + self.initialization(); +} + +MainController.prototype.initialization = function() { + var self=this; + $.each( self.todolist.done.reverse(), function(i,v) { + self.addDone(v['text'], v['id']); + }); + self.todolist.done.reverse(); + $.each( self.todolist.undone.reverse(), function(i,v) { + self.addTodo(v['text'],v['id']); + }); + self.todolist.undone.reverse(); +} + +var mainController = new MainController(); + +/* Starting loop */ $(document).ready( function() { autoclear('addtasktextfield','Add a task...'); + mainController.initialization(); }); diff --git a/site/src/main.scss b/site/src/main.scss index 0fbe4a4..dc83563 100644 --- a/site/src/main.scss +++ b/site/src/main.scss @@ -129,7 +129,7 @@ input#addtasktextfield { line-height: 39px; padding-left: 20px; } -.item.first { +.item:first-child { border-top: 1px solid #DDD; } .item label { margin-left: 10px; padding-left: 0;}