FEATURE: use topic list format for assigned

FEATURE: ability to see assigned messages
This commit is contained in:
Sam 2017-03-01 16:42:01 -05:00
parent 32767b5553
commit 7c3e0c6547
7 changed files with 43 additions and 3 deletions

View File

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

View File

@ -0,0 +1,3 @@
{{#link-to 'userPrivateMessages.assigned' model}}
{{i18n 'discourse_assign.assigned'}}
{{/link-to}}

View File

@ -0,0 +1,7 @@
export default {
shouldRender(args, component) {
const needsButton = component.currentUser && component.currentUser.get('staff');
return needsButton && (!component.get('site.mobileView') || args.topic.get('isPrivateMessage'));
}
};

View File

@ -1,6 +1,9 @@
import UserActivityStreamRoute from "discourse/routes/user-activity-stream";
import UserTopicListRoute from "discourse/routes/user-topic-list";
export default UserActivityStreamRoute.extend({
export default UserTopicListRoute.extend({
userActionType: 16,
noContentHelpKey: "discourse_assigns.no_assigns"
noContentHelpKey: "discourse_assigns.no_assigns",
model: function() {
return this.store.findFiltered('topicList', {filter: 'latest', params: {assigned: this.modelFor('user').get('username_lower') }});
}
});

View File

@ -0,0 +1,3 @@
import createPMRoute from "discourse/routes/build-private-messages-route";
export default createPMRoute('assigned', 'private-messages-assigned');

View File

@ -329,6 +329,22 @@ SQL
end
end
require_dependency 'topic_query'
class ::TopicQuery
def list_private_messages_assigned(user)
list = private_messages_for(user, :user)
list = list.where("topics.id IN (
SELECT topic_id FROM topic_custom_fields WHERE name = 'assigned_to_id' AND value = ?
)", user.id.to_s)
create_list(:private_messages, {}, list)
end
end
require_dependency 'list_controller'
class ::ListController
generate_message_route(:private_messages_assigned)
end
DiscourseAssign::Engine.routes.draw do
put "/assign" => "assign#assign"
put "/unassign" => "assign#unassign"
@ -336,6 +352,8 @@ SQL
Discourse::Application.routes.append do
mount ::DiscourseAssign::Engine, at: "/assign"
get "topics/private-messages-assigned/:username" => "list#private_messages_assigned",
as: "topics_private_messages_assigned", constraints: {username: /[\w.\-]+?/}
end
end