+ {{icon this.icon}} + {{#if this.assignedToUser}} + + + {{htmlSafe + (i18n + "discourse_assign.assigned_topic_to" + username=(this.prioritizedAssigneeName this.assignedToUser) + path=(assignedToUserPath this.assignedToUser) + ) + }} + + + {{/if}} + + {{#if this.assignedToGroup}} + + + {{htmlSafe + (i18n + "discourse_assign.assigned_topic_to" + username=this.assignedToGroup.name + path=(assignedToGroupPath this.assignedToGroup) + ) + }} + + + {{/if}} + + {{#if this.hasOnlyIndirectAssignments}} + + {{i18n "discourse_assign.assigned"}} + + {{/if}} + {{#if this.indirectlyAssignedTo}} + {{#each + this.indirectAssignments key="postId" + as |indirectAssignment| + }} + + + {{i18n + "discourse_assign.assign_post_to_multiple" + post_number=indirectAssignment.postNumber + username=(this.prioritizedAssigneeName + indirectAssignment.assignee + ) + }} + + + {{/each}} + {{/if}} +
+ {{/if}} + +} diff --git a/assets/javascripts/discourse/components/post-assignments-display.gjs b/assets/javascripts/discourse/components/post-assignments-display.gjs new file mode 100644 index 00000000..c078c890 --- /dev/null +++ b/assets/javascripts/discourse/components/post-assignments-display.gjs @@ -0,0 +1,49 @@ +import Component from "@glimmer/component"; +import { assignedToGroupPath, assignedToUserPath } from "../lib/url"; +import AssignedFirstPost from "./assigned-to-first-post"; +import AssignedToPost from "./assigned-to-post"; + +export default class PostAssignmentsDisplay extends Component { + static shouldRender(args) { + return args.post; + } + + get post() { + return this.args.outletArgs.post; + } + + get assignedTo() { + return this.post.topic?.indirectly_assigned_to?.[this.post.id]?.assigned_to; + } + + get assignedToUser() { + return this.assignedTo.username ? this.assignedTo : null; + } + + get assignedToGroup() { + return !this.assignedToUser && this.assignedTo.name + ? this.assignedTo + : null; + } + + get assignedHref() { + return this.assignedToUser + ? assignedToUserPath(this.assignedToUser) + : assignedToGroupPath(this.assignedToGroup); + } + + + {{#if this.post.firstPost}} +
+