diff --git a/media/image-1.png b/media/image-1.png new file mode 100644 index 000000000..23787ee3d Binary files /dev/null and b/media/image-1.png differ diff --git a/media/image-2.png b/media/image-2.png new file mode 100644 index 000000000..23787ee3d Binary files /dev/null and b/media/image-2.png differ diff --git a/media/image-3.png b/media/image-3.png new file mode 100644 index 000000000..23787ee3d Binary files /dev/null and b/media/image-3.png differ diff --git a/media/image-4.png b/media/image-4.png new file mode 100644 index 000000000..23787ee3d Binary files /dev/null and b/media/image-4.png differ diff --git a/media/image-5.png b/media/image-5.png new file mode 100644 index 000000000..23787ee3d Binary files /dev/null and b/media/image-5.png differ diff --git a/media/image-6.png b/media/image-6.png new file mode 100644 index 000000000..23787ee3d Binary files /dev/null and b/media/image-6.png differ diff --git a/media/image-7.png b/media/image-7.png new file mode 100644 index 000000000..23787ee3d Binary files /dev/null and b/media/image-7.png differ diff --git a/media/image-8.png b/media/image-8.png new file mode 100644 index 000000000..23787ee3d Binary files /dev/null and b/media/image-8.png differ diff --git a/media/image.png b/media/image.png new file mode 100644 index 000000000..23787ee3d Binary files /dev/null and b/media/image.png differ diff --git a/packages/next/src/utilities/createClientConfig.ts b/packages/next/src/utilities/createClientConfig.ts index b8500a186..1be6c2cbe 100644 --- a/packages/next/src/utilities/createClientConfig.ts +++ b/packages/next/src/utilities/createClientConfig.ts @@ -58,6 +58,8 @@ const sanitizeCollections = ( delete sanitized.access delete sanitized.endpoints + if ('editor' in sanitized) delete sanitized.editor + if ('admin' in sanitized) { sanitized.admin = { ...sanitized.admin } diff --git a/packages/richtext-slate/src/field/elements/index.tsx b/packages/richtext-slate/src/field/elements/index.tsx index 2884bbfa5..644a77fbb 100644 --- a/packages/richtext-slate/src/field/elements/index.tsx +++ b/packages/richtext-slate/src/field/elements/index.tsx @@ -14,7 +14,7 @@ import ol from './ol' // import relationship from './relationship' // import textAlign from './textAlign' import ul from './ul' -// import upload from './upload' +import upload from './upload' const elements: Record = { blockquote, @@ -31,7 +31,7 @@ const elements: Record = { // relationship, // textAlign, ul, - // upload, + upload, } export default elements diff --git a/packages/richtext-slate/src/field/elements/link/Element/index.tsx b/packages/richtext-slate/src/field/elements/link/Element/index.tsx index e87465591..bb1f51586 100644 --- a/packages/richtext-slate/src/field/elements/link/Element/index.tsx +++ b/packages/richtext-slate/src/field/elements/link/Element/index.tsx @@ -1,10 +1,11 @@ 'use client' +import type { FormState } from '@payloadcms/ui' + import { useModal } from '@faceless-ui/modal' import { getTranslation } from '@payloadcms/translations' import { Button, - FormState, Popup, Translation, getFormState, @@ -21,11 +22,13 @@ import React, { useCallback, useEffect, useState } from 'react' import { Editor, Node, Transforms } from 'slate' import { ReactEditor, useSlate } from 'slate-react' +import type { LinkElementType } from '../types' + import { useElement } from '../../../providers/ElementProvider' import { LinkDrawer } from '../LinkDrawer' +import { linkFieldsSchemaPath } from '../shared' import { unwrapLink } from '../utilities' import './index.scss' -import { LinkElementType } from '../types' const baseClass = 'rich-text-link' @@ -58,10 +61,10 @@ export const LinkElement = () => { const { attributes, children, editorRef, element, fieldProps, schemaPath } = useElement() - const linkFieldsSchemaPath = `${schemaPath}.link.fields` + const fieldMapPath = `${schemaPath}.${linkFieldsSchemaPath}` const { richTextComponentMap } = fieldProps - const fieldMap = richTextComponentMap.get(linkFieldsSchemaPath) + const fieldMap = richTextComponentMap.get(fieldMapPath) const editor = useSlate() const config = useConfig() @@ -102,7 +105,7 @@ export const LinkElement = () => { data, docPreferences, operation: 'update', - schemaPath: linkFieldsSchemaPath, + schemaPath: fieldMapPath, }, serverURL: config.serverURL, }) @@ -111,7 +114,7 @@ export const LinkElement = () => { } awaitInitialState() - }, [renderModal, element, user, locale, t, getDocPreferences, config]) + }, [renderModal, element, user, locale, t, getDocPreferences, config, id, fieldMapPath]) return ( diff --git a/packages/richtext-slate/src/field/elements/upload/Button/index.tsx b/packages/richtext-slate/src/field/elements/upload/Button/index.tsx index 9b4b019a8..0ea9b66b3 100644 --- a/packages/richtext-slate/src/field/elements/upload/Button/index.tsx +++ b/packages/richtext-slate/src/field/elements/upload/Button/index.tsx @@ -42,9 +42,9 @@ const UploadButton: React.FC = ({ enabledCollectionSlugs }) => { }) const onSelect = useCallback( - ({ collectionConfig, docID }) => { + ({ collectionSlug, docID }) => { insertUpload(editor, { - relationTo: collectionConfig.slug, + relationTo: collectionSlug, value: { id: docID, }, diff --git a/packages/richtext-slate/src/field/elements/upload/Element/UploadDrawer/index.tsx b/packages/richtext-slate/src/field/elements/upload/Element/UploadDrawer/index.tsx index ba2685396..328767b82 100644 --- a/packages/richtext-slate/src/field/elements/upload/Element/UploadDrawer/index.tsx +++ b/packages/richtext-slate/src/field/elements/upload/Element/UploadDrawer/index.tsx @@ -9,49 +9,50 @@ import { Form, FormSubmit, RenderFields, - buildStateFromSchema, - fieldTypes, + getFormState, useAuth, useConfig, useDocumentInfo, useLocale, useTranslation, } from '@payloadcms/ui' -import { sanitizeFields } from 'payload/config' import { deepCopyObject } from 'payload/utilities' import React, { useCallback, useEffect, useState } from 'react' import { Transforms } from 'slate' import { ReactEditor, useSlateStatic } from 'slate-react' -import type { ElementProps } from '..' +import type { FormFieldBase } from '../../../../../../../ui/src/forms/fields/shared' +import type { UploadElementType } from '../../types' -export const UploadDrawer: React.FC< - ElementProps & { - drawerSlug: string - relatedCollection: SanitizedCollectionConfig +import { FieldPathProvider } from '../../../../../../../ui/src/forms/FieldPathProvider' +import { uploadFieldsSchemaPath } from '../../shared' + +export const UploadDrawer: React.FC<{ + drawerSlug: string + element: UploadElementType + fieldProps: FormFieldBase & { + name: string + richTextComponentMap: Map } -> = (props) => { + relatedCollection: SanitizedCollectionConfig + schemaPath: string +}> = (props) => { const editor = useSlateStatic() - const { drawerSlug, element, fieldProps, relatedCollection } = props + const { drawerSlug, element, fieldProps, relatedCollection, schemaPath } = props const { i18n, t } = useTranslation() const { code: locale } = useLocale() const { user } = useAuth() const { closeModal } = useModal() - const { getDocPreferences } = useDocumentInfo() + const { id, getDocPreferences } = useDocumentInfo() const [initialState, setInitialState] = useState({}) - const fieldSchemaUnsanitized = - fieldProps?.admin?.upload?.collections?.[relatedCollection.slug]?.fields - const config = useConfig() + const { richTextComponentMap } = fieldProps - // Sanitize custom fields here - const validRelationships = config.collections.map((c) => c.slug) || [] - const fieldSchema = sanitizeFields({ - config: config, - fields: fieldSchemaUnsanitized, - validRelationships, - }) + const relatedFieldSchemaPath = `${uploadFieldsSchemaPath}.${relatedCollection.slug}` + const fieldMap = richTextComponentMap.get(relatedFieldSchemaPath) + + const config = useConfig() const handleUpdateEditData = useCallback( (_, data) => { @@ -68,31 +69,38 @@ export const UploadDrawer: React.FC< ) useEffect(() => { - // Sanitize custom fields here - const validRelationships = config.collections.map((c) => c.slug) || [] - const fieldSchema = sanitizeFields({ - config: config, - fields: fieldSchemaUnsanitized, - validRelationships, - }) + const data = deepCopyObject(element?.fields || {}) const awaitInitialState = async () => { - const preferences = await getDocPreferences() - const state = await buildStateFromSchema({ - config, - data: deepCopyObject(element?.fields || {}), - fieldSchema, - locale, - operation: 'update', - preferences, - t, - user, + const docPreferences = await getDocPreferences() + + const state = await getFormState({ + apiRoute: config.routes.api, + body: { + id, + data, + docPreferences, + operation: 'update', + schemaPath: `${schemaPath}.${uploadFieldsSchemaPath}.${relatedCollection.slug}`, + }, + serverURL: config.serverURL, }) + setInitialState(state) } awaitInitialState() - }, [fieldSchemaUnsanitized, config, element.fields, user, locale, t, getDocPreferences]) + }, [ + config, + element?.fields, + user, + locale, + t, + getDocPreferences, + id, + schemaPath, + relatedCollection.slug, + ]) return ( -
- - {t('fields:saveChanges')} - + +
+ + {t('fields:saveChanges')} + +
) } diff --git a/packages/richtext-slate/src/field/elements/upload/Element/index.tsx b/packages/richtext-slate/src/field/elements/upload/Element/index.tsx index e6a62b1c7..6e554ba2e 100644 --- a/packages/richtext-slate/src/field/elements/upload/Element/index.tsx +++ b/packages/richtext-slate/src/field/elements/upload/Element/index.tsx @@ -1,7 +1,6 @@ 'use client' import type { SanitizedCollectionConfig } from 'payload/types' -import type { HTMLAttributes } from 'react' import { getTranslation } from '@payloadcms/translations' import { @@ -20,9 +19,12 @@ import React, { useCallback, useReducer, useState } from 'react' import { Transforms } from 'slate' import { ReactEditor, useFocused, useSelected, useSlateStatic } from 'slate-react' -import type { FieldProps } from '../../../../types' +import type { FormFieldBase } from '../../../../../../ui/src/forms/fields/shared' +import type { UploadElementType } from '../types' +import { useElement } from '../../../providers/ElementProvider' import { EnabledRelationshipsCondition } from '../../EnabledRelationshipsCondition' +import { uploadFieldsSchemaPath, uploadName } from '../shared' import { UploadDrawer } from './UploadDrawer' import './index.scss' @@ -32,23 +34,22 @@ const initialParams = { depth: 0, } -export type ElementProps = { - attributes: HTMLAttributes - children: React.ReactNode - element: any - enabledCollectionSlugs: string[] - fieldProps: FieldProps +type Props = FormFieldBase & { + name: string + richTextComponentMap: Map } -const Element: React.FC = (props) => { +const Element: React.FC = ({ + enabledCollectionSlugs, +}) => { const { attributes, children, element: { relationTo, value }, element, - enabledCollectionSlugs, fieldProps, - } = props + schemaPath, + } = useElement() const { collections, @@ -83,7 +84,7 @@ const Element: React.FC = (props) => { { initialParams }, ) - const thumbnailSRC = useThumbnail(relatedCollection, data) + const thumbnailSRC = useThumbnail(relatedCollection.upload, data) const removeUpload = useCallback(() => { const elementPath = ReactEditor.findPath(editor, element) @@ -103,8 +104,6 @@ const Element: React.FC = (props) => { Transforms.setNodes(editor, newNode, { at: elementPath }) - // setRelatedCollection(collections.find((coll) => coll.slug === collectionConfig.slug)); - setParams({ ...initialParams, cacheBust, // do this to get the usePayloadAPI to re-fetch the data even though the URL string hasn't changed @@ -117,17 +116,17 @@ const Element: React.FC = (props) => { ) const swapUpload = React.useCallback( - ({ collectionConfig, docID }) => { + ({ collectionSlug, docID }) => { const newNode = { children: [{ text: ' ' }], - relationTo: collectionConfig.slug, - type: 'upload', + relationTo: collectionSlug, + type: uploadName, value: { id: docID }, } const elementPath = ReactEditor.findPath(editor, element) - setRelatedCollection(collections.find((coll) => coll.slug === collectionConfig.slug)) + setRelatedCollection(collections.find((coll) => coll.slug === collectionSlug)) Transforms.setNodes(editor, newNode, { at: elementPath }) @@ -137,7 +136,8 @@ const Element: React.FC = (props) => { [closeListDrawer, editor, element, collections], ) - const customFields = fieldProps?.admin?.upload?.collections?.[relatedCollection.slug]?.fields + const relatedFieldSchemaPath = `${uploadFieldsSchemaPath}.${relatedCollection.slug}` + const customFieldsMap = fieldProps.richTextComponentMap.get(relatedFieldSchemaPath) return (
= (props) => { {getTranslation(relatedCollection.labels.singular, i18n)}
- {customFields?.length > 0 && ( + {Boolean(customFieldsMap) && (
) } -export default (props: ElementProps): React.ReactNode => { +export default (props: Props): React.ReactNode => { return ( diff --git a/packages/richtext-slate/src/field/elements/upload/index.tsx b/packages/richtext-slate/src/field/elements/upload/index.tsx index 5bc90e25e..4056835d7 100644 --- a/packages/richtext-slate/src/field/elements/upload/index.tsx +++ b/packages/richtext-slate/src/field/elements/upload/index.tsx @@ -1,9 +1,15 @@ +import type { RichTextCustomElement } from '../../..' + import Button from './Button' import Element from './Element' -import plugin from './plugin' +import { WithUpload } from './plugin' +import { uploadName } from './shared' -export default { +const upload: RichTextCustomElement = { + name: uploadName, Button, Element, - plugins: [plugin], + plugins: [WithUpload], } + +export default upload diff --git a/packages/richtext-slate/src/field/elements/upload/plugin.tsx b/packages/richtext-slate/src/field/elements/upload/plugin.tsx index 42bdf2546..455b4b972 100644 --- a/packages/richtext-slate/src/field/elements/upload/plugin.tsx +++ b/packages/richtext-slate/src/field/elements/upload/plugin.tsx @@ -1,10 +1,18 @@ -const withRelationship = (incomingEditor) => { - const editor = incomingEditor - const { isVoid } = editor +'use client' - editor.isVoid = (element) => (element.type === 'upload' ? true : isVoid(element)) +import type React from 'react' - return editor +import { useSlatePlugin } from '../../../utilities/useSlatePlugin' +import { uploadName } from './shared' + +export const WithUpload: React.FC = () => { + useSlatePlugin('withUpload', (incomingEditor) => { + const editor = incomingEditor + const { isVoid } = editor + + editor.isVoid = (element) => (element.type === uploadName ? true : isVoid(element)) + + return editor + }) + return null } - -export default withRelationship diff --git a/packages/richtext-slate/src/field/elements/upload/shared.ts b/packages/richtext-slate/src/field/elements/upload/shared.ts new file mode 100644 index 000000000..a36e2e770 --- /dev/null +++ b/packages/richtext-slate/src/field/elements/upload/shared.ts @@ -0,0 +1,2 @@ +export const uploadName = 'upload' +export const uploadFieldsSchemaPath = 'upload.fields' diff --git a/packages/richtext-slate/src/field/elements/upload/types.ts b/packages/richtext-slate/src/field/elements/upload/types.ts new file mode 100644 index 000000000..0012c0ab4 --- /dev/null +++ b/packages/richtext-slate/src/field/elements/upload/types.ts @@ -0,0 +1,9 @@ +import type { Element } from 'slate' + +export type UploadElementType = Element & { + fields: Record + relationTo: string + value: { + id: number | string + } | null +} diff --git a/packages/richtext-slate/src/generateComponentMap.tsx b/packages/richtext-slate/src/generateComponentMap.tsx index 2dc5d1172..45aac883c 100644 --- a/packages/richtext-slate/src/generateComponentMap.tsx +++ b/packages/richtext-slate/src/generateComponentMap.tsx @@ -9,7 +9,9 @@ import React from 'react' import type { AdapterArguments, RichTextCustomElement, RichTextCustomLeaf } from '.' import elementTypes from './field/elements' +import { linkFieldsSchemaPath } from './field/elements/link/shared' import { transformExtraFields } from './field/elements/link/utilities' +import { uploadFieldsSchemaPath } from './field/elements/upload/shared' import leafTypes from './field/leaves' export const getGenerateComponentMap = @@ -81,13 +83,44 @@ export const getGenerateComponentMap = readOnly: false, }) - componentMap.set('link.fields', mappedFields) + componentMap.set(linkFieldsSchemaPath, mappedFields) break } - case 'upload': + case 'upload': { + const uploadEnabledCollections = config.collections.filter( + ({ admin: { enableRichTextRelationship, hidden }, upload }) => { + if (hidden === true) { + return false + } + + return enableRichTextRelationship && Boolean(upload) === true + }, + ) + + uploadEnabledCollections.forEach((collection) => { + if (args?.admin?.upload?.collections[collection.slug]?.fields) { + const uploadFields = sanitizeFields({ + config, + fields: args?.admin?.upload?.collections[collection.slug]?.fields, + validRelationships, + }) + + const mappedFields = mapFields({ + config, + fieldSchema: uploadFields, + operation: 'update', + permissions: {}, + readOnly: false, + }) + + componentMap.set(`${uploadFieldsSchemaPath}.${collection.slug}`, mappedFields) + } + }) + break + } case 'relationship': break diff --git a/packages/richtext-slate/src/generateSchemaMap.ts b/packages/richtext-slate/src/generateSchemaMap.ts index 50c15af98..6ede3a0a2 100644 --- a/packages/richtext-slate/src/generateSchemaMap.ts +++ b/packages/richtext-slate/src/generateSchemaMap.ts @@ -9,6 +9,7 @@ import type { AdapterArguments, RichTextCustomElement } from '.' import elementTypes from './field/elements' import { linkFieldsSchemaPath } from './field/elements/link/shared' import { transformExtraFields } from './field/elements/link/utilities' +import { uploadFieldsSchemaPath } from './field/elements/upload/shared' export const getGenerateSchemaMap = (args: AdapterArguments): RichTextAdapter['generateSchemaMap'] => @@ -29,18 +30,44 @@ export const getGenerateSchemaMap = switch (element.name) { case 'link': { const linkFields = sanitizeFields({ - config: config, + config, fields: transformExtraFields(args.admin?.link?.fields, config, i18n), validRelationships, }) schemaMap.set(`${schemaPath}.${linkFieldsSchemaPath}`, linkFields) - return + break } - case 'upload': + case 'upload': { + const uploadEnabledCollections = config.collections.filter( + ({ admin: { enableRichTextRelationship, hidden }, upload }) => { + if (hidden === true) { + return false + } + + return enableRichTextRelationship && Boolean(upload) === true + }, + ) + + uploadEnabledCollections.forEach((collection) => { + if (args?.admin?.upload?.collections[collection.slug]?.fields) { + const uploadFields = sanitizeFields({ + config, + fields: args?.admin?.upload?.collections[collection.slug]?.fields, + validRelationships, + }) + + schemaMap.set( + `${schemaPath}.${uploadFieldsSchemaPath}.${collection.slug}`, + uploadFields, + ) + } + }) + break + } case 'relationship': break diff --git a/packages/translations/dist/build.js b/packages/translations/dist/build.js index 234bd849f..927a29a91 100644 --- a/packages/translations/dist/build.js +++ b/packages/translations/dist/build.js @@ -166,6 +166,11 @@ const clientTranslationKeys = [ 'fields:showAll', 'fields:swapRelationship', 'fields:uploadNewLabel', + 'fields:swapUpload', + 'fields:addUpload', + 'fields:editRelationship', + 'fields:removeUpload', + 'fields:saveChanges', 'general:aboutToDeleteCount', 'general:aboutToDelete', 'general:addBelow', diff --git a/packages/translations/dist/client/ar.json b/packages/translations/dist/client/ar.json index 5a5353556..1f547ee13 100644 --- a/packages/translations/dist/client/ar.json +++ b/packages/translations/dist/client/ar.json @@ -57,20 +57,25 @@ "addLink": "أضف رابط", "addNew": "أضف جديد", "addNewLabel": "أضف {{label}} جديد", + "addUpload": "أضف تحميل", "block": "وحدة محتوى", "blockType": "نوع وحدة المحتوى", "blocks": "وحدات المحتوى", "chooseFromExisting": "اختر من القائمة", "collapseAll": "طيّ الكلّ", "editLink": "عدّل الرّابط", + "editRelationship": "عدّل العلاقة", "itemsAndMore": "{{items}} و {{count}} أخرى", "latitude": "خطّ العرض", "longitude": "خطّ الطّول", "passwordsDoNotMatch": "كلمة المرور غير مطابقة.", + "removeUpload": "حذف المحتوى المرفوع", + "saveChanges": "حفظ التّغييرات", "searchForBlock": "ابحث عن وحدة محتوى", "selectFieldsToEdit": "حدّد الحقول اللتي تريد تعديلها", "showAll": "إظهار الكلّ", "swapRelationship": "تبديل العلاقة", + "swapUpload": "تبديل المحتوى المرفوع", "uploadNewLabel": "رفع {{label}} جديد" }, "general": { diff --git a/packages/translations/dist/client/az.json b/packages/translations/dist/client/az.json index 8632ddad7..4d781cdfb 100644 --- a/packages/translations/dist/client/az.json +++ b/packages/translations/dist/client/az.json @@ -57,20 +57,25 @@ "addLink": "Keçid əlavə et", "addNew": "Yenisini əlavə et", "addNewLabel": "Yeni {{label}} əlavə et", + "addUpload": "Yükləmə əlavə et", "block": "blok", "blockType": "Blok Növü", "blocks": "bloklar", "chooseFromExisting": "Mövcuddan seçin", "collapseAll": "Hamısını Bağla", "editLink": "Keçidi redaktə et", + "editRelationship": "Relationship redaktə et", "itemsAndMore": "{{items}} və daha {{count}} nəfər", "latitude": "Enlik", "longitude": "Uzunluq", "passwordsDoNotMatch": "Şifrələr uyğun gəlmir.", + "removeUpload": "Yükləməni sil", + "saveChanges": "Dəyişiklikləri saxla", "searchForBlock": "Blok üçün axtarış", "selectFieldsToEdit": "Redaktə ediləcək sahələri seçin", "showAll": "Hamısını Göstər", "swapRelationship": "Relationship dəyiş", + "swapUpload": "Yükləməni dəyiş", "uploadNewLabel": "Yeni {{label}} yüklə" }, "general": { diff --git a/packages/translations/dist/client/bg.json b/packages/translations/dist/client/bg.json index 586fc1180..62b814e18 100644 --- a/packages/translations/dist/client/bg.json +++ b/packages/translations/dist/client/bg.json @@ -57,20 +57,25 @@ "addLink": "Добави нова връзка", "addNew": "Добави нов", "addNewLabel": "Добави нов {{label}}", + "addUpload": "Качи", "block": "блок", "blockType": "Тип блок", "blocks": "блокове", "chooseFromExisting": "Избери от съществуващите", "collapseAll": "Свий всички", "editLink": "Редактирай връзка", + "editRelationship": "Редактирай отношение", "itemsAndMore": "{{items}} и {{count}} повече", "latitude": "Географска ширина", "longitude": "Географска дължина", "passwordsDoNotMatch": "Паролите не са еднакви.", + "removeUpload": "Премахни качване", + "saveChanges": "Запази промените", "searchForBlock": "Търси блок", "selectFieldsToEdit": "Избери полета за редактиране", "showAll": "Покажи всички", "swapRelationship": "Смени отношение", + "swapUpload": "Смени качване", "uploadNewLabel": "Качи нов {{label}}" }, "general": { diff --git a/packages/translations/dist/client/cs.json b/packages/translations/dist/client/cs.json index 7e926e03d..defbeecc0 100644 --- a/packages/translations/dist/client/cs.json +++ b/packages/translations/dist/client/cs.json @@ -57,20 +57,25 @@ "addLink": "Přidat Odkaz", "addNew": "Přidat nový", "addNewLabel": "Přidat nový {{label}}", + "addUpload": "Přidat nahrávání", "block": "blok", "blockType": "Typ bloku", "blocks": "bloky", "chooseFromExisting": "Vybrat z existujících", "collapseAll": "Sbalit vše", "editLink": "Upravit odkaz", + "editRelationship": "Upravit vztah", "itemsAndMore": "{{items}} a {{count}} dalších", "latitude": "Zeměpisná šířka", "longitude": "Zeměpisná délka", "passwordsDoNotMatch": "Hesla se neshodují.", + "removeUpload": "Odstranit nahrání", + "saveChanges": "Uložit změny", "searchForBlock": "Hledat blok", "selectFieldsToEdit": "Vyberte pole, která chcete upravit", "showAll": "Zobrazit vše", "swapRelationship": "Zaměnit vztah", + "swapUpload": "Vyměnit nahrání", "uploadNewLabel": "Nahrát nový {{label}}" }, "general": { diff --git a/packages/translations/dist/client/de.json b/packages/translations/dist/client/de.json index 137e5846b..850254478 100644 --- a/packages/translations/dist/client/de.json +++ b/packages/translations/dist/client/de.json @@ -57,20 +57,25 @@ "addLink": "Link Hinzufügen", "addNew": "Neu erstellen", "addNewLabel": "{{label}} erstellen", + "addUpload": "Hochladen Hinzufügen", "block": "Block", "blockType": "Block-Typ", "blocks": "Blöcke", "chooseFromExisting": "Aus vorhandenen auswählen", "collapseAll": "Alle einklappen", "editLink": "Bearbeite Link", + "editRelationship": "Beziehung Hinzufügen", "itemsAndMore": "{{items}} und {{count}} mehr", "latitude": "Breitengrad", "longitude": "Längengrad", "passwordsDoNotMatch": "Passwörter stimmen nicht überein.", + "removeUpload": "Hochgeladene Datei Löschen", + "saveChanges": "Änderungen speichern", "searchForBlock": "Nach Block suchen", "selectFieldsToEdit": "Wählen Sie die zu bearbeitenden Felder aus", "showAll": "Alle anzeigen", "swapRelationship": "Beziehung Tauschen", + "swapUpload": "Datei Austauschen", "uploadNewLabel": "{{label}} neu hochladen" }, "general": { diff --git a/packages/translations/dist/client/en.json b/packages/translations/dist/client/en.json index 21e018b18..043dd41e0 100644 --- a/packages/translations/dist/client/en.json +++ b/packages/translations/dist/client/en.json @@ -59,20 +59,25 @@ "addLink": "Add Link", "addNew": "Add new", "addNewLabel": "Add new {{label}}", + "addUpload": "Add Upload", "block": "block", "blockType": "Block Type", "blocks": "blocks", "chooseFromExisting": "Choose from existing", "collapseAll": "Collapse All", "editLink": "Edit Link", + "editRelationship": "Edit Relationship", "itemsAndMore": "{{items}} and {{count}} more", "latitude": "Latitude", "longitude": "Longitude", "passwordsDoNotMatch": "Passwords do not match.", + "removeUpload": "Remove Upload", + "saveChanges": "Save changes", "searchForBlock": "Search for a block", "selectFieldsToEdit": "Select fields to edit", "showAll": "Show All", "swapRelationship": "Swap Relationship", + "swapUpload": "Swap Upload", "uploadNewLabel": "Upload new {{label}}" }, "general": { diff --git a/packages/translations/dist/client/es.json b/packages/translations/dist/client/es.json index d0b4160ec..e52ade7ab 100644 --- a/packages/translations/dist/client/es.json +++ b/packages/translations/dist/client/es.json @@ -57,20 +57,25 @@ "addLink": "Añadir Enlace", "addNew": "Añadir nuevo", "addNewLabel": "Añadir {{label}}", + "addUpload": "Añadir Carga", "block": "bloque", "blockType": "Tipo de bloque", "blocks": "bloques", "chooseFromExisting": "Elegir existente", "collapseAll": "Colapsar todo", "editLink": "Editar Enlace", + "editRelationship": "Editar Relación", "itemsAndMore": "{{items}} y {{count}} más", "latitude": "Latitud", "longitude": "Longitud", "passwordsDoNotMatch": "Las contraseñas no coinciden.", + "removeUpload": "Quitar Carga", + "saveChanges": "Guardar cambios", "searchForBlock": "Buscar bloque", "selectFieldsToEdit": "Seleccionar campos para editar", "showAll": "Mostrar Todo", "swapRelationship": "Cambiar Relación", + "swapUpload": "Cambiar carga", "uploadNewLabel": "Subir nuevo {{label}}" }, "general": { diff --git a/packages/translations/dist/client/fa.json b/packages/translations/dist/client/fa.json index 7b59de70c..3dcb6ebba 100644 --- a/packages/translations/dist/client/fa.json +++ b/packages/translations/dist/client/fa.json @@ -57,20 +57,25 @@ "addLink": "افزودن پیوند", "addNew": "افزودن", "addNewLabel": "افزودن {{label}} تازه", + "addUpload": "افزودن بارگذار", "block": "بلوک", "blockType": "نوع بلوک", "blocks": "بلوک‌ها", "chooseFromExisting": "برگزیدن از بین ورودی‌ها", "collapseAll": "بستن همه", "editLink": "نگارش پیوند", + "editRelationship": "نگارش پیوستگی", "itemsAndMore": "{{items}} و {{count}} بیش‌تر", "latitude": "عرض جغرافیایی", "longitude": "طول جغرافیایی", "passwordsDoNotMatch": "گذرواژه‌های وارد شده مطابقت ندارند.", + "removeUpload": "حذف بارگذار", + "saveChanges": "ذخیره تغییرات", "searchForBlock": "جست‌وجو برای بلوک", "selectFieldsToEdit": "انتخاب کادرها برای نگارش", "showAll": "نمایش کل", "swapRelationship": "تبادل پیوستگی", + "swapUpload": "تبادل بارگذار", "uploadNewLabel": "بارگذاری تازه {{label}}" }, "general": { diff --git a/packages/translations/dist/client/fr.json b/packages/translations/dist/client/fr.json index 85b72dfb8..6d31da8b8 100644 --- a/packages/translations/dist/client/fr.json +++ b/packages/translations/dist/client/fr.json @@ -57,20 +57,25 @@ "addLink": "Ajouter un Lien", "addNew": "Ajouter nouveau ou nouvelle", "addNewLabel": "Ajouter nouveau ou nouvelle {{label}}", + "addUpload": "Ajouter le téléchargement", "block": "bloc", "blockType": "Type de bloc", "blocks": "blocs", "chooseFromExisting": "Choisir parmi les existant(e)s", "collapseAll": "Tout réduire", "editLink": "Modifier le lien", + "editRelationship": "Modifier la relation", "itemsAndMore": "{{items}} et {{count}} de plus", "latitude": "Latitude", "longitude": "Longitude", "passwordsDoNotMatch": "Les mots de passe ne correspondent pas.", + "removeUpload": "Supprimer le Téléversement", + "saveChanges": "Sauvegarder les modifications", "searchForBlock": "Rechercher un bloc", "selectFieldsToEdit": "Sélectionnez les champs à modifier", "showAll": "Afficher tout", "swapRelationship": "Changer de relation", + "swapUpload": "Changer de Fichier", "uploadNewLabel": "Téléverser un(e) nouveau ou nouvelle {{label}}" }, "general": { diff --git a/packages/translations/dist/client/hr.json b/packages/translations/dist/client/hr.json index 1dd631249..45e3b8004 100644 --- a/packages/translations/dist/client/hr.json +++ b/packages/translations/dist/client/hr.json @@ -57,20 +57,25 @@ "addLink": "Dodaj poveznicu", "addNew": "Dodaj novi", "addNewLabel": "Dodaj novi {{label}}", + "addUpload": "Dodaj učitavanje", "block": "blokiranje", "blockType": "Vrsta blokiranja", "blocks": "blokiranja", "chooseFromExisting": "Odaberite iz postojećih.", "collapseAll": "Sažmi sve", "editLink": "Uredi poveznicu", + "editRelationship": "Uredi odnos", "itemsAndMore": "{{items}} i {{count}} više", "latitude": "Zemljopisna širina", "longitude": "Zemljopisna dužina", "passwordsDoNotMatch": "Lozinke nisu iste.", + "removeUpload": "Ukloni prijenos", + "saveChanges": "Spremi promjene", "searchForBlock": "Potraži blok", "selectFieldsToEdit": "Odaberite polja za uređivanje", "showAll": "Pokaži sve", "swapRelationship": "Zamijeni vezu", + "swapUpload": "Zamijeni prijenos", "uploadNewLabel": "Učitaj novi {{label}}" }, "general": { diff --git a/packages/translations/dist/client/hu.json b/packages/translations/dist/client/hu.json index 5860a8b62..9923a2405 100644 --- a/packages/translations/dist/client/hu.json +++ b/packages/translations/dist/client/hu.json @@ -57,20 +57,25 @@ "addLink": "Link hozzáadása", "addNew": "Új hozzáadása", "addNewLabel": "Új {{label}} hozzáadása", + "addUpload": "Feltöltés hozzáadása", "block": "blokk", "blockType": "Blokk típusa", "blocks": "blokkok", "chooseFromExisting": "Válasszon a meglévők közül", "collapseAll": "Mindet összecsuk", "editLink": "Link szerkesztése", + "editRelationship": "Kapcsolat hozzáadása", "itemsAndMore": "{{items}} és további {{count}}", "latitude": "Szélesség", "longitude": "Hosszúság", "passwordsDoNotMatch": "A jelszavak nem egyeznek.", + "removeUpload": "Feltöltés eltávolítása", + "saveChanges": "Módosítások mentése", "searchForBlock": "Blokk keresése", "selectFieldsToEdit": "Válassza ki a szerkeszteni kívánt mezőket", "showAll": "Az összes megjelenítése", "swapRelationship": "Kapcsolat csere", + "swapUpload": "Feltöltés csere", "uploadNewLabel": "Új {{label}} feltöltése" }, "general": { diff --git a/packages/translations/dist/client/it.json b/packages/translations/dist/client/it.json index e16d3c33a..4185de07a 100644 --- a/packages/translations/dist/client/it.json +++ b/packages/translations/dist/client/it.json @@ -57,20 +57,25 @@ "addLink": "Aggiungi Collegamento", "addNew": "Aggiungi nuovo", "addNewLabel": "Aggiungi nuovo {{label}}", + "addUpload": "aggiungi Carica", "block": "blocco", "blockType": "Tipo di Blocco", "blocks": "blocchi", "chooseFromExisting": "Scegli tra esistente", "collapseAll": "Comprimi tutto", "editLink": "Modifica Collegamento", + "editRelationship": "Modifica Relazione", "itemsAndMore": "{{items}} e altri {{count}}", "latitude": "Latitudine", "longitude": "Longitudine", "passwordsDoNotMatch": "Le password non corrispondono.", + "removeUpload": "Rimuovi Upload", + "saveChanges": "Salva modifiche", "searchForBlock": "Cerca un blocco", "selectFieldsToEdit": "Seleziona i campi da modificare", "showAll": "Mostra tutto", "swapRelationship": "Cambia Relationship", + "swapUpload": "Cambia Upload", "uploadNewLabel": "Carica nuovo {{label}}" }, "general": { diff --git a/packages/translations/dist/client/ja.json b/packages/translations/dist/client/ja.json index f6f24d031..6e49554e7 100644 --- a/packages/translations/dist/client/ja.json +++ b/packages/translations/dist/client/ja.json @@ -59,20 +59,25 @@ "addLink": "リンクを追加", "addNew": "新規追加", "addNewLabel": "{{label}} を新規追加", + "addUpload": "アップロードを追加", "block": "ブロック", "blockType": "ブロックタイプ", "blocks": "ブロック", "chooseFromExisting": "既存から選択", "collapseAll": "すべて閉じる", "editLink": "リンクを編集", + "editRelationship": "リレーションシップを編集", "itemsAndMore": "{{items}} 他{{count}}件", "latitude": "緯度", "longitude": "経度", "passwordsDoNotMatch": "パスワードが一致しません", + "removeUpload": "削除", + "saveChanges": "変更を保存", "searchForBlock": "ブロックを検索", "selectFieldsToEdit": "編集するフィールドを選択", "showAll": "すべて開く", "swapRelationship": "スワップ関係", + "swapUpload": "差し替え", "uploadNewLabel": "新規 {{label}} アップロード" }, "general": { diff --git a/packages/translations/dist/client/ko.json b/packages/translations/dist/client/ko.json index ce53c0e43..1a96cd8c6 100644 --- a/packages/translations/dist/client/ko.json +++ b/packages/translations/dist/client/ko.json @@ -56,20 +56,25 @@ "addLink": "링크 추가", "addNew": "새로 추가", "addNewLabel": "새로운 {{label}} 추가", + "addUpload": "업로드 추가", "block": "블록", "blockType": "블록 유형", "blocks": "블록", "chooseFromExisting": "기존 항목 중 선택", "collapseAll": "모두 접기", "editLink": "링크 수정", + "editRelationship": "관계 수정", "itemsAndMore": "{{items}} 및 {{count}}개 더", "latitude": "위도", "longitude": "경도", "passwordsDoNotMatch": "비밀번호가 일치하지 않습니다.", + "removeUpload": "제거", + "saveChanges": "변경 사항 저장", "searchForBlock": "블록 검색", "selectFieldsToEdit": "수정할 입력란 선택", "showAll": "모두 표시", "swapRelationship": "관계 교체", + "swapUpload": "업로드 교체", "uploadNewLabel": "새로운 {{label}} 업로드" }, "general": { diff --git a/packages/translations/dist/client/my.json b/packages/translations/dist/client/my.json index 0c23abca3..e1fa1fb4a 100644 --- a/packages/translations/dist/client/my.json +++ b/packages/translations/dist/client/my.json @@ -57,20 +57,25 @@ "addLink": "လင့်ခ်ထည့်ပါ။", "addNew": "အသစ် ထည့်သွင်းမည်။", "addNewLabel": "{{label}} အားအသစ် ထည့်သွင်းမည်။", + "addUpload": "Upload ထည့်ပါ။", "block": "ဘလောက်", "blockType": "ဘလောက် အမျိုးအစား", "blocks": "ဘလောက်များ", "chooseFromExisting": "ရှိပြီးသားထဲကပဲ ရွေးချယ်ပါ။", "collapseAll": "အားလုံးကို ခေါက်သိမ်းပါ။", "editLink": "လင့်ခ်ကို တည်းဖြတ်ပါ။", + "editRelationship": "ဆက်ဆံရေးကို တည်းဖြတ်ပါ။", "itemsAndMore": "{{items}} နှင့် နောက်ထပ် {{count}} ခု", "latitude": "vĩ độ", "longitude": "လောင်ဂျီကျု", "passwordsDoNotMatch": "စကားဝှက်များနှင့် မကိုက်ညီပါ။", + "removeUpload": "အပ်လုဒ်ကို ဖယ်ရှားပါ။", + "saveChanges": "သိမ်းဆည်းမည်။", "searchForBlock": "ဘလောက်တစ်ခုရှာမည်။", "selectFieldsToEdit": "တည်းဖြတ်ရန် အကွက်များကို ရွေးပါ။", "showAll": "အကုန် ကြည့်မည်။", "swapRelationship": "လဲလှယ်ဆက်ဆံရေး", + "swapUpload": "အပ်လုဒ်ဖလှယ်ပါ။", "uploadNewLabel": "{{label}} အသစ်တင်မည်။" }, "general": { diff --git a/packages/translations/dist/client/nb.json b/packages/translations/dist/client/nb.json index 980587608..0ceaf812c 100644 --- a/packages/translations/dist/client/nb.json +++ b/packages/translations/dist/client/nb.json @@ -57,20 +57,25 @@ "addLink": "Legg til Lenke", "addNew": "Legg til ny", "addNewLabel": "Legg til ny {{label}}", + "addUpload": "Legg til Opplasting", "block": "blokk", "blockType": "Blokktype", "blocks": "blokker", "chooseFromExisting": "Velg fra eksisterende", "collapseAll": "Skjul alle", "editLink": "Rediger lenke", + "editRelationship": "Rediger relasjon", "itemsAndMore": "{{items}} og {{count}} flere", "latitude": "Breddegrad", "longitude": "Lengdegrad", "passwordsDoNotMatch": "Passordene er ikke like.", + "removeUpload": "Fjern Opplasting", + "saveChanges": "Lagre endringer", "searchForBlock": "Søk etter en blokk", "selectFieldsToEdit": "Velg felt som skal redigeres", "showAll": "Vis alle", "swapRelationship": "Bytte Forhold", + "swapUpload": "Bytt Opplasting", "uploadNewLabel": "Last opp ny {{label}}" }, "general": { diff --git a/packages/translations/dist/client/nl.json b/packages/translations/dist/client/nl.json index 38a50f6d1..2782d1e2e 100644 --- a/packages/translations/dist/client/nl.json +++ b/packages/translations/dist/client/nl.json @@ -57,20 +57,25 @@ "addLink": "Voeg een link toe", "addNew": "Nieuw(e)", "addNewLabel": "Nieuw(e) {{label}} toevoegen", + "addUpload": "Upload Toevoegen", "block": "blok", "blockType": "Bloktype", "blocks": "blokken", "chooseFromExisting": "Kies uit bestaande", "collapseAll": "Alles samenvouwen", "editLink": "Link bewerken", + "editRelationship": "Relatie Relatie", "itemsAndMore": "{{items}} en {{count}} meer", "latitude": "Breedtegraad", "longitude": "Lengtegraad", "passwordsDoNotMatch": "Wachtwoorden komen niet overeen.", + "removeUpload": "Verwijder Upload", + "saveChanges": "Bewaar aanpassingen", "searchForBlock": "Zoeken naar een blok", "selectFieldsToEdit": "Selecteer velden om te bewerken", "showAll": "Alles tonen", "swapRelationship": "Relatie Wisselen", + "swapUpload": "Upload Verwisselen", "uploadNewLabel": "Upload nieuw(e) {{label}}" }, "general": { diff --git a/packages/translations/dist/client/pl.json b/packages/translations/dist/client/pl.json index d8db974f2..b1e8fcef7 100644 --- a/packages/translations/dist/client/pl.json +++ b/packages/translations/dist/client/pl.json @@ -57,20 +57,25 @@ "addLink": "Dodaj Link", "addNew": "Dodaj nowy", "addNewLabel": "Dodaj nowy {{label}}", + "addUpload": "Dodaj ładowanie", "block": "Blok", "blockType": "Typ Bloku", "blocks": "Bloki", "chooseFromExisting": "Wybierz z istniejących", "collapseAll": "Zwiń wszystko", "editLink": "Edytuj Link", + "editRelationship": "Edytuj Relację", "itemsAndMore": "{{items}} i {{count}} więcej", "latitude": "Szerokość", "longitude": "Długość geograficzna", "passwordsDoNotMatch": "Hasła nie pasują", + "removeUpload": "Usuń Wrzucone", + "saveChanges": "Zapisz zmiany", "searchForBlock": "Szukaj bloku", "selectFieldsToEdit": "Wybierz pola do edycji", "showAll": "Pokaż wszystkie", "swapRelationship": "Zamiana Relacji", + "swapUpload": "Zamień Wrzucone", "uploadNewLabel": "Wrzuć nowy {{label}}" }, "general": { diff --git a/packages/translations/dist/client/pt.json b/packages/translations/dist/client/pt.json index 4470ec7f0..998eaa192 100644 --- a/packages/translations/dist/client/pt.json +++ b/packages/translations/dist/client/pt.json @@ -57,20 +57,25 @@ "addLink": "Adicionar Link", "addNew": "Adicionar novo", "addNewLabel": "Adicionar novo {{label}}", + "addUpload": "Adicionar Upload", "block": "bloco", "blockType": "Tipo de bloco", "blocks": "blocos", "chooseFromExisting": "Escolher entre os existentes", "collapseAll": "Recolher todos", "editLink": "Editar Link", + "editRelationship": "Editar Relacionamento", "itemsAndMore": "{{items}} e mais {{count}}", "latitude": "Latitude", "longitude": "Longitude", "passwordsDoNotMatch": "Senhas não coincidem.", + "removeUpload": "Remover Upload", + "saveChanges": "Salvar alterações", "searchForBlock": "Procurar bloco", "selectFieldsToEdit": "Selecione os campos para editar", "showAll": "Mostrar Tudo", "swapRelationship": "Relação de Troca", + "swapUpload": "Substituir Upload", "uploadNewLabel": "Carregar novo(a) {{label}}" }, "general": { diff --git a/packages/translations/dist/client/ro.json b/packages/translations/dist/client/ro.json index 45041b8c1..e4faa3581 100644 --- a/packages/translations/dist/client/ro.json +++ b/packages/translations/dist/client/ro.json @@ -57,20 +57,25 @@ "addLink": "Adăugați un link", "addNew": "Adăugați un nou", "addNewLabel": "Adăugați un nou {{label}}", + "addUpload": "Adăugați un fișier", "block": "bloc", "blockType": "Tip de bloc", "blocks": "Blocuri", "chooseFromExisting": "Alegeți dintre cele existente", "collapseAll": "Colapsează toate", "editLink": "Editați Link-ul", + "editRelationship": "Editați relația", "itemsAndMore": "{{items}} şi {{count}} mai multe", "latitude": "Latitudine", "longitude": "Longitudine", "passwordsDoNotMatch": "Parolele nu corespund.", + "removeUpload": "Eliminați încărcarea", + "saveChanges": "Salvați modificările", "searchForBlock": "Căutați un bloc", "selectFieldsToEdit": "Selectați câmpurile de editat", "showAll": "Afișați toate", "swapRelationship": "Schimbați relația", + "swapUpload": "Schimbați Încărcarea", "uploadNewLabel": "Încărcați un nou {{label}}" }, "general": { diff --git a/packages/translations/dist/client/rs-latin.json b/packages/translations/dist/client/rs-latin.json index c093eda27..853783e51 100644 --- a/packages/translations/dist/client/rs-latin.json +++ b/packages/translations/dist/client/rs-latin.json @@ -57,20 +57,25 @@ "addLink": "Dodaj link", "addNew": "Dodaj novi", "addNewLabel": "Dodaj novi {{label}}", + "addUpload": "Dodaj učitavanje", "block": "blokiranje", "blockType": "Vrsta blokiranja", "blocks": "blokiranja", "chooseFromExisting": "Odaberite iz postojećih.", "collapseAll": "Skupi sve", "editLink": "Izmeni link", + "editRelationship": "Izmeni odnos", "itemsAndMore": "{{items}} i {{count}} više", "latitude": "Geografska širina", "longitude": "Geografska dužina", "passwordsDoNotMatch": "Lozinke nisu iste.", + "removeUpload": "Ukloni prenos", + "saveChanges": "Sačuvaj promene", "searchForBlock": "Pretraži blok", "selectFieldsToEdit": "Odaberite polja za promenu", "showAll": "Pokaži sve", "swapRelationship": "Zameni vezu", + "swapUpload": "Zameni prenos", "uploadNewLabel": "Učitaj novi {{label}}" }, "general": { diff --git a/packages/translations/dist/client/rs.json b/packages/translations/dist/client/rs.json index d2ad8afa9..83d492753 100644 --- a/packages/translations/dist/client/rs.json +++ b/packages/translations/dist/client/rs.json @@ -57,20 +57,25 @@ "addLink": "Додај линк", "addNew": "Додај нови", "addNewLabel": "Додај нови {{label}}", + "addUpload": "Додај учитавање", "block": "блокирање", "blockType": "Врста блокирања", "blocks": "блокирања", "chooseFromExisting": "Одаберите из постојећих.", "collapseAll": "Скупи све", "editLink": "Измени линк", + "editRelationship": "Измени однос", "itemsAndMore": "{{items}} и {{count}} више", "latitude": "Географска ширина", "longitude": "Географска дужина", "passwordsDoNotMatch": "Лозинке нису исте.", + "removeUpload": "Уклони пренос", + "saveChanges": "Сачувај промене", "searchForBlock": "Претражи блок", "selectFieldsToEdit": "Одаберите поља за промену", "showAll": "Покажи све", "swapRelationship": "Замени везу", + "swapUpload": "Замени пренос", "uploadNewLabel": "Учитај нови {{label}}" }, "general": { diff --git a/packages/translations/dist/client/ru.json b/packages/translations/dist/client/ru.json index e7206e48a..d9ccda4b7 100644 --- a/packages/translations/dist/client/ru.json +++ b/packages/translations/dist/client/ru.json @@ -57,20 +57,25 @@ "addLink": "Добавить ссылку", "addNew": "Добавить новый", "addNewLabel": "Добавить {{label}}", + "addUpload": "Добавить загрузку", "block": "Блок", "blockType": "Тип Блока", "blocks": "Блоки", "chooseFromExisting": "Выбрать из существующих", "collapseAll": "Свернуть все", "editLink": "Редактировать ссылку", + "editRelationship": "Редактировать Отношения", "itemsAndMore": "{{items}} и ещё {{count}}", "latitude": "Широта", "longitude": "Долгота", "passwordsDoNotMatch": "Пароли не совпадают.", + "removeUpload": "Удалить загруженное", + "saveChanges": "Сохранить изменения", "searchForBlock": "Найти Блок", "selectFieldsToEdit": "Выберите поля для редактирования", "showAll": "Показать все", "swapRelationship": "Поменять отношения", + "swapUpload": "Заменить загруженное", "uploadNewLabel": "Загрузить новый {{label}}" }, "general": { diff --git a/packages/translations/dist/client/sv.json b/packages/translations/dist/client/sv.json index 6cfc0cb09..10e47d2fc 100644 --- a/packages/translations/dist/client/sv.json +++ b/packages/translations/dist/client/sv.json @@ -57,20 +57,25 @@ "addLink": "Lägg till Länk", "addNew": "Lägg till ny", "addNewLabel": "Lägg till ny {{label}}", + "addUpload": "Lägg till Uppladdning", "block": "block", "blockType": "Block Typ", "blocks": "block", "chooseFromExisting": "Välj bland befintliga", "collapseAll": "kollapsa Alla", "editLink": "Redigera Länk", + "editRelationship": "Redigera Relation", "itemsAndMore": "{{items}} och {{count}} mer", "latitude": "Latitud", "longitude": "Longitud", "passwordsDoNotMatch": "Lösenorden matchar inte.", + "removeUpload": "Ta Bort Uppladdning", + "saveChanges": "Spara ändringar", "searchForBlock": "Sök efter ett block", "selectFieldsToEdit": "Välj fält att redigera", "showAll": "Visa Alla", "swapRelationship": "Byt Förhållande", + "swapUpload": "Byt Uppladdning", "uploadNewLabel": "Ladda upp ny {{label}}" }, "general": { diff --git a/packages/translations/dist/client/th.json b/packages/translations/dist/client/th.json index 982f88086..39cd29aac 100644 --- a/packages/translations/dist/client/th.json +++ b/packages/translations/dist/client/th.json @@ -57,20 +57,25 @@ "addLink": "เพิ่มลิงค์", "addNew": "เพิ่ม", "addNewLabel": "เพิ่ม {{label}} ใหม่", + "addUpload": "เพิ่มการอัปโหลด", "block": "Block", "blockType": "ประเภท Block", "blocks": "Blocks", "chooseFromExisting": "เลือกจากที่มีอยู่", "collapseAll": "ยุบทั้งหมด", "editLink": "แก้ไขลิงก์", + "editRelationship": "แก้ไขความสัมพันธ์", "itemsAndMore": "{{items}} และเพิ่มเติมอีก {{count}}", "latitude": "ละติจูด", "longitude": "ลองติจูด", "passwordsDoNotMatch": "รหัสผ่านไม่ตรงกัน", + "removeUpload": "ลบอัปโหลด", + "saveChanges": "บันทึก", "searchForBlock": "ค้นหา Block", "selectFieldsToEdit": "เลือกช่องที่จะแก้ไข", "showAll": "แสดงทั้งหมด", "swapRelationship": "สลับความสัมพันธ์", + "swapUpload": "สลับอัปโหลด", "uploadNewLabel": "อัปโหลด {{label}} ใหม่" }, "general": { diff --git a/packages/translations/dist/client/tr.json b/packages/translations/dist/client/tr.json index cafb0e558..c09192a38 100644 --- a/packages/translations/dist/client/tr.json +++ b/packages/translations/dist/client/tr.json @@ -57,20 +57,25 @@ "addLink": "Link Ekle", "addNew": "Yeni", "addNewLabel": "Yeni {{label}}", + "addUpload": "Yükleme Ekle", "block": "blok", "blockType": "Blok tipi", "blocks": "blok", "chooseFromExisting": "Varolanlardan seç", "collapseAll": "Tümünü daralt", "editLink": "Bağlantıyı Düzenle", + "editRelationship": "İlişkiyi Ekle", "itemsAndMore": "{{items}} and {{count}} more", "latitude": "Enlem", "longitude": "Boylam", "passwordsDoNotMatch": "Parolalar eşleşmiyor.", + "removeUpload": "Dosyayı Sil", + "saveChanges": "Değişiklikleri kaydet", "searchForBlock": "Blok ara", "selectFieldsToEdit": "Düzenlenecek alanları seçin", "showAll": "Tümünü göster", "swapRelationship": "Takas Ilişkisi", + "swapUpload": "Karşıya Yüklemeyi Değiştir", "uploadNewLabel": "Karşıya {{label}} yükle" }, "general": { diff --git a/packages/translations/dist/client/translation-schema.json b/packages/translations/dist/client/translation-schema.json index 4984a329a..e107dec8a 100644 --- a/packages/translations/dist/client/translation-schema.json +++ b/packages/translations/dist/client/translation-schema.json @@ -280,6 +280,21 @@ }, "uploadNewLabel": { "type": "string" + }, + "swapUpload": { + "type": "string" + }, + "addUpload": { + "type": "string" + }, + "editRelationship": { + "type": "string" + }, + "removeUpload": { + "type": "string" + }, + "saveChanges": { + "type": "string" } }, "required": [ @@ -301,7 +316,12 @@ "selectFieldsToEdit", "showAll", "swapRelationship", - "uploadNewLabel" + "uploadNewLabel", + "swapUpload", + "addUpload", + "editRelationship", + "removeUpload", + "saveChanges" ], "type": "object" }, diff --git a/packages/translations/dist/client/ua.json b/packages/translations/dist/client/ua.json index 12b4a379c..ede9f757c 100644 --- a/packages/translations/dist/client/ua.json +++ b/packages/translations/dist/client/ua.json @@ -57,20 +57,25 @@ "addLink": "Додати посилання", "addNew": "Додати новий", "addNewLabel": "Створити {{label}}", + "addUpload": "Додати завантаження", "block": "блок", "blockType": "Тип блока", "blocks": "блоки", "chooseFromExisting": "Вибрати з існуючих", "collapseAll": "Згорнути все", "editLink": "Редагувати посилання", + "editRelationship": "Редагувати взаємозв'язок", "itemsAndMore": "{{items}} і ще {{count}}", "latitude": "Широта", "longitude": "Довгота", "passwordsDoNotMatch": "Паролі не співпадають.", + "removeUpload": "Видалити завантаження", + "saveChanges": "Зберегти зміни", "searchForBlock": "Знайти блок", "selectFieldsToEdit": "Виберіть поля для редагування", "showAll": "Показати все", "swapRelationship": "Замінити зв'язок", + "swapUpload": "Замінити завантаження", "uploadNewLabel": "Завантажити новий {{label}}" }, "general": { diff --git a/packages/translations/dist/client/vi.json b/packages/translations/dist/client/vi.json index 9f597a94e..cb5d98673 100644 --- a/packages/translations/dist/client/vi.json +++ b/packages/translations/dist/client/vi.json @@ -57,20 +57,25 @@ "addLink": "Thêm liên kết", "addNew": "Thêm mới", "addNewLabel": "Thêm mới: {{label}}", + "addUpload": "Thêm tải lên (upload)", "block": "block", "blockType": "Block Type", "blocks": "blocks", "chooseFromExisting": "Chọn từ thư viện", "collapseAll": "Ẩn toàn bộ", "editLink": "Chỉnh sửa liên kết", + "editRelationship": "Chỉnh sửa mối quan hệ", "itemsAndMore": "{{items}} và {{count}} món nữa", "latitude": "Vĩ độ", "longitude": "Kinh độ", "passwordsDoNotMatch": "Mật khẩu không trùng.", + "removeUpload": "Xóa bản tải lên", + "saveChanges": "Luu thay đổi", "searchForBlock": "Tìm block", "selectFieldsToEdit": "Chọn các trường để chỉnh sửa", "showAll": "Hiển thị toàn bộ", "swapRelationship": "Đổi quan hệ", + "swapUpload": "Đổi bản tải lên", "uploadNewLabel": "Tải lên bản mới: {{label}}" }, "general": { diff --git a/packages/translations/dist/client/zh-tw.json b/packages/translations/dist/client/zh-tw.json index 15b003ed6..5d5de22b0 100644 --- a/packages/translations/dist/client/zh-tw.json +++ b/packages/translations/dist/client/zh-tw.json @@ -59,20 +59,25 @@ "addLink": "新增連結", "addNew": "新增", "addNewLabel": "新增{{label}}", + "addUpload": "上傳", "block": "區塊", "blockType": "區塊類型", "blocks": "區塊", "chooseFromExisting": "從現有的選擇", "collapseAll": "全部折疊", "editLink": "編輯連結", + "editRelationship": "編輯關聯", "itemsAndMore": "{{items}} 個,還有 {{count}} 個", "latitude": "緯度", "longitude": "經度", "passwordsDoNotMatch": "密碼不匹配。", + "removeUpload": "移除上傳", + "saveChanges": "儲存變更", "searchForBlock": "搜尋一個區塊", "selectFieldsToEdit": "選擇要編輯的字串", "showAll": "顯示全部", "swapRelationship": "替換關聯", + "swapUpload": "替換上傳", "uploadNewLabel": "上傳新的{{label}}" }, "general": { diff --git a/packages/translations/dist/client/zh.json b/packages/translations/dist/client/zh.json index abde544ab..b856bc3b9 100644 --- a/packages/translations/dist/client/zh.json +++ b/packages/translations/dist/client/zh.json @@ -57,20 +57,25 @@ "addLink": "添加链接", "addNew": "添加新的", "addNewLabel": "添加新的{{label}}", + "addUpload": "添加上传", "block": "区块", "blockType": "区块类型", "blocks": "区块", "chooseFromExisting": "从现有中选择", "collapseAll": "全部折叠", "editLink": "编辑链接", + "editRelationship": "编辑关系", "itemsAndMore": "{{items}}和{{count}}更多", "latitude": "纬度", "longitude": "经度", "passwordsDoNotMatch": "密码不匹配。", + "removeUpload": "移除上传", + "saveChanges": "保存更改", "searchForBlock": "搜索一个区块", "selectFieldsToEdit": "选择要编辑的字段", "showAll": "显示全部", "swapRelationship": "交换关系", + "swapUpload": "交换上传", "uploadNewLabel": "上传新的{{label}}" }, "general": { diff --git a/packages/translations/src/build.ts b/packages/translations/src/build.ts index 8cfd18aaf..42bee6cf3 100644 --- a/packages/translations/src/build.ts +++ b/packages/translations/src/build.ts @@ -151,6 +151,11 @@ const clientTranslationKeys = [ 'fields:showAll', 'fields:swapRelationship', 'fields:uploadNewLabel', + 'fields:swapUpload', + 'fields:addUpload', + 'fields:editRelationship', + 'fields:removeUpload', + 'fields:saveChanges', 'general:aboutToDeleteCount', 'general:aboutToDelete', diff --git a/packages/ui/src/elements/DocumentDrawer/types.ts b/packages/ui/src/elements/DocumentDrawer/types.ts index c95ca0cb5..f9fa4d63f 100644 --- a/packages/ui/src/elements/DocumentDrawer/types.ts +++ b/packages/ui/src/elements/DocumentDrawer/types.ts @@ -20,7 +20,7 @@ export type DocumentTogglerProps = HTMLAttributes & { id?: string } -export type UseDocumentDrawer = (args: { collectionSlug: string; id?: string }) => [ +export type UseDocumentDrawer = (args: { collectionSlug: string; id?: string | number }) => [ React.FC>, // drawer React.FC>, // toggler { diff --git a/test/_community/collections/Media/index.ts b/test/_community/collections/Media/index.ts index 16dd434e7..408d73274 100644 --- a/test/_community/collections/Media/index.ts +++ b/test/_community/collections/Media/index.ts @@ -1,9 +1,14 @@ +import path from 'path' + import type { CollectionConfig } from '../../../../packages/payload/src/collections/config/types' export const mediaSlug = 'media' export const MediaCollection: CollectionConfig = { slug: mediaSlug, + // upload: { + // staticDir: path.resolve(__dirname, './media'), + // }, upload: true, access: { read: () => true, diff --git a/test/_community/config.ts b/test/_community/config.ts index f3b424c3e..553400dec 100644 --- a/test/_community/config.ts +++ b/test/_community/config.ts @@ -1,3 +1,6 @@ +import path from 'path' + +import getFileByPath from '../../packages/payload/src/uploads/getFileByPath' import { buildConfigWithDefaults } from '../buildConfigWithDefaults' import { devUser } from '../credentials' import { MediaCollection } from './collections/Media' @@ -34,5 +37,15 @@ export default buildConfigWithDefaults({ text: 'example post', }, }) + + // Create image + const imageFilePath = path.resolve(process.cwd(), './test/uploads/image.png') + const imageFile = await getFileByPath(imageFilePath) + + const { id: uploadedImage } = await payload.create({ + collection: 'media', + data: {}, + file: imageFile, + }) }, }) diff --git a/test/buildConfigWithDefaults.ts b/test/buildConfigWithDefaults.ts index 38d509838..d24391750 100644 --- a/test/buildConfigWithDefaults.ts +++ b/test/buildConfigWithDefaults.ts @@ -25,7 +25,22 @@ const databaseAdapters = { export function buildConfigWithDefaults(testConfig?: Partial): Promise { const config: Config = { secret: 'TEST_SECRET', - editor: slateEditor({}), + editor: slateEditor({ + admin: { + upload: { + collections: { + media: { + fields: [ + { + name: 'alt', + type: 'text', + }, + ], + }, + }, + }, + }, + }), rateLimit: { max: 9999999999, window: 15 * 60 * 1000, // 15min default,