OSM.loadSidebarContent(path, function () {
initialize(path, id, moveToNote);
});
+ },
+ error: function (xhr) {
+ $(form).find("#comment-error")
+ .text(xhr.responseText)
+ .prop("hidden", false);
+ updateButtons(form);
}
});
});
content.find("textarea").on("input", function (e) {
- var form = e.target.form;
-
- if ($(e.target).val() === "") {
- $(form.close).val($(form.close).data("defaultActionText"));
- $(form.comment).prop("disabled", true);
- } else {
- $(form.close).val($(form.close).data("commentActionText"));
- $(form.comment).prop("disabled", false);
- }
+ updateButtons(e.target.form);
});
content.find("textarea").val("").trigger("input");
if (callback) callback();
}
+ function updateButtons(form) {
+ $(form.close).prop("disabled", false);
+ if ($(form.text).val() === "") {
+ $(form.close).val($(form.close).data("defaultActionText"));
+ $(form.comment).prop("disabled", true);
+ } else {
+ $(form.close).val($(form.close).data("commentActionText"));
+ $(form.comment).prop("disabled", false);
+ }
+ }
+
function moveToNote() {
var data = $(".details").data();
if (!data) return;
assert_content "Some newly added note comment"
end
end
+
+ test "can't add a comment when blocked" do
+ note = create(:note_with_comments)
+ user = create(:user)
+ sign_in_as(user)
+ visit note_path(note)
+ block = create(:user_block, :user => user)
+
+ within_sidebar do
+ fill_in "text", :with => "Comment that won't be added while blocked"
+
+ assert_no_text "Comment from #{user.display_name}"
+ assert_no_text "Comment that won't be added while blocked"
+ assert_no_text "Your access to the API has been blocked"
+ assert_button "Comment & Resolve", :disabled => false
+ assert_button "Comment", :disabled => false
+
+ click_on "Comment"
+
+ assert_no_text "Comment from #{user.display_name}"
+ assert_no_text "Comment that won't be added while blocked"
+ assert_text "Your access to the API has been blocked"
+ assert_button "Comment & Resolve", :disabled => false
+ assert_button "Comment", :disabled => false
+
+ block.revoke! block.creator
+
+ click_on "Comment"
+
+ assert_text "Comment from #{user.display_name}"
+ assert_text "Comment that won't be added while blocked"
+ assert_no_text "Your access to the API has been blocked"
+ end
+ end
+
+ test "can't resolve a note when blocked" do
+ note = create(:note_with_comments)
+ user = create(:user)
+ sign_in_as(user)
+ visit note_path(note)
+ create(:user_block, :user => user)
+
+ within_sidebar do
+ assert_text "Unresolved note"
+ assert_no_text "Resolved note"
+ assert_no_text "Your access to the API has been blocked"
+ assert_button "Resolve", :disabled => false
+ assert_button "Comment", :disabled => true
+
+ click_on "Resolve"
+
+ assert_text "Unresolved note"
+ assert_no_text "Resolved note"
+ assert_text "Your access to the API has been blocked"
+ assert_button "Resolve", :disabled => false
+ assert_button "Comment", :disabled => true
+ end
+ end
end