From 463ae8f570f986d9f50ae42067715d6db0dc1541 Mon Sep 17 00:00:00 2001 From: Douwe Maan <douwe@selenight.nl> Date: Fri, 12 Aug 2016 20:20:51 -0500 Subject: [PATCH] Force notes poll after commands have been executed --- app/assets/javascripts/notes.js | 40 ++++++++++--------- app/services/notes/create_service.rb | 2 +- .../issues/user_uses_slash_commands_spec.rb | 4 +- ...issuable_slash_commands_shared_examples.rb | 22 +++++----- 4 files changed, 35 insertions(+), 33 deletions(-) diff --git a/app/assets/javascripts/notes.js b/app/assets/javascripts/notes.js index 99bc1a640a8..2484a07f363 100644 --- a/app/assets/javascripts/notes.js +++ b/app/assets/javascripts/notes.js @@ -201,7 +201,7 @@ Increase @pollingInterval up to 120 seconds on every function call, if `shouldReset` has a truthy value, 'null' or 'undefined' the variable will reset to @basePollingInterval. - + Note: this function is used to gradually increase the polling interval if there aren't new notes coming from the server */ @@ -223,7 +223,7 @@ /* Render note in main comments area. - + Note: for rendering inline notes use renderDiscussionNote */ @@ -236,6 +236,7 @@ else { if (note.errors.commands_only) { new Flash(note.errors.commands_only, 'notice', this.parentTimeline); + this.refresh(); } } return; @@ -250,6 +251,7 @@ $notesList.append(note.html).syntaxHighlight(); gl.utils.localTimeAgo($notesList.find("#note_" + note.id + " .js-timeago"), false); this.initTaskList(); + this.refresh(); return this.updateNotesCount(1); } }; @@ -270,7 +272,7 @@ /* Render note in discussion area. - + Note: for rendering inline notes use renderDiscussionNote */ @@ -309,7 +311,7 @@ /* Called in response the main target form has been successfully submitted. - + Removes any errors. Resets text and preview. Resets buttons. @@ -334,7 +336,7 @@ /* Shows the main form and does some setup on it. - + Sets some hidden fields in the form. */ @@ -354,7 +356,7 @@ /* General note form setup. - + deactivates the submit button when text is empty hides the preview button when text is empty setup GFM auto complete @@ -371,7 +373,7 @@ /* Called in response to the new note form being submitted - + Adds new note to list. */ @@ -386,7 +388,7 @@ /* Called in response to the new note form being submitted - + Adds new note to list. */ @@ -398,7 +400,7 @@ /* Called in response to the edit note form being submitted - + Updates the current note field. */ @@ -415,7 +417,7 @@ /* Called in response to clicking the edit note link - + Replaces the note text with the note edit form Adds a data attribute to the form with the original content of the note for cancellations */ @@ -455,7 +457,7 @@ /* Called in response to clicking the edit note link - + Hides edit form and restores the original note text to the editor textarea. */ @@ -477,7 +479,7 @@ /* Called in response to deleting a note of any kind. - + Removes the actual note from view. Removes the whole discussion if the last note is being removed. */ @@ -503,7 +505,7 @@ /* Called in response to clicking the delete attachment link - + Removes the attachment wrapper view, including image tag if it exists Resets the note editing form */ @@ -520,7 +522,7 @@ /* Called when clicking on the "reply" button for a diff line. - + Shows the note form below the notes. */ @@ -536,9 +538,9 @@ /* Shows the diff or discussion form and does some setup on it. - + Sets some hidden fields in the form. - + Note: dataHolder must have the "discussionId", "lineCode", "noteableType" and "noteableId" data attributes set. */ @@ -562,7 +564,7 @@ /* Called when clicking on the "add a comment" button on the side of a diff line. - + Inserts a temporary row for the form below the line. Sets up the form and shows it. */ @@ -610,7 +612,7 @@ /* Called in response to "cancel" on a diff note form. - + Shows the reply button again. Removes the form and if necessary it's temporary row. */ @@ -639,7 +641,7 @@ /* Called after an attachment file has been selected. - + Updates the file name for the selected attachment. */ diff --git a/app/services/notes/create_service.rb b/app/services/notes/create_service.rb index f7cf4a8edc0..e9f37e04993 100644 --- a/app/services/notes/create_service.rb +++ b/app/services/notes/create_service.rb @@ -28,7 +28,7 @@ module Notes # We must add the error after we call #save because errors are reset # when #save is called if slash_commands_service.execute(command_params, note) && note.note.blank? - note.errors.add(:commands_only, 'Your commands are being executed.') + note.errors.add(:commands_only, 'Your commands have been executed!') end note diff --git a/spec/features/issues/user_uses_slash_commands_spec.rb b/spec/features/issues/user_uses_slash_commands_spec.rb index fe320070704..510f4254b54 100644 --- a/spec/features/issues/user_uses_slash_commands_spec.rb +++ b/spec/features/issues/user_uses_slash_commands_spec.rb @@ -27,7 +27,7 @@ feature 'Issues > User uses slash commands', feature: true, js: true do end expect(page).not_to have_content '/due_date 2016-08-28' - expect(page).to have_content 'Your commands are being executed.' + expect(page).to have_content 'Your commands have been executed!' issue.reload @@ -47,7 +47,7 @@ feature 'Issues > User uses slash commands', feature: true, js: true do end expect(page).not_to have_content '/clear_due_date' - expect(page).to have_content 'Your commands are being executed.' + expect(page).to have_content 'Your commands have been executed!' issue.reload diff --git a/spec/support/issuable_slash_commands_shared_examples.rb b/spec/support/issuable_slash_commands_shared_examples.rb index e1255bd248d..ace14c19fd8 100644 --- a/spec/support/issuable_slash_commands_shared_examples.rb +++ b/spec/support/issuable_slash_commands_shared_examples.rb @@ -74,7 +74,7 @@ shared_examples 'issuable record that supports slash commands in its description expect(page).not_to have_content '/assign @bob' expect(page).not_to have_content '/label ~bug' expect(page).not_to have_content '/milestone %"ASAP"' - expect(page).to have_content 'Your commands are being executed.' + expect(page).to have_content 'Your commands have been executed!' issuable.reload @@ -98,7 +98,7 @@ shared_examples 'issuable record that supports slash commands in its description end expect(page).not_to have_content '/close' - expect(page).to have_content 'Your commands are being executed.' + expect(page).to have_content 'Your commands have been executed!' expect(issuable.reload).to be_closed end @@ -118,7 +118,7 @@ shared_examples 'issuable record that supports slash commands in its description end expect(page).not_to have_content '/close' - expect(page).not_to have_content 'Your commands are being executed.' + expect(page).not_to have_content 'Your commands have been executed!' expect(issuable).to be_open end @@ -139,7 +139,7 @@ shared_examples 'issuable record that supports slash commands in its description end expect(page).not_to have_content '/reopen' - expect(page).to have_content 'Your commands are being executed.' + expect(page).to have_content 'Your commands have been executed!' expect(issuable.reload).to be_open end @@ -159,7 +159,7 @@ shared_examples 'issuable record that supports slash commands in its description end expect(page).not_to have_content '/reopen' - expect(page).not_to have_content 'Your commands are being executed.' + expect(page).not_to have_content 'Your commands have been executed!' expect(issuable).to be_closed end @@ -175,7 +175,7 @@ shared_examples 'issuable record that supports slash commands in its description end expect(page).not_to have_content '/title' - expect(page).to have_content 'Your commands are being executed.' + expect(page).to have_content 'Your commands have been executed!' expect(issuable.reload.title).to eq 'Awesome new title' end @@ -195,7 +195,7 @@ shared_examples 'issuable record that supports slash commands in its description end expect(page).not_to have_content '/title' - expect(page).not_to have_content 'Your commands are being executed.' + expect(page).not_to have_content 'Your commands have been executed!' expect(issuable.reload.title).not_to eq 'Awesome new title' end @@ -210,7 +210,7 @@ shared_examples 'issuable record that supports slash commands in its description end expect(page).not_to have_content '/todo' - expect(page).to have_content 'Your commands are being executed.' + expect(page).to have_content 'Your commands have been executed!' todos = TodosFinder.new(master).execute todo = todos.first @@ -244,7 +244,7 @@ shared_examples 'issuable record that supports slash commands in its description end expect(page).not_to have_content '/done' - expect(page).to have_content 'Your commands are being executed.' + expect(page).to have_content 'Your commands have been executed!' expect(todo.reload).to be_done end @@ -260,7 +260,7 @@ shared_examples 'issuable record that supports slash commands in its description end expect(page).not_to have_content '/subscribe' - expect(page).to have_content 'Your commands are being executed.' + expect(page).to have_content 'Your commands have been executed!' expect(issuable.subscribed?(master)).to be_truthy end @@ -280,7 +280,7 @@ shared_examples 'issuable record that supports slash commands in its description end expect(page).not_to have_content '/unsubscribe' - expect(page).to have_content 'Your commands are being executed.' + expect(page).to have_content 'Your commands have been executed!' expect(issuable.subscribed?(master)).to be_falsy end -- GitLab