Improve link to original post in reshared polls
This commit is contained in:
parent
9589cb2e0f
commit
81cd1753e4
6 changed files with 45 additions and 25 deletions
|
|
@ -14,14 +14,18 @@ app.views.Poll = app.views.Base.extend({
|
||||||
|
|
||||||
presenter: function(){
|
presenter: function(){
|
||||||
var defaultPresenter = this.defaultPresenter();
|
var defaultPresenter = this.defaultPresenter();
|
||||||
var isResharePost = (this.model.get('post_type') == 'Reshare');
|
var isReshare = (this.model.get('post_type') === 'Reshare');
|
||||||
var show_form = defaultPresenter.loggedIn &&
|
var showForm = defaultPresenter.loggedIn &&
|
||||||
!isResharePost &&
|
!isReshare &&
|
||||||
!this.model.get('already_participated_in_poll');
|
!this.model.get('already_participated_in_poll');
|
||||||
|
var originalPostLink = isReshare && this.model.get('root') ?
|
||||||
|
'<a href="/posts/' + this.model.get('root').id + '" class="root_post_link">' + Diaspora.I18n.t('poll.original_post') + '</a>' :
|
||||||
|
'';
|
||||||
|
|
||||||
return _.extend(defaultPresenter, {
|
return _.extend(defaultPresenter, {
|
||||||
show_form: show_form,
|
show_form: showForm,
|
||||||
is_reshare_post: isResharePost
|
is_reshare: isReshare,
|
||||||
|
original_post_link: originalPostLink
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -38,9 +38,9 @@
|
||||||
{{/poll.poll_answers}}
|
{{/poll.poll_answers}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{#if is_reshare_post }}
|
{{#if is_reshare }}
|
||||||
<div class="poll_footer">
|
<div class="poll_footer">
|
||||||
<a class="root_post_link" href="/posts/{{root.id}}">{{t "poll.vote_original_post" }}</a>
|
{{{t "poll.go_to_original_post" original_post_link=original_post_link}}}
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -227,7 +227,8 @@ en:
|
||||||
|
|
||||||
poll:
|
poll:
|
||||||
vote: "Vote"
|
vote: "Vote"
|
||||||
vote_original_post: 'Vote original post'
|
go_to_original_post: "You can participate in this poll on the <%= original_post_link %>."
|
||||||
|
original_post: "original post"
|
||||||
result: "Result"
|
result: "Result"
|
||||||
count:
|
count:
|
||||||
one: "1 vote so far"
|
one: "1 vote so far"
|
||||||
|
|
|
||||||
|
|
@ -11,10 +11,11 @@ Feature: public repost
|
||||||
| Alice Smith | alice@alice.alice |
|
| Alice Smith | alice@alice.alice |
|
||||||
| Eve Doe | eve@eve.eve |
|
| Eve Doe | eve@eve.eve |
|
||||||
And a user with email "bob@bob.bob" is connected with "alice@alice.alice"
|
And a user with email "bob@bob.bob" is connected with "alice@alice.alice"
|
||||||
|
And a user with email "eve@eve.eve" is connected with "bob@bob.bob"
|
||||||
|
And "bob@bob.bob" has a public post with text "reshare this!"
|
||||||
|
|
||||||
Scenario: Resharing a post from a single post page
|
Scenario: Resharing a post from a single post page
|
||||||
Given "bob@bob.bob" has a public post with text "reshare this!"
|
Given I sign in as "alice@alice.alice"
|
||||||
And I sign in as "alice@alice.alice"
|
|
||||||
And I am on "bob@bob.bob"'s page
|
And I am on "bob@bob.bob"'s page
|
||||||
And I open the show page of the "reshare this!" post
|
And I open the show page of the "reshare this!" post
|
||||||
And I click on selector "a.reshare"
|
And I click on selector "a.reshare"
|
||||||
|
|
@ -23,8 +24,7 @@ Feature: public repost
|
||||||
And I should see a flash message containing "successfully"
|
And I should see a flash message containing "successfully"
|
||||||
|
|
||||||
Scenario: Resharing a post from a single post page that is reshared
|
Scenario: Resharing a post from a single post page that is reshared
|
||||||
Given "bob@bob.bob" has a public post with text "reshare this!"
|
Given the post with text "reshare this!" is reshared by "eve@eve.eve"
|
||||||
And the post with text "reshare this!" is reshared by "eve@eve.eve"
|
|
||||||
And I sign in as "alice@alice.alice"
|
And I sign in as "alice@alice.alice"
|
||||||
And I am on "bob@bob.bob"'s page
|
And I am on "bob@bob.bob"'s page
|
||||||
And I open the show page of the "reshare this!" post
|
And I open the show page of the "reshare this!" post
|
||||||
|
|
@ -33,12 +33,21 @@ Feature: public repost
|
||||||
Then I should see a flash message indicating success
|
Then I should see a flash message indicating success
|
||||||
And I should see a flash message containing "successfully"
|
And I should see a flash message containing "successfully"
|
||||||
|
|
||||||
|
Scenario: Delete original reshared post
|
||||||
|
Given "alice@alice.alice" has a public post with text "Don't reshare this!"
|
||||||
|
And the post with text "Don't reshare this!" is reshared by "bob@bob.bob"
|
||||||
|
And I sign in as "alice@alice.alice"
|
||||||
|
And I am on "alice@alice.alice"'s page
|
||||||
|
|
||||||
|
When I click to delete the first post
|
||||||
|
And I log out
|
||||||
|
And I sign in as "bob@bob.bob"
|
||||||
|
Then I should see "Original post deleted by author" within ".reshare"
|
||||||
|
|
||||||
# should be covered in rspec, so testing that the post is added to
|
# should be covered in rspec, so testing that the post is added to
|
||||||
# app.stream in jasmine should be enough coverage
|
# app.stream in jasmine should be enough coverage
|
||||||
Scenario: When I reshare, it shows up on my profile page
|
Scenario: When I reshare, it shows up on my profile page
|
||||||
Given "bob@bob.bob" has a public post with text "reshare this!"
|
Given I sign in as "alice@alice.alice"
|
||||||
And I sign in as "alice@alice.alice"
|
|
||||||
|
|
||||||
And I follow "Reshare"
|
And I follow "Reshare"
|
||||||
And I confirm the alert
|
And I confirm the alert
|
||||||
Then I should see a flash message indicating success
|
Then I should see a flash message indicating success
|
||||||
|
|
|
||||||
|
|
@ -44,33 +44,39 @@ describe("app.views.Poll", function(){
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('reshared post', function(){
|
describe("reshared post", function(){
|
||||||
beforeEach(function(){
|
beforeEach(function(){
|
||||||
this.view.model.set('post_type', 'Reshare');
|
Diaspora.I18n.load({
|
||||||
this.view.model.set('root', {id: 1});
|
poll: {
|
||||||
|
go_to_original_post: "You can participate in this poll on the <%= original_post_link %>.",
|
||||||
|
original_post: "original post"
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.view.model.attributes.post_type = "Reshare";
|
||||||
|
this.view.model.attributes.root = {id: 1};
|
||||||
this.view.render();
|
this.view.render();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('hide vote form', function(){
|
it("hides the vote form", function(){
|
||||||
expect(this.view.$('form').length).toBe(0);
|
expect(this.view.$('form').length).toBe(0);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("show a.root_post_link", function(){
|
it("shows a.root_post_link", function(){
|
||||||
var id = this.view.model.get('root').id;
|
var id = this.view.model.get('root').id;
|
||||||
expect(this.view.$('a.root_post_link').attr('href')).toBe('/posts/'+id);
|
expect(this.view.$('a.root_post_link').attr('href')).toBe('/posts/'+id);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("vote form", function(){
|
describe("vote form", function(){
|
||||||
it('show vote form when user is logged in and not voted before', function(){
|
it("shows vote form when user is logged in and not voted before", function(){
|
||||||
expect(this.view.$('form').length).toBe(1);
|
expect(this.view.$('form').length).toBe(1);
|
||||||
});
|
});
|
||||||
it('hide vote form when user voted before', function(){
|
it("hides vote form when user voted before", function(){
|
||||||
this.view.model.attributes.already_participated_in_poll = true;
|
this.view.model.attributes.already_participated_in_poll = true;
|
||||||
this.view.render();
|
this.view.render();
|
||||||
expect(this.view.$('form').length).toBe(0);
|
expect(this.view.$('form').length).toBe(0);
|
||||||
});
|
});
|
||||||
it("hide vote form when user not logged in", function(){
|
it("hides vote form when user not logged in", function(){
|
||||||
logout();
|
logout();
|
||||||
this.view.render();
|
this.view.render();
|
||||||
expect(this.view.$('form').length).toBe(0);
|
expect(this.view.$('form').length).toBe(0);
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@ describe Reshare, :type => :model do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'contains root poll' do
|
it 'contains root poll' do
|
||||||
@reshare.poll == @root_post.poll
|
expect(@reshare.poll).to eq @root_post.poll
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue