Turn hide/unhide comment controls into buttons
This commit is contained in:
parent
5411be6750
commit
55bb243731
5 changed files with 93 additions and 20 deletions
|
@ -30,7 +30,7 @@ OSM.Changeset = function (map) {
|
|||
var data;
|
||||
|
||||
$(form).find("#comment-error").prop("hidden", true);
|
||||
$(form).find("input[type=submit]").prop("disabled", true);
|
||||
$(form).find("button").prop("disabled", true);
|
||||
|
||||
if (include_data) {
|
||||
data = { text: $(form.text).val() };
|
||||
|
@ -49,22 +49,17 @@ OSM.Changeset = function (map) {
|
|||
error: function (xhr) {
|
||||
$(form).find("#comment-error").text(xhr.responseText);
|
||||
$(form).find("#comment-error").prop("hidden", false);
|
||||
$(form).find("input[type=submit]").prop("disabled", false);
|
||||
$(form).find("button").prop("disabled", false);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function initialize() {
|
||||
content.find("input[name=comment]").on("click", function (e) {
|
||||
content.find("button").on("click", function (e) {
|
||||
e.preventDefault();
|
||||
var data = $(e.target).data();
|
||||
updateChangeset(e.target.form, data.method, data.url, true);
|
||||
});
|
||||
|
||||
content.find(".action-button").on("click", function (e) {
|
||||
e.preventDefault();
|
||||
var data = $(e.target).data();
|
||||
updateChangeset(e.target.form, data.method, data.url);
|
||||
var include_data = e.target.name === "comment";
|
||||
updateChangeset(e.target.form, data.method, data.url, include_data);
|
||||
});
|
||||
|
||||
content.find("textarea").on("input", function (e) {
|
||||
|
|
|
@ -647,11 +647,6 @@ tr.turn:hover {
|
|||
}
|
||||
}
|
||||
|
||||
span.action-button:hover {
|
||||
cursor: pointer;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.note-description {
|
||||
overflow: hidden;
|
||||
margin: 0 0 10px 10px;
|
||||
|
|
|
@ -18,9 +18,9 @@
|
|||
<% if current_user %>
|
||||
<div class="col-auto">
|
||||
<% if @changeset.subscribers.exists?(current_user.id) %>
|
||||
<button class="action-button btn btn-sm btn-primary" name="unsubscribe" data-method="POST" data-url="<%= changeset_unsubscribe_url(@changeset) %>"><%= t("javascripts.changesets.show.unsubscribe") %></button>
|
||||
<button class="btn btn-sm btn-primary" name="unsubscribe" data-method="POST" data-url="<%= changeset_unsubscribe_url(@changeset) %>"><%= t("javascripts.changesets.show.unsubscribe") %></button>
|
||||
<% else %>
|
||||
<button class="action-button btn btn-sm btn-primary" name="subscribe" data-method="POST" data-url="<%= changeset_subscribe_url(@changeset) %>"><%= t("javascripts.changesets.show.subscribe") %></button>
|
||||
<button class="btn btn-sm btn-primary" name="subscribe" data-method="POST" data-url="<%= changeset_subscribe_url(@changeset) %>"><%= t("javascripts.changesets.show.subscribe") %></button>
|
||||
<% end %>
|
||||
</div>
|
||||
<% end %>
|
||||
|
@ -38,7 +38,7 @@
|
|||
:time_ago => friendly_date_ago(comment.created_at),
|
||||
:user => link_to(comment.author.display_name, user_path(comment.author))) %>
|
||||
<% if current_user and current_user.moderator? %>
|
||||
— <span class="action-button" data-comment-id="<%= comment.id %>" data-method="POST" data-url="<%= changeset_comment_hide_url(comment.id) %>"><%= t("javascripts.changesets.show.hide_comment") %></span>
|
||||
— <button class="btn btn-sm small btn-link link-secondary p-0 align-baseline" data-method="POST" data-url="<%= changeset_comment_hide_url(comment.id) %>"><%= t("javascripts.changesets.show.hide_comment") %></button>
|
||||
<% end %>
|
||||
</small>
|
||||
<div class="mx-2">
|
||||
|
@ -51,7 +51,7 @@
|
|||
<%= t(".hidden_comment_by_html",
|
||||
:time_ago => friendly_date_ago(comment.created_at),
|
||||
:user => link_to(comment.author.display_name, user_path(comment.author))) %>
|
||||
— <span class="action-button text-muted" data-comment-id="<%= comment.id %>" data-method="POST" data-url="<%= changeset_comment_unhide_url(comment.id) %>"><%= t("javascripts.changesets.show.unhide_comment") %></span>
|
||||
— <button class="btn btn-sm small btn-link link-secondary p-0 align-baseline" data-method="POST" data-url="<%= changeset_comment_unhide_url(comment.id) %>"><%= t("javascripts.changesets.show.unhide_comment") %></button>
|
||||
</small>
|
||||
<div class="mx-2">
|
||||
<%= comment.body.to_html %>
|
||||
|
@ -79,7 +79,7 @@
|
|||
<div id="comment-error" class="alert alert-danger p-2 mb-3" hidden>
|
||||
</div>
|
||||
<div>
|
||||
<input type="submit" name="comment" value="<%= t("javascripts.changesets.show.comment") %>" data-changeset-id="<%= @changeset.id %>" data-method="POST" data-url="<%= changeset_comment_url(@changeset) %>" disabled="1" class="btn btn-sm btn-primary" />
|
||||
<button name="comment" data-method="POST" data-url="<%= changeset_comment_url(@changeset) %>" disabled class="btn btn-sm btn-primary"><%= t("javascripts.changesets.show.comment") %></button>
|
||||
</div>
|
||||
</form>
|
||||
<% else %>
|
||||
|
|
|
@ -33,6 +33,11 @@ class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
|
|||
end
|
||||
end
|
||||
|
||||
def sign_out
|
||||
visit logout_path
|
||||
click_on "Logout", :match => :first
|
||||
end
|
||||
|
||||
def within_sidebar(&block)
|
||||
within "#sidebar_content", &block
|
||||
end
|
||||
|
|
|
@ -44,4 +44,82 @@ class ChangesetCommentsTest < ApplicationSystemTestCase
|
|||
assert_content "Some newly added changeset comment"
|
||||
end
|
||||
end
|
||||
|
||||
test "regular users can't hide comments" do
|
||||
changeset = create(:changeset, :closed)
|
||||
create(:changeset_comment, :changeset => changeset, :body => "Unwanted comment")
|
||||
sign_in_as(create(:user))
|
||||
visit changeset_path(changeset)
|
||||
|
||||
within_sidebar do
|
||||
assert_text "Unwanted comment"
|
||||
assert_no_button "hide"
|
||||
end
|
||||
end
|
||||
|
||||
test "moderators can hide comments" do
|
||||
changeset = create(:changeset, :closed)
|
||||
create(:changeset_comment, :changeset => changeset, :body => "Unwanted comment")
|
||||
|
||||
visit changeset_path(changeset)
|
||||
|
||||
within_sidebar do
|
||||
assert_text "Unwanted comment"
|
||||
end
|
||||
|
||||
sign_in_as(create(:moderator_user))
|
||||
visit changeset_path(changeset)
|
||||
|
||||
within_sidebar do
|
||||
assert_text "Unwanted comment"
|
||||
assert_button "hide", :exact => true
|
||||
assert_no_button "unhide", :exact => true
|
||||
|
||||
click_on "hide", :exact => true
|
||||
|
||||
assert_text "Unwanted comment"
|
||||
assert_no_button "hide", :exact => true
|
||||
assert_button "unhide", :exact => true
|
||||
end
|
||||
|
||||
sign_out
|
||||
visit changeset_path(changeset)
|
||||
|
||||
within_sidebar do
|
||||
assert_no_text "Unwanted comment"
|
||||
end
|
||||
end
|
||||
|
||||
test "moderators can unhide comments" do
|
||||
changeset = create(:changeset, :closed)
|
||||
create(:changeset_comment, :changeset => changeset, :body => "Wanted comment", :visible => false)
|
||||
|
||||
visit changeset_path(changeset)
|
||||
|
||||
within_sidebar do
|
||||
assert_no_text "Wanted comment"
|
||||
end
|
||||
|
||||
sign_in_as(create(:moderator_user))
|
||||
visit changeset_path(changeset)
|
||||
|
||||
within_sidebar do
|
||||
assert_text "Wanted comment"
|
||||
assert_no_button "hide", :exact => true
|
||||
assert_button "unhide", :exact => true
|
||||
|
||||
click_on "unhide", :exact => true
|
||||
|
||||
assert_text "Wanted comment"
|
||||
assert_button "hide", :exact => true
|
||||
assert_no_button "unhide", :exact => true
|
||||
end
|
||||
|
||||
sign_out
|
||||
visit changeset_path(changeset)
|
||||
|
||||
within_sidebar do
|
||||
assert_text "Wanted comment"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Reference in a new issue