feat(admin/members): mark-as-Slack-invited button + date display
Replaces the placeholder Slack-invite handler with a call to the new PATCH /api/admin/members/:id/slack-status endpoint. Status labels are reworded to match reality (no Slack API call from this app): - Pending → Not yet invited - Invited → Invited <slackInvitedAt> - Action button copy → 'Mark as Slack invited' - Removes slackInviteStatus reads from the member detail page (the remaining repo-wide sweep lands in the cleanup task).
This commit is contained in:
parent
0981596ea2
commit
c2999810c6
2 changed files with 95 additions and 22 deletions
|
|
@ -124,8 +124,11 @@
|
|||
</span>
|
||||
</td>
|
||||
<td>
|
||||
<span :class="member.slackInvited ? 'status-ok' : 'status-dim'">
|
||||
{{ member.slackInvited ? "Invited" : "Pending" }}
|
||||
<span v-if="member.slackInvited" class="status-ok">
|
||||
Invited {{ formatDate(member.slackInvitedAt) }}
|
||||
</span>
|
||||
<span v-else class="status-dim">
|
||||
Not yet invited
|
||||
</span>
|
||||
</td>
|
||||
<td class="col-mono col-date">
|
||||
|
|
@ -135,8 +138,12 @@
|
|||
<NuxtLink :to="`/admin/members/${member._id}`" class="link-btn" @click.stop
|
||||
>View</NuxtLink
|
||||
>
|
||||
<button class="link-btn" @click.stop="sendSlackInvite(member)">
|
||||
Slack
|
||||
<button
|
||||
v-if="!member.slackInvited"
|
||||
class="link-btn"
|
||||
@click.stop="markSlackInvited(member)"
|
||||
>
|
||||
Mark as Slack invited
|
||||
</button>
|
||||
<button class="link-btn" @click.stop="editMember(member)">Edit</button>
|
||||
</td>
|
||||
|
|
@ -829,8 +836,24 @@ const submitInvites = async () => {
|
|||
};
|
||||
|
||||
// --- Existing actions ---
|
||||
const sendSlackInvite = (member) => {
|
||||
console.log("Send Slack invite to:", member.email);
|
||||
const markSlackInvited = async (member) => {
|
||||
try {
|
||||
const res = await $fetch(
|
||||
`/api/admin/members/${member._id}/slack-status`,
|
||||
{
|
||||
method: "PATCH",
|
||||
body: { slackInvited: true },
|
||||
},
|
||||
);
|
||||
Object.assign(member, res.member);
|
||||
toast.add({ title: "Marked as Slack invited", color: "success" });
|
||||
} catch (err) {
|
||||
toast.add({
|
||||
title: "Failed to mark Slack invited",
|
||||
description: err.data?.statusMessage || err.message,
|
||||
color: "error",
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
// --- Edit Member ---
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue