mirror of
https://github.com/modrinth/code.git
synced 2026-08-30 11:36:05 +00:00
* begin project disclosures * new project settings header * begin disclosure settings, edit content rules * togglecards * update phrasing of the rules, prepr * more disclosure settings structuring * add functionality toggle * implement functionality with staging api * improve project settings head titles * feat(labrinth): project disclosures model * feat(labrinth): project disclosures database model * feat(labrinth): project disclosures get endpoint * feat(labrinth): censor user ids if set by moderator * feat(labrinth): wrap disclosures in struct * feat(labrinth): edit project disclosures endpoint * style(labrinth): cargo fmt * style(labrinth): fix typo * feat(labrinth): add fields for ai content disclosure * fix(labrinth): field typo * chore(labrinth): update query cache * feat(labrinth): index disclosures in search * refactor(labrinth): use enum instead of bools * feat(labrinth): trigger incremental index on disclosure change * feat(labrinth): change archived status to disclosure * feat(labrinth): use disclosure for archival status * fix(labrinth): error type for deserialization * fix(labrinth): migration timestamp * fix(labrinth): add disclosures to elasticsearch schema * disclosures in search * update photosensitivity warning copy * update archiving, move general project settings to v3 (start redesign there), use project id lookups for stable cache keys, advanced in server search * blue archive banner * display AI use types * improve labels * add modrinth to link * add placeholder missing disclosure report type * add AI metadata checking to block image uploads with notice * update copy * update section 4 of rules * Update rule 6 layout * fix(labrinth): don't remove archival disclosure when changing status via v3 api * feat(labrinth): derive str for ai usages and telemtry consent * feat(labrinth): include ai usages and telemetry consent in disclosure types * Update moderation checklist (#7056) * fix: missing delphi severity (#7054) * Utils nav, new disclosures stage, ai button in rules * add prefix to collect * Finish up new disclosures stage * update r4 messages * new r4 msg, update showcase clarity message * fix: version upload failing to detect mrpack loader (#7063) * fix: mrpack exporting with zip64 (#7064) * fix: action bar max width (#7048) * fix: action bar max width * fix: width * changelog * Rule placeholders with subsections & anchors, update messages. * update new messages to account for new rule and placeholder layout * Add nag for content disclosures --------- Co-authored-by: ThatGravyBoat <gravy@thatgravyboat.tech> Co-authored-by: chyzman <chyzalt@gmail.com> Co-authored-by: Truman Gao <106889354+tdgao@users.noreply.github.com> Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com> * prepr * refactor(labrinth): move disclosure parsing to document creation * fix(labrinth): prevent removing moderator added archival disclosures * fix(labrinth): dedupe ai usages * fix(labrinth): auth logic on archived disclosure removal * feat(labrinth): add interactions field * style(labrinth): cargo fmt * feat(labrinth): granular disclosure locking * add 5.8, move 5.9, update messages and placeholders accordingly. * move disclosures stage earlier * include consent model info in telemetry disclosure msgs * prepr + update date * typo * qa pass * search suboptions * add empty state * checkboxes in column * persistent advanced filters * blog draft * prepr * support soft deletion * reload instead of optimistically updating * update blog * TOS update + minor verbiage adjustment * 45 day grace --------- Co-authored-by: sychic <47618543+Sychic@users.noreply.github.com> Co-authored-by: coolbot <76798835+coolbot100s@users.noreply.github.com> Co-authored-by: ThatGravyBoat <gravy@thatgravyboat.tech> Co-authored-by: chyzman <chyzalt@gmail.com> Co-authored-by: Truman Gao <106889354+tdgao@users.noreply.github.com>
87 lines
2.4 KiB
Vue
87 lines
2.4 KiB
Vue
<script setup lang="ts">
|
|
import { ArchiveIcon } from '@modrinth/assets'
|
|
import {
|
|
ArchivedProjectBanner,
|
|
commonMessages,
|
|
defineMessages,
|
|
SettingsFormGroup,
|
|
StyledInput,
|
|
useVIntl,
|
|
} from '@modrinth/ui'
|
|
|
|
import DisclosureToggleCard from './DisclosureToggleCard.vue'
|
|
import type { DisclosureCardMetaProps, DisclosureLockStatus, NoteDisclosure } from './types'
|
|
|
|
const model = defineModel<NoteDisclosure>({ required: true })
|
|
|
|
const props = defineProps<
|
|
DisclosureCardMetaProps & {
|
|
projectTitle: string
|
|
}
|
|
>()
|
|
|
|
const emit = defineEmits<{
|
|
setLockStatus: [status: DisclosureLockStatus]
|
|
}>()
|
|
|
|
const { formatMessage } = useVIntl()
|
|
|
|
const messages = defineMessages({
|
|
title: {
|
|
id: 'project.settings.disclosures.archived.title',
|
|
defaultMessage: 'Archive project',
|
|
},
|
|
description1: {
|
|
id: 'project.settings.disclosures.archived.description.1',
|
|
defaultMessage:
|
|
'Mark your project as archived to let users know that you are no longer working on it.',
|
|
},
|
|
description2: {
|
|
id: 'project.settings.disclosures.archived.description.2',
|
|
defaultMessage:
|
|
'Archived projects remain discoverable when their visibility is set to Public. If you wish to de-list your project, set its visibility to Unlisted.',
|
|
},
|
|
notePlaceholder: {
|
|
id: 'project.settings.disclosures.archived.note-placeholder',
|
|
defaultMessage: `e.g. I don't have time to maintain this project anymore, feel free to fork it!`,
|
|
},
|
|
bannerPreview: {
|
|
id: 'project.settings.disclosures.archived.banner-preview',
|
|
defaultMessage: 'Banner preview',
|
|
},
|
|
})
|
|
</script>
|
|
|
|
<template>
|
|
<DisclosureToggleCard
|
|
v-bind="props"
|
|
v-model="model.enabled"
|
|
:icon="ArchiveIcon"
|
|
:title="formatMessage(messages.title)"
|
|
@set-lock-status="emit('setLockStatus', $event)"
|
|
>
|
|
<p>{{ formatMessage(messages.description1) }}</p>
|
|
<p>{{ formatMessage(messages.description2) }}</p>
|
|
<template #expanded>
|
|
<SettingsFormGroup
|
|
:title="formatMessage(commonMessages.explanationLabel)"
|
|
title-for="archived-disclosure-note"
|
|
optional
|
|
>
|
|
<StyledInput
|
|
id="archived-disclosure-note"
|
|
v-model="model.note"
|
|
multiline
|
|
:rows="3"
|
|
class="max-w-[40rem]"
|
|
:disabled="disabled"
|
|
:placeholder="formatMessage(messages.notePlaceholder)"
|
|
/>
|
|
</SettingsFormGroup>
|
|
<SettingsFormGroup :title="formatMessage(messages.bannerPreview)">
|
|
<ArchivedProjectBanner :title="projectTitle" :reason="model.note" />
|
|
</SettingsFormGroup>
|
|
</template>
|
|
</DisclosureToggleCard>
|
|
</template>
|