Remove 'archive' tab for assigned topics.

This commit is contained in:
Arpit Jalan 2018-03-26 22:04:16 +05:30
parent 2f457a153f
commit c24083df5c
8 changed files with 13 additions and 100 deletions

View File

@ -2,6 +2,5 @@ export default {
resource: 'user.userPrivateMessages',
map() {
this.route('assigned');
this.route('assigned_archived');
}
};

View File

@ -1,3 +0,0 @@
{{#link-to 'userPrivateMessages.assigned_archived' model}}
{{i18n 'user.messages.archive'}}
{{/link-to}}

View File

@ -1,11 +0,0 @@
import { shouldShowAssigned } from "discourse/plugins/discourse-assign/discourse-assign/connectors/user-messages-nav/assigned-messages";
export default {
setupComponent() {
this.set('classNames', ['archive']);
},
shouldRender(args, component) {
return shouldShowAssigned(args, component);
}
};

View File

@ -1,10 +0,0 @@
import createPMRoute from "discourse/routes/build-private-messages-route";
export default createPMRoute('assigned_archived', 'private-messages-assigned', 'assigned/archive').extend({
model() {
return this.store.findFiltered("topicList", {
filter: `topics/private-messages-assigned/${this.modelFor("user").get("username_lower")}`,
params: { status: "archived" }
});
}
});

View File

@ -25,4 +25,3 @@ en:
user:
messages:
assigned: "Assigned"
assigned_archived: "Assigned Archived"

View File

@ -123,29 +123,9 @@ after_initialize do
add_to_class(:topic_query, :list_private_messages_assigned) do |user|
list = private_messages_for(user, :all)
user_id = user.id.to_s
group_ids = user.groups.pluck(:id)
list = list
.joins("
LEFT JOIN group_archived_messages gm
ON gm.topic_id = topics.id
AND gm.group_id IN (#{group_ids.join(',')})
")
.joins("
LEFT JOIN user_archived_messages um ON um.topic_id = topics.id AND um.user_id = #{user_id}
")
.where("topics.id IN (
list = list.where("topics.id IN (
SELECT topic_id FROM topic_custom_fields WHERE name = 'assigned_to_id' AND value = ?
)", user_id)
list =
if @options[:status] == "archived"
list.where("gm.topic_id IS NOT NULL OR um.topic_id IS NOT NULL")
else
list.where("gm.topic_id IS NULL AND um.topic_id IS NULL")
end
)", user.id.to_s)
create_list(:private_messages, {}, list)
end
@ -219,15 +199,11 @@ after_initialize do
add_class_method(:topic_tracking_state, :publish_assigned_private_message) do |topic, user_id|
return unless topic.private_message?
assigned_channel = "/private-messages/assigned"
[assigned_channel, "#{assigned_channel}/archive"].each do |channel|
MessageBus.publish(
channel,
{ topic_id: topic.id },
user_ids: [user_id]
)
end
MessageBus.publish(
"/private-messages/assigned",
{ topic_id: topic.id },
user_ids: [user_id]
)
end
on(:move_to_inbox) do |info|

View File

@ -45,8 +45,6 @@ describe TopicQuery do
topic
end
let(:options) { { status: 'archived' } }
before do
SiteSetting.assign_enabled = true
user_topic
@ -55,47 +53,26 @@ describe TopicQuery do
end
it 'should return the right topics' do
expect(TopicQuery.new(user).list_private_messages_assigned(user).topics)
.to contain_exactly(assigned_topic, group_assigned_topic)
UserArchivedMessage.archive!(user2.id, assigned_topic)
expect(
TopicQuery.new(user).list_private_messages_assigned(user).topics
).to contain_exactly(assigned_topic, group_assigned_topic)
expect(
TopicQuery.new(user, options).list_private_messages_assigned(user).topics
).to eq([])
UserArchivedMessage.archive!(user.id, assigned_topic)
expect(
TopicQuery.new(user).list_private_messages_assigned(user).topics
).to contain_exactly(group_assigned_topic)
expect(
TopicQuery.new(user, options).list_private_messages_assigned(user).topics
).to contain_exactly(assigned_topic)
).to contain_exactly(assigned_topic, group_assigned_topic)
GroupArchivedMessage.archive!(group2.id, group_assigned_topic)
expect(
TopicQuery.new(user).list_private_messages_assigned(user).topics
).to contain_exactly(group_assigned_topic)
expect(
TopicQuery.new(user, options).list_private_messages_assigned(user).topics
).to contain_exactly(assigned_topic)
).to contain_exactly(assigned_topic, group_assigned_topic)
GroupArchivedMessage.archive!(group.id, group_assigned_topic)
expect(
TopicQuery.new(user).list_private_messages_assigned(user).topics
).to eq([])
expect(
TopicQuery.new(user, options).list_private_messages_assigned(user).topics
).to contain_exactly(assigned_topic, group_assigned_topic)
end
end

View File

@ -18,25 +18,17 @@ describe 'integration tests' do
let(:pm) { post.topic }
let(:user) { pm.allowed_users.first }
let(:user2) { pm.allowed_users.last }
let(:channels) do
[
"/private-messages/assigned",
"/private-messages/assigned/archive"
]
end
let(:channel) { "/private-messages/assigned" }
def assert_publish_topic_state(topic, user)
messages = MessageBus.track_publish do
yield
end
channels.each do |channel|
message = messages.find { |message| message.channel == channel }
message = messages.find { |message| message.channel == channel }
expect(message.data[:topic_id]).to eq(topic.id)
expect(message.user_ids).to eq([user.id])
end
expect(message.data[:topic_id]).to eq(topic.id)
expect(message.user_ids).to eq([user.id])
end
it 'publishes the right message on archive and move to inbox' do
@ -50,12 +42,6 @@ describe 'integration tests' do
assert_publish_topic_state(pm, user) do
UserArchivedMessage.move_to_inbox!(user.id, pm.reload)
end
messages = MessageBus.track_publish do
UserArchivedMessage.archive!(user2.id, pm.reload)
end
expect(channels - messages.map(&:channel)).to eq(channels)
end
end
end