Remove 'archive' tab for assigned topics.
This commit is contained in:
parent
2f457a153f
commit
c24083df5c
|
@ -2,6 +2,5 @@ export default {
|
|||
resource: 'user.userPrivateMessages',
|
||||
map() {
|
||||
this.route('assigned');
|
||||
this.route('assigned_archived');
|
||||
}
|
||||
};
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
{{#link-to 'userPrivateMessages.assigned_archived' model}}
|
||||
{{i18n 'user.messages.archive'}}
|
||||
{{/link-to}}
|
|
@ -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);
|
||||
}
|
||||
};
|
|
@ -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" }
|
||||
});
|
||||
}
|
||||
});
|
|
@ -25,4 +25,3 @@ en:
|
|||
user:
|
||||
messages:
|
||||
assigned: "Assigned"
|
||||
assigned_archived: "Assigned Archived"
|
||||
|
|
30
plugin.rb
30
plugin.rb
|
@ -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,16 +199,12 @@ 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,
|
||||
"/private-messages/assigned",
|
||||
{ topic_id: topic.id },
|
||||
user_ids: [user_id]
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
on(:move_to_inbox) do |info|
|
||||
topic = info[:topic]
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -18,26 +18,18 @@ 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 }
|
||||
|
||||
expect(message.data[:topic_id]).to eq(topic.id)
|
||||
expect(message.user_ids).to eq([user.id])
|
||||
end
|
||||
end
|
||||
|
||||
it 'publishes the right message on archive and move to inbox' do
|
||||
assigner = TopicAssigner.new(pm, user)
|
||||
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue