Merge pull request #6948 from svbergerem/fix-photos-page

Fix other user's profile photos stream
This commit is contained in:
Jonne Haß 2016-08-09 10:06:49 +02:00 committed by GitHub
commit 2afb0b95ff
6 changed files with 41 additions and 27 deletions

View file

@ -47,6 +47,7 @@ var app = {
this.setupDummyPreloads(); this.setupDummyPreloads();
this.setupUser(); this.setupUser();
this.setupAspects();
this.setupHeader(); this.setupHeader();
this.setupBackboneLinks(); this.setupBackboneLinks();
this.setupGlobalViews(); this.setupGlobalViews();
@ -83,6 +84,10 @@ var app = {
app.currentUser = app.user(window.gon.user) || new app.models.User(); app.currentUser = app.user(window.gon.user) || new app.models.User();
}, },
setupAspects: function() {
app.aspects = new app.collections.Aspects(app.currentUser.get("aspects"));
},
setupHeader: function() { setupHeader: function() {
if(app.currentUser.authenticated()) { if(app.currentUser.authenticated()) {
app.header = new app.views.Header(); app.header = new app.views.Header();

View file

@ -62,7 +62,7 @@ app.Router = Backbone.Router.extend({
contacts: function() { contacts: function() {
app.aspect = new app.models.Aspect(gon.preloads.aspect); app.aspect = new app.models.Aspect(gon.preloads.aspect);
this._loadRelationshipsPreloads(); this._loadContacts();
var stream = new app.views.ContactStream({ var stream = new app.views.ContactStream({
collection: app.contacts, collection: app.contacts,
@ -73,7 +73,6 @@ app.Router = Backbone.Router.extend({
}, },
gettingStarted: function() { gettingStarted: function() {
this._loadAspects();
this.renderPage(function() { this.renderPage(function() {
return new app.pages.GettingStarted({inviter: new app.models.Person(app.parsePreload("inviter"))}); return new app.pages.GettingStarted({inviter: new app.models.Person(app.parsePreload("inviter"))});
}); });
@ -107,13 +106,13 @@ app.Router = Backbone.Router.extend({
}, },
stream : function() { stream : function() {
this._loadAspects();
app.stream = new app.models.Stream(); app.stream = new app.models.Stream();
app.stream.fetch(); app.stream.fetch();
this._initializeStreamView(); this._initializeStreamView();
}, },
photos : function(guid) { photos : function(guid) {
this._loadContacts();
this.renderPage(function() { this.renderPage(function() {
return new app.pages.Profile({ return new app.pages.Profile({
person_id: guid, person_id: guid,
@ -145,7 +144,6 @@ app.Router = Backbone.Router.extend({
}, },
aspects: function() { aspects: function() {
this._loadAspects();
app.aspectSelections = app.aspectSelections || app.aspectSelections = app.aspectSelections ||
new app.collections.AspectSelections(app.currentUser.get("aspects")); new app.collections.AspectSelections(app.currentUser.get("aspects"));
this.aspectsList = this.aspectsList || new app.views.AspectsList({collection: app.aspectSelections}); this.aspectsList = this.aspectsList || new app.views.AspectsList({collection: app.aspectSelections});
@ -169,7 +167,7 @@ app.Router = Backbone.Router.extend({
}, },
profile: function() { profile: function() {
this._loadRelationshipsPreloads(); this._loadContacts();
this.renderPage(function() { this.renderPage(function() {
return new app.pages.Profile({ return new app.pages.Profile({
el: $("body > #profile_container") el: $("body > #profile_container")
@ -178,23 +176,14 @@ app.Router = Backbone.Router.extend({
}, },
pageWithAspectMembershipDropdowns: function() { pageWithAspectMembershipDropdowns: function() {
this._loadRelationshipsPreloads(); this._loadContacts();
this.renderAspectMembershipDropdowns($(document)); this.renderAspectMembershipDropdowns($(document));
}, },
_loadAspects: function() {
app.aspects = new app.collections.Aspects(app.currentUser.get("aspects"));
},
_loadContacts: function() { _loadContacts: function() {
app.contacts = new app.collections.Contacts(app.parsePreload("contacts")); app.contacts = new app.collections.Contacts(app.parsePreload("contacts"));
}, },
_loadRelationshipsPreloads: function() {
this._loadContacts();
this._loadAspects();
},
renderAspectMembershipDropdowns: function($context) { renderAspectMembershipDropdowns: function($context) {
$context.find(".aspect_membership_dropdown.placeholder").each(function() { $context.find(".aspect_membership_dropdown.placeholder").each(function() {
var personId = $(this).data("personId"); var personId = $(this).data("personId");

View file

@ -118,11 +118,24 @@ Feature: Notifications
And I add the person to my "Besties" aspect And I add the person to my "Besties" aspect
And I sign out And I sign out
When I sign in as "alice@alice.alice" When I sign in as "alice@alice.alice"
And I go to the edit profile page
And I follow "Notifications" in the header And I follow "Notifications" in the header
And I active the first hovercard after loading the notifications page And I activate the first hovercard after loading the notifications page
When I press the aspect dropdown When I press the aspect dropdown
Then the aspect dropdown should be visible Then the aspect dropdown should be visible
Scenario: show hovercard in notification dropdown
When I sign in as "bob@bob.bob"
And I am on "alice@alice.alice"'s page
And I add the person to my "Besties" aspect
And I sign out
When I sign in as "alice@alice.alice"
And I follow "Notifications" in the header
Then the notification dropdown should be visible
When I activate the first hovercard after loading the notifications page
And I press the aspect dropdown
Then the aspect dropdown should be visible
Scenario: scrollbar shows up when >5 notifications Scenario: scrollbar shows up when >5 notifications
Given a user with email "bob@bob.bob" is connected with "alice@alice.alice" Given a user with email "bob@bob.bob" is connected with "alice@alice.alice"
And Alice has 6 posts mentioning Bob And Alice has 6 posts mentioning Bob

View file

@ -7,18 +7,11 @@ Feature: show photos
| Bob Jones | bob@bob.bob | | Bob Jones | bob@bob.bob |
| Alice Smith | alice@alice.alice | | Alice Smith | alice@alice.alice |
| Robert Grimm | robert@grimm.grimm | | Robert Grimm | robert@grimm.grimm |
And "robert@grimm.grimm" has posted a status message with a photo
And I sign in as "robert@grimm.grimm" And I sign in as "robert@grimm.grimm"
Given I expand the publisher
And I have turned off jQuery effects
And I attach the file "spec/fixtures/button.png" to hidden "file" within "#file-upload"
And I press "Share"
Then I should see a "img" within ".stream_element div.photo_attachments"
Scenario: see my own photos Scenario: see my own photos
When I am on "robert@grimm.grimm"'s page When I am on "robert@grimm.grimm"'s page
#TODO: find out why images don't show on first load
And I am on "robert@grimm.grimm"'s page
And I press the first "#photos_link" And I press the first "#photos_link"
Then I should be on person_photos page Then I should be on person_photos page
@ -27,6 +20,15 @@ Feature: show photos
And I am on "robert@grimm.grimm"'s page And I am on "robert@grimm.grimm"'s page
Then I should not see "Photos" within "#profile-horizontal-bar" Then I should not see "Photos" within "#profile-horizontal-bar"
Scenario: I can see public photos of people who share with me
When "robert@grimm.grimm" has posted a public status message with a photo
And I sign in as "alice@alice.alice"
And I am on "robert@grimm.grimm"'s page
Then I should see "Photos" within "#profile-horizontal-bar"
When I press the first "#photos_link"
Then I should be on "robert@grimm.grimm"'s photos page
And I should see "Photos" within "#profile-horizontal-bar"
Scenario: I delete a photo Scenario: I delete a photo
When I am on "robert@grimm.grimm"'s photos page When I am on "robert@grimm.grimm"'s photos page
Then I should see a ".thumbnail" within "#main_stream" Then I should see a ".thumbnail" within "#main_stream"

View file

@ -324,7 +324,7 @@ Then(/^I should have a validation error on "(.*?)"$/) do |field_list|
check_fields_validation_error field_list check_fields_validation_error field_list
end end
And /^I active the first hovercard after loading the notifications page$/ do And /^I activate the first hovercard after loading the notifications page$/ do
page.should have_css '.notifications .hovercardable' page.should have_css '.notifications .hovercardable'
first('.notifications .hovercardable').hover first('.notifications .hovercardable').hover
end end

View file

@ -158,9 +158,14 @@ Then /^I should not see "([^\"]*)" in the last sent email$/ do |text|
email_text.should_not match(text) email_text.should_not match(text)
end end
When /^"([^\"]+)" has posted a status message with a photo$/ do |email| When /^"([^\"]+)" has posted a (public )?status message with a photo$/ do |email, public_status|
user = User.find_for_database_authentication(:username => email) user = User.find_for_database_authentication(:username => email)
post = FactoryGirl.create(:status_message_with_photo, :text => "Look at this dog", :author => user.person) post = FactoryGirl.create(
:status_message_with_photo,
text: "Look at this dog",
author: user.person,
public: public_status.present?
)
[post, post.photos.first].each do |p| [post, post.photos.first].each do |p|
user.add_to_streams(p, user.aspects) user.add_to_streams(p, user.aspects)
user.dispatch_post(p) user.dispatch_post(p)