Re-enable the Moderation tab for projects that are approved (#4067)
By request of the moderation team. This would allow easier access if, e.g., the moderators tell the author of a metadata problem they need to correct.
This commit is contained in:
parent
358cf31c87
commit
5deb4179ad
@ -34,6 +34,38 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</Modal>
|
</Modal>
|
||||||
|
<Modal ref="modalReply" header="Reply to thread">
|
||||||
|
<div class="modal-submit universal-body">
|
||||||
|
<span>
|
||||||
|
Your project is already approved. As such, the moderation team does not actively monitor
|
||||||
|
this thread. However, they may still see your message if there is a problem with your
|
||||||
|
project.
|
||||||
|
</span>
|
||||||
|
<span>
|
||||||
|
If you need to get in contact with the moderation team, please use the
|
||||||
|
<a class="text-link" href="https://support.modrinth.com" target="_blank">
|
||||||
|
Modrinth Help Center
|
||||||
|
</a>
|
||||||
|
and click the green bubble to contact support.
|
||||||
|
</span>
|
||||||
|
<Checkbox
|
||||||
|
v-model="replyConfirmation"
|
||||||
|
description="Confirm moderators do not actively monitor this"
|
||||||
|
>
|
||||||
|
I acknowledge that the moderators do not actively monitor the thread.
|
||||||
|
</Checkbox>
|
||||||
|
<div class="input-group push-right">
|
||||||
|
<button
|
||||||
|
class="btn btn-primary"
|
||||||
|
:disabled="!replyConfirmation"
|
||||||
|
@click="sendReplyFromModal()"
|
||||||
|
>
|
||||||
|
<ReplyIcon aria-hidden="true" />
|
||||||
|
Reply to thread
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</Modal>
|
||||||
<div v-if="flags.developerMode" class="thread-id">
|
<div v-if="flags.developerMode" class="thread-id">
|
||||||
Thread ID:
|
Thread ID:
|
||||||
<CopyCode :text="thread.id" />
|
<CopyCode :text="thread.id" />
|
||||||
@ -71,12 +103,17 @@
|
|||||||
v-if="sortedMessages.length > 0"
|
v-if="sortedMessages.length > 0"
|
||||||
class="btn btn-primary"
|
class="btn btn-primary"
|
||||||
:disabled="!replyBody"
|
:disabled="!replyBody"
|
||||||
@click="sendReply()"
|
@click="isApproved(project) && !isStaff(auth.user) ? openReplyModal() : sendReply()"
|
||||||
>
|
>
|
||||||
<ReplyIcon aria-hidden="true" />
|
<ReplyIcon aria-hidden="true" />
|
||||||
Reply
|
Reply
|
||||||
</button>
|
</button>
|
||||||
<button v-else class="btn btn-primary" :disabled="!replyBody" @click="sendReply()">
|
<button
|
||||||
|
v-else
|
||||||
|
class="btn btn-primary"
|
||||||
|
:disabled="!replyBody"
|
||||||
|
@click="isApproved(project) && !isStaff(auth.user) ? openReplyModal() : sendReply()"
|
||||||
|
>
|
||||||
<SendIcon aria-hidden="true" />
|
<SendIcon aria-hidden="true" />
|
||||||
Send
|
Send
|
||||||
</button>
|
</button>
|
||||||
@ -289,6 +326,7 @@ const sortedMessages = computed(() => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const modalSubmit = ref(null);
|
const modalSubmit = ref(null);
|
||||||
|
const modalReply = ref(null);
|
||||||
|
|
||||||
async function updateThreadLocal() {
|
async function updateThreadLocal() {
|
||||||
let threadId = null;
|
let threadId = null;
|
||||||
@ -316,6 +354,11 @@ async function onUploadImage(file) {
|
|||||||
return response.url;
|
return response.url;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function sendReplyFromModal(status = null, privateMessage = false) {
|
||||||
|
modalReply.value.hide();
|
||||||
|
await sendReply(status, privateMessage);
|
||||||
|
}
|
||||||
|
|
||||||
async function sendReply(status = null, privateMessage = false) {
|
async function sendReply(status = null, privateMessage = false) {
|
||||||
try {
|
try {
|
||||||
const body = {
|
const body = {
|
||||||
@ -398,6 +441,7 @@ async function reopenReport() {
|
|||||||
|
|
||||||
const replyWithSubmission = ref(false);
|
const replyWithSubmission = ref(false);
|
||||||
const submissionConfirmation = ref(false);
|
const submissionConfirmation = ref(false);
|
||||||
|
const replyConfirmation = ref(false);
|
||||||
|
|
||||||
function openResubmitModal(reply) {
|
function openResubmitModal(reply) {
|
||||||
submissionConfirmation.value = false;
|
submissionConfirmation.value = false;
|
||||||
@ -405,6 +449,11 @@ function openResubmitModal(reply) {
|
|||||||
modalSubmit.value.show();
|
modalSubmit.value.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function openReplyModal(reply) {
|
||||||
|
replyConfirmation.value = false;
|
||||||
|
modalReply.value.show();
|
||||||
|
}
|
||||||
|
|
||||||
async function resubmit() {
|
async function resubmit() {
|
||||||
if (replyWithSubmission.value) {
|
if (replyWithSubmission.value) {
|
||||||
await sendReply("processing");
|
await sendReply("processing");
|
||||||
|
|||||||
@ -951,14 +951,7 @@ import {
|
|||||||
useRelativeTime,
|
useRelativeTime,
|
||||||
} from "@modrinth/ui";
|
} from "@modrinth/ui";
|
||||||
import VersionSummary from "@modrinth/ui/src/components/version/VersionSummary.vue";
|
import VersionSummary from "@modrinth/ui/src/components/version/VersionSummary.vue";
|
||||||
import {
|
import { formatCategory, formatProjectType, renderString } from "@modrinth/utils";
|
||||||
formatCategory,
|
|
||||||
formatProjectType,
|
|
||||||
isRejected,
|
|
||||||
isStaff,
|
|
||||||
isUnderReview,
|
|
||||||
renderString,
|
|
||||||
} from "@modrinth/utils";
|
|
||||||
import dayjs from "dayjs";
|
import dayjs from "dayjs";
|
||||||
import { Tooltip } from "floating-vue";
|
import { Tooltip } from "floating-vue";
|
||||||
import { useLocalStorage } from "@vueuse/core";
|
import { useLocalStorage } from "@vueuse/core";
|
||||||
@ -1646,9 +1639,7 @@ const navLinks = computed(() => {
|
|||||||
{
|
{
|
||||||
label: formatMessage(messages.moderationTab),
|
label: formatMessage(messages.moderationTab),
|
||||||
href: `${projectUrl}/moderation`,
|
href: `${projectUrl}/moderation`,
|
||||||
shown:
|
shown: !!currentMember.value,
|
||||||
!!currentMember.value &&
|
|
||||||
(isRejected(project.value) || isUnderReview(project.value) || isStaff(auth.value.user)),
|
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|||||||
@ -76,8 +76,15 @@
|
|||||||
<p>
|
<p>
|
||||||
This is a private conversation thread with the Modrinth moderators. They may message you
|
This is a private conversation thread with the Modrinth moderators. They may message you
|
||||||
with issues concerning this project. This thread is only checked when you submit your
|
with issues concerning this project. This thread is only checked when you submit your
|
||||||
project for review. For additional inquiries, contact
|
project for review. For additional inquiries, please go to the
|
||||||
<a href="https://support.modrinth.com">Modrinth Support</a>.
|
<a class="text-link" href="https://support.modrinth.com" target="_blank">
|
||||||
|
Modrinth Help Center
|
||||||
|
</a>
|
||||||
|
and click the green bubble to contact support.
|
||||||
|
</p>
|
||||||
|
<p v-if="isApproved(project)" class="warning">
|
||||||
|
<IssuesIcon /> The moderators do not actively monitor this chat. However, they may still see
|
||||||
|
messages here if there is a problem with your project.
|
||||||
</p>
|
</p>
|
||||||
<ConversationThread
|
<ConversationThread
|
||||||
v-if="thread"
|
v-if="thread"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user