diff --git a/release/app.js b/release/app.js index c320857..730030f 100644 --- a/release/app.js +++ b/release/app.js @@ -1 +1 @@ -var CompleteTasksUseCase,LocalStorage,RoutingAdapter,StatsView,Task,TodoListView,WebGlue,WebTodoApp,__hasProp={}.hasOwnProperty,__bind=function(a,b){return function(){return a.apply(b,arguments)}};_.defaults(this,{Before:function(a,b,c){return YouAreDaBomb(a,b).before(c)},BeforeAnyCallback:function(a,b,c){return YouAreDaBomb(a,b).beforeAnyCallback(c)},After:function(a,b,c){return YouAreDaBomb(a,b).after(c)},Around:function(a,b,c){return YouAreDaBomb(a,b).around(c)},AfterAll:function(a,b,c){var d,e,f,g;g=[];for(e=0,f=b.length;e1,c={remaining:a,moreThanOne:f,completed:b},e=h(c),d=$(e),d.find("#all-tasks").click(function(){return i.allTasksClicked()}),d.find("#active-tasks").click(function(){return i.remainingTasksClicked()}),d.find("#completed-tasks").click(function(){return i.completedTasksClicked()}),$("#footer").html(d),$("#clear-completed").click(function(){return i.clearCompletedClicked()})},a.prototype.clearPreviousSelection=function(){return["#all-tasks","#active-tasks","#completed-tasks"].each(function(a){return $(a).removeClass("selected")})},a.prototype.selectAll=function(){return this.clearPreviousSelection(),$("#all-tasks").addClass("selected")},a.prototype.selectActive=function(){return this.clearPreviousSelection(),$("#active-tasks").addClass("selected")},a.prototype.selectCompleted=function(){return this.clearPreviousSelection(),$("#completed-tasks").addClass("selected")},a.prototype.allTasksClicked=function(){},a.prototype.completedTasksClicked=function(){},a.prototype.remainingTasksClicked=function(){},a.prototype.clearCompletedClicked=function(){},a}(),RoutingAdapter=function(){function a(){this.showActive=__bind(this.showActive,this),this.showCompleted=__bind(this.showCompleted,this),this.showAll=__bind(this.showAll,this),this.setUrlToCompleted=__bind(this.setUrlToCompleted,this),this.setUrlToActive=__bind(this.setUrlToActive,this),this.setUrlToAll=__bind(this.setUrlToAll,this),this.start=__bind(this.start,this);var a,b=this;a={"/":function(){return b.showAll()},"/active":function(){return b.showActive()},"/completed":function(){return b.showCompleted()}},this.router=Router(a)}return a.prototype.start=function(){return this.router.init()},a.prototype.setUrlToAll=function(){return this.router.setRoute("/")},a.prototype.setUrlToActive=function(){return this.router.setRoute("/active")},a.prototype.setUrlToCompleted=function(){return this.router.setRoute("/completed")},a.prototype.showAll=function(){},a.prototype.showCompleted=function(){},a.prototype.showActive=function(){},a}(),WebGlue=function(){function a(a,b,c,d,e){var f=this;this.useCase=a,this.todoListView=b,this.statsView=c,this.storage=d,this.routingAdapter=e,this.routingGlue=__bind(this.routingGlue,this),this.statsViewGlue=__bind(this.statsViewGlue,this),this.todoListViewGlue=__bind(this.todoListViewGlue,this),this.todoListViewGlue(),this.statsViewGlue(),this.routingGlue(),After(this.useCase,"start",function(){return f.useCase.setInitialTasks(f.storage.getTasks())}),AfterAll(this.useCase,["addNewTask","updateTaskContent","deleteTask","completeAllTasks","toggleTaskCompletion"],function(){return f.storage.set("tasks",f.useCase.todoTasks)}),LogAll(this.useCase,"UseCase"),LogAll(this.todoListView,"TodoListView"),LogAll(this.statsView,"StatsView"),LogAll(this.routingAdapter,"Router")}return a.prototype.todoListViewGlue=function(){var a=this;return AutoBind(this.todoListView,this.useCase),After(this.todoListView,"enterKeyPressed",function(b){return a.useCase.addNewTask(new Task(b))}),After(this.todoListView,"taskContentDoubleClicked",this.useCase.editTaskContent),After(this.todoListView,"enterKeyPressedWhenEditing",this.useCase.updateTaskContent),After(this.useCase,"addNewTask",this.todoListView.addNewTask),After(this.useCase,"showAll",function(){return a.todoListView.showTasks(a.useCase.todoTasks)}),After(this.useCase,"deleteTask",this.todoListView.deleteTask),After(this.useCase,"completeTask",this.todoListView.completeTask),After(this.useCase,"uncompleteTask",this.todoListView.uncompleteTask),After(this.useCase,"editTaskContent",this.todoListView.editTaskContent),After(this.useCase,"updateTaskContent",this.todoListView.updateTaskContent),After(this.useCase,"showActive",function(){return a.todoListView.showTasks(a.useCase.remainingTasks())}),After(this.useCase,"showCompleted",function(){return a.todoListView.showTasks(a.useCase.completedTasks())})},a.prototype.statsViewGlue=function(){var a=this;return AfterAll(this.useCase,["addNewTask","deleteTask","completeAllTasks","toggleTaskCompletion","showAll","showCompleted","showActive"],function(){return a.statsView.showStats(a.useCase.remainingTasks().length,a.useCase.completedTasks().length)}),After(this.statsView,"allTasksClicked",function(){return a.useCase.showAll()}),After(this.statsView,"completedTasksClicked",function(){return a.useCase.showCompleted()}),After(this.statsView,"remainingTasksClicked",function(){return a.useCase.showActive()}),After(this.statsView,"clearCompletedClicked",function(){return a.useCase.clearCompleted()}),After(this.useCase,"showCompleted",function(){return a.statsView.selectCompleted()}),After(this.useCase,"showAll",function(){return a.statsView.selectAll()}),After(this.useCase,"showActive",function(){return a.statsView.selectActive()})},a.prototype.routingGlue=function(){var a=this;return After(this.routingAdapter,"showAll",function(){return a.useCase.showAll()}),After(this.routingAdapter,"showCompleted",function(){return a.useCase.showCompleted()}),After(this.routingAdapter,"showActive",function(){return a.useCase.showActive()}),After(this.useCase,"showAll",function(){return a.routingAdapter.setUrlToAll()}),After(this.useCase,"showActive",function(){return a.routingAdapter.setUrlToActive()}),After(this.useCase,"showCompleted",function(){return a.routingAdapter.setUrlToCompleted()})},a}(),WebTodoApp=function(){function a(){var a,b,c,d,e,f;f=new CompleteTasksUseCase,f.start(),window.useCase=f,e=new TodoListView,d=new StatsView,b=new LocalStorage("todo_app"),c=new RoutingAdapter,a=new WebGlue(f,e,d,b,c),f.start(),c.start()}return a}(),new WebTodoApp \ No newline at end of file +var CompleteTasksUseCase,LocalStorage,RoutingAdapter,StatsView,Task,TodoListView,WebGlue,WebTodoApp,__hasProp={}.hasOwnProperty,__bind=function(a,b){return function(){return a.apply(b,arguments)}};_.defaults(this,{Before:function(a,b,c){return YouAreDaBomb(a,b).before(c)},BeforeAnyCallback:function(a,b,c){return YouAreDaBomb(a,b).beforeAnyCallback(c)},After:function(a,b,c){return YouAreDaBomb(a,b).after(c)},Around:function(a,b,c){return YouAreDaBomb(a,b).around(c)},AfterAll:function(a,b,c){var d,e,f,g;g=[];for(e=0,f=b.length;e1,c={remaining:a,moreThanOne:f,completed:b},e=h(c),d=$(e),d.find("#all-tasks").click(function(){return i.allTasksClicked()}),d.find("#active-tasks").click(function(){return i.remainingTasksClicked()}),d.find("#completed-tasks").click(function(){return i.completedTasksClicked()}),$("#footer").html(d),$("#clear-completed").click(function(){return i.clearCompletedClicked()})},a.prototype.clearPreviousSelection=function(){return["#all-tasks","#active-tasks","#completed-tasks"].each(function(a){return $(a).removeClass("selected")})},a.prototype.selectAll=function(){return this.clearPreviousSelection(),$("#all-tasks").addClass("selected")},a.prototype.selectActive=function(){return this.clearPreviousSelection(),$("#active-tasks").addClass("selected")},a.prototype.selectCompleted=function(){return this.clearPreviousSelection(),$("#completed-tasks").addClass("selected")},a.prototype.allTasksClicked=function(){},a.prototype.completedTasksClicked=function(){},a.prototype.remainingTasksClicked=function(){},a.prototype.clearCompletedClicked=function(){},a}(),RoutingAdapter=function(){function a(){this.showActive=__bind(this.showActive,this),this.showCompleted=__bind(this.showCompleted,this),this.showAll=__bind(this.showAll,this),this.setUrlToCompleted=__bind(this.setUrlToCompleted,this),this.setUrlToActive=__bind(this.setUrlToActive,this),this.setUrlToAll=__bind(this.setUrlToAll,this),this.start=__bind(this.start,this);var a,b=this;a={"/":function(){return b.showAll()},"/active":function(){return b.showActive()},"/completed":function(){return b.showCompleted()}},this.router=Router(a)}return a.prototype.start=function(){return this.router.init()},a.prototype.setUrlToAll=function(){return this.router.setRoute("/")},a.prototype.setUrlToActive=function(){return this.router.setRoute("/active")},a.prototype.setUrlToCompleted=function(){return this.router.setRoute("/completed")},a.prototype.showAll=function(){},a.prototype.showCompleted=function(){},a.prototype.showActive=function(){},a}(),WebGlue=function(){function a(a,b,c,d,e){var f=this;this.useCase=a,this.todoListView=b,this.statsView=c,this.storage=d,this.routingAdapter=e,this.routingGlue=__bind(this.routingGlue,this),this.statsViewGlue=__bind(this.statsViewGlue,this),this.todoListViewGlue=__bind(this.todoListViewGlue,this),this.todoListViewGlue(),this.statsViewGlue(),this.routingGlue(),After(this.useCase,"start",function(){return f.useCase.setInitialTasks(f.storage.getTasks())}),AfterAll(this.useCase,["addNewTask","updateTaskContent","deleteTask","completeAllTasks","toggleTaskCompletion"],function(){return f.storage.set("tasks",f.useCase.todoTasks)}),LogAll(this.useCase,"UseCase"),LogAll(this.todoListView,"TodoListView"),LogAll(this.statsView,"StatsView"),LogAll(this.routingAdapter,"Router")}return a.prototype.todoListViewGlue=function(){var a=this;return AutoBind(this.todoListView,this.useCase),After(this.todoListView,"enterKeyPressed",function(b){return a.useCase.addNewTask(new Task(b))}),After(this.todoListView,"taskContentDoubleClicked",this.useCase.editTaskContent),After(this.todoListView,"enterKeyPressedWhenEditing",this.useCase.updateTaskContent),After(this.useCase,"addNewTask",this.todoListView.addNewTask),After(this.useCase,"showAll",function(){return a.todoListView.showTasks(a.useCase.todoTasks)}),After(this.useCase,"deleteTask",this.todoListView.deleteTask),After(this.useCase,"completeTask",this.todoListView.completeTask),After(this.useCase,"uncompleteTask",this.todoListView.uncompleteTask),After(this.useCase,"editTaskContent",this.todoListView.editTaskContent),After(this.useCase,"updateTaskContent",this.todoListView.updateTaskContent),After(this.useCase,"showActive",function(){return a.todoListView.showTasks(a.useCase.remainingTasks())}),After(this.useCase,"showCompleted",function(){return a.todoListView.showTasks(a.useCase.completedTasks())})},a.prototype.statsViewGlue=function(){var a=this;return AfterAll(this.useCase,["addNewTask","deleteTask","completeAllTasks","toggleTaskCompletion","showAll","showCompleted","showActive"],function(){return a.statsView.showStats(a.useCase.remainingTasks().length,a.useCase.completedTasks().length)}),After(this.statsView,"allTasksClicked",function(){return a.useCase.showAll()}),After(this.statsView,"completedTasksClicked",function(){return a.useCase.showCompleted()}),After(this.statsView,"remainingTasksClicked",function(){return a.useCase.showActive()}),After(this.statsView,"clearCompletedClicked",function(){return a.useCase.clearCompleted()}),After(this.useCase,"showCompleted",function(){return a.statsView.selectCompleted()}),After(this.useCase,"showAll",function(){return a.statsView.selectAll()}),After(this.useCase,"showActive",function(){return a.statsView.selectActive()})},a.prototype.routingGlue=function(){var a=this;return After(this.routingAdapter,"showAll",function(){return a.useCase.showAll()}),After(this.routingAdapter,"showCompleted",function(){return a.useCase.showCompleted()}),After(this.routingAdapter,"showActive",function(){return a.useCase.showActive()}),After(this.useCase,"showAll",function(){return a.routingAdapter.setUrlToAll()}),After(this.useCase,"showActive",function(){return a.routingAdapter.setUrlToActive()}),After(this.useCase,"showCompleted",function(){return a.routingAdapter.setUrlToCompleted()})},a}(),WebTodoApp=function(){function a(){var a,b,c,d,e,f;f=new CompleteTasksUseCase,f.start(),window.useCase=f,e=new TodoListView,d=new StatsView,b=new LocalStorage("todo_app"),c=new RoutingAdapter,a=new WebGlue(f,e,d,b,c),f.start(),c.start()}return a}(),new WebTodoApp \ No newline at end of file diff --git a/release/toaster/todo_gui.js b/release/toaster/todo_gui.js index 86fdd35..614eec6 100644 --- a/release/toaster/todo_gui.js +++ b/release/toaster/todo_gui.js @@ -70,7 +70,7 @@ TodoListView = (function() { element = this.createElementFor(task, "#todo-template"); element.task = task; this.taskElements.push(element); - $("#todo-list").append(element); + $("#todo-list").prepend(element); element.find(".destroy").click(function() { return _this.deleteTaskClicked(task); }); diff --git a/src/todo_gui.coffee b/src/todo_gui.coffee index 9199343..ae454d3 100644 --- a/src/todo_gui.coffee +++ b/src/todo_gui.coffee @@ -15,7 +15,7 @@ class TodoListView element = @createElementFor(task, "#todo-template") element.task = task @taskElements.push(element) - $("#todo-list").append(element) + $("#todo-list").prepend(element) element.find(".destroy").click( => @deleteTaskClicked(task)) element.find(".toggle").click( => @toggleTaskCompletionClicked(task))