Skip to content

Commit acc20cb

Browse files
committed
don't allow sent messages to be archived
test plan: * sent a message in the inbox * switch to the "Sent" view * should not be able to archive the message closes #CNVS-16426 Change-Id: Ia45c995998ee0bff070af8fb9efd9d3f7e2ee1dd Reviewed-on: https://gerrit.instructure.com/73863 Tested-by: Jenkins Reviewed-by: Jeremy Stanley <jeremy@instructure.com> QA-Review: Deepeeca Soundarrajan <dsoundarrajan@instructure.com> Product-Review: James Williams <jamesw@instructure.com>
1 parent 2d6f8e3 commit acc20cb

4 files changed

Lines changed: 31 additions & 4 deletions

File tree

app/coffeescripts/bundles/conversations_new.coffee

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ require [
8080
return @detail.render()
8181
else if messages.length > 1
8282
delete @detail.model
83+
84+
messages[0].set('canArchive', @filters.type != 'sent')
8385
@detail.onModelChange(messages[0], null)
8486
@detail.render(batch: true)
8587
@header.onModelChange(messages[0], null)
@@ -96,6 +98,8 @@ require [
9698
@detail.$el.disableWhileLoading(@lastFetch)
9799

98100
selectConversation: (model) =>
101+
if model
102+
model.set('canArchive', @filters.type != 'sent')
99103
@header.onModelChange(model, null)
100104
@detail.onModelChange(model, null)
101105
@detail.render()

app/coffeescripts/views/conversations/InboxHeaderView.coffee

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,10 @@ define [
139139
@$archiveBtn.attr('title', if archived then @messages['unarchive'] else @messages['archive'])
140140
@$archiveBtn.find('.screenreader-only')
141141
.text(if archived then @messages['unarchive_conversation'] else @messages['archive_conversation'])
142+
if msg.get('canArchive')
143+
@$archiveBtn.removeAttr('disabled')
144+
else
145+
@$archiveBtn.attr('disabled', true)
142146
@refreshMenu()
143147

144148
refreshMenu: ->

app/views/jst/conversations/messageDetail.handlebars

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,11 @@
4141
<li>
4242
<a href="#" class="forward-btn">{{#t "forward"}}Forward{{/t}}</a>
4343
</li>
44-
<li>
45-
<a href="#" class="archive-btn">{{archiveToggleMessage}}</a>
46-
</li>
47-
44+
{{#if canArchive}}
45+
<li>
46+
<a href="#" class="archive-btn">{{archiveToggleMessage}}</a>
47+
</li>
48+
{{/if}}
4849
<li><a href="#" class="star-toggle-btn">{{starToggleMessage}}</a></li>
4950

5051
<li>

spec/selenium/conversations/conversations_spec.rb

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,24 @@
245245
expect(conversation_elements.size).to eq 1
246246
end
247247

248+
it "should not be able to archive a sent message via the admin archive button" do
249+
conversations
250+
251+
select_view('sent')
252+
click_message(0)
253+
expect(f('#archive-btn').attribute('disabled')).to be_present
254+
end
255+
256+
it "should not be able to archive a sent message via the cog dropdown" do
257+
conversations
258+
259+
select_view('sent')
260+
click_message(0)
261+
# Clicks the title-level more options gear menu
262+
click_more_options(convo:true)
263+
expect(f('.archive-btn.ui-corner-all')).to be_nil
264+
end
265+
248266
context "in archive view" do
249267
before do
250268
@participant.update_attribute(:workflow_state, 'archived')

0 commit comments

Comments
 (0)