/app/scripts/old.js

https://bitbucket.org/piemonster/dtclient · JavaScript · 150 lines · 101 code · 40 blank · 9 comment · 0 complexity · 3c925bf797a2088d77b81bbdcf974968 MD5 · raw file

  1. // Models
  2. window.Meal = Backbone.Model.extend();
  3. window.Invite = Backbone.Model.extend();
  4. window.Guest = Backbone.Model.extend();
  5. // window.Part = Backbone.Model.extend();
  6. window.MealCollection = Backbone.Collection.extend({
  7. model:Meal,
  8. url:"/api/meals/"
  9. });
  10. window.InviteCollection = Backbone.Collection.extend({
  11. model:Invite,
  12. url:"/api/invites/"
  13. });
  14. window.GuestCollection = Backbone.Collection.extend({
  15. model:Guest,
  16. url:"/api/guests/"
  17. });
  18. // window.PartCollection = Backbone.Collection.extend({
  19. // model:Part,
  20. // url:"/api/parts/"
  21. // });
  22. // Views Meals
  23. window.MealListView = Backbone.View.extend({
  24. tagName:'ul',
  25. initialize:function () {
  26. this.model.bind("reset", this.render, this);
  27. },
  28. render:function (eventName) {
  29. _.each(this.model.models, function (meal) {
  30. $(this.el).append(new MealListItemView({model:meal}).render().el);
  31. }, this);
  32. return this;
  33. }
  34. });
  35. window.MealListItemView = Backbone.View.extend({
  36. tagName:"li",
  37. template:_.template($('#tpl-meal-list-item').html()),
  38. render:function (eventName) {
  39. $(this.el).html(this.template(this.model.toJSON()));
  40. return this;
  41. }
  42. });
  43. window.MealView = Backbone.View.extend({
  44. template:_.template($('#tpl-meal-details').html()),
  45. render:function (eventName) {
  46. $(this.el).html(this.template(this.model.toJSON()));
  47. return this;
  48. }
  49. });
  50. // Views Invites
  51. window.InviteListView = Backbone.View.extend({
  52. tagName:'ul',
  53. initialize:function () {
  54. this.model.bind("reset", this.render, this);
  55. },
  56. render:function (eventName) {
  57. _.each(this.model.models, function (invite) {
  58. $(this.el).append(new InviteListItemView({model:invite}).render().el);
  59. }, this);
  60. return this;
  61. }
  62. });
  63. window.InviteListItemView = Backbone.View.extend({
  64. tagName:"li",
  65. template:_.template($('#tpl-invite-list-item').html()),
  66. render:function (eventName) {
  67. $(this.el).html(this.template(this.model.toJSON()));
  68. return this;
  69. }
  70. });
  71. window.InviteView = Backbone.View.extend({
  72. template:_.template($('#tpl-invite-details').html()),
  73. render:function (eventName) {
  74. $(this.el).html(this.template(this.model.toJSON()));
  75. return this;
  76. }
  77. });
  78. // Router
  79. var AppRouter = Backbone.Router.extend({
  80. routes:{
  81. "":"list",
  82. "meals/:id":"mealDetails",
  83. "invites/":"ist",
  84. "invites/:id":"inviteDetails"
  85. },
  86. list:function () {
  87. this.mealList = new MealCollection();
  88. this.mealListView = new MealListView({model:this.mealList});
  89. this.mealList.fetch();
  90. $('#sidebar').html(this.mealListView.render().el);
  91. },
  92. mealDetails:function (id) {
  93. this.meal = this.mealList.get(id);
  94. this.mealView = new MealView({model:this.meal});
  95. $('#content').html(this.mealView.render().el);
  96. },
  97. ist:function () {
  98. this.inviteList = new InviteCollection();
  99. this.inviteListView = new InviteListView({model:this.inviteList});
  100. this.inviteList.fetch();
  101. $('#sidebar').html(this.inviteListView.render().el);
  102. },
  103. inviteDetails:function (id) {
  104. this.invite = this.inviteList.get(id);
  105. this.inviteView = new InviteView({model:this.invite});
  106. $('#content').html(this.inviteView.render().el);
  107. }
  108. });
  109. var app = new AppRouter();
  110. Backbone.history.start();