Show spinner when loading comments

closes #7170
This commit is contained in:
Steffen van Bergerem 2016-11-02 23:44:20 +01:00 committed by Benjamin Neff
parent 951149dd24
commit a73e1baaed
5 changed files with 39 additions and 1 deletions

View file

@ -7,6 +7,7 @@
* Hide 'reshare' button on already reshared posts [#7169](https://github.com/diaspora/diaspora/pull/7169)
## Features
* Show spinner when loading comments in the stream [#7170](https://github.com/diaspora/diaspora/pull/7170)
# 0.6.1.0

View file

@ -104,10 +104,12 @@ app.views.CommentStream = app.views.Base.extend({
},
expandComments: function(evt){
this.$(".loading-comments").removeClass("hidden");
if(evt){ evt.preventDefault(); }
this.model.comments.fetch({
success: function() {
this.$("div.comment.show_comments").addClass("hidden");
this.$(".loading-comments").addClass("hidden");
}.bind(this)
});
}

View file

@ -1,13 +1,27 @@
.comment_stream {
.show_comments {
margin-top: 5px;
border-top: 1px solid $border-grey;
line-height: $line-height-computed;
margin-top: 5px;
a {
color: $text-grey;
font-size: 13px;
}
.media { margin-top: 10px; }
}
.loading-comments {
height: $line-height-computed + 11px; // height of .show_comments: line-height, 10px margin, 1px border
margin-top: -$line-height-computed - 11px;
.loader {
height: 20px;
width: 20px;
}
.media { margin: 5px; }
}
.comments > .comment,
.comment.new-comment-form-wrapper {
.avatar {

View file

@ -6,6 +6,14 @@
</div>
</div>
<div class="loading-comments comment text-center hidden">
<div class="media">
<div class="loader">
<div class="spinner"></div>
</div>
</div>
</div>
<div class="comments"> </div>
{{#if loggedIn}}

View file

@ -164,6 +164,19 @@ describe("app.views.CommentStream", function(){
}).join("")
);
});
it("shows the spinner when loading comments and removes it on success", function() {
this.view.render();
expect(this.view.$(".loading-comments")).toHaveClass("hidden");
this.view.expandComments();
expect(this.view.$(".loading-comments")).not.toHaveClass("hidden");
jasmine.Ajax.requests.mostRecent().respondWith({
status: 200, responseText: JSON.stringify([])
});
expect(this.view.$(".loading-comments")).toHaveClass("hidden");
});
});
describe("pressing a key when typing on the new comment box", function(){