Merge pull request #7520 from svbergerem/increase-mobile-post-action-size

Include count in mobile post action link and increase reshare counter after reshare
This commit is contained in:
Benjamin Neff 2017-08-10 01:28:28 +02:00
commit eefa6701a8
No known key found for this signature in database
GPG key ID: 971464C3F1A90194
6 changed files with 47 additions and 24 deletions

View file

@ -24,6 +24,7 @@ If so, please delete it since it will prevent the federation from working proper
* Send public profiles publicly [#7501](https://github.com/diaspora/diaspora/pull/7501) * Send public profiles publicly [#7501](https://github.com/diaspora/diaspora/pull/7501)
* Change sender for mails [#7495](https://github.com/diaspora/diaspora/pull/7495) * Change sender for mails [#7495](https://github.com/diaspora/diaspora/pull/7495)
* Move back to top to the right to avoid misclicks [#7516](https://github.com/diaspora/diaspora/pull/7516) * Move back to top to the right to avoid misclicks [#7516](https://github.com/diaspora/diaspora/pull/7516)
* Include count in mobile post action link [#7520](https://github.com/diaspora/diaspora/pull/7520)
## Bug fixes ## Bug fixes
@ -31,6 +32,7 @@ If so, please delete it since it will prevent the federation from working proper
* Improve stream when ignoring a person who posts a lot of tagged posts [#7503](https://github.com/diaspora/diaspora/pull/7503) * Improve stream when ignoring a person who posts a lot of tagged posts [#7503](https://github.com/diaspora/diaspora/pull/7503)
* Fix order of comments across pods [#7436](https://github.com/diaspora/diaspora/pull/7436) * Fix order of comments across pods [#7436](https://github.com/diaspora/diaspora/pull/7436)
* Prevent publisher from closing in preview mode [#7518](https://github.com/diaspora/diaspora/pull/7518) * Prevent publisher from closing in preview mode [#7518](https://github.com/diaspora/diaspora/pull/7518)
* Increase reshare counter after reshare on mobile [#7520](https://github.com/diaspora/diaspora/pull/7520)
## Features ## Features
* Add support for mentions in comments to the backend [#6818](https://github.com/diaspora/diaspora/pull/6818) * Add support for mentions in comments to the backend [#6818](https://github.com/diaspora/diaspora/pull/6818)

View file

@ -75,7 +75,7 @@
onLike: function(evt){ onLike: function(evt){
evt.preventDefault(); evt.preventDefault();
var link = $(evt.target), var link = $(evt.target).closest(".like-action"),
likeCounter = $(evt.target).closest(".stream-element").find(".like-count"); likeCounter = $(evt.target).closest(".stream-element").find(".like-count");
if(!link.hasClass("loading") && link.hasClass("inactive")) { if(!link.hasClass("loading") && link.hasClass("inactive")) {
@ -89,7 +89,7 @@
onReshare: function(evt) { onReshare: function(evt) {
evt.preventDefault(); evt.preventDefault();
var link = $(this), var link = $(this).closest(".reshare-action"),
href = link.attr("href"), href = link.attr("href"),
confirmText = link.attr("title"); confirmText = link.attr("title");
@ -103,6 +103,10 @@
}, },
success: function() { success: function() {
Diaspora.Mobile.PostActions.toggleActive(link); Diaspora.Mobile.PostActions.toggleActive(link);
var reshareCounter = $(evt.target).closest(".stream-element").find(".reshare-count");
if (reshareCounter) {
reshareCounter.text(parseInt(reshareCounter.text(), 10) + 1);
}
}, },
error: function(response) { error: function(response) {
Diaspora.Mobile.Alert.handleAjaxError(response); Diaspora.Mobile.Alert.handleAjaxError(response);

View file

@ -43,16 +43,15 @@
display: flex; display: flex;
.count { .count {
color: $text-color;
font-family: $font-family-base;
font-size: $font-size-base;
line-height: 22px; line-height: 22px;
margin-left: 5px; margin-left: 5px;
vertical-align: top;
z-index: 2; z-index: 2;
} }
.icon-count-group {
display: flex;
margin: 0 7px;
}
[class^="entypo"] { [class^="entypo"] {
color: $text-grey; color: $text-grey;
font-size: 24px; font-size: 24px;
@ -73,6 +72,9 @@
} }
.post-action { .post-action {
display: flex;
margin: 0 7px;
.disabled { color: $medium-gray; } .disabled { color: $medium-gray; }
} }

View file

@ -7,25 +7,30 @@ module MobileHelper
reshare = Reshare.where(author_id: current_user.person_id, reshare = Reshare.where(author_id: current_user.person_id,
root_guid: absolute_root.guid).first root_guid: absolute_root.guid).first
klass = reshare.present? ? "active" : "inactive" klass = reshare.present? ? "active" : "inactive"
link_to "", reshares_path(root_guid: absolute_root.guid), link_to content_tag(:span, post.reshares.size, class: "count reshare-count"),
reshares_path(root_guid: absolute_root.guid),
title: t("reshares.reshare.reshare_confirmation", author: absolute_root.author_name), title: t("reshares.reshare.reshare_confirmation", author: absolute_root.author_name),
class: "entypo-reshare reshare-action #{klass}" class: "entypo-reshare reshare-action #{klass}"
else else
content_tag :div, nil, class: "entypo-reshare reshare-action disabled" content_tag :div,
content_tag(:span, post.reshares.size, class: "count reshare-count"),
class: "entypo-reshare reshare-action disabled"
end end
else else
content_tag :div, nil, class: "entypo-reshare reshare-action disabled" content_tag :div,
content_tag(:span, post.reshares.size, class: "count reshare-count"),
class: "entypo-reshare reshare-action disabled"
end end
end end
def mobile_like_icon(post) def mobile_like_icon(post)
if current_user && current_user.liked?(post) if current_user && current_user.liked?(post)
link_to "", link_to content_tag(:span, post.likes.size, class: "count like-count"),
"#", "#",
data: {url: post_like_path(post.id, current_user.like_for(post).id)}, data: {url: post_like_path(post.id, current_user.like_for(post).id)},
class: "entypo-heart like-action active" class: "entypo-heart like-action active"
else else
link_to "", link_to content_tag(:span, post.likes.size, class: "count like-count"),
"#", "#",
data: {url: post_likes_path(post.id)}, data: {url: post_likes_path(post.id)},
class: "entypo-heart like-action inactive" class: "entypo-heart like-action inactive"
@ -33,7 +38,9 @@ module MobileHelper
end end
def mobile_comment_icon(post) def mobile_comment_icon(post)
link_to "", new_post_comment_path(post), class: "entypo-comment comment-action inactive" link_to content_tag(:span, post.comments.size, class: "count comment-count"),
new_post_comment_path(post),
class: "entypo-comment comment-action inactive"
end end
def show_comments_link(post, klass="") def show_comments_link(post, klass="")

View file

@ -1,13 +1,10 @@
.post-stats .post-stats
- if post.public? - if post.public?
.icon-count-group .post-action
.post-action= mobile_reshare_icon(post) = mobile_reshare_icon(post)
%span.reshare-count.count= post.reshares.size
.icon-count-group .post-action
.post-action= mobile_comment_icon(post) = mobile_comment_icon(post)
%span.comment-count.count= post.comments.size
.icon-count-group .post-action
.post-action= mobile_like_icon(post) = mobile_like_icon(post)
%span.like-count.count= post.likes.size

View file

@ -88,7 +88,7 @@ describe("Diaspora.Mobile.PostActions", function(){
spec.loadFixture("aspects_index_mobile_public_post"); spec.loadFixture("aspects_index_mobile_public_post");
Diaspora.Mobile.PostActions.initialize(); Diaspora.Mobile.PostActions.initialize();
this.link = $(".stream .like-action").first(); this.link = $(".stream .like-action").first();
this.likeCounter = this.link.closest(".stream-element").find(".like-count"); this.likeCounter = this.link.find(".like-count");
}); });
it("always calls showLoader before sending request", function(){ it("always calls showLoader before sending request", function(){
@ -143,7 +143,7 @@ describe("Diaspora.Mobile.PostActions", function(){
spec.loadFixture("aspects_index_mobile_public_post"); spec.loadFixture("aspects_index_mobile_public_post");
Diaspora.Mobile.PostActions.initialize(); Diaspora.Mobile.PostActions.initialize();
this.link = $(".stream .like-action").first(); this.link = $(".stream .like-action").first();
this.likeCounter = this.link.closest(".stream-element").find(".like-count"); this.likeCounter = this.link.find(".like-count");
Diaspora.Mobile.PostActions.like(this.likeCounter, this.link); Diaspora.Mobile.PostActions.like(this.likeCounter, this.link);
jasmine.Ajax.requests.mostRecent().respondWith({status: 201, responseText: "{\"id\": \"18\"}"}); jasmine.Ajax.requests.mostRecent().respondWith({status: 201, responseText: "{\"id\": \"18\"}"});
}); });
@ -238,6 +238,17 @@ describe("Diaspora.Mobile.PostActions", function(){
expect(Diaspora.Mobile.PostActions.toggleActive).toHaveBeenCalledWith(this.reshareLink); expect(Diaspora.Mobile.PostActions.toggleActive).toHaveBeenCalledWith(this.reshareLink);
}); });
it("increases the reshare count on success", function() {
spyOn(Diaspora.Mobile.PostActions, "toggleActive");
var reshareCounter = this.reshareLink.find(".reshare-count");
reshareCounter.text("8");
this.reshareLink.click();
jasmine.Ajax.requests.mostRecent().respondWith({status: 201, responseText: "{}"});
expect(Diaspora.Mobile.PostActions.toggleActive).toHaveBeenCalledWith(this.reshareLink);
expect(reshareCounter.text()).toBe("9");
});
it("lets Diaspora.Mobile.Alert handle AJAX errors", function() { it("lets Diaspora.Mobile.Alert handle AJAX errors", function() {
spyOn(Diaspora.Mobile.Alert, "handleAjaxError"); spyOn(Diaspora.Mobile.Alert, "handleAjaxError");
this.reshareLink.click(); this.reshareLink.click();