fix(sent): Do not allow sent or drafts to be modified

- Specifically, when dragging from the sent perspective, we should not
  allow the sent label to be removed.
- If moved to trash or spam, `all mail` will be correctly removed from
  the thread, but it will keep sent label
- Show sent MailLabel on the threads
This commit is contained in:
Juan Tejada 2016-03-10 15:41:42 -08:00
parent b9810d5983
commit 23c68df4c0
4 changed files with 9 additions and 6 deletions

View file

@ -58,5 +58,5 @@ describe 'Category', ->
cat.name = 'sent'
expect(cat.isUserCategory()).toBe false
expect(cat.isStandardCategory()).toBe true
expect(cat.isHiddenCategory()).toBe true
expect(cat.isHiddenCategory()).toBe false
expect(cat.isLockedCategory()).toBe true

View file

@ -70,8 +70,8 @@ describe 'Thread', ->
expect(actualOut.length).toBe 1
expect(actualOut[0].displayName).toBe 'not important'
it "doesn't display 'sent', 'all', 'archive', or 'drafts'", ->
inputs = ['sent', 'all', 'archive', 'drafts']
it "doesn't display 'all', 'archive', or 'drafts'", ->
inputs = ['all', 'archive', 'drafts']
actualOut = sortedForCategoryNames inputs
expect(actualOut.length).toBe 0

View file

@ -18,11 +18,11 @@ StandardCategories = {
LockedCategories = {
"sent"
"drafts"
"N1-Snoozed"
}
HiddenCategories = {
"sent"
"drafts"
"all"
"archive"

View file

@ -305,14 +305,17 @@ class CategoryMailboxPerspective extends MailboxPerspective
receiveThreads: (threadsOrIds) =>
FocusedPerspectiveStore = require './flux/stores/focused-perspective-store'
currentCategories = FocusedPerspectiveStore.current().categories()
current= FocusedPerspectiveStore.current()
# This assumes that the we don't have more than one category per accountId
# attached to this perspective
DatabaseStore.modelify(Thread, threadsOrIds).then (threads) =>
tasks = TaskFactory.tasksForApplyingCategories
threads: threads
categoriesToRemove: (accountId) -> _.filter(currentCategories, _.matcher({accountId}))
categoriesToRemove: (accountId) ->
if current.categoriesSharedName() in Category.LockedCategoryNames
return []
return _.filter(current.categories(), _.matcher({accountId}))
categoriesToAdd: (accountId) => [_.findWhere(@_categories, {accountId})]
Actions.queueTasks(tasks)