UX: update for new core tag separator
This commit is contained in:
parent
6a83db6a46
commit
e51ed45f25
|
@ -23,6 +23,7 @@ import BulkActionsAssignUser from "../components/bulk-actions/bulk-assign-user";
|
||||||
import EditTopicAssignments from "../components/modal/edit-topic-assignments";
|
import EditTopicAssignments from "../components/modal/edit-topic-assignments";
|
||||||
import TopicLevelAssignMenu from "../components/topic-level-assign-menu";
|
import TopicLevelAssignMenu from "../components/topic-level-assign-menu";
|
||||||
import { extendTopicModel } from "../models/topic";
|
import { extendTopicModel } from "../models/topic";
|
||||||
|
import { applyValueTransformer } from "discourse/lib/transformer";
|
||||||
|
|
||||||
const DEPENDENT_KEYS = [
|
const DEPENDENT_KEYS = [
|
||||||
"topic.assigned_to_user",
|
"topic.assigned_to_user",
|
||||||
|
@ -467,28 +468,52 @@ function initialize(api) {
|
||||||
.filter(({ assignee }) => assignee)
|
.filter(({ assignee }) => assignee)
|
||||||
.flat();
|
.flat();
|
||||||
|
|
||||||
if (assignedTo) {
|
if (!assignedTo) {
|
||||||
return assignedTo
|
return "";
|
||||||
.map(({ assignee, note }) => {
|
|
||||||
let assignedPath;
|
|
||||||
if (assignee.assignedToPostId) {
|
|
||||||
assignedPath = `/p/${assignee.assignedToPostId}`;
|
|
||||||
} else {
|
|
||||||
assignedPath = `/t/${topic.id}`;
|
|
||||||
}
|
|
||||||
const icon = iconHTML(assignee.username ? "user-plus" : "group-plus");
|
|
||||||
const name = assignee.username || assignee.name;
|
|
||||||
const tagName = params.tagName || "a";
|
|
||||||
const href =
|
|
||||||
tagName === "a"
|
|
||||||
? `href="${getURL(assignedPath)}" data-auto-route="true"`
|
|
||||||
: "";
|
|
||||||
return `<${tagName} class="assigned-to discourse-tag simple" ${href}>${icon}<span title="${escapeExpression(
|
|
||||||
note
|
|
||||||
)}">${name}</span></${tagName}>`;
|
|
||||||
})
|
|
||||||
.join("");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const createTagHtml = ({ assignee, note }) => {
|
||||||
|
let assignedPath;
|
||||||
|
if (assignee.assignedToPostId) {
|
||||||
|
assignedPath = `/p/${assignee.assignedToPostId}`;
|
||||||
|
} else {
|
||||||
|
assignedPath = `/t/${topic.id}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
const icon = iconHTML(assignee.username ? "user-plus" : "group-plus");
|
||||||
|
const name = assignee.username || assignee.name;
|
||||||
|
const tagName = params.tagName || "a";
|
||||||
|
const href =
|
||||||
|
tagName === "a"
|
||||||
|
? `href="${getURL(assignedPath)}" data-auto-route="true"`
|
||||||
|
: "";
|
||||||
|
|
||||||
|
return `<${tagName} class="assigned-to discourse-tag simple" ${href}>${icon}<span title="${escapeExpression(
|
||||||
|
note
|
||||||
|
)}">${name}</span></${tagName}>`;
|
||||||
|
};
|
||||||
|
|
||||||
|
// is there's one assignment just return the tag
|
||||||
|
if (assignedTo.length === 1) {
|
||||||
|
return createTagHtml(assignedTo[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// join multiple assignments with a separator
|
||||||
|
let result = "";
|
||||||
|
assignedTo.forEach((assignment, index) => {
|
||||||
|
result += createTagHtml(assignment);
|
||||||
|
|
||||||
|
// add separator if not the last tag
|
||||||
|
if (index < assignedTo.length - 1) {
|
||||||
|
const separator = applyValueTransformer("tag-separator", ",", {
|
||||||
|
topic,
|
||||||
|
index,
|
||||||
|
});
|
||||||
|
result += `<span class="discourse-tags__tag-separator">${separator}</span>`;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return result;
|
||||||
});
|
});
|
||||||
|
|
||||||
api.createWidget("assigned-to-post", {
|
api.createWidget("assigned-to-post", {
|
||||||
|
|
Loading…
Reference in New Issue