Loading app/assets/javascripts/app/pages/contacts.js +9 −1 Original line number Diff line number Diff line Loading @@ -80,7 +80,15 @@ app.pages.Contacts = Backbone.View.extend({ showMessageModal: function(){ $("#conversationModal").on("modal:loaded", function() { new app.views.ConversationsForm({prefill: gon.conversationPrefill}); var people = app.contacts.filter(function(contact) { return contact.inAspect(app.aspect.get("id")); }).map(function(contact) { return _.extend({ avatar: contact.person.get("profile").avatar.small, handle: contact.person.get("diaspora_id") }, contact.person.attributes); }); new app.views.ConversationsForm({prefill: people}); }); app.helpers.showModal("#conversationModal"); }, Loading app/controllers/conversations_controller.rb +0 −4 Original line number Diff line number Diff line Loading @@ -103,10 +103,6 @@ class ConversationsController < ApplicationController render :layout => true else if params[:aspect_id] gon.push conversation_prefill: current_user.aspects .find(params[:aspect_id]).contacts.map {|c| c.person.as_json } end render :layout => false end end Loading app/views/conversations/new.html.haml +1 −2 Original line number Diff line number Diff line = include_gon camel_case: true = render 'conversations/new' = render "conversations/new" spec/controllers/conversations_controller_spec.rb +0 −5 Original line number Diff line number Diff line Loading @@ -20,11 +20,6 @@ describe ConversationsController, :type => :controller do get :new, params: {modal: true} expect(response).to be_success end it "assigns a set of contacts if passed an aspect id" do get :new, params: {aspect_id: alice.aspects.first.id, modal: true} expect(controller.gon.conversation_prefill).to eq(alice.aspects.first.contacts.map {|c| c.person.as_json }) end end context "mobile" do Loading spec/javascripts/app/pages/contacts_spec.js +11 −8 Original line number Diff line number Diff line Loading @@ -290,17 +290,20 @@ describe("app.pages.Contacts", function(){ }); it("initializes app.views.ConversationsForm with correct parameters when modal is loaded", function() { gon.conversationPrefill = [ {id: 1, name: "diaspora user", handle: "diaspora-user@pod.tld"}, {id: 2, name: "other diaspora user", handle: "other-diaspora-user@pod.tld"}, {id: 3, name: "user@pod.tld", handle: "user@pod.tld"} ]; spyOn(app.views.ConversationsForm.prototype, "initialize"); app.aspect = new app.models.Aspect(app.contacts.first().get("aspect_memberships")[0].aspect); this.view.showMessageModal(); $("#conversationModal").trigger("modal:loaded"); expect(app.views.ConversationsForm.prototype.initialize) .toHaveBeenCalledWith({prefill: gon.conversationPrefill}); expect(app.views.ConversationsForm.prototype.initialize).toHaveBeenCalled(); var prefill = app.views.ConversationsForm.prototype.initialize.calls.mostRecent().args[0].prefill; var people = app.contacts.filter(function(contact) { return contact.inAspect(app.aspect.get("id")); }); expect(prefill.length).toBe(people.length); var person = app.contacts.first().person; expect(prefill[0].handle).toBe(person.get("diaspora_id")); expect(prefill[0].name).toBe(person.get("name")); expect(prefill[0].avatar).toBe(person.get("profile").avatar.small); }); }); }); Loading
app/assets/javascripts/app/pages/contacts.js +9 −1 Original line number Diff line number Diff line Loading @@ -80,7 +80,15 @@ app.pages.Contacts = Backbone.View.extend({ showMessageModal: function(){ $("#conversationModal").on("modal:loaded", function() { new app.views.ConversationsForm({prefill: gon.conversationPrefill}); var people = app.contacts.filter(function(contact) { return contact.inAspect(app.aspect.get("id")); }).map(function(contact) { return _.extend({ avatar: contact.person.get("profile").avatar.small, handle: contact.person.get("diaspora_id") }, contact.person.attributes); }); new app.views.ConversationsForm({prefill: people}); }); app.helpers.showModal("#conversationModal"); }, Loading
app/controllers/conversations_controller.rb +0 −4 Original line number Diff line number Diff line Loading @@ -103,10 +103,6 @@ class ConversationsController < ApplicationController render :layout => true else if params[:aspect_id] gon.push conversation_prefill: current_user.aspects .find(params[:aspect_id]).contacts.map {|c| c.person.as_json } end render :layout => false end end Loading
app/views/conversations/new.html.haml +1 −2 Original line number Diff line number Diff line = include_gon camel_case: true = render 'conversations/new' = render "conversations/new"
spec/controllers/conversations_controller_spec.rb +0 −5 Original line number Diff line number Diff line Loading @@ -20,11 +20,6 @@ describe ConversationsController, :type => :controller do get :new, params: {modal: true} expect(response).to be_success end it "assigns a set of contacts if passed an aspect id" do get :new, params: {aspect_id: alice.aspects.first.id, modal: true} expect(controller.gon.conversation_prefill).to eq(alice.aspects.first.contacts.map {|c| c.person.as_json }) end end context "mobile" do Loading
spec/javascripts/app/pages/contacts_spec.js +11 −8 Original line number Diff line number Diff line Loading @@ -290,17 +290,20 @@ describe("app.pages.Contacts", function(){ }); it("initializes app.views.ConversationsForm with correct parameters when modal is loaded", function() { gon.conversationPrefill = [ {id: 1, name: "diaspora user", handle: "diaspora-user@pod.tld"}, {id: 2, name: "other diaspora user", handle: "other-diaspora-user@pod.tld"}, {id: 3, name: "user@pod.tld", handle: "user@pod.tld"} ]; spyOn(app.views.ConversationsForm.prototype, "initialize"); app.aspect = new app.models.Aspect(app.contacts.first().get("aspect_memberships")[0].aspect); this.view.showMessageModal(); $("#conversationModal").trigger("modal:loaded"); expect(app.views.ConversationsForm.prototype.initialize) .toHaveBeenCalledWith({prefill: gon.conversationPrefill}); expect(app.views.ConversationsForm.prototype.initialize).toHaveBeenCalled(); var prefill = app.views.ConversationsForm.prototype.initialize.calls.mostRecent().args[0].prefill; var people = app.contacts.filter(function(contact) { return contact.inAspect(app.aspect.get("id")); }); expect(prefill.length).toBe(people.length); var person = app.contacts.first().person; expect(prefill[0].handle).toBe(person.get("diaspora_id")); expect(prefill[0].name).toBe(person.get("name")); expect(prefill[0].avatar).toBe(person.get("profile").avatar.small); }); }); });