Remove 'archive' tab for assigned topics.
This commit is contained in:
parent
2f457a153f
commit
c24083df5c
|
@ -2,6 +2,5 @@ export default {
|
||||||
resource: 'user.userPrivateMessages',
|
resource: 'user.userPrivateMessages',
|
||||||
map() {
|
map() {
|
||||||
this.route('assigned');
|
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:
|
user:
|
||||||
messages:
|
messages:
|
||||||
assigned: "Assigned"
|
assigned: "Assigned"
|
||||||
assigned_archived: "Assigned Archived"
|
|
||||||
|
|
38
plugin.rb
38
plugin.rb
|
@ -123,29 +123,9 @@ after_initialize do
|
||||||
|
|
||||||
add_to_class(:topic_query, :list_private_messages_assigned) do |user|
|
add_to_class(:topic_query, :list_private_messages_assigned) do |user|
|
||||||
list = private_messages_for(user, :all)
|
list = private_messages_for(user, :all)
|
||||||
user_id = user.id.to_s
|
list = list.where("topics.id IN (
|
||||||
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 (
|
|
||||||
SELECT topic_id FROM topic_custom_fields WHERE name = 'assigned_to_id' AND value = ?
|
SELECT topic_id FROM topic_custom_fields WHERE name = 'assigned_to_id' AND value = ?
|
||||||
)", user_id)
|
)", user.id.to_s)
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
create_list(:private_messages, {}, list)
|
create_list(:private_messages, {}, list)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -219,15 +199,11 @@ after_initialize do
|
||||||
add_class_method(:topic_tracking_state, :publish_assigned_private_message) do |topic, user_id|
|
add_class_method(:topic_tracking_state, :publish_assigned_private_message) do |topic, user_id|
|
||||||
return unless topic.private_message?
|
return unless topic.private_message?
|
||||||
|
|
||||||
assigned_channel = "/private-messages/assigned"
|
MessageBus.publish(
|
||||||
|
"/private-messages/assigned",
|
||||||
[assigned_channel, "#{assigned_channel}/archive"].each do |channel|
|
{ topic_id: topic.id },
|
||||||
MessageBus.publish(
|
user_ids: [user_id]
|
||||||
channel,
|
)
|
||||||
{ topic_id: topic.id },
|
|
||||||
user_ids: [user_id]
|
|
||||||
)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
on(:move_to_inbox) do |info|
|
on(:move_to_inbox) do |info|
|
||||||
|
|
|
@ -45,8 +45,6 @@ describe TopicQuery do
|
||||||
topic
|
topic
|
||||||
end
|
end
|
||||||
|
|
||||||
let(:options) { { status: 'archived' } }
|
|
||||||
|
|
||||||
before do
|
before do
|
||||||
SiteSetting.assign_enabled = true
|
SiteSetting.assign_enabled = true
|
||||||
user_topic
|
user_topic
|
||||||
|
@ -55,47 +53,26 @@ describe TopicQuery do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should return the right topics' do
|
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(
|
expect(
|
||||||
TopicQuery.new(user).list_private_messages_assigned(user).topics
|
TopicQuery.new(user).list_private_messages_assigned(user).topics
|
||||||
).to contain_exactly(assigned_topic, group_assigned_topic)
|
).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)
|
UserArchivedMessage.archive!(user.id, assigned_topic)
|
||||||
|
|
||||||
expect(
|
expect(
|
||||||
TopicQuery.new(user).list_private_messages_assigned(user).topics
|
TopicQuery.new(user).list_private_messages_assigned(user).topics
|
||||||
).to contain_exactly(group_assigned_topic)
|
).to contain_exactly(assigned_topic, group_assigned_topic)
|
||||||
|
|
||||||
expect(
|
|
||||||
TopicQuery.new(user, options).list_private_messages_assigned(user).topics
|
|
||||||
).to contain_exactly(assigned_topic)
|
|
||||||
|
|
||||||
GroupArchivedMessage.archive!(group2.id, group_assigned_topic)
|
GroupArchivedMessage.archive!(group2.id, group_assigned_topic)
|
||||||
|
|
||||||
expect(
|
expect(
|
||||||
TopicQuery.new(user).list_private_messages_assigned(user).topics
|
TopicQuery.new(user).list_private_messages_assigned(user).topics
|
||||||
).to contain_exactly(group_assigned_topic)
|
).to contain_exactly(assigned_topic, group_assigned_topic)
|
||||||
|
|
||||||
expect(
|
|
||||||
TopicQuery.new(user, options).list_private_messages_assigned(user).topics
|
|
||||||
).to contain_exactly(assigned_topic)
|
|
||||||
|
|
||||||
GroupArchivedMessage.archive!(group.id, group_assigned_topic)
|
GroupArchivedMessage.archive!(group.id, group_assigned_topic)
|
||||||
|
|
||||||
expect(
|
expect(
|
||||||
TopicQuery.new(user).list_private_messages_assigned(user).topics
|
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)
|
).to contain_exactly(assigned_topic, group_assigned_topic)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -18,25 +18,17 @@ describe 'integration tests' do
|
||||||
let(:pm) { post.topic }
|
let(:pm) { post.topic }
|
||||||
let(:user) { pm.allowed_users.first }
|
let(:user) { pm.allowed_users.first }
|
||||||
let(:user2) { pm.allowed_users.last }
|
let(:user2) { pm.allowed_users.last }
|
||||||
|
let(:channel) { "/private-messages/assigned" }
|
||||||
let(:channels) do
|
|
||||||
[
|
|
||||||
"/private-messages/assigned",
|
|
||||||
"/private-messages/assigned/archive"
|
|
||||||
]
|
|
||||||
end
|
|
||||||
|
|
||||||
def assert_publish_topic_state(topic, user)
|
def assert_publish_topic_state(topic, user)
|
||||||
messages = MessageBus.track_publish do
|
messages = MessageBus.track_publish do
|
||||||
yield
|
yield
|
||||||
end
|
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.data[:topic_id]).to eq(topic.id)
|
||||||
expect(message.user_ids).to eq([user.id])
|
expect(message.user_ids).to eq([user.id])
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'publishes the right message on archive and move to inbox' do
|
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
|
assert_publish_topic_state(pm, user) do
|
||||||
UserArchivedMessage.move_to_inbox!(user.id, pm.reload)
|
UserArchivedMessage.move_to_inbox!(user.id, pm.reload)
|
||||||
end
|
end
|
||||||
|
|
||||||
messages = MessageBus.track_publish do
|
|
||||||
UserArchivedMessage.archive!(user2.id, pm.reload)
|
|
||||||
end
|
|
||||||
|
|
||||||
expect(channels - messages.map(&:channel)).to eq(channels)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue