diff --git a/packages/db-mongodb/src/findGlobalVersions.ts b/packages/db-mongodb/src/findGlobalVersions.ts index 51bbd85ec8..0c723e5c8d 100644 --- a/packages/db-mongodb/src/findGlobalVersions.ts +++ b/packages/db-mongodb/src/findGlobalVersions.ts @@ -64,7 +64,7 @@ export const findGlobalVersions: FindGlobalVersions = async function findGlobalV forceCountFn: hasNearConstraint, lean: true, leanWithId: true, - offset: skip, + limit, options, page, pagination, diff --git a/packages/graphql/src/resolvers/collections/restoreVersion.ts b/packages/graphql/src/resolvers/collections/restoreVersion.ts index a6bae38174..942e3e473f 100644 --- a/packages/graphql/src/resolvers/collections/restoreVersion.ts +++ b/packages/graphql/src/resolvers/collections/restoreVersion.ts @@ -7,6 +7,7 @@ import type { Context } from '../types.js' export type Resolver = ( _: unknown, args: { + draft?: boolean id: number | string }, context: { @@ -20,6 +21,7 @@ export default function restoreVersionResolver(collection: Collection): Resolver id: args.id, collection, depth: 0, + draft: args.draft, req: isolateObjectProperty(context.req, 'transactionID'), } diff --git a/packages/graphql/src/resolvers/globals/restoreVersion.ts b/packages/graphql/src/resolvers/globals/restoreVersion.ts index 56ba30d796..c7c1b9216c 100644 --- a/packages/graphql/src/resolvers/globals/restoreVersion.ts +++ b/packages/graphql/src/resolvers/globals/restoreVersion.ts @@ -7,6 +7,7 @@ import type { Context } from '../types.js' type Resolver = ( _: unknown, args: { + draft?: boolean id: number | string }, context: { @@ -18,6 +19,7 @@ export default function restoreVersionResolver(globalConfig: SanitizedGlobalConf const options = { id: args.id, depth: 0, + draft: args.draft, globalConfig, req: isolateObjectProperty(context.req, 'transactionID'), } diff --git a/packages/graphql/src/schema/initCollections.ts b/packages/graphql/src/schema/initCollections.ts index 1514042db9..5b81f9838b 100644 --- a/packages/graphql/src/schema/initCollections.ts +++ b/packages/graphql/src/schema/initCollections.ts @@ -342,6 +342,7 @@ function initCollectionsGraphQL({ config, graphqlResult }: InitCollectionsGraphQ type: collection.graphQL.type, args: { id: { type: versionIDType }, + draft: { type: GraphQLBoolean }, }, resolve: restoreVersionResolver(collection), } diff --git a/packages/graphql/src/schema/initGlobals.ts b/packages/graphql/src/schema/initGlobals.ts index 1c8604d8ab..6f3273fbed 100644 --- a/packages/graphql/src/schema/initGlobals.ts +++ b/packages/graphql/src/schema/initGlobals.ts @@ -133,6 +133,7 @@ function initGlobalsGraphQL({ config, graphqlResult }: InitGlobalsGraphQLArgs): type: graphqlResult.globals.graphQL[slug].versionType, args: { id: { type: idType }, + draft: { type: GraphQLBoolean }, ...(config.localization ? { fallbackLocale: { type: graphqlResult.types.fallbackLocaleInputType }, @@ -171,6 +172,7 @@ function initGlobalsGraphQL({ config, graphqlResult }: InitGlobalsGraphQLArgs): type: graphqlResult.globals.graphQL[slug].type, args: { id: { type: idType }, + draft: { type: GraphQLBoolean }, }, resolve: restoreVersionResolver(global), } diff --git a/packages/next/src/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.tsx b/packages/next/src/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.tsx index 18f8125613..38192c0d69 100644 --- a/packages/next/src/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.tsx +++ b/packages/next/src/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.tsx @@ -1,6 +1,6 @@ 'use client' import { useDocumentInfo } from '@payloadcms/ui' -import React, { Fragment } from 'react' +import React from 'react' import { baseClass } from '../../Tab/index.js' @@ -12,13 +12,14 @@ export const VersionsPill: React.FC = () => { // documents that are version enabled _always_ have at least one version const hasVersions = versions?.totalDocs > 0 - return ( - - {hasVersions ? versions.totalDocs.toString() :  } - - ) + if (hasVersions) + return ( + + {versions.totalDocs.toString()} + + ) } diff --git a/packages/next/src/routes/rest/collections/restoreVersion.ts b/packages/next/src/routes/rest/collections/restoreVersion.ts index 7f5d2ac98d..af7f217b50 100644 --- a/packages/next/src/routes/rest/collections/restoreVersion.ts +++ b/packages/next/src/routes/rest/collections/restoreVersion.ts @@ -14,6 +14,7 @@ export const restoreVersion: CollectionRouteHandlerWithID = async ({ }) => { const { searchParams } = req const depth = searchParams.get('depth') + const draft = searchParams.get('draft') const id = sanitizeCollectionID({ id: incomingID, @@ -25,6 +26,7 @@ export const restoreVersion: CollectionRouteHandlerWithID = async ({ id, collection, depth: isNumber(depth) ? Number(depth) : undefined, + draft: draft === 'true' ? true : undefined, req, }) diff --git a/packages/next/src/routes/rest/globals/restoreVersion.ts b/packages/next/src/routes/rest/globals/restoreVersion.ts index 4fdc0b0643..04ac3aa370 100644 --- a/packages/next/src/routes/rest/globals/restoreVersion.ts +++ b/packages/next/src/routes/rest/globals/restoreVersion.ts @@ -9,10 +9,12 @@ import { headersWithCors } from '../../../utilities/headersWithCors.js' export const restoreVersion: GlobalRouteHandlerWithID = async ({ id, globalConfig, req }) => { const { searchParams } = req const depth = searchParams.get('depth') + const draft = searchParams.get('draft') const doc = await restoreVersionOperationGlobal({ id, depth: isNumber(depth) ? Number(depth) : undefined, + draft: draft === 'true' ? true : undefined, globalConfig, req, }) diff --git a/packages/next/src/views/Version/Default/index.tsx b/packages/next/src/views/Version/Default/index.tsx index 2afdc151d0..f919658cbd 100644 --- a/packages/next/src/views/Version/Default/index.tsx +++ b/packages/next/src/views/Version/Default/index.tsx @@ -111,6 +111,7 @@ export const DefaultVersionView: React.FC = ({ globalSlug={globalSlug} label={collectionConfig?.labels.singular || globalConfig?.label} originalDocID={id} + status={doc?.version?._status} versionDate={versionCreatedAt} versionID={versionID} /> diff --git a/packages/next/src/views/Version/Restore/index.scss b/packages/next/src/views/Version/Restore/index.scss index 9ebbc94396..da94dcd536 100644 --- a/packages/next/src/views/Version/Restore/index.scss +++ b/packages/next/src/views/Version/Restore/index.scss @@ -2,6 +2,37 @@ .restore-version { cursor: pointer; + display: flex; + + .popup-button { + display: flex; + } + + &__chevron { + background-color: var(--theme-elevation-150); + border-top-left-radius: 0; + border-bottom-left-radius: 0; + cursor: pointer; + + .stroke { + stroke-width: 1px; + } + + &:hover { + background: var(--theme-elevation-100); + } + } + + &__button { + border-top-right-radius: 0px; + border-bottom-right-radius: 0px; + margin-right: 2px; + + &:focus { + border-radius: 0; + outline-offset: 0; + } + } &__modal { @include blur-bg; diff --git a/packages/next/src/views/Version/Restore/index.tsx b/packages/next/src/views/Version/Restore/index.tsx index fc50f00e2f..bbe83a2876 100644 --- a/packages/next/src/views/Version/Restore/index.tsx +++ b/packages/next/src/views/Version/Restore/index.tsx @@ -1,6 +1,16 @@ 'use client' import { getTranslation } from '@payloadcms/translations' -import { Button, Modal, Pill, useConfig, useModal, useTranslation } from '@payloadcms/ui' +import { + Button, + ChevronIcon, + Modal, + Pill, + Popup, + PopupList, + useConfig, + useModal, + useTranslation, +} from '@payloadcms/ui' import { formatAdminURL, requests } from '@payloadcms/ui/shared' import { useRouter } from 'next/navigation.js' import React, { Fragment, useCallback, useState } from 'react' @@ -20,6 +30,7 @@ const Restore: React.FC = ({ globalSlug, label, originalDocID, + status, versionDate, versionID, }) => { @@ -32,6 +43,7 @@ const Restore: React.FC = ({ const [processing, setProcessing] = useState(false) const router = useRouter() const { i18n, t } = useTranslation() + const [draft, setDraft] = useState(false) const restoreMessage = t('version:aboutToRestoreGlobal', { label: getTranslation(label, i18n), @@ -40,9 +52,10 @@ const Restore: React.FC = ({ let fetchURL = `${serverURL}${apiRoute}` let redirectURL: string + const canRestoreAsDraft = status !== 'draft' if (collectionSlug) { - fetchURL = `${fetchURL}/${collectionSlug}/versions/${versionID}` + fetchURL = `${fetchURL}/${collectionSlug}/versions/${versionID}?draft=${draft}` redirectURL = formatAdminURL({ adminRoute, path: `/collections/${collectionSlug}/${originalDocID}`, @@ -50,7 +63,7 @@ const Restore: React.FC = ({ } if (globalSlug) { - fetchURL = `${fetchURL}/globals/${globalSlug}/versions/${versionID}` + fetchURL = `${fetchURL}/globals/${globalSlug}/versions/${versionID}?draft=${draft}` redirectURL = formatAdminURL({ adminRoute, path: `/globals/${globalSlug}`, @@ -74,15 +87,35 @@ const Restore: React.FC = ({ toast.error(t('version:problemRestoringVersion')) } }, [fetchURL, redirectURL, t, i18n, router]) - return ( - toggleModal(modalSlug)} - > - {t('version:restoreThisVersion')} - +
+ toggleModal(modalSlug)} + > + {t('version:restoreThisVersion')} + + {canRestoreAsDraft && ( + + + + } + caret={false} + render={() => ( + + [setDraft(true), toggleModal(modalSlug)]}> + {t('version:restoreAsDraft')} + + + )} + size="large" + verticalAlign="bottom" + /> + )} +

{t('version:confirmVersionRestoration')}

@@ -94,7 +127,7 @@ const Restore: React.FC = ({ > {t('general:cancel')} -
diff --git a/packages/next/src/views/Version/Restore/types.ts b/packages/next/src/views/Version/Restore/types.ts index 241969ba21..d28c9fc7ac 100644 --- a/packages/next/src/views/Version/Restore/types.ts +++ b/packages/next/src/views/Version/Restore/types.ts @@ -6,6 +6,7 @@ export type Props = { globalSlug?: SanitizedGlobalConfig['slug'] label: SanitizedCollectionConfig['labels']['singular'] originalDocID: number | string + status?: string versionDate: string versionID: string } diff --git a/packages/next/src/views/Versions/index.client.tsx b/packages/next/src/views/Versions/index.client.tsx index 105a7859c8..5f500a1045 100644 --- a/packages/next/src/views/Versions/index.client.tsx +++ b/packages/next/src/views/Versions/index.client.tsx @@ -26,7 +26,7 @@ export const VersionsViewClient: React.FC<{ const { getComponentMap } = useComponentMap() const { collectionSlug, globalSlug } = useDocumentInfo() - const { data, handlePerPageChange } = useListQuery() + const { data, handlePageChange, handlePerPageChange } = useListQuery() const componentMap = getComponentMap({ collectionSlug, @@ -59,6 +59,7 @@ export const VersionsViewClient: React.FC<{ limit={data.limit} nextPage={data.nextPage} numberOfNeighbors={1} + onChange={() => handlePageChange} page={data.page} prevPage={data.prevPage} totalPages={data.totalPages} @@ -73,7 +74,7 @@ export const VersionsViewClient: React.FC<{ {i18n.t('general:of')} {data.totalDocs} handlePerPageChange} limit={limit ? Number(limit) : 10} limits={paginationLimits} /> diff --git a/packages/payload/src/collections/operations/restoreVersion.ts b/packages/payload/src/collections/operations/restoreVersion.ts index f2a4101307..70f81b8d07 100644 --- a/packages/payload/src/collections/operations/restoreVersion.ts +++ b/packages/payload/src/collections/operations/restoreVersion.ts @@ -18,6 +18,7 @@ export type Arguments = { currentDepth?: number depth?: number disableErrors?: boolean + draft?: boolean id: number | string overrideAccess?: boolean req: PayloadRequest @@ -31,6 +32,7 @@ export const restoreVersionOperation = async ( id, collection: { config: collectionConfig }, depth, + draft, overrideAccess = false, req, req: { fallbackLocale, locale, payload }, @@ -126,7 +128,7 @@ export const restoreVersionOperation = async ( parent: parentDocID, req, updatedAt: new Date().toISOString(), - versionData: rawVersion.version, + versionData: draft ? { ...rawVersion.version, _status: 'draft' } : rawVersion.version, }) // ///////////////////////////////////// diff --git a/packages/payload/src/globals/operations/findVersions.ts b/packages/payload/src/globals/operations/findVersions.ts index fae0fb7591..575c0ee757 100644 --- a/packages/payload/src/globals/operations/findVersions.ts +++ b/packages/payload/src/globals/operations/findVersions.ts @@ -17,6 +17,7 @@ export type Arguments = { limit?: number overrideAccess?: boolean page?: number + pagination?: boolean req?: PayloadRequest showHiddenFields?: boolean sort?: string @@ -32,6 +33,7 @@ export const findVersionsOperation = async >( limit, overrideAccess, page, + pagination = true, req: { fallbackLocale, locale, payload }, req, showHiddenFields, @@ -69,6 +71,7 @@ export const findVersionsOperation = async >( limit: limit ?? 10, locale, page: page || 1, + pagination, req, sort, where: fullWhere, diff --git a/packages/payload/src/globals/operations/restoreVersion.ts b/packages/payload/src/globals/operations/restoreVersion.ts index 7e4537d46e..2804465eaf 100644 --- a/packages/payload/src/globals/operations/restoreVersion.ts +++ b/packages/payload/src/globals/operations/restoreVersion.ts @@ -12,6 +12,7 @@ import { killTransaction } from '../../utilities/killTransaction.js' export type Arguments = { depth?: number + draft?: boolean globalConfig: SanitizedGlobalConfig id: number | string overrideAccess?: boolean @@ -25,6 +26,7 @@ export const restoreVersionOperation = async = any const { id, depth, + draft, globalConfig, overrideAccess, req: { fallbackLocale, locale, payload }, @@ -63,6 +65,11 @@ export const restoreVersionOperation = async = any // Patch globalType onto version doc rawVersion.version.globalType = globalConfig.slug + // Overwrite draft status if draft is true + + if (draft) { + rawVersion.version._status = 'draft' + } // ///////////////////////////////////// // fetch previousDoc // ///////////////////////////////////// @@ -90,6 +97,18 @@ export const restoreVersionOperation = async = any data: result, req, }) + + const now = new Date().toISOString() + + result = await payload.db.createGlobalVersion({ + autosave: false, + createdAt: result.createdAt ? new Date(result.createdAt).toISOString() : now, + globalSlug: globalConfig.slug, + parent: id, + req, + updatedAt: draft ? now : new Date(result.updatedAt).toISOString(), + versionData: result, + }) } else { result = await payload.db.createGlobal({ slug: globalConfig.slug, diff --git a/packages/translations/src/clientKeys.ts b/packages/translations/src/clientKeys.ts index 4db43c7b6f..32543e93db 100644 --- a/packages/translations/src/clientKeys.ts +++ b/packages/translations/src/clientKeys.ts @@ -314,6 +314,7 @@ export const clientTranslationKeys = createClientTranslationKeys([ 'version:publishChanges', 'version:published', 'version:publishing', + 'version:restoreAsDraft', 'version:restoredSuccessfully', 'version:restoreThisVersion', 'version:restoring', diff --git a/packages/translations/src/languages/ar.ts b/packages/translations/src/languages/ar.ts index 41bc2a897f..a21f6451c2 100644 --- a/packages/translations/src/languages/ar.ts +++ b/packages/translations/src/languages/ar.ts @@ -396,6 +396,7 @@ export const arTranslations: DefaultTranslationsObject = { publishChanges: 'نشر التّغييرات', published: 'تمّ النّشر', publishing: 'نشر', + restoreAsDraft: 'استعادة كمسودة', restoreThisVersion: 'استعادة هذه النّسخة', restoredSuccessfully: 'تمّت الاستعادة بنحاح.', restoring: 'تتمّ الاستعادة...', diff --git a/packages/translations/src/languages/az.ts b/packages/translations/src/languages/az.ts index 37384b5774..0db14be88c 100644 --- a/packages/translations/src/languages/az.ts +++ b/packages/translations/src/languages/az.ts @@ -403,6 +403,7 @@ export const azTranslations: DefaultTranslationsObject = { publishChanges: 'Dəyişiklikləri dərc et', published: 'Dərc edilmiş', publishing: 'Nəşr', + restoreAsDraft: 'Qaralamalar kimi bərpa et', restoreThisVersion: 'Bu versiyanı bərpa et', restoredSuccessfully: 'Uğurla bərpa edildi.', restoring: 'Bərpa olunur...', diff --git a/packages/translations/src/languages/bg.ts b/packages/translations/src/languages/bg.ts index 53d7d3fbb3..9612283280 100644 --- a/packages/translations/src/languages/bg.ts +++ b/packages/translations/src/languages/bg.ts @@ -402,6 +402,7 @@ export const bgTranslations: DefaultTranslationsObject = { publishChanges: 'Публикувай промените', published: 'Публикувано', publishing: 'Публикуване', + restoreAsDraft: 'Възстанови като чернова', restoreThisVersion: 'Възстанови тази версия', restoredSuccessfully: 'Успешно възстановяване.', restoring: 'Възстановяване...', diff --git a/packages/translations/src/languages/cs.ts b/packages/translations/src/languages/cs.ts index 2ef5bb8f1f..f288305b2f 100644 --- a/packages/translations/src/languages/cs.ts +++ b/packages/translations/src/languages/cs.ts @@ -401,6 +401,7 @@ export const csTranslations: DefaultTranslationsObject = { publishChanges: 'Publikovat změny', published: 'Publikováno', publishing: 'Publikování', + restoreAsDraft: 'Obnovit jako koncept', restoreThisVersion: 'Obnovit tuto verzi', restoredSuccessfully: 'Úspěšně obnoveno.', restoring: 'Obnovování...', diff --git a/packages/translations/src/languages/de.ts b/packages/translations/src/languages/de.ts index 33c4b6faf7..81a763b7b7 100644 --- a/packages/translations/src/languages/de.ts +++ b/packages/translations/src/languages/de.ts @@ -407,6 +407,7 @@ export const deTranslations: DefaultTranslationsObject = { publishChanges: 'Änderungen veröffentlichen', published: 'Veröffentlicht', publishing: 'Veröffentlichung', + restoreAsDraft: 'Als Entwurf wiederherstellen', restoreThisVersion: 'Diese Version wiederherstellen', restoredSuccessfully: 'Erfolgreich wiederhergestellt.', restoring: 'Wiederherstellen...', diff --git a/packages/translations/src/languages/en.ts b/packages/translations/src/languages/en.ts index cc8b81b109..6e68f67ff7 100644 --- a/packages/translations/src/languages/en.ts +++ b/packages/translations/src/languages/en.ts @@ -405,6 +405,7 @@ export const enTranslations = { publishChanges: 'Publish changes', published: 'Published', publishing: 'Publishing', + restoreAsDraft: 'Restore as draft', restoreThisVersion: 'Restore this version', restoredSuccessfully: 'Restored Successfully.', restoring: 'Restoring...', diff --git a/packages/translations/src/languages/es.ts b/packages/translations/src/languages/es.ts index fb5b7d450c..d5d07e02eb 100644 --- a/packages/translations/src/languages/es.ts +++ b/packages/translations/src/languages/es.ts @@ -407,6 +407,7 @@ export const esTranslations: DefaultTranslationsObject = { publishChanges: 'Publicar cambios', published: 'Publicado', publishing: 'Publicación', + restoreAsDraft: 'Restaurar como borrador', restoreThisVersion: 'Restaurar esta versión', restoredSuccessfully: 'Restaurado éxito.', restoring: 'Restaurando...', diff --git a/packages/translations/src/languages/fa.ts b/packages/translations/src/languages/fa.ts index e3c93ecb5f..d02567562c 100644 --- a/packages/translations/src/languages/fa.ts +++ b/packages/translations/src/languages/fa.ts @@ -400,6 +400,7 @@ export const faTranslations: DefaultTranslationsObject = { publishChanges: 'انتشار تغییرات', published: 'انتشار یافته', publishing: 'انتشار', + restoreAsDraft: 'بازیابی به عنوان پیش‌نویس', restoreThisVersion: 'این نگارش را بازیابی کنید', restoredSuccessfully: 'با موفقیت بازیابی شد.', restoring: 'در حال بازیابی...', diff --git a/packages/translations/src/languages/fr.ts b/packages/translations/src/languages/fr.ts index f50a3fa264..4054512194 100644 --- a/packages/translations/src/languages/fr.ts +++ b/packages/translations/src/languages/fr.ts @@ -342,7 +342,7 @@ export const frTranslations: DefaultTranslationsObject = { height: 'Hauteur', lessInfo: 'Moins d’infos', moreInfo: 'Plus d’infos', - pasteURL: `Coller l'URL`, + pasteURL: "Coller l'URL", previewSizes: 'Tailles d’aperçu', selectCollectionToBrowse: 'Sélectionnez une collection à parcourir', selectFile: 'Sélectionnez un fichier', @@ -414,6 +414,7 @@ export const frTranslations: DefaultTranslationsObject = { publishChanges: 'Publier les modifications', published: 'Publié', publishing: 'Publication', + restoreAsDraft: 'Restaurer comme brouillon', restoreThisVersion: 'Restaurer cette version', restoredSuccessfully: 'Restauré(e) avec succès.', restoring: 'Restauration en cours...', diff --git a/packages/translations/src/languages/he.ts b/packages/translations/src/languages/he.ts index 2c31b21c96..30c52bcaf7 100644 --- a/packages/translations/src/languages/he.ts +++ b/packages/translations/src/languages/he.ts @@ -390,6 +390,7 @@ export const heTranslations: DefaultTranslationsObject = { publishChanges: 'פרסם שינויים', published: 'פורסם', publishing: 'מפרסם', + restoreAsDraft: 'שחזר כטיוטה', restoreThisVersion: 'שחזר גרסה זו', restoredSuccessfully: 'שוחזר בהצלחה.', restoring: 'משחזר...', diff --git a/packages/translations/src/languages/hr.ts b/packages/translations/src/languages/hr.ts index ad5656eaba..15c40ef94f 100644 --- a/packages/translations/src/languages/hr.ts +++ b/packages/translations/src/languages/hr.ts @@ -400,6 +400,7 @@ export const hrTranslations: DefaultTranslationsObject = { publishChanges: 'Objavi promjene', published: 'Objavljeno', publishing: 'Objavljivanje', + restoreAsDraft: 'Vrati kao skicu', restoreThisVersion: 'Vrati ovu verziju', restoredSuccessfully: 'Uspješno vraćeno.', restoring: 'Vraćanje...', diff --git a/packages/translations/src/languages/hu.ts b/packages/translations/src/languages/hu.ts index 381d464c18..52c1995e94 100644 --- a/packages/translations/src/languages/hu.ts +++ b/packages/translations/src/languages/hu.ts @@ -407,6 +407,7 @@ export const huTranslations: DefaultTranslationsObject = { publishChanges: 'Módosítások közzététele', published: 'Közzétett', publishing: 'Közzététel', + restoreAsDraft: 'Visszaállítás piszkozatként', restoreThisVersion: 'A verzió visszaállítása', restoredSuccessfully: 'Sikeresen visszaállítva.', restoring: 'Visszaállítás...', diff --git a/packages/translations/src/languages/it.ts b/packages/translations/src/languages/it.ts index 46145a1f49..e9b09eafc2 100644 --- a/packages/translations/src/languages/it.ts +++ b/packages/translations/src/languages/it.ts @@ -406,6 +406,7 @@ export const itTranslations: DefaultTranslationsObject = { publishChanges: 'Pubblica modifiche', published: 'Pubblicato', publishing: 'Pubblicazione', + restoreAsDraft: 'Ripristina come bozza', restoreThisVersion: 'Ripristina questa versione', restoredSuccessfully: 'Ripristinato con successo.', restoring: 'Ripristino...', diff --git a/packages/translations/src/languages/ja.ts b/packages/translations/src/languages/ja.ts index fddd9161a9..244e967c1f 100644 --- a/packages/translations/src/languages/ja.ts +++ b/packages/translations/src/languages/ja.ts @@ -401,6 +401,7 @@ export const jaTranslations: DefaultTranslationsObject = { publishChanges: '変更内容を公開', published: '公開済み', publishing: '公開', + restoreAsDraft: '下書きとして復元', restoreThisVersion: 'このバージョンを復元', restoredSuccessfully: '正常に復元されました。', restoring: '復元しています...', diff --git a/packages/translations/src/languages/ko.ts b/packages/translations/src/languages/ko.ts index ad11111a5a..567174c25b 100644 --- a/packages/translations/src/languages/ko.ts +++ b/packages/translations/src/languages/ko.ts @@ -397,6 +397,7 @@ export const koTranslations: DefaultTranslationsObject = { publishChanges: '변경 사항 게시', published: '게시됨', publishing: '게시', + restoreAsDraft: '임시 저장으로 복원', restoreThisVersion: '이 버전 복원', restoredSuccessfully: '복원이 완료되었습니다.', restoring: '복원 중...', diff --git a/packages/translations/src/languages/my.ts b/packages/translations/src/languages/my.ts index 1bff20b265..dced215314 100644 --- a/packages/translations/src/languages/my.ts +++ b/packages/translations/src/languages/my.ts @@ -409,6 +409,7 @@ export const myTranslations: DefaultTranslationsObject = { publishChanges: 'အပြောင်းအလဲများကို တင်ခဲ့သည်။', published: 'တင်ပြီးပြီ။', publishing: 'ထုတ်ဝေခြင်း', + restoreAsDraft: 'Pulihkan sebagai draf', restoreThisVersion: 'ဤဗားရှင်းကိုကို ပြန်ယူမည်။', restoredSuccessfully: 'အောင်မြင်စွာ ပြန်လည်ရယူခဲ့သည်။', restoring: 'ပြန်ယူနေဆဲ...', diff --git a/packages/translations/src/languages/nb.ts b/packages/translations/src/languages/nb.ts index 49e1cbbc0f..cf3b9bf730 100644 --- a/packages/translations/src/languages/nb.ts +++ b/packages/translations/src/languages/nb.ts @@ -403,6 +403,7 @@ export const nbTranslations: DefaultTranslationsObject = { publishChanges: 'Publiser endringer', published: 'Publisert', publishing: 'Publisering', + restoreAsDraft: 'Gjenopprett som utkast', restoreThisVersion: 'Gjenopprett denne versjonen', restoredSuccessfully: 'Gjenopprettet.', restoring: 'Gjenoppretter...', diff --git a/packages/translations/src/languages/nl.ts b/packages/translations/src/languages/nl.ts index fec595ff84..bc20bc12cc 100644 --- a/packages/translations/src/languages/nl.ts +++ b/packages/translations/src/languages/nl.ts @@ -406,6 +406,7 @@ export const nlTranslations: DefaultTranslationsObject = { publishChanges: 'Publiceer wijzigingen', published: 'Gepubliceerd', publishing: 'Publicatie', + restoreAsDraft: 'Herstellen als concept', restoreThisVersion: 'Herstel deze versie', restoredSuccessfully: 'Herstelling succesvol.', restoring: 'Herstellen...', diff --git a/packages/translations/src/languages/pl.ts b/packages/translations/src/languages/pl.ts index a5e49d59ef..f62fea036a 100644 --- a/packages/translations/src/languages/pl.ts +++ b/packages/translations/src/languages/pl.ts @@ -403,6 +403,7 @@ export const plTranslations: DefaultTranslationsObject = { publishChanges: 'Opublikuj zmiany', published: 'Opublikowano', publishing: 'Publikacja', + restoreAsDraft: 'Przywróć jako szkic', restoreThisVersion: 'Przywróć tę wersję', restoredSuccessfully: 'Przywrócono pomyślnie.', restoring: 'Przywracanie...', diff --git a/packages/translations/src/languages/pt.ts b/packages/translations/src/languages/pt.ts index 31c8838000..dd710181b3 100644 --- a/packages/translations/src/languages/pt.ts +++ b/packages/translations/src/languages/pt.ts @@ -404,6 +404,7 @@ export const ptTranslations: DefaultTranslationsObject = { publishChanges: 'Publicar alterações', published: 'Publicado', publishing: 'Publicação', + restoreAsDraft: 'Restaurar como rascunho', restoreThisVersion: 'Restaurar essa versão', restoredSuccessfully: 'Restaurado com sucesso.', restoring: 'Restaurando...', diff --git a/packages/translations/src/languages/ro.ts b/packages/translations/src/languages/ro.ts index 625f28d55d..eb60fd19e0 100644 --- a/packages/translations/src/languages/ro.ts +++ b/packages/translations/src/languages/ro.ts @@ -411,6 +411,7 @@ export const roTranslations: DefaultTranslationsObject = { publishChanges: 'Publicați modificările', published: 'Publicat', publishing: 'Editare', + restoreAsDraft: 'Restaurează ca proiect', restoreThisVersion: 'Restaurați această versiune', restoredSuccessfully: 'Restaurat cu succes.', restoring: 'Restaurare...', diff --git a/packages/translations/src/languages/rs.ts b/packages/translations/src/languages/rs.ts index 009a20fc9a..e551b6bb4f 100644 --- a/packages/translations/src/languages/rs.ts +++ b/packages/translations/src/languages/rs.ts @@ -398,6 +398,7 @@ export const rsTranslations: DefaultTranslationsObject = { publishChanges: 'Објави промене', published: 'Објављено', publishing: 'Objavljivanje', + restoreAsDraft: 'Vrati kao nacrt', restoreThisVersion: 'Врати ову верзију', restoredSuccessfully: 'Успешно враћено.', restoring: 'Враћање...', diff --git a/packages/translations/src/languages/rsLatin.ts b/packages/translations/src/languages/rsLatin.ts index 6ef92d9281..88d5763e12 100644 --- a/packages/translations/src/languages/rsLatin.ts +++ b/packages/translations/src/languages/rsLatin.ts @@ -399,6 +399,7 @@ export const rsLatinTranslations: DefaultTranslationsObject = { publishChanges: 'Objavljivanje', published: 'Objavljeno', publishing: 'Objavljivanje', + restoreAsDraft: 'Vrati kao nacrt', restoreThisVersion: 'Vrati ovu verziju', restoredSuccessfully: 'Uspešno vraćeno.', restoring: 'Vraćanje...', diff --git a/packages/translations/src/languages/ru.ts b/packages/translations/src/languages/ru.ts index bc6c242965..f031e21e08 100644 --- a/packages/translations/src/languages/ru.ts +++ b/packages/translations/src/languages/ru.ts @@ -405,6 +405,7 @@ export const ruTranslations: DefaultTranslationsObject = { publishChanges: 'Опубликовать изменения', published: 'Опубликовано', publishing: 'Публикация', + restoreAsDraft: 'Восстановить как черновик', restoreThisVersion: 'Восстановить эту версию', restoredSuccessfully: 'Восстановлен успешно.', restoring: 'Восстановление...', diff --git a/packages/translations/src/languages/sk.ts b/packages/translations/src/languages/sk.ts index 33ebbf67fb..95427769ca 100644 --- a/packages/translations/src/languages/sk.ts +++ b/packages/translations/src/languages/sk.ts @@ -403,6 +403,7 @@ export const skTranslations: DefaultTranslationsObject = { publishChanges: 'Publikovať zmeny', published: 'Publikované', publishing: 'Publikovanie', + restoreAsDraft: 'Obnoviť ako koncept', restoreThisVersion: 'Obnoviť túto verziu', restoredSuccessfully: 'Úspešne obnovené.', restoring: 'Obnovovanie...', diff --git a/packages/translations/src/languages/sv.ts b/packages/translations/src/languages/sv.ts index f78dbb5491..ca09f4e237 100644 --- a/packages/translations/src/languages/sv.ts +++ b/packages/translations/src/languages/sv.ts @@ -402,6 +402,7 @@ export const svTranslations: DefaultTranslationsObject = { publishChanges: 'Publicera ändringar', published: 'Publicerad', publishing: 'Publicering', + restoreAsDraft: 'Återställ som utkast', restoreThisVersion: 'Återställ den här versionen', restoredSuccessfully: 'Återställd framgångsrikt.', restoring: 'Återställer...', diff --git a/packages/translations/src/languages/th.ts b/packages/translations/src/languages/th.ts index ce90507da6..fed1f0afe3 100644 --- a/packages/translations/src/languages/th.ts +++ b/packages/translations/src/languages/th.ts @@ -394,6 +394,7 @@ export const thTranslations: DefaultTranslationsObject = { publishChanges: 'เผยแพร่การแก้ไข', published: 'เผยแพร่แล้ว', publishing: 'การเผยแพร่', + restoreAsDraft: 'เรียกคืนเป็นร่าง', restoreThisVersion: 'กู้คืนเวอร์ชันนี้', restoredSuccessfully: 'กู้คืนเวอร์ชันสำเร็จ', restoring: 'กำลังกู้คืน...', diff --git a/packages/translations/src/languages/tr.ts b/packages/translations/src/languages/tr.ts index 83b3495a82..a24ed1604d 100644 --- a/packages/translations/src/languages/tr.ts +++ b/packages/translations/src/languages/tr.ts @@ -404,6 +404,7 @@ export const trTranslations: DefaultTranslationsObject = { publishChanges: 'Değişiklikleri yayınla', published: 'Yayınlandı', publishing: 'Yayınlama', + restoreAsDraft: 'Taslak olarak geri yükle', restoreThisVersion: 'Bu sürüme geri döndür', restoredSuccessfully: 'Geri getirme başarılı.', restoring: 'Geri döndürülüyor...', diff --git a/packages/translations/src/languages/uk.ts b/packages/translations/src/languages/uk.ts index 245a75ff6f..e68cdf4040 100644 --- a/packages/translations/src/languages/uk.ts +++ b/packages/translations/src/languages/uk.ts @@ -402,6 +402,7 @@ export const ukTranslations: DefaultTranslationsObject = { publishChanges: 'Опублікувати зміни', published: 'Опубліковано', publishing: 'Публікація', + restoreAsDraft: 'Відновити як чернетку', restoreThisVersion: 'Відновити цю версію', restoredSuccessfully: 'Відновлено успішно.', restoring: 'Відновлення...', diff --git a/packages/translations/src/languages/vi.ts b/packages/translations/src/languages/vi.ts index d3da1434cf..72217e15b3 100644 --- a/packages/translations/src/languages/vi.ts +++ b/packages/translations/src/languages/vi.ts @@ -397,6 +397,7 @@ export const viTranslations: DefaultTranslationsObject = { publishChanges: 'Xuất bản tài liệu', published: 'Đã xuất bản', publishing: 'Xuất bản', + restoreAsDraft: 'Khôi phục như bản nháp', restoreThisVersion: 'Khôi phục về phiên bản này', restoredSuccessfully: 'Đã khôi phục thành công.', restoring: 'Đang khôi phục...', diff --git a/packages/translations/src/languages/zh.ts b/packages/translations/src/languages/zh.ts index 35569b6a99..f7af895231 100644 --- a/packages/translations/src/languages/zh.ts +++ b/packages/translations/src/languages/zh.ts @@ -387,6 +387,7 @@ export const zhTranslations: DefaultTranslationsObject = { publishChanges: '发布修改', published: '已发布', publishing: '发布', + restoreAsDraft: '恢复为草稿', restoreThisVersion: '恢复此版本', restoredSuccessfully: '恢复成功。', restoring: '恢复中...', diff --git a/packages/translations/src/languages/zhTw.ts b/packages/translations/src/languages/zhTw.ts index 32a0502a41..2332f14aa2 100644 --- a/packages/translations/src/languages/zhTw.ts +++ b/packages/translations/src/languages/zhTw.ts @@ -387,6 +387,7 @@ export const zhTwTranslations: DefaultTranslationsObject = { publishChanges: '發佈修改', published: '已發佈', publishing: '發布', + restoreAsDraft: '恢復為草稿', restoreThisVersion: '回復此版本', restoredSuccessfully: '回復成功。', restoring: '回復中...', diff --git a/test/versions/e2e.spec.ts b/test/versions/e2e.spec.ts index d34fbab9ab..7740cb38ce 100644 --- a/test/versions/e2e.spec.ts +++ b/test/versions/e2e.spec.ts @@ -323,7 +323,7 @@ describe('versions', () => { const versionID = await row2.locator('.cell-id').textContent() await page.goto(`${savedDocURL}/versions/${versionID}`) await page.waitForURL(new RegExp(`${savedDocURL}/versions/${versionID}`)) - await page.locator('.pill.restore-version').click() + await page.locator('.restore-version__button').click() await page.locator('button:has-text("Confirm")').click() await page.waitForURL(new RegExp(savedDocURL)) await expect(page.locator('#field-title')).toHaveValue('v1') @@ -559,8 +559,8 @@ describe('versions', () => { await payload.create({ collection: autosaveCollectionSlug, data: { - title: 'some title', description: 'some description', + title: 'some title', }, draft: true, }) @@ -580,8 +580,8 @@ describe('versions', () => { const maxOneCollection = await payload.create({ collection: draftWithMaxCollectionSlug, data: { - title: 'initial title', description: 'some description', + title: 'initial title', }, draft: true, }) diff --git a/test/versions/int.spec.ts b/test/versions/int.spec.ts index c4c68cab6c..846439e27d 100644 --- a/test/versions/int.spec.ts +++ b/test/versions/int.spec.ts @@ -1323,14 +1323,14 @@ describe('Versions', () => { slug: globalSlug, }) - expect(restore.title).toBeDefined() + expect(restore.version.title).toBeDefined() const restoredGlobal = await payload.findGlobal({ slug: globalSlug, draft: true, }) - expect(restoredGlobal.title).toBe(restore.title) + expect(restoredGlobal.title).toBe(restore.version.title.en) }) }) @@ -1537,7 +1537,7 @@ describe('Versions', () => { }, }) .then((res) => res.json()) - expect(data.AutosaveGlobal.title).toStrictEqual(globalGraphQLOriginalTitle) + expect(data.AutosaveGlobal).toEqual({ title: globalGraphQLOriginalTitle }) }) }) })