Guest User

Untitled

a guest
Sep 23rd, 2018
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1.  
  2. App = Ember.Application.create();
  3.  
  4. App.store = DS.Store.create({
  5. adapter: DS.RESTAdapter.create()
  6. })
  7.  
  8. App.set("room_id", 1);
  9.  
  10. App.Models = Ember.Namespace.create();
  11. App.Mixins = Ember.Namespace.create();
  12.  
  13. App.Mixins.ChatMessage = Ember.Mixin.extend({
  14. // common functionality here?
  15. })
  16.  
  17. App.ChatMessage = Ember.Object.extend(App.Mixins.ChatMessage);
  18.  
  19. App.Models.ChatMessage = DS.Model.extend(App.Mixins.ChatMessage, {
  20. contents: DS.attr("string"),
  21. room_id: DS.attr("string")
  22. })
  23.  
  24. App.chatMessages = Ember.ArrayController.create({
  25.  
  26. init: function() {
  27. App.get("eventQueue").on("message-posted", _(this.messagePosted).bind(this));
  28. },
  29.  
  30. roomChanged: function() {
  31. this.set("content", []);
  32. }.bind("App.room_id"),
  33.  
  34. messages: function() {
  35. return App.get("serverChatMessages").concat(this.get("content"));
  36. }.property("App.serverChatMessages", "content").cacheable(),
  37.  
  38. messagePosted: function(data) {
  39. this.pushObject(App.ChatMessage.create(data));
  40. },
  41.  
  42. postMessage: function(contents) {
  43. var room_id = App.get("room_id");
  44.  
  45. var message = App.store.createRecord(App.Models.ChatMessage, {
  46. contents: contents,
  47. room_id: room_id
  48. });
  49.  
  50. this.pushObject(message);
  51. App.store.commit();
  52. }
  53. })
  54.  
  55. App.serverChatMessages = Ember.ArrayController.create({
  56. init: function() {
  57. this.loadData()
  58. },
  59.  
  60. roomChanged: function() {
  61. this.loadData()
  62. }.observes("App.room_id"),
  63.  
  64. loadData: function() {
  65. var room_id = App.get("room_id");
  66. this.set("content", App.store.find(App.Models.ChatMessage, {room_id: room_id}))
  67. }
  68. });
Add Comment
Please, Sign In to add comment