Compare commits

..

1253 Commits

Author SHA1 Message Date
James
d8cce02e97 chore(release): v1.5.9 2023-01-15 09:48:19 -05:00
James
b06ca700be fix: #1877, #1867 - mimeTypes and imageSizes no longer cause error in admin ui 2023-01-15 09:41:54 -05:00
James
d6d4906148 chore(release): v1.5.8 2023-01-12 13:56:19 -05:00
James
a054cf098c chore: excludes versions that do not have a parent document from draft queries 2023-01-12 13:35:17 -05:00
James
3fb2e5d25e Merge branch 'master' of github.com:payloadcms/payload 2023-01-12 10:39:41 -05:00
James
af7b42e531 chore: renames beta releases to canary 2023-01-12 10:39:35 -05:00
James Mikrut
679331873c Merge pull request #1861 from payloadcms/feat/error-reporting
feat: throws descriptive error when collection or global slug not found
2023-01-12 10:26:51 -05:00
James
4460ad0577 chore(release): v1.5.7 2023-01-12 10:25:33 -05:00
James
1ea6e8b4f3 chore: ensures that while querying with draft=true, outdated versions are excluded 2023-01-12 10:20:20 -05:00
James
f018fc04b0 fix: ensures querying with drafts works on both published and non-published posts 2023-01-12 10:06:44 -05:00
James
69026c5779 fix: ensures find with draft=true does not improperly exclude draft ids 2023-01-12 09:50:24 -05:00
Jessica Boezwinkle
b847d85e60 feat: throws descriptive error when collection or global slug not found 2023-01-12 13:12:46 +00:00
James
dabc0bbe80 chore(release): v1.5.6 2023-01-11 16:13:53 -05:00
James
3f30b2f489 fix: ensures that find with draft=true returns ids with drafts 2023-01-11 16:08:32 -05:00
James
a470706c2e chore(release): v1.5.5 2023-01-11 10:41:22 -05:00
James Mikrut
5e7d731ddd Merge pull request #1850 from payloadcms/fix/1848
fix: rte link from text
2023-01-11 10:33:21 -05:00
Jacob Fletcher
2e833a6efd chore: e2e test for rte link from text 2023-01-11 10:25:43 -05:00
Jacob Fletcher
1cde647a2a fix: rte link element initial state #1848 2023-01-11 09:44:41 -05:00
James
047efe02ff chore: revert #1794 for now until permanent init architecture is established 2023-01-11 09:32:44 -05:00
Jarrod Flesch
96002dbda5 Merge pull request #1719 from payloadcms/feat/1695-nullable-localized-array-and-blocks
Feat: allow null for non-default locales on arrays and blocks
2023-01-10 11:23:46 -05:00
James Mikrut
93d0a9b3d4 Merge pull request #1837 from payloadcms/chore/manual-draft-aggregate
feat/documentdb / azure cosmos compatibiilty
2023-01-10 11:23:19 -05:00
Jarrod Flesch
571495c3e0 chore: sets parameter defaults for locale and defaultLocale to null 2023-01-10 10:44:48 -05:00
Jarrod Flesch
9b71aa17b3 chore: uses defaultLocale for local operations locale and fallbackLocale 2023-01-10 10:40:35 -05:00
Jacob Fletcher
03dcf743e8 Merge pull request #1835 from payloadcms/fix/1801
fix: upload field filterOptions
2023-01-10 09:46:26 -05:00
Jacob Fletcher
dadaf32e4d Merge pull request #1839 from payloadcms/fix/date-useastitle
fix: formats date when useAsTitle
2023-01-10 09:45:04 -05:00
Jacob Fletcher
086117d703 fix: formats date when useAsTitle 2023-01-09 22:05:56 -05:00
James
ea9943e135 chore: ensures versions aggregate runs in the right order 2023-01-09 19:47:31 -05:00
James
bda03d7a84 Merge branch 'chore/manual-draft-aggregate' of github.com:payloadcms/payload into chore/manual-draft-aggregate 2023-01-09 19:46:57 -05:00
James
665d3da651 chore: ensures sort is used within mergeDrafts 2023-01-09 19:46:35 -05:00
James
faab09b76f chore: ensures sort is used within mergeDrafts 2023-01-09 19:41:30 -05:00
James
33401f4064 chore: comment accuracy 2023-01-09 19:11:40 -05:00
James
9e9dfbcb10 chore: cleanup mergeDrafts 2023-01-09 19:06:02 -05:00
James
73af283e1c feat: ensures compatibility with azure cosmos and aws documentdb 2023-01-09 18:59:20 -05:00
PatrikKozak
6c25ad9cc2 Merge branch 'master' of https://github.com/payloadcms/payload into feat/1695-nullable-localized-array-and-blocks 2023-01-09 17:49:31 -05:00
PatrikKozak
c247f3130c feat: adds translations for fallbackToDefaultLocale 2023-01-09 17:46:35 -05:00
Jacob Fletcher
4194632318 chore: fixes failing upload e2e test 2023-01-09 17:15:05 -05:00
Jarrod Flesch
8f84f9e140 chore: adds simplified config for testing 2023-01-09 17:02:25 -05:00
Jarrod Flesch
21420f16df chore: adjusts skipValidation for array 2023-01-09 16:39:13 -05:00
Jarrod Flesch
ee682270a4 Merge remote-tracking branch 'origin' into feat/1695-nullable-localized-array-and-blocks 2023-01-09 16:19:11 -05:00
Jarrod Flesch
6923128774 chore: abstracts NullifyField component out, non-default locales can be set to null to use fallback 2023-01-09 16:08:55 -05:00
Jarrod Flesch
5cabd8e4c0 chore: abstracts CheckboxInput into a uncontrolled input 2023-01-09 16:07:41 -05:00
Jarrod Flesch
84bc5ab299 chore: fixes incorrect tooltip arrow color 2023-01-09 16:06:51 -05:00
Jacob Fletcher
9483ccb120 fix: upload field filterOptions 2023-01-09 14:40:30 -05:00
Jacob Fletcher
d8c700975f chore: creates uploads e2e testing suite 2023-01-09 13:17:55 -05:00
James Mikrut
aee7d36f1d Merge pull request #1832 from payloadcms/fix/#1808
fix: #1808, arrays and blocks now save localized nested field data upon reordering rows
2023-01-09 12:59:52 -05:00
James
febbea5550 chore: restores debugger to use fields test suite 2023-01-09 12:59:36 -05:00
James
ee54c1481c fix: #1808, arrays and blocks now save localized nested field data upon reordering rows 2023-01-09 12:58:13 -05:00
James
78af86f9d1 chore: simplifies init code 2023-01-09 11:27:00 -05:00
Christian Schurr
82961767e3 feat!: enforces payload.init is async
* Run connectMongoose before starting payload init

* - reverted changes
- added deprecated to init
- docs: changed all payload.init to payload.initAsync
- changed all internal init calls

* forgotten inits in docs

* reverted back - removed init and renamed initAsync to init
2023-01-09 11:24:22 -05:00
James Mikrut
7583289d24 Merge pull request #1830 from payloadcms/fix/#1737-upload-filedata-available
fix: ensures upload file data is available for conditions
2023-01-09 11:14:55 -05:00
James
d40e136947 fix: ensures upload file data is available for conditions 2023-01-09 10:43:42 -05:00
Jessica Chowdhury
ed7cfff45c fix: bug when clearing relationship field without hasMany: true (#1829)
* fix: bug when clearing relationship field without hasMany: true

* fix: checks for null value within function
2023-01-09 10:23:40 -05:00
James Mikrut
a10376372a Merge pull request #1796 from payloadcms/fix/groups-within-row
fix: updates margin for group field within a row
2023-01-09 10:03:50 -05:00
James Mikrut
f6e749734a Merge pull request #1824 from payloadcms/fix/rte-uploads-drawer
fix: prevents uploads drawer from crashing when no uploads are enabled
2023-01-09 09:06:25 -05:00
Jacob Fletcher
62c9efbc54 Merge pull request #1819 from Elliot67/patch-2
fix: wrong translation and punctuation spacing
2023-01-09 09:02:09 -05:00
Jacob Fletcher
84e1417b71 fix: prevents uploads drawer from crashing when no uploads are enabled 2023-01-08 23:04:42 -05:00
Elliot Lintz
bf1242aafa fix: wrong translation and punctuation spacing 2023-01-07 03:38:40 +01:00
Jarrod Flesch
001a68f45c chore: adjusts block and array schemas to store undefined instead of empty arrays by default 2023-01-06 16:56:26 -05:00
Jacob Fletcher
a823e75d2b Merge pull request #1815 from iamprompt/patch-1
fix: fix miss typo in Thai translation
2023-01-06 12:24:39 -05:00
James
c21c6b8013 chore(release): v1.5.4 2023-01-06 11:36:26 -05:00
James Mikrut
e42d103af3 Merge pull request #1816 from payloadcms/feat/prebuilt-config
feat: allows init to accept a pre-built config
2023-01-06 11:30:57 -05:00
James
84e00bf7b3 feat: allows init to accept a pre-built config 2023-01-06 11:23:55 -05:00
Supakarn Laorattanakul
25e5ab7cee fix: fix miss typo in Thai translation 2023-01-06 20:23:27 +07:00
James
5a7972fbf8 chore(release): v1.5.3 2023-01-05 13:53:39 -05:00
James
74e10b1788 Merge branch 'master' of github.com:payloadcms/payload 2023-01-05 13:32:47 -05:00
James
6c3bc6fb34 chore: moves graphql types for globals onto payload class 2023-01-05 13:32:38 -05:00
Jarrod Flesch
b8ca2c56d9 Merge pull request #1807 from payloadcms/fix/code-editor-theme-flicker
fix: theme flicker on code editor
2023-01-05 09:42:24 -05:00
Jessica Boezwinkle
c9e7c1b3bc chore: commits the correct file (jess negligence) 2023-01-05 13:58:44 +00:00
Jessica Boezwinkle
dacf1a85fd chore: removes code editor theme from options 2023-01-05 13:57:10 +00:00
Jessica Boezwinkle
6567454ae4 fix: theme flicker on code editor 2023-01-05 10:03:19 +00:00
James
06fd7e7776 chore(release): v1.5.2 2023-01-04 15:16:32 -05:00
James Mikrut
cac4b92a02 Merge pull request #1805 from payloadcms/fix/swc-ignore
fix: ignores admin and components from swc
2023-01-04 15:01:43 -05:00
Jacob Fletcher
7d27431312 fix: ignores admin and components from swc 2023-01-04 14:57:07 -05:00
Jarrod Flesch
206d0c2c2a chore: adds sourcemaps for swc register 2023-01-04 13:54:39 -05:00
James
38b8423150 chore(release): v1.5.1 2023-01-04 13:23:46 -05:00
James Mikrut
ea8b1ba10c Merge pull request #1804 from payloadcms/fix/components-dir
fix: reverts components directory back to ts
2023-01-04 13:07:51 -05:00
Jacob Fletcher
1bbf099fe0 fix: reverts components directory back to ts 2023-01-04 13:04:07 -05:00
James
5fae18e940 chore: passing tests 2023-01-04 12:46:18 -05:00
James
f4d20a9aed chore: removes logging 2023-01-04 11:43:45 -05:00
James
27dd945544 chore: adds logging to debug why tests not passing in ci 2023-01-04 11:36:38 -05:00
James
7c74507bca chore(release): v1.5.0 2023-01-04 10:43:08 -05:00
James
c18ea7c856 chore: migrates component tests to new version of jest 2023-01-04 10:28:31 -05:00
James
681d75e43e chore: adapts tests to new jest version 2023-01-04 10:22:57 -05:00
James Mikrut
c11bcd1416 feat: swc register (#1779)
* feat: implements esbuild and removes babel

* chore: implements esbuild-register

* chore: tests passing

* chore: implements @swc/jest for tests

* feat: implements swc

* chore: removes build and relies on swc/register only

* chore: converts some exports

* chore: flattens ts configs

* chore: allows tsx in swc

* chore: converts more exports into js

* chore: restores payload module.exports

* chore: removes unused dependency
2023-01-04 10:11:26 -05:00
James
82501319ce chore: dependency updates 2023-01-04 10:06:00 -05:00
Jarrod Flesch
b379001f00 Merge pull request #1802 from payloadcms/chore/code-field-props
chore: moves editorProps into admin property for code and json field types
2023-01-04 09:01:07 -05:00
Jarrod Flesch
fe1dfa3e23 chore: updates test config payload-types 2023-01-04 08:51:54 -05:00
Jarrod Flesch
d97c9fd2ee chore: moves editorProps into admin property for code and json field types 2023-01-04 08:41:59 -05:00
Jarrod Flesch
fde79a1b3c Merge pull request #1731 from payloadcms/feat/json-field
feat: builds json field and updates code field editor
2023-01-03 17:00:34 -05:00
Jarrod Flesch
59781b9eef chore: adjusts JSON field type, removes jsonError from config type 2023-01-03 16:47:51 -05:00
Jarrod Flesch
27ab978565 chore: updates json field docs 2023-01-03 15:01:43 -05:00
Jarrod Flesch
f7d664fdcf docs: updates code and json field types to reflect internal switch to monaco-react editor 2023-01-03 15:01:04 -05:00
Jarrod Flesch
4d74d7a994 chore: abstracts CodeEditor component, ensures js and ts language are respected in Code Field with new editor 2023-01-03 13:57:06 -05:00
James
6a3ee4debe chore(release): v1.4.2 2023-01-03 10:16:45 -05:00
Jarrod Flesch
a0181a0eee Merge branch 'master' into feat/json-field 2023-01-03 10:03:16 -05:00
Jessica Boezwinkle
1c3a257244 fix: updatesmargin for group field within a row 2023-01-03 10:26:10 +00:00
James Mikrut
7727496548 Merge pull request #1793 from payloadcms/fix/#1786
fix: #1786, relationship with hasMany no longer sets empty array as default value
2023-01-02 15:50:58 -05:00
James
ecfb363169 fix: #1786, relationship with hasMany no longer sets empty array as default value 2023-01-02 15:49:19 -05:00
James Mikrut
4579a2adc1 Merge pull request #1787 from payloadcms/chore/deleting-error-i18n
chore: fix incorrect translation for error deleting document
2023-01-02 14:42:37 -05:00
James Mikrut
57ba307c3b Merge pull request #1792 from payloadcms/feat/reactive-preview
feat: preview now exposes most recent draft data
2023-01-02 14:39:38 -05:00
James
54dadbeae5 feat: preview now exposes most recent draft data 2023-01-02 14:38:35 -05:00
James Mikrut
2a8bc31e4a Merge pull request #1789 from payloadcms/fix/#1775
fix: #1775 - siblingData for unnamed fields within array rows improperly formatted
2023-01-02 13:39:02 -05:00
James
d6fcd19bd1 fix: #1775 - siblingData for unnamed fields within array rows improperly formatted 2023-01-02 13:31:34 -05:00
Dan Ribbens
e0d4b3fef2 chore: fix incorrect translation for error deleting document 2023-01-02 12:43:05 -05:00
James Mikrut
3552d6a340 Merge pull request #1770 from payloadcms/fix/#1762-select-unmatched-value
fix: #1762 select field crash on missing value option
2023-01-02 10:28:57 -05:00
James Mikrut
e330d8874b Merge pull request #1766 from jacobsfletch/fix/1765
fix: error clearing date field
2023-01-02 09:51:51 -05:00
James Mikrut
d919abbda4 Merge pull request #1782 from jacobsfletch/fix/1777
docs: reserved field names
2023-01-02 09:45:24 -05:00
Jacob Fletcher
8e6b2c4f9d docs: reserved field names 2023-01-02 00:47:54 -05:00
Jacob Fletcher
420ed6738e chore: e2e test for date input clearing 2022-12-26 14:31:08 -05:00
Zlatex
49fa5cb23a feat: add Ukrainian translation (#1767) 2022-12-26 12:48:13 -05:00
Dan Ribbens
ec9196e33c fix: select field crash on missing value option 2022-12-26 12:13:11 -05:00
Jacob Fletcher
883daf7b46 fix: error clearing date field 2022-12-24 09:02:35 -05:00
James
7b92211eca chore(release): v1.4.1 2022-12-23 19:52:05 -05:00
James
192c9fe981 Merge branch 'master' of github.com:payloadcms/payload 2022-12-23 19:46:09 -05:00
James
9f4ce8d756 fix: #1761, avoids rich text modifying form due to selection change 2022-12-23 19:46:01 -05:00
Dan Ribbens
abaa22950c test: json field e2e and int 2022-12-23 17:45:22 -05:00
James Mikrut
e23481a011 Update README.md 2022-12-23 16:29:51 -05:00
James
8a8741a792 chore(release): v1.4.0 2022-12-23 16:13:12 -05:00
James Mikrut
206b757629 Merge pull request #1757 from payloadcms/fix/#1738-svg-image-sizes
fix: #1738 save image dimensions to svg uploads
2022-12-23 16:05:22 -05:00
PatrikKozak
238badabb4 fix: translated tab classnames 2022-12-23 15:20:44 -05:00
James
e86a6efe45 Merge branch 'master' of github.com:payloadcms/payload 2022-12-23 14:39:35 -05:00
James
37bc8826f7 chore: allows relationship and upload elements to reside within lists 2022-12-23 14:39:25 -05:00
Jacob Fletcher
3d4dfbcf7a chore: translates tooltip in rte relationship 2022-12-23 14:09:10 -05:00
Dan Ribbens
2de435f43a fix: #1738 save image dimensions to svg uploads 2022-12-23 13:42:31 -05:00
James
ff4a6a1ea1 Merge branch 'master' of github.com:payloadcms/payload 2022-12-23 13:12:33 -05:00
James
55df622007 chore: ensures that de-indenting top-level lists works in all cases 2022-12-23 13:11:38 -05:00
Jacob Fletcher
baf5b10d23 roadmap: rte and upload drawers (#1668) 2022-12-23 12:41:06 -05:00
James
794b6e8783 chore: safely checks if rte last selected element is empty 2022-12-23 12:30:54 -05:00
James Mikrut
df41201134 Merge pull request #1759 from payloadcms/fix/#1748
fix: #1748, bails out of autosave if doc is published while autosaving
2022-12-23 12:21:29 -05:00
James
95e9300d10 fix: #1748, bails out of autosave if doc is published while autosaving 2022-12-23 12:20:04 -05:00
James Mikrut
ad2a54bb78 Merge pull request #1758 from payloadcms/fix/#1747
fix: #1747, rich text in arrays improperly updating initialValue when…
2022-12-23 11:53:21 -05:00
James
d417e50d52 fix: #1747, rich text in arrays improperly updating initialValue when moving rows 2022-12-23 11:47:16 -05:00
James Mikrut
16c41d36cf Merge pull request #1722 from payloadcms/fix/#551
fix: #551 - rich text nested list structure
2022-12-23 11:14:28 -05:00
James Mikrut
4e019e44b0 Merge pull request #1756 from payloadcms/fix/1753-date-field-updates
Fix: updatedAt and createdAt fields change
2022-12-23 11:04:30 -05:00
Jarrod Flesch
d7e7ee9a52 chore: threads global updatedAt through to edit view 2022-12-23 11:01:02 -05:00
James Mikrut
e7a16364c0 Merge pull request #1754 from payloadcms/fix/#1752
fix: #1752, removes label from row field type
2022-12-23 10:51:48 -05:00
James Mikrut
a46c220489 Merge pull request #1745 from payloadcms/fix/1737
fix: allows cleared file to be reselected
2022-12-23 10:50:30 -05:00
James Mikrut
830af2389e Merge pull request #1744 from payloadcms/fix/1739
fix: missing file after reselect in upload component
2022-12-23 10:49:38 -05:00
James Mikrut
332b5d1dad Merge pull request #1743 from payloadcms/fix/1736
fix: safely clears sort #1736
2022-12-23 10:48:50 -05:00
James Mikrut
3cde636d47 Merge pull request #1741 from payloadcms/fix/richtext-toolbar-drawer
fix: updates richtext toolbar position if inside a drawer
2022-12-23 10:47:42 -05:00
James Mikrut
c0293719d9 Merge pull request #1733 from payloadcms/fix/drawer-stepnav
fix: relationship labels and page stepnav
2022-12-23 10:46:54 -05:00
Jarrod Flesch
bd4ed5b99b fix: removes update and created at fields when duplicating, ensures updatedAt data is reactive 2022-12-23 10:39:15 -05:00
James Mikrut
0527e6f3ea Merge pull request #1700 from payloadcms/fix/#1666-api-key-header-label
fix: #1666 use the slug for authentication header API Key
2022-12-23 10:37:19 -05:00
James
ff3ab18d16 fix: #1752, removes label from row field type 2022-12-23 10:24:43 -05:00
James
691730974e chore: ensures that isListActive disregards editor parent 2022-12-23 10:15:26 -05:00
James
46a29f54fc chore: removes debugging for slate 2022-12-23 10:05:28 -05:00
James
95127c94a6 chore: fixes rich text tests 2022-12-23 09:54:41 -05:00
James
88a0c56f40 chore: finishes left indent of lists 2022-12-23 08:53:35 -05:00
Jacob Fletcher
6bd5907ad7 chore: reverts 9567328 2022-12-23 08:34:41 -05:00
James
801068c8fe chore: revises left indent 2022-12-22 18:26:09 -05:00
James
4516c3670e chore: overhauls lists, prepares for left indent 2022-12-22 15:55:07 -05:00
Jessica Boezwinkle
73b8ba3d4a fix: json field type 2022-12-22 14:12:39 +00:00
Jacob Fletcher
9567328d28 fix: refreshes document drawer on save 2022-12-21 22:42:00 -05:00
Jacob Fletcher
35abe811c1 fix: allows cleared file to be reselected 2022-12-21 17:55:48 -05:00
Jacob Fletcher
6bc1758dc0 fix: missing file after reselect in upload component 2022-12-21 17:28:09 -05:00
Jacob Fletcher
341c163b36 fix: safely clears sort #1736 2022-12-21 16:50:52 -05:00
PatrikKozak
468b0d2a55 fix: updates richtext toolbar position if inside a drawer 2022-12-21 11:49:31 -05:00
Elliot DeNolf
f873fa8d99 docs: add example Dockerfile and docker-compose.yml (#1735)
* docs: add example Dockerfile and docker-compose.yml

* docs: link to docker deployment from installation
2022-12-21 11:39:32 -05:00
Jacob Fletcher
59de4f7e82 fix: updates relationship label on drawer save and prevents stepnav update 2022-12-20 16:48:47 -05:00
Elliot DeNolf
f02bbe6308 chore: README logo (#1732)
* chore: README header logo

* updates conditionally rendered logo for light/dark mode

* adds img folder with light and dark logos to utilize gh conditional

* moves payload logos to avoid polluting root directory

Co-authored-by: Sean Zubrickas <zubricks@gmail.com>
2022-12-20 13:24:07 -05:00
Jessica Boezwinkle
e5835ae4f6 chore: cleans up files 2022-12-20 16:57:54 +00:00
Jessica Boezwinkle
309569c581 chore: pass options through to JSON and code fields, fix versions preview 2022-12-20 16:47:31 +00:00
James Mikrut
a88dddab22 Merge pull request #1728 from payloadcms/feat/account-doc-access
feat: adds doc permissions to account view
2022-12-20 10:08:01 -05:00
Jarrod Flesch
b5048a3323 chore: threads onSave through to account render component, refreshes docPermissions after successful save 2022-12-20 09:43:56 -05:00
Elliot DeNolf
3ec6b3d846 chore: revert README h1 2022-12-20 09:35:07 -05:00
Sean Zubrickas
d0dacdbde0 chore: readme updates (#1717)
* refines readme banner image, badges and headings

* chore: spruce up README a bit more

* adds dark/light mode support for logo

Co-authored-by: Elliot DeNolf <denolfe@gmail.com>
2022-12-20 09:28:12 -05:00
Jarrod Flesch
8d643fb29d feat: adds doc permissions to account view 2022-12-20 09:13:19 -05:00
Jessica Boezwinkle
e5ffb1e92d Merge branch 'master' of https://github.com/payloadcms/payload into feat/json-field 2022-12-20 13:33:02 +00:00
James
087eeb01a2 chore: rich text type declarations 2022-12-19 23:02:39 -05:00
James
542ea8eb81 fix: #551 - rich text nested list structure 2022-12-19 22:51:24 -05:00
Dan Ribbens
60bb2652f0 fix: get relationships in locale of i18n language setting (#1648) 2022-12-19 20:42:09 -05:00
Jarrod Flesch
7b769caf78 chore: stubs out data layer and simple frontend example allow explicit null value setting 2022-12-19 17:02:45 -05:00
Elliot DeNolf
0796d5394d chore: fix single quotes in translations file 2022-12-19 16:15:11 -05:00
Lukas Frana
0be4285305 feat: add Czech translation (#1705) 2022-12-19 16:12:57 -05:00
James Mikrut
e366624440 Merge pull request #1672 from payloadcms/fix/query-drafts
fix: #1611, unable to query draft versions with draft=true
2022-12-19 16:01:57 -05:00
James
c755143cc0 chore: uses mongo aggregate for merging draft results 2022-12-19 16:01:30 -05:00
James Mikrut
020a2797d5 Merge pull request #1716 from payloadcms/fix/#1656-image-sizes-patch
fix: #1656 remove size data
2022-12-19 15:44:16 -05:00
Dan Ribbens
389ee261d4 fix: #1656 remove size data 2022-12-19 15:31:03 -05:00
PatrikKozak
13fd974a2d Merge pull request #1715 from payloadcms/feat/graphql-16
feat(graphql): upgrade to graphql 16
2022-12-19 14:20:17 -05:00
James Mikrut
d492870924 Merge pull request #1709 from payloadcms/fix/#1698
fix: #1698 - globals and autosave not working
2022-12-19 14:07:14 -05:00
Calvin Lai
57f5f5ec43 feat(graphql): upgrade to graphql 16 2022-12-19 14:01:51 -05:00
Jarrod Flesch
0d06b8c178 Merge pull request #1711 from payloadcms/fix/1701-radio-validation
Fix/radio-field-validation
2022-12-19 12:17:13 -05:00
Jessica Chowdhury
9af4c1dde7 fix: prevents special characters breaking relationship field search (#1710)
* fix: prevents special characters breaking relationship field search

* test: add special char querying w/ like operator

Co-authored-by: Elliot DeNolf <denolfe@gmail.com>
2022-12-19 12:16:30 -05:00
Dan Ribbens
5b70ebd119 fix: use the slug for authentication header API Key
BREAKING CHANGE: replaced the useAPIKey authentication header format to use the collection slug instead of the collection label. Previous: `${collection.labels.singular} API-Key ${apiKey}`, updated: `${collection.slug} API-Key ${apiKey}`
2022-12-19 11:02:40 -05:00
Jarrod Flesch
0dfed3b30a fix: simplifies radio validation 2022-12-19 11:01:57 -05:00
James
915f1e2b3a fix: #1698 - globals and autosave not working 2022-12-19 10:52:11 -05:00
Elliot DeNolf
2e765a1e05 chore: log full error on transport configuration error (#1702) 2022-12-18 21:57:33 -05:00
James
26717c9ce4 chore(release): v1.3.4 2022-12-16 17:55:42 -05:00
James
fc35d845e7 Merge branch 'master' of github.com:payloadcms/payload 2022-12-16 17:39:51 -05:00
James Mikrut
6580fc7f91 Merge pull request #1690 from payloadcms/fix/doc-access
fix: doc access should not run where query on collections without id
2022-12-16 17:39:39 -05:00
James
1b8ab36123 chore: removes unnecessary async 2022-12-16 17:39:02 -05:00
Jarrod Flesch
b8c0482cda fix: run docAccess also when checking global 2022-12-16 17:38:29 -05:00
James Mikrut
100da03647 Merge pull request #1688 from payloadcms/fix/#1658-async-validate
fix: #1658 async validate out of order
2022-12-16 17:38:25 -05:00
Jarrod Flesch
016beb6eec fix: doc access should not run where query on collections without id 2022-12-16 17:36:41 -05:00
James Mikrut
f85d366500 Merge pull request #1689 from payloadcms/fix/#1687
fix: autosave with nested localized fields
2022-12-16 17:24:32 -05:00
James
a5670c3163 chore: simplifies logic for autosave patch 2022-12-16 17:24:13 -05:00
James
4202fc2933 fix: autosave with nested localized fields 2022-12-16 17:14:00 -05:00
Dan Ribbens
e913fbe4ea fix: async validate out of order 2022-12-16 16:45:38 -05:00
James
0fbfe149df chore(release): v1.3.3 2022-12-16 10:07:47 -05:00
Jessica Boezwinkle
07b2ccad61 feat: wires up i18n with monaco editor 2022-12-16 15:04:25 +00:00
James
f715146aa3 fix: ensures select field avoids circular dependencies 2022-12-16 10:01:08 -05:00
Jessica Boezwinkle
efe4f6d861 feat: fixes json editor errors and misc styling 2022-12-16 13:34:21 +00:00
James
8eaf05efef chore: json field now edits string but saves json in db 2022-12-15 21:10:56 -05:00
James
6c7282ec37 Merge branch 'feat/json-field' of github.com:payloadcms/payload into feat/json-field 2022-12-15 20:32:30 -05:00
James
d9d05f3644 chore: uses aggregate query if draft=true 2022-12-15 20:31:06 -05:00
Dan Ribbens
d88daa433e chore: Revert "chore: allow empty string route.api" (#1681) 2022-12-15 15:08:50 -05:00
Jessica Boezwinkle
4d6eba8d21 feat: updates code field editor 2022-12-15 18:47:53 +00:00
Jessica Boezwinkle
28d9f9009c feat: adds initial json field 2022-12-15 18:32:11 +00:00
Dan Ribbens
91e33ad1ee fix: allow translation in group admin.description (#1680) 2022-12-15 13:13:33 -05:00
James
4359564e2f chore(release): v1.3.2 2022-12-15 12:58:23 -05:00
James
420eef4d91 fix: safely handles rich text deselection 2022-12-15 12:39:57 -05:00
Dan Ribbens
d2f281d318 chore: update changelog 2022-12-15 12:26:06 -05:00
Dan Ribbens
2f723e0d78 chore(release): v1.3.1 2022-12-15 12:15:09 -05:00
Jacob Fletcher
a1813ca4b3 fix: stringifies date in DateTime field for useAsTitle (#1674) 2022-12-15 10:05:49 -05:00
Dan Ribbens
049d560898 fix: add i18n type to collection and globals admin.description (#1675) 2022-12-15 09:45:06 -05:00
Dan Ribbens
91493f9e8f chore: richtext relationship i18n label (#1662) 2022-12-15 09:23:21 -05:00
PatrikKozak
64086e8122 fix: collapsible children margin bottom (#1673) 2022-12-15 09:22:26 -05:00
Dan Ribbens
75d2cbe9e3 chore: update global admin group type (#1647) 2022-12-15 09:09:53 -05:00
Jacob Fletcher
a0b41eb83b fix: ensures unique document drawer slugs 2022-12-14 16:26:50 -05:00
James
44b31a9e58 fix: #1611, unable to query draft versions with draft=true 2022-12-14 16:25:04 -05:00
Jarrod Flesch
de4c7ae625 Merge pull request #1671 from iamprompt/fix-array-collapsible-label-i18n
fix: array collapsible lable i18n object
2022-12-14 16:20:41 -05:00
Jacob Fletcher
414ae9e11f Merge pull request #1669 from iamprompt/fix-label-i18n-add-relationship-tooltip
fix: add new relationship tooltip label translation
2022-12-14 16:17:20 -05:00
James Mikrut
f13742c1f7 Merge pull request #1670 from payloadcms/fix/select-field-clear-value
Fix/select field clear value
2022-12-14 16:16:21 -05:00
Jarrod Flesch
eda6f70acb Roadmap/#1379 admin ui doc level access (#1624)
* feat: adds document level access endpoints so admin ui can now accurately reflect document level access control
* chore(docs): new doc access callout, updates useDocumentInfo props from change
2022-12-14 16:14:29 -05:00
Supakarn Laorattanakul
8b18da78fe fix i18n object in array collapsible lable 2022-12-15 03:08:09 +07:00
Supakarn Laorattanakul
36c1008a22 fix label i18n - add new relationship tooltip 2022-12-15 02:49:00 +07:00
PatrikKozak
c52389ecb6 Merge branch 'master' of https://github.com/payloadcms/payload into fix/select-field-clear-value 2022-12-14 14:41:52 -05:00
PatrikKozak
80da898de8 fix: adds draftsEnabled to baseSchema for tabs / arrays / groups & allows for null enum 2022-12-14 14:41:41 -05:00
PatrikKozak
b4f39d5fd3 fix: removes case for select field that sets data to undefined if set to null 2022-12-14 14:39:39 -05:00
PatrikKozak
f0db5e0170 fix: adds draftsEnabled to versionSchema in collections / globals 2022-12-14 14:38:18 -05:00
Supakarn Laorattanakul
d9c45f62b1 fix: label translation in about to delete dialog (#1667) 2022-12-14 13:16:15 -05:00
Jacob Fletcher
3ae5d954b5 Merge pull request #1558 from jacobsfletch/feat/inline-relationships
roadmap: inline relationships
2022-12-14 09:51:54 -05:00
PatrikKozak
934b443b5b fix: list view date field display format (#1661) 2022-12-14 07:09:54 -05:00
James Mikrut
965bd456cd Merge pull request #1653 from damtzi/fix/#1652-dashboard-to-custom-route
fix: Set 'Dashboard's link to config route (#1652)
2022-12-13 11:00:43 -05:00
Damian Tziamtzis
9d4dac892e fix: Remove template literal from link 2022-12-12 23:16:56 +01:00
Damian Tziamtzis
940c1e84f5 fix: Set 'Dashboard's link to config route (#1652) 2022-12-12 23:10:57 +01:00
Alessio Gravili
1d7ed8aff9 chore: add default credentials to contributing.md (#1642) 2022-12-12 09:40:34 -05:00
Supakarn Laorattanakul
c15da3178e chore: improve thai translation (#1641) 2022-12-12 09:13:13 -05:00
Elliot DeNolf
c0f8f94cd6 chore: update payload component usage comment 2022-12-11 12:43:21 -05:00
Jacob Fletcher
92d2c4d805 fix: fields e2e tests 2022-12-09 17:50:54 -05:00
Jacob Fletcher
50ea48901e Merge branch 'master' into feat/inline-relationships 2022-12-09 15:37:40 -05:00
Jacob Fletcher
c72f074b77 fix: fields-relationship e2e tests 2022-12-09 15:34:35 -05:00
PatrikKozak
72f7927cc6 chore: adds close & edit keys to translations (#1640) 2022-12-09 14:57:40 -05:00
Jacob Fletcher
cb0437fbca Merge branch 'master' into feat/inline-relationships 2022-12-09 13:18:49 -05:00
Jacob Fletcher
bc6cc8dd14 chore: bumps pino-pretty to latest 2022-12-09 13:16:54 -05:00
Jacob Fletcher
1695b8f263 chore: document drawer a11y 2022-12-09 13:01:57 -05:00
Elliot DeNolf
6ea462c0f7 docs: fix graphql localhost link 2022-12-09 12:24:09 -05:00
Dan Ribbens
45e4504a7b chore(release): v1.3.0 2022-12-09 09:53:33 -05:00
Elliot DeNolf
ba2f2d6e9b feat!: no longer sanitize collection slugs to kebab case (#1607)
BREAKING CHANGE: collection slugs are no longer automatically sanitized to be kebab case. This will only be an issue if your current slugs were in camel case. The upgrade path will be to change those slugs to the kebab case version that the slug was automatically being sanitized to on the backend.

If you only use kebab case or single word slugs: no action needed.

If you have existing slugs with camel case and populated data: you'll need to convert these to the kebab case version to match the previously sanitized value.

ie. myOldSlug is your slug, you should convert it to my-old-slug.

Any future slugs after updating will be used as-is.
2022-12-09 09:40:05 -05:00
Nut Pinyo
7777d11b9e feat: add Thai translation (#1630) 2022-12-09 09:38:57 -05:00
Dan Ribbens
eff3f18e7c fix: #1632 graphQL non-nullable relationship and upload fields (#1633) 2022-12-09 09:38:05 -05:00
Dan Ribbens
756edb858a fix: Select with hasMany and localized (#1636) 2022-12-09 09:36:39 -05:00
Dan Ribbens
b6c597ab5c fix: translation key in revert published modal (#1628) 2022-12-09 09:35:40 -05:00
Dan Ribbens
a44dba5ccc chore: cleanup test fields relationship config (#1635) 2022-12-08 22:46:31 -05:00
Dan Ribbens
11b1c0efc6 fix: filterOptions function argument relationTo is an array (#1627)
Co-authored-by: Jarrod Flesch <jarrodmflesch@gmail.com>
2022-12-08 21:24:00 -05:00
Jacob Fletcher
3da0cb9c79 chore: improves useDocumentDrawer memoization 2022-12-08 18:13:46 -05:00
Jacob Fletcher
a36ac209b2 fix: drawer blur, scroll, and document sidebar 2022-12-08 18:12:48 -05:00
Jacob Fletcher
e101f925cc feat: further Tooltip improvements 2022-12-08 17:01:00 -05:00
James
bff7c9f7aa chore: ensures rich text initialValue exists 2022-12-08 16:11:13 -05:00
Jacob Fletcher
17fac6e6a0 chore: general ReactSelect and Relationship styles 2022-12-08 14:22:02 -05:00
Jacob Fletcher
00b3b768eb feat: supports tooltip show and delay 2022-12-08 14:11:55 -05:00
James
9558a22ce6 fix: resets slate state when initialValue changes, fixes #1600, #1546 2022-12-08 11:39:17 -05:00
Jarrod Flesch
512bc1ebe6 fix: sanitizes global find query params 2022-12-08 08:39:17 -05:00
Jacob Fletcher
39a956cee3 fix: relationship drawer permissions 2022-12-07 16:40:42 -05:00
Jacob Fletcher
6da13f3794 chore: moves drawer logic from ReactSelect to Relationship 2022-12-07 16:22:33 -05:00
Dan Ribbens
471d21410a fix: change edit key to prevent richtext editor from crashing (#1616) 2022-12-07 14:47:47 -05:00
Jacob Fletcher
f290cda333 fix: escapes react-select events when drawer is open 2022-12-07 12:40:19 -05:00
Christoffer Bjelke
759f001681 feat: add Norwegian bokmål (nb) translation (#1614) 2022-12-07 10:39:02 -05:00
Carsten Dietzel
dc806a9650 chore: update de.json (#1608) 2022-12-07 07:54:25 -05:00
Jacob Fletcher
5f0227fa80 chore: custom react-select clear indicator 2022-12-06 23:45:27 -05:00
Jacob Fletcher
e2fce30964 fix: add new relationship modal when related to many 2022-12-06 18:00:58 -05:00
James Mikrut
1c193b0ed2 Merge pull request #1609 from payloadcms/chore/translation-key-problem-uploading
chore: fix incorrect translation key in FileUploadError
2022-12-06 16:02:06 -05:00
Dan Ribbens
5588b342d7 chore: fix incorrect translation key in FileUploadError 2022-12-06 15:51:00 -05:00
Jacob Fletcher
f4b099a3d1 chore: removes useDrawer hook and drawer context 2022-12-06 14:56:14 -05:00
Jacob Fletcher
49528dd3c3 fix: relationship create and edit onSave handling 2022-12-06 14:56:03 -05:00
James Mikrut
3aee027b0f Merge pull request #1606 from jacobsfletch/fix/1605-filter-options
fix: unflattens fields in filterOptions callback
2022-12-06 13:53:07 -05:00
Jacob Fletcher
92177e012c Merge branch 'master' into feat/inline-relationships 2022-12-06 13:00:15 -05:00
Jacob Fletcher
acff46b4a5 fix: unflattens fields in filterOptions callback 2022-12-06 12:26:58 -05:00
Jacob Fletcher
445c6fc775 chore: reconfigures useDocumentDrawer hook 2022-12-06 12:13:30 -05:00
Jarrod Flesch
de57aa8417 Merge pull request #1532 from payloadcms/feat/#1423-copy-paste-upload
Feat/#1423 copy paste upload
2022-12-06 10:20:13 -05:00
Jarrod Flesch
ff1b4b098c style: reverts upload field to original, keeps underlying copy-paste functionality 2022-12-06 10:05:22 -05:00
James
a72123dd47 fix: #1547, global afterChange hook not falling back to original global if nothing returned 2022-12-06 09:56:52 -05:00
James
5d0fe9a6da chore(release): v1.2.5 2022-12-06 09:38:25 -05:00
James
04eaf725a0 Merge branch 'master' of github.com:payloadcms/payload 2022-12-06 09:32:18 -05:00
James
46a96ccb2e chore: ensures date field modifies form modified 2022-12-06 09:32:10 -05:00
James Mikrut
0b857f7234 Merge pull request #1584 from kalon-robson/fix/missing-unpublish
fix: #1583 mismatch language condition when rendering unpublish
2022-12-06 09:18:06 -05:00
torunai
c8a683100f feat: add Turkish translations (#1596) 2022-12-06 09:14:22 -05:00
Jacob Fletcher
4e0dd3d12d Merge pull request #1592 from jacobsfletch/fix/relationship-option
fix: relationship option
2022-12-05 17:15:49 -05:00
Jacob Fletcher
d9eb1ea801 fix: remounts document drawer when single-value relationship changes 2022-12-05 14:07:42 -05:00
Jacob Fletcher
881c067c40 fix: exits findOptionsByValue when matchedOption is found 2022-12-05 14:04:46 -05:00
PatrikKozak
9d4f4c6305 chore: removes isLocked since not being defined and always returning false (#1553) 2022-12-05 12:37:50 -05:00
Jarrod Flesch
3e2d1b5e9d Merge pull request #1580 from payloadcms/fix/inline-relationship-select
fix: uses pathOrName to pass to internal Relationship field components
2022-12-05 11:09:03 -05:00
James
b6ec4bd2d4 chore: binds prefs model even if not local 2022-12-05 10:25:36 -05:00
Jarrod Flesch
b70dc83d0e Merge pull request #1589 from payloadcms/fix/NaN-limit-and-depth-query
fix: safely coerces limit and depth to number or undefined
2022-12-05 09:29:59 -05:00
Roman Ryzhikov
a2eda6999a chore: update russian translation (#1582) 2022-12-05 09:29:00 -05:00
Jarrod Flesch
dd04d7842e fix: safely coerces limit and depth to number or undefined 2022-12-05 08:41:47 -05:00
Jacob Fletcher
3c862add3c fix: prevents react-select from opening on drawer toggle 2022-12-05 00:29:30 -05:00
Kalon Robson
3ddd0ea3ef fix: mismatch language condition when rendering unpublish 2022-12-04 00:42:38 +00:00
bobbyZ
8ad0042f5f chore: added german translation for richtext fields (#1579) 2022-12-03 17:06:26 -05:00
Jarrod Flesch
8874e871d4 fix: uses pathOrName to pass to internal Relationship field components 2022-12-03 13:44:46 -05:00
Dan Ribbens
356ab8d7eb chore(release): v1.2.4 2022-12-03 12:40:50 -05:00
Dan Ribbens
2dcada199c fix: missing translation richText link modal (#1573) 2022-12-03 12:29:33 -05:00
Dan Ribbens
ca59efe396 chore: typescript typo fix (#1575) 2022-12-03 12:28:08 -05:00
Jacob Fletcher
5592fb148d feat: custom button html element 2022-12-03 00:31:00 -05:00
Jacob Fletcher
1f53990bb1 Merge branch 'master' into feat/inline-relationships 2022-12-02 23:14:10 -05:00
Jacob Fletcher
811ade60b4 feat: wires DocumentDrawer into singular relationships 2022-12-02 17:44:12 -05:00
Jacob Fletcher
6fab722a2e fix: prevents duplicative DocumentDrawer 2022-12-02 15:46:46 -05:00
Jacob Fletcher
83eef0bc77 chore: migrates from react-sortable-hoc to @dnd-kit 2022-12-02 14:26:26 -05:00
Dan Ribbens
308dc3d600 chore(release): v1.2.3 2022-12-02 12:52:18 -05:00
Dan Ribbens
396ea0bd53 fix: reset password regression (#1574) 2022-12-02 12:36:19 -05:00
Dan Ribbens
44df7f523b chore(release): v1.2.2 2022-12-01 20:24:05 -05:00
James Mikrut
8b36ff8d60 Merge pull request #1551 from payloadcms/fix/#1505-collection-model-types
chore: extend CollectionModel type to include mongoose model
2022-12-01 19:30:25 -05:00
James Mikrut
e01b165693 Merge pull request #1559 from payloadcms/fix/#1512-localized-drafts
fix: update drafts includes latest version changes
2022-12-01 19:08:23 -05:00
James Mikrut
15671f2494 Merge pull request #1564 from payloadcms/docs/update-label-descriptions
docs: remove GraphQL from label descriptions
2022-12-01 19:07:44 -05:00
Jacob Fletcher
dd217750d7 feat: retrofits DocumentDrawer into relationship multi-select 2022-12-01 18:01:51 -05:00
Jacob Fletcher
7a42e38cca feat: supports custom react-select components 2022-12-01 17:42:24 -05:00
Jacob Fletcher
475f147f2c feat: retrofits DocumentDrawer into relationship AddNew 2022-12-01 16:39:51 -05:00
Jacob Fletcher
670e5243a9 fix: prevents recursive DocumentDrawer 2022-12-01 16:39:51 -05:00
Jacob Fletcher
2118927f42 feat: builds DocumentDrawer component 2022-12-01 16:39:51 -05:00
Jacob Fletcher
f8cf4c7b6a chore: reconfigures drawer context 2022-12-01 16:39:51 -05:00
Jacob Fletcher
c6013c3904 feat: builds Drawer component 2022-12-01 16:39:51 -05:00
Jarrod Flesch
80d8367a2f Merge pull request #1560 from payloadcms/roadmap/#1401-decouple-pagination-args
Roadmap/#1401 decouple pagination args
2022-12-01 16:34:22 -05:00
Dan Ribbens
283343c4a4 docs: update upload filterOptions 2022-12-01 15:50:41 -05:00
Dan Ribbens
924d903456 docs: remove GraphQL from label descriptions 2022-12-01 15:48:40 -05:00
Justin Nicewander
49efd028fa docs: add filter options section to upload field docs. (#1550) 2022-12-01 15:47:37 -05:00
Jarrod Flesch
e6bda625b4 chore: fixes test expectation 2022-12-01 12:17:47 -05:00
Jarrod Flesch
226c7d5da5 chore: adds REST test for http limitless query param 2022-12-01 11:43:15 -05:00
Jarrod Flesch
891f00d05c fix: allows for limit bypass on version find operations 2022-12-01 10:44:11 -05:00
Jarrod Flesch
c8d1b9f88a fix: sanitize number query params before passing to find operation 2022-12-01 10:06:22 -05:00
Jarrod Flesch
a71801006c fix: adjusts how limit is set, both in options and paginates limit 2022-12-01 09:10:56 -05:00
Jarrod Flesch
dc4e0971a6 chore: simplifies logic to decouple pagination and limit 2022-12-01 08:17:00 -05:00
Jarrod Flesch
f7ce0c615d feat: decouples limit from pagination, allows for no limit query 2022-11-30 22:18:37 -05:00
Jarrod Flesch
dce2081663 fix: aligns mongoose PaginatedDocs type with actual lib type 2022-11-30 22:17:38 -05:00
Dan Ribbens
48989d0f6e fix: update drafts includes latest version changes 2022-11-30 17:03:00 -05:00
Chris Waschl
47fd0d9ec4 fix(i18n): requiresAtLeast variable in de.json (#1556) 2022-11-30 16:32:37 -05:00
Dan Ribbens
bbe547ec47 chore: extend CollectionModel type to include mongoose model 2022-11-30 10:47:04 -05:00
Dan Ribbens
c211a804bd chore: change test assertion to be more consistent (#1543) 2022-11-29 18:24:40 -05:00
Dan Ribbens
57fbff3655 chore: fix translation rich text links (#1499) 2022-11-29 16:36:05 -05:00
Jarrod Flesch
5a158c1b58 Merge pull request #1541 from payloadcms/fix/#1495-sharp-types
Fix/#1495 Sharp types
2022-11-29 16:19:46 -05:00
Jarrod Flesch
088cc16f9b Merge pull request #1523 from payloadcms/fix/#1461-unpublish-validation
Fix/#1461 Form validation when un-publishing
2022-11-29 16:02:50 -05:00
Jarrod Flesch
b3d526b59a fix: moves sharp types from devDeps to deps 2022-11-29 16:00:53 -05:00
Jarrod Flesch
afe2ed2ebc chore: removes frontend ui logic, unnecessary when overwriting document on unpublish 2022-11-29 15:44:56 -05:00
Jarrod Flesch
e6f1c6fc7b fix: corrects skipValidation 2022-11-29 15:44:56 -05:00
Jarrod Flesch
77ab54243a fix: ignore validation when unpublishing, do not allow restore with invalid form state 2022-11-29 15:44:56 -05:00
Dan Ribbens
5a69ed562e chore: fix translation key requiresAtLeast (#1538) 2022-11-29 15:43:41 -05:00
Angelo Bartolome
7aada3c746 fix: indexSortableFields timestamp fields #1506 (#1537) 2022-11-29 15:36:27 -05:00
Jarrod Flesch
425b66a0c2 Merge pull request #1501 from payloadcms/fix/#1446-graphql-contains-schema 2022-11-29 14:15:41 -05:00
Jacob Fletcher
f4ac714286 Merge pull request #1520 from jacobsfletch/docs/rate-limit
docs: rateLimit defaults
2022-11-29 12:50:28 -05:00
Jacob Fletcher
c9bfdbb63c docs: rateLimit defaults 2022-11-29 12:48:53 -05:00
Jarrod Flesch
c56381b721 Merge pull request #1475 from payloadcms/fix/#1442-reactive-relationship-select
Fix/#1442 reactive relationship select
2022-11-29 11:24:37 -05:00
Jarrod Flesch
70675251e5 Merge pull request #1529 from iheidari-aci/patch-1
Add type to fix TS error for re-exporting a type
2022-11-29 11:17:46 -05:00
Jarrod Flesch
3482dd5f78 Merge pull request #1521 from payloadcms/fix/light-theme-syntax
fix: updates syntax colors for light theme
2022-11-29 11:14:11 -05:00
Jessica Boezwinkle
3eebd6613f fix: updates code field css 2022-11-29 16:05:28 +00:00
Jessica Boezwinkle
d03f0aef84 fix: uses baseClass in code field 2022-11-29 16:03:34 +00:00
Jarrod Flesch
b0964b066b chore: exports types as types from /components 2022-11-29 10:37:46 -05:00
Thomas Ghysels
5bd86571ca feat: improve typescript comments (#1467) 2022-11-29 10:10:30 -05:00
Elliot DeNolf
a90a1a9e19 feat: log email transport error messages (#1469) 2022-11-29 09:33:00 -05:00
Jarrod Flesch
d10a993465 Merge pull request #1534 from payloadcms/fix/#1517-blockName-cutoff
fix: blockName grows in all browsers
2022-11-29 09:28:25 -05:00
Jarrod Flesch
03c2ab52a8 fix: blockName grows in all browsers 2022-11-29 08:57:53 -05:00
Jarrod Flesch
143362d45c chore: styles copy paste, adds text translations 2022-11-29 08:41:17 -05:00
Arick
eb69b82adf feat: upload support pasting file 2022-11-29 08:26:11 -05:00
Jessica Boezwinkle
1a6c9a3e18 feat: removes theme provider and updates background for code fields 2022-11-29 10:48:57 +00:00
Iman
6cb9ab6b44 Add type to fix TS error for re-exporting a type
To fix TS error:
Re-exporting a type when the '--isolatedModules' flag is provided requires using 'export type'.
2022-11-28 18:28:49 -08:00
Dan Ribbens
04c689c5b0 fix: handle multiple locales in relationship population (#1452) 2022-11-28 14:24:01 -05:00
Jessica Boezwinkle
dbfe7ca6e6 fix: updates syntax colors for light theme 2022-11-28 16:22:13 +00:00
Christian Reichart
e9d2163601 fix: german translation optimizations (#1485)
Co-authored-by: Christian Reichart <christian.reichart@camperboys.com>
2022-11-28 10:02:58 -05:00
Jarrod Flesch
ec51929b1a fix: ensures enums cannot query on partial matches 2022-11-23 16:38:25 -05:00
Jarrod Flesch
a0d03667c5 docs: updates messsy components banner 2022-11-23 16:21:44 -05:00
Jacob Fletcher
246ab414c8 chore: writes e2e test for dynamic filterOptions 2022-11-23 15:11:16 -05:00
Jarrod Flesch
cde1f128e9 chore: adds contains to operators.contains 2022-11-23 14:59:51 -05:00
Jarrod Flesch
4c37af6f10 fix: adds contain operators for text/email/radio fields 2022-11-23 14:46:54 -05:00
Jarrod Flesch
5e829a94bf Merge pull request #1482 from payloadcms/fix/#1479-edit-view-sidebar-styles
Fix/#1479 edit view sidebar styles
2022-11-23 14:26:10 -05:00
Jarrod Flesch
56144c07f0 chore: merge tests 2022-11-23 14:05:56 -05:00
Jacob Fletcher
99c1f41e30 fix: dynamic relationship filterOptions 2022-11-23 13:47:44 -05:00
Jacob Fletcher
be9b5adfa3 types: passes generic through FilterOptions 2022-11-23 13:00:19 -05:00
Jacob Fletcher
a9da81f18c fix: reverts async reducer and resolves infinite effect 2022-11-23 12:11:01 -05:00
Jacob Fletcher
54ef40a335 fix: moves relationship field useEffect into async reducer action 2022-11-23 10:39:38 -05:00
James
fbb4944e83 chore: fixes broken tests and ts 2022-11-22 20:05:40 -05:00
James
56682c7fd4 chore: improves logic for ensuring programmatically set relationship values have options loaded 2022-11-22 19:35:23 -05:00
Vlad Kovalevsky
114758b193 chore: allow empty string route.api 2022-11-22 15:46:22 -05:00
Jarrod Flesch
1602bdc17a chore: moves ensureValuesAreLoaded into effect 2022-11-22 15:17:04 -05:00
Dan Ribbens
9ea41fbb58 chore: fix translation key (#1491) 2022-11-22 13:12:58 -05:00
Jarrod Flesch
59631c7879 chore: adds preview button to versions test configs 2022-11-22 09:13:41 -05:00
Jarrod Flesch
9770affad0 chore: improves edit screen sidebar styles 2022-11-22 09:13:00 -05:00
Dan Ribbens
9f6f2d24f3 Merge branch 'master' of github.com:payloadcms/payload 2022-11-21 21:31:16 -05:00
Dan Ribbens
efb4bd17d4 chore(release): v1.2.1 2022-11-21 21:30:59 -05:00
Dan Ribbens
3a9dc9ef68 fix: translate select field option labels (#1476) 2022-11-21 20:45:23 -05:00
Dan Ribbens
8123585592 fix: translate version comparison view field labels (#1470) 2022-11-21 20:19:16 -05:00
Jarrod Flesch
1d1d2493aa fix: rendering of localized select value 2022-11-21 17:07:22 -05:00
Dan Ribbens
7b6a9ede6e feat: add i18n to option labels in version comparison (#1477) 2022-11-21 16:38:01 -05:00
Dan Ribbens
400cb9b6bc fix: invalid query string user account request (#1478) 2022-11-21 16:32:15 -05:00
Carlo Brualdi
078c28bd5f fix: versionCount was broken & other i18n improvements (#1450) 2022-11-21 16:24:13 -05:00
Jarrod Flesch
23f1ac1e72 chore: updates inline comment 2022-11-21 16:12:50 -05:00
Jarrod Flesch
16d00e87c2 fix: infinite rerenders, accounts for hasMany false 2022-11-21 16:09:31 -05:00
Jarrod Flesch
6a28a41069 chore: adds precision to relationship test 2022-11-21 15:17:48 -05:00
Jacob Fletcher
59a4355614 Merge pull request #1451 from jacobsfletch/fix/draft-patch
fix: ensures draft operations save as drafts
2022-11-21 15:15:52 -05:00
Jarrod Flesch
e4435bb8bd fix: allows for form controlled relationship fields to be populated 2022-11-21 12:55:06 -05:00
Dan Ribbens
3a622fcd63 chore: fix translation namespace typo (#1460) 2022-11-21 11:21:44 -05:00
James Mikrut
29ed75c329 Merge pull request #1456 from jacobsfletch/fix/reactive-stepnav
fix: dynamically sets stepnav from default edit view
2022-11-21 09:13:23 -05:00
Jarrod Flesch
9303e32273 Merge pull request #1420 from thgh/fix/textarea-click-target
fix: Increase textarea click area
2022-11-21 08:13:24 -05:00
Elliot DeNolf
3dbf4e2cd7 chore: simplify bug report template 2022-11-20 12:57:05 -05:00
Ed
5673b709ec docs: make it clear that lockTime is defined in ms (#1459) 2022-11-20 12:50:03 -05:00
Valentín Costa
b00987b044 docs: add missing S in example of i18n (#1463) 2022-11-20 12:47:52 -05:00
Elliot DeNolf
075b7e9f02 fix(i18n): version count (#1465) 2022-11-20 12:46:57 -05:00
Jacob Fletcher
40c87784b0 fix: dynamically sets stepnav from default edit view 2022-11-18 17:30:33 -05:00
Jarrod Flesch
bf30713860 chore: removes unnecessary styles 2022-11-18 16:14:31 -05:00
Jarrod Flesch
2e57b76df0 fix: adjusts styles to allow error bg to fill textarea 2022-11-18 16:11:32 -05:00
Jarrod Flesch
ab4aa9eec6 Merge pull request #1453 from payloadcms/fix/#1424-isClearable-select
fix: sanitizes null select value on the server
2022-11-18 15:19:02 -05:00
Jarrod Flesch
699ca14434 fix: sanitizes select values on the server, allowing isClearable selects to be cleared without error 2022-11-18 14:58:51 -05:00
Jacob Fletcher
25822a91b1 fix: allows patching global drafts #1415 2022-11-18 14:55:24 -05:00
Jacob Fletcher
f700f51f2b fix: flattens locales before versioning published docs #1415 2022-11-18 14:31:25 -05:00
Jacob Fletcher
af6a7aa9e8 fix: versions tests 2022-11-18 14:27:58 -05:00
Jacob Fletcher
b3c232dbbe chore: write tests for draft patches #1415 2022-11-18 13:08:24 -05:00
Jacob Fletcher
fc16ffefdb fix: ensures drafts operations saves as draft #1415 2022-11-18 13:08:16 -05:00
Jarrod Flesch
1d6cf04647 Merge pull request #1447 from payloadcms/fix/1441-options-type
Fix/1441 options type
2022-11-18 12:29:28 -05:00
Jarrod Flesch
a2c0481f59 chore: updates changelog with examples 2022-11-18 11:37:29 -05:00
Jarrod Flesch
bb6ee6a974 chore: reverts irrelevant ts-config change 2022-11-18 08:26:05 -05:00
Dan Ribbens
fa577d0490 chore(release): v1.2.0 2022-11-18 07:43:45 -05:00
Dan Ribbens
bab34d82f5 feat: add i18n to admin panel (#1326)
Co-authored-by: shikhantmaungs <shinkhantmaungs@gmail.com>
Co-authored-by: Thomas Ghysels <info@thomasg.be>
Co-authored-by: Kokutse Djoguenou <kokutse@Kokutses-MacBook-Pro.local>
Co-authored-by: Christian Gil <47041342+ChrisGV04@users.noreply.github.com>
Co-authored-by: Łukasz Rabiec <lukaszrabiec@gmail.com>
Co-authored-by: Jenny <jennifer.eberlei@gmail.com>
Co-authored-by: Hung Vu <hunghvu2017@gmail.com>
Co-authored-by: Shin Khant Maung <101539335+shinkhantmaungs@users.noreply.github.com>
Co-authored-by: Carlo Brualdi <carlo.brualdi@gmail.com>
Co-authored-by: Ariel Tonglet <ariel.tonglet@gmail.com>
Co-authored-by: Roman Ryzhikov <general+github@ya.ru>
Co-authored-by: maekoya <maekoya@stromatolite.jp>
Co-authored-by: Emilia Trollros <3m1l1a@emiliatrollros.se>
Co-authored-by: Kokutse J Djoguenou <90865585+Julesdj@users.noreply.github.com>
Co-authored-by: Mitch Dries <mitch.dries@gmail.com>

BREAKING CHANGE: If you assigned labels to collections, globals or block names, you need to update your config! Your GraphQL schema and generated Typescript interfaces may have changed. Payload no longer uses labels for code based naming. To prevent breaking changes to your GraphQL API and typescript types in your project, you can assign the below properties to match what Payload previously generated for you from labels.

On Collections
Use `graphQL.singularName`, `graphQL.pluralName` for GraphQL schema names.
Use `typescript.interface` for typescript generation name.

On Globals
Use `graphQL.name` for GraphQL Schema name.
Use `typescript.interface` for typescript generation name.

On Blocks (within Block fields)
Use `graphQL.singularName` for graphQL schema names.
2022-11-18 07:36:30 -05:00
Jarrod Flesch
7c6d6fd1ca feat: exports field types properly 2022-11-17 17:06:34 -05:00
Jarrod Flesch
ed01a17621 fix: removes incorrectly import/export option type - #1441 2022-11-17 16:45:38 -05:00
Jarrod Flesch
c49ee15b6a Merge pull request #1223 from bigmistqke/feat/customizable-header-labels
WIP: customizable RowHeaders
2022-11-16 15:06:16 -05:00
Jarrod Flesch
402b1e4615 chore: adds visualization to test examples, reduces collapsibles in test file 2022-11-16 14:54:36 -05:00
Jarrod Flesch
8d827933f3 docs: updates docs to reflect new API 2022-11-16 13:35:00 -05:00
Jarrod Flesch
65f0e1caac fix: build errors 2022-11-16 13:08:07 -05:00
Jarrod Flesch
d9df98ff22 feat: simplifies collapsible label API, adds e2e tests 2022-11-16 12:57:54 -05:00
Jarrod Flesch
999c8fc08b Merge remote-tracking branch 'origin/master' into pr/bigmistqke/1223 2022-11-16 09:05:07 -05:00
Jarrod Flesch
fe221aea67 Merge remote-tracking branch 'origin/master' into pr/bigmistqke/1223 2022-11-16 09:00:53 -05:00
Jarrod Flesch
57a8c352e4 feat: adds playwright tests for array fields 2022-11-16 09:00:50 -05:00
Thomas Ghysels
c303913e61 fix: Increase textarea click area 2022-11-16 01:41:08 +01:00
Jarrod Flesch
e458087a55 fix: sets pointer-events to none so the entire label bar is clickable 2022-11-15 16:05:54 -05:00
Jarrod Flesch
ccb42319ab fix: corrects type for CollapsibleLabel example type, adjusts custom component filenames 2022-11-15 12:40:31 -05:00
Jarrod Flesch
2bf0fffa0d feat: adds docs example 2022-11-15 12:37:47 -05:00
Jarrod Flesch
b74ea218ca feat: specifies component names for arrays/collapsibles, simplifies threaded data 2022-11-15 11:34:36 -05:00
James
49cbb2d0ac chore(release): v1.1.26 2022-11-15 09:26:01 -05:00
Jarrod Flesch
2878b4b1be fix: corrects exported custom component type 2022-11-15 09:23:20 -05:00
James
0f0dc0948e Merge branch 'master' of github.com:payloadcms/payload 2022-11-15 09:21:00 -05:00
James
50bcf001ea fix: #1414 2022-11-15 09:20:54 -05:00
James Mikrut
7be202486b Update CHANGELOG.md 2022-11-15 08:40:12 -05:00
James
f938dd718f chore(release): v1.1.25 2022-11-15 08:39:43 -05:00
James Mikrut
94b2ef1613 Merge pull request #1411 from jacobsfletch/master
Saves tabs to user preferences
2022-11-15 08:06:03 -05:00
Jacob Fletcher
71a6c58b27 chore: cleans up handleTabChange async callback 2022-11-15 07:40:39 -05:00
Jarrod Flesch
13ec1e0398 feat: converts rowHeader to collapsibleLabel, extends data passed to functions/components 2022-11-15 01:53:09 -05:00
Jacob Fletcher
35426eef36 feat: updates tab preference keys 2022-11-14 18:30:18 -05:00
Jacob Fletcher
32833ec571 Merge branch 'payloadcms:master' into master 2022-11-14 17:49:36 -05:00
Jacob Fletcher
5eb8e4a28f feat: saves tab index to user preferences 2022-11-14 17:49:18 -05:00
Thomas Ghysels
0f27b103b4 feat: let textarea grow based on value (#1398)
* feat: autogrowing textarea

* feat: sets textarea min-height and reduces height on mobile

Co-authored-by: Jessica Boezwinkle <jessica@trbl.design>
2022-11-14 16:26:22 -05:00
James
d103f6c94f fix: ensures admin components is defaulted 2022-11-14 15:46:34 -05:00
Alberto Maghini
a345ef0d31 feat: admin UI logout extensibility (#1274)
* added Logout documentation

* updated type and schema

* updated logout component, route and inactivityRoute references

* added custom Logout component into test admin instance

* fixed windows path management

* added dotenv usage

* added check on testSuiteDir and provided more meaningful error message

* fixed object destructure

* updated from logout.route to logoutRoute

* extracted getSanitizedLogoutRoutes method

* added unit tests

* updated references

* updated doc

* reviewed casing and added defaults

* updated usage

* restored workers previous value

* fixed config validation

* updated docs and schema

* updated reference to logoutRoute and inactivityRoute

* updated test ref

Co-authored-by: Alberto Maghini (MSC Technology Italia) <alberto.maghini@msc.com>
Co-authored-by: Alberto Maghini <alberto@newesis.com>
2022-11-14 14:55:31 -05:00
Thomas Ghysels
4d8cc97475 fix: add slug to DocumentInfo context (#1389) 2022-11-14 14:54:05 -05:00
James
7556b54017 chore: fixes TS error in UploadGallery 2022-11-14 14:49:31 -05:00
Feng Sun
5e8a8b2df9 fix: adds unique key to upload cards to prevent old images being shown while navigating to new page 2022-11-14 14:48:08 -05:00
James Mikrut
244fb63c6d Update what-is-payload.mdx 2022-11-14 14:19:48 -05:00
bigmistqke
e4f2be3dec RowHeaderFunction becomes RowHeaderComponent 2022-11-14 17:44:39 +01:00
bigmistqke
f43f433f51 add index to tests 2022-11-14 17:42:50 +01:00
James Mikrut
84f01e8836 Update ui.mdx 2022-11-14 10:11:28 -05:00
bigmistqke
30def3511e add RowHeaders to array's and collapsible's tests 2022-11-14 15:54:21 +01:00
bigmistqke
27499981c8 admin.header to admin.components.RowHeader 2022-11-14 15:53:37 +01:00
bigmistqke
d5e725c608 fix: components optional chaining 2022-11-14 15:52:43 +01:00
bigmistqke
ef5cc2ab0f rename RowLabel-parameter to RowHeader 2022-11-14 15:51:47 +01:00
bigmistqke
5cd87a754b update collapsible's schema and type 2022-11-14 15:12:58 +01:00
bigmistqke
b1370b814a fix bug: deleted baseAdminFields caused errors
also rename admin.header to admin.components.RowHeader
2022-11-14 15:04:45 +01:00
bigmistqke
b1105085c5 rename RowLabel to RowHeader
edit RowLabel.fallback's type to allow strings
2022-11-14 15:02:55 +01:00
Elliot DeNolf
cdaa8cc29f fix: global afterRead and afterChange execution (#1405) 2022-11-14 08:18:58 -05:00
bigmistqke
811913cb85 rename files and collapse types
RowLabel becomes RowHeader for continuity purposes
RowHeaderFunction is removed from types as it is equal to Component
2022-11-14 14:13:51 +01:00
James Mikrut
7356d8977f Update overview.mdx 2022-11-13 20:39:26 -05:00
James
a3959ca5d8 chore(release): v1.1.24 2022-11-13 19:21:13 -05:00
Thomas Ghysels
216b9f88d9 fix: cursor jumping while typing in inputs
* Revert "feat: optimizes field performance by storing internal values in useField hook"

This reverts commit 66210b856b.

* fix: Lightweight fix for cursor jump issue

Resolves #1393
2022-11-13 19:14:16 -05:00
James
183cd9a0be chore: updates docs to reflect new website public images folder 2022-11-13 17:41:39 -05:00
James
5f5c7ba7bf chore(release): v1.1.23 2022-11-12 18:58:34 -05:00
James
66210b856b feat: optimizes field performance by storing internal values in useField hook 2022-11-12 18:46:31 -05:00
James
2f684040fc fix: #1361, ensures collection auth depth works while retrieving static assets 2022-11-12 15:44:24 -05:00
James
2364476689 chore(release): v1.1.22 2022-11-12 14:49:20 -05:00
James
7136db4c71 fix: #1360, relationship field onMenuScrollToBottom not working in some browsers 2022-11-12 14:44:00 -05:00
James
562fccce05 docs: resolves #1273, inaccurate docs regarding local API overrideAccess 2022-11-12 14:22:23 -05:00
James
35f91b038b fix: 1309, duplicative logout in admin UI 2022-11-12 14:19:08 -05:00
James
eb0023e961 fix: #1358, allows listSearchableFields to work when indicated fields are nested 2022-11-12 13:44:30 -05:00
James
1d76e973bb fix: #1367, allows custom global components within schema validation 2022-11-12 13:08:10 -05:00
James
3f28a69959 fix: #1353, ensures errors returned from server make their way to UI 2022-11-12 12:55:30 -05:00
James
77792327f1 Merge branch 'master' of github.com:payloadcms/payload 2022-11-11 12:04:01 -07:00
James
86855d68f6 fix: #1357, nested arrays and blocks sometimes not allowing save 2022-11-11 12:03:39 -07:00
Nick Borko
cfef68f364 fix: fixed GraphQL Access query resolver to return the correct data (#1339) 2022-11-11 04:25:46 -08:00
Nut Pinyo
32b8f46bf2 docs: field hook example configuration (#1329) 2022-11-11 04:19:18 -08:00
James
cc5fa943ad Merge branch 'master' of github.com:payloadcms/payload 2022-11-11 04:12:48 -08:00
James
9da9d38aed docs: adds useEditDepth to docs 2022-11-11 04:12:43 -08:00
Feng Sun
d90ca777db chore: export useEditDepth (#1350) 2022-11-11 04:09:06 -08:00
James
e4b4931dba chore(release): v1.1.21 2022-11-05 12:10:30 -04:00
James
93acea9d7f chore: ensures when array / block rows are added, new row count is properly calculated 2022-11-05 12:05:34 -04:00
James
f883e04ee1 chore(release): v1.1.20 2022-11-05 11:45:07 -04:00
James
bb51a54ebe Merge branch 'master' of github.com:payloadcms/payload 2022-11-05 11:38:02 -04:00
James
483adf08c4 feat: optimizes blocks and arrays by removing some additional rerenders 2022-11-05 11:37:55 -04:00
Elliot DeNolf
4a78f7d3c3 chore: change discord readme badge to blurple 2022-11-04 10:31:42 -04:00
James
78c2306b73 Merge branch 'master' of github.com:payloadcms/payload 2022-11-01 17:51:03 -04:00
James
ddfb011904 docs: quick fix to strong tag 2022-11-01 17:50:55 -04:00
James Mikrut
d1c20e4fef Update CHANGELOG.md 2022-10-31 18:23:34 -04:00
James
a5139072c8 chore(release): v1.1.19 2022-10-31 18:23:10 -04:00
James
e004682799 Merge branch 'master' of github.com:payloadcms/payload 2022-10-31 17:51:00 -04:00
James
c651835061 fix: #1318, improves popup positioning and logic 2022-10-31 17:50:52 -04:00
Elliot DeNolf
2255ebb64a feat: revert enforce kebab-case slugs (#1322) (#1325) 2022-10-31 16:10:11 -04:00
James
e2ec2f7b97 fix: #1311, select existing upload modal always updates state 2022-10-31 15:40:18 -04:00
James
00196a8631 chore: ensures form is modified when rows are moved, fixes #1314 2022-10-31 13:25:19 -04:00
James
2a09f15a15 fix: #1307, #1321 - bug with disableFormData and blocks field 2022-10-31 13:21:16 -04:00
Elliot DeNolf
0420b6dc27 feat: enforce kebab-case slugs (#1322) 2022-10-31 11:11:00 -04:00
Dan Ribbens
10c30260dd docs: fix listSearchableFields anchor (#1297) 2022-10-31 09:44:49 -04:00
Elliot DeNolf
25000261bd fix: custom pino logger options (#1299) 2022-10-26 15:08:52 -04:00
Elliot DeNolf
bb82cdcef4 docs: better inline docs for InitOptions 2022-10-26 10:25:06 -04:00
Elliot DeNolf
027dff8363 chore(release): v1.1.18 2022-10-25 12:30:47 -04:00
James
31ca1ab379 chore: ensures defaultMaxTextLength is optional 2022-10-25 12:23:45 -04:00
Elliot DeNolf
33c1f287f3 chore(release): v1.1.17 2022-10-25 11:09:30 -04:00
Elliot DeNolf
cd4861afda chore: move release-it back to dev deps 2022-10-25 11:03:13 -04:00
James
9f56ac182f Merge branch 'master' of github.com:payloadcms/payload 2022-10-25 11:00:48 -04:00
James
3301f59822 fix: enforces depth: 0 in graphql resolvers 2022-10-25 11:00:38 -04:00
James
f9ca3a9f96 chore: fixes bad field name 2022-10-25 11:00:22 -04:00
Elliot DeNolf
3ba7594a65 chore: update release-it plugin 2022-10-25 10:31:37 -04:00
TomDo1234
6a1b25ab30 feat: adds default max length for text-based fields
* feat: Added to types.ts the default Max Field Length

* feat: Added the defaultMaxFieldLength to the schema.ts

* feat: applying defaultMaxFieldLength to 3 validators

* feat: renamed defaultMaxFieldLength to defaultMaxTextLength , adding defaultMax and min nums

* feat: validating numbers with new defaultminnum and defaultmaxnum

* feat: FIXED BUG, do not return an error message on the defaultmaxnum and minnum override checks

* Added test fields

* Eslint compliance

* feat : eslint compliacnce

* Added tests, though a reasonable payload config needs to be imported to them

* Removed my failed jest tests, relying on the yarn dev test instead

* Increased default num max and min range to JS safe integer

* Jmi suggestions

* feat: removing the superfluous number max and min default

* Added test for max text field

Co-authored-by: Tom Do <tom@iifuture.com>
Co-authored-by: TomDoFuture <108644869+TomDoFuture@users.noreply.github.com>
2022-10-24 18:57:45 -04:00
James
17dbbc7775 fix: group + group styles within collapsible 2022-10-24 18:56:56 -04:00
James
7e25abf87a chore: type fixes 2022-10-24 12:26:25 -04:00
James
0591dfd05b chore: typo 2022-10-24 12:18:03 -04:00
Will Laeri
17610adf36 chore: upgrade vulnerable dependencies (#1228)
* upgrade vulnerable deps

* removed specified node/yarn versions
2022-10-24 12:14:48 -04:00
Will Laeri
91814777b0 feat: specify node 14+ and yarn classic LTS (#1240) 2022-10-24 12:14:22 -04:00
Daniel Söderling
09d793926d feat: added beforeLogin hook (#1289) 2022-10-24 12:05:12 -04:00
James
a9f2f0ec03 fix: #1290, renders more than one rich text leaf where applicable 2022-10-24 12:03:06 -04:00
James
66bf8c3cbd fix: #1286, uses defaultDepth in graphql rich text depth 2022-10-24 11:31:09 -04:00
James
3967c1233f fix: #1291, add inline relationship drafts 2022-10-24 11:23:01 -04:00
James
c929725dd5 fix: ensures field updates when disableFormData changes 2022-10-24 08:56:08 -04:00
James
9c6098b191 chore(release): v1.1.16 2022-10-21 15:48:40 -04:00
James
6daab398da Merge branch 'master' of github.com:payloadcms/payload 2022-10-21 15:39:36 -04:00
James
36ef3789fb fix: obscure bug where upload collection has upload field relating to itself 2022-10-21 15:39:29 -04:00
Hung Vu
14cbf2f079 docs: correction to demo code of radio field (#1266) 2022-10-18 14:10:27 -04:00
Dan Ribbens
87bbf4416b Merge pull request #1272 from payloadcms/fix/#1271-index-sortable-fields-regression 2022-10-18 14:05:36 -04:00
Dan Ribbens
785b992c3e fix: indexSortableFields not respected 2022-10-17 20:17:55 -04:00
James
b4695e10b6 chore(release): v1.1.15 2022-10-14 11:38:48 -04:00
James
0b0d971491 fix: ensures svg mime type is always image/svg+xml 2022-10-14 11:33:41 -04:00
James
02af6b90b2 chore(release): v1.1.14 2022-10-14 10:22:14 -04:00
James
2181bc84a1 1.1.13 2022-10-14 10:02:40 -04:00
James
036cd5f831 1.1.12 2022-10-14 10:02:33 -04:00
James
da9825cd99 chore: reverts hiding scrollbars in tabs 2022-10-14 09:53:43 -04:00
James
4a43f95952 fix: hides scrollbar in tabs with overflowing tabs, closes #1259 2022-10-14 09:51:44 -04:00
James
9af9b73132 fix: cleans up draft global action buttons 2022-10-14 09:37:27 -04:00
James
7f7d3dbeef Merge branch 'master' of github.com:payloadcms/payload 2022-10-13 08:28:37 -04:00
James
8ef9206001 chore: properly exports BeforeDuplicate type 2022-10-13 08:17:05 -04:00
James
21ba237135 fix: #1183 - better handling of mime types with svgs + similar files 2022-10-13 08:12:15 -04:00
James Mikrut
3bda163e7b Merge pull request #1241 from jacobsfletch/master
feat: bumps @faceless-ui/modal to v2.0.1
2022-10-12 12:00:22 -04:00
James
e4e4ad1b08 chore: ensures beforeDuplicate works on each locale 2022-10-12 11:59:56 -04:00
James
f7352a7d08 chore(release): v1.1.11 2022-10-12 11:52:48 -04:00
James
6f6f2f8e7b feat: builds beforeDuplicate admin hook, closes #1243 2022-10-12 11:44:41 -04:00
James
5ca5abab42 fix: ensures arrays and blocks mount as disableFormData: true, fixes #1242 2022-10-12 10:52:59 -04:00
Jacob Fletcher
9a7553099c feat: migrates @faceless-ui/modal to v2.0.1 2022-10-12 01:28:17 -04:00
James
55d0c917e6 chore(release): v1.1.10 2022-10-11 13:40:19 -04:00
James
f52daeccf0 docs: adds access control vid to docs 2022-10-11 13:34:35 -04:00
James
6c871c57fc chore(release): v1.1.9 2022-10-11 12:12:40 -04:00
James
5322ada9e6 feat: improves access control typing 2022-10-11 11:46:58 -04:00
James
ee83a50ea9 chore: improves read-only styling of all react-selects 2022-10-11 11:46:44 -04:00
James
f6b19e074c chore: more predictably exports Access type 2022-10-11 09:44:52 -04:00
James
6cc1d9e41b chore(release): v1.1.8 2022-10-11 09:24:07 -04:00
James
74863f9462 chore: workaround for faceless-ui modal types 2022-10-11 09:19:20 -04:00
James
fdcf029da2 chore: adjusts LeaveWithoutSaving z-index 2022-10-11 09:00:19 -04:00
James
3e3d151e4c docs: #1235, broken typescript link 2022-10-11 08:32:27 -04:00
James Mikrut
5da204b152 Merge pull request #1224 from payloadcms/feat/use-context-selector
Feat/use context selector
2022-10-10 18:38:36 -04:00
James
3d6c3f7339 chore: cleanup 2022-10-10 18:38:15 -04:00
James
8d49517004 chore: merge master 2022-10-10 15:12:38 -04:00
James Mikrut
d1c0f2b97b Merge pull request #1230 from payloadcms/feat/add-inline-relationship
feat: adds ability to create related docs while editing another
2022-10-10 15:07:41 -04:00
James
1bc42ae098 chore: tests 2022-10-10 14:56:10 -04:00
James
c6edb7f53a chore: improves design 2022-10-10 13:57:08 -04:00
James
1e048fe037 feat: adds ability to create related docs while editing another 2022-10-09 20:24:38 -04:00
James
8fabdce584 chore: restores old useWatchForm to avoid breaking change 2022-10-07 17:54:35 -04:00
James
5c1a3fabee feat: implements use-context-selector for form field access 2022-10-07 17:41:41 -04:00
bigmistqke
d45de99956 feat: customizable header-labels
for Collapsibles and Arrays
2022-10-07 23:17:24 +02:00
James
fe6d30210b Merge branch 'master' of github.com:payloadcms/payload into feat/use-context-selector 2022-10-07 10:09:20 -04:00
James
93f71e621c chore(release): v1.1.7 2022-10-06 18:14:37 -04:00
James Mikrut
39d1a09d5a Merge pull request #1215 from damtzi/chore/credentials-include
chore: Add 'credentials: include' to all fetch calls
2022-10-06 17:55:55 -04:00
Damian Tziamtzis
74ae6fd1d5 chore: Add 'credentials: include' to all fetch calls 2022-10-06 23:14:55 +02:00
James
bbbcf8c869 chore(release): v1.1.6 2022-10-06 17:10:10 -04:00
James
b379666dec chore: improves upload field button aesthetics a bit 2022-10-06 17:04:29 -04:00
James Mikrut
6f40b5c9ab Merge pull request #1175 from bigmistqke/fix/responsive-fileupload-width
Fix: responsive fileupload width
2022-10-06 16:42:25 -04:00
James Mikrut
b329be7dc1 Merge pull request #1214 from payloadcms/fix/#1184
fix: #1184
2022-10-06 16:12:05 -04:00
James
c2ec54a7cb fix: #1184 2022-10-06 16:11:24 -04:00
James
3641dfd38a fix: #1189 2022-10-06 15:42:20 -04:00
James
5bf1354741 chore: fixes tests 2022-10-06 15:23:49 -04:00
James Mikrut
b894b809bf Merge pull request #1212 from payloadcms/fix/#940
Fix/#940
2022-10-06 14:24:51 -04:00
James
a4504ca15b Merge branch 'master' of github.com:payloadcms/payload into fix/#940 2022-10-06 14:23:37 -04:00
James
7926083732 fix: #940 2022-10-06 14:23:08 -04:00
James Mikrut
534cd5ae53 Merge pull request #1211 from jacobsfletch/master
feat: async admin access control
2022-10-06 13:31:01 -04:00
James Mikrut
fb329a99ba Merge pull request #1210 from payloadcms/fix/#1204
fix: #1204
2022-10-06 13:24:42 -04:00
James Mikrut
9e726d9b90 Merge pull request #1174 from payloadcms/fix/#1156-file-uploads-changing-extensions
fix: upload xls renaming ext
2022-10-06 13:23:23 -04:00
James Mikrut
8d065d619d Merge pull request #1124 from payloadcms/feat/sortable-by-default
feat: sort select and relationship fields by default
2022-10-06 13:20:32 -04:00
James Mikrut
cbff1776e7 Merge pull request #1168 from payloadcms/fix/read-only
Fix: read only field styles
2022-10-06 13:20:16 -04:00
nwhitmont
e517695000 docs: +note that collection slug must be in kebab-case, refactor example routes to match (#1176)
Co-authored-by: Nils Whitmont <nwhitmont@genvidtech.com>
2022-10-06 13:18:44 -04:00
James Mikrut
4370cfca0c Merge pull request #1195 from bigmistqke/fix/textarea-resize-vertical
fix: resize textarea only vertically
2022-10-06 13:17:51 -04:00
James Mikrut
4135b618ef Merge pull request #1198 from dsod/fix/resize-images-naming-and-mimetype
use the converted image mimeType for filename and admin interface
2022-10-06 13:17:22 -04:00
Jacob Fletcher
1cfce87549 feat: async admin access control 2022-10-06 13:16:15 -04:00
James Mikrut
c48283ac1d Merge pull request #1201 from christian-reichart/fix/sibling-data-in-after-read
fix: sibling data in after read hook
2022-10-06 13:15:52 -04:00
James Mikrut
328be3e4bc Merge pull request #1206 from payloadcms/style/color-scheme
fix: system dark scrollbars
2022-10-06 13:14:54 -04:00
James
b4becd1493 fix: #1204 2022-10-06 13:11:25 -04:00
James
95fac0bd62 chore: wip 2022-10-05 15:51:22 -04:00
Jarrod Flesch
a30d9dc1d7 fix(style): system dark scrollbars 2022-10-05 15:33:41 -04:00
Christian Reichart
7bfcefbfea fix sibling data in after read hook 2022-10-04 14:39:09 +02:00
dsod
131b2796e7 now uses the converted image mimeType for file extension and in the admin interface 2022-10-03 19:24:14 +02:00
Elliot DeNolf
debcb003bb docs: clarify api key auth usage 2022-10-03 08:41:23 -04:00
bigmistqke
6e1dfff1b8 fix: resize textarea only vertically 2022-10-02 17:37:27 +02:00
Jarrod Flesch
a9ebb71a09 Merge branch 'master' into fix/read-only 2022-09-30 10:47:34 -04:00
James
3e34e5216f chore(release): v1.1.5 2022-09-29 17:56:44 -04:00
James
2400c58219 chore: addresses more flaky tests 2022-09-29 17:52:51 -04:00
James
90d504526c chore: adds more delay to flaky test 2022-09-29 17:17:14 -04:00
Jarrod Flesch
c97d4f9545 Merge branch 'master' into fix/read-only 2022-09-29 12:54:02 -04:00
Jarrod Flesch
09a8144f3c fix: richText e2e test, specific selectors 2022-09-29 12:53:16 -04:00
Jarrod Flesch
00ef1700ae fix: ajusts how disabled states are being set on anchors and buttons 2022-09-29 11:49:25 -04:00
James
3e03b2b5df Merge branch 'master' of github.com:payloadcms/payload 2022-09-29 11:11:14 -04:00
James
974f79e57e chore: sends 204 on GraphQL OPTIONS requests 2022-09-29 11:11:02 -04:00
James
34f42083b5 chore: rolls back changes to useThrottledEffect 2022-09-29 10:26:06 -04:00
Elliot DeNolf
c0cae1e834 chore: reorder bug report template 2022-09-29 09:27:33 -04:00
James
3ce8ee4661 fix: bug in useThrottledEffect 2022-09-28 17:40:31 -04:00
bigmistqke
f9feff58d6 add flex-wrap: wrap to upload__wrap 2022-09-26 21:03:28 +02:00
bigmistqke
73848b6037 fix: remove min-width from fileupload 2022-09-26 20:51:45 +02:00
Dan Ribbens
7fd8124df6 fix: upload xls renaming ext 2022-09-26 08:19:58 -04:00
James Mikrut
1c77455403 Merge pull request #1169 from payloadcms/docs/test-cache
Improves contributing doc
2022-09-24 12:06:42 -07:00
James
051a0fad84 chore(release): v1.1.4 2022-09-23 20:15:52 -07:00
Jarrod Flesch
8e53ef47a0 chore: adds note about clearing the node module cache when switching test directories 2022-09-23 15:23:28 -04:00
Jarrod Flesch
918130486e fix: styles readOnly RichTextEditor, removes interactivity within when readOnly 2022-09-23 14:34:02 -04:00
Jarrod Flesch
b454811698 fix: threads readOnly to ReactSelect 2022-09-23 13:17:11 -04:00
James Mikrut
f87c68f310 Merge pull request #1147 from abaco/fix/refine-relationship-typegen
fix: refine type generation for relationships
2022-09-23 09:51:36 -07:00
James
25006d44e8 Merge branch 'master' of github.com:payloadcms/payload 2022-09-23 09:49:06 -07:00
James Mikrut
d8e51dd200 Merge pull request #1157 from payloadcms/docs/cell-component-props
docs: cell component props and example
2022-09-23 09:46:49 -07:00
James Mikrut
f54210a528 Merge pull request #1161 from jacobsfletch/master
feat: supports root endpoints
2022-09-23 09:46:30 -07:00
James Mikrut
96dab15cd1 Merge pull request #1163 from payloadcms/fix/nested-fields-permissions
fix: field level access for nested fields
2022-09-23 09:44:02 -07:00
James Mikrut
4126843619 Merge pull request #1165 from jacobsfletch/docs/webpack-cache
docs: adds tip for clearing webpack cache when aliasing server modules
2022-09-23 09:42:35 -07:00
James
e0238ad393 chore: updates sass 2022-09-23 09:42:10 -07:00
Jacob Fletcher
aa0302c05e docs: adds tip for clearing webpack cache when aliasing server modules 2022-09-23 12:24:51 -04:00
Jacob Fletcher
1040ad2cfe Merge branch 'payloadcms:master' into master 2022-09-23 12:23:57 -04:00
Dan Ribbens
c64f15d4d9 test: field level access for nested fields 2022-09-23 03:26:26 -04:00
Dan Ribbens
22ea98ca33 fix: field level access for nested fields 2022-09-22 21:37:02 -04:00
Jacob Fletcher
75bab716d1 chore: adds root endpoint test 2022-09-22 13:23:42 -04:00
Dan Ribbens
52a8e9624c docs: plugins typo 2022-09-22 12:19:18 -04:00
Jacob Fletcher
52cd3b4a7e feat: supports root endpoints 2022-09-22 10:49:49 -04:00
addison-codes
cc63167307 docs: fix highlighting 2022-09-22 00:51:25 -04:00
Dan Ribbens
314671b3b7 docs: cell component props and example 2022-09-21 14:20:01 -04:00
Dario Aprea
ef83bdb709 fix: refine type generation for relationships 2022-09-20 16:27:09 +02:00
Dan Ribbens
686085496a chore(release): v1.1.3 2022-09-16 17:05:57 -04:00
Dan Ribbens
76ae20aa16 fix: disable-local-strategy-and-graphql 2022-09-16 16:56:29 -04:00
Dan Ribbens
a1a55386f0 fix: duplicate with relationships 2022-09-16 14:57:29 -04:00
Elliot DeNolf
b3bb421c6c fix: adjust prevPage and nextPage graphql typing (#1140) 2022-09-16 09:40:21 -07:00
Dan Ribbens
eabb981243 fix: duplicate with relationships 2022-09-16 12:26:18 -04:00
Dan Ribbens
4be14a12d0 chore(release): v1.1.2 2022-09-14 15:42:13 -04:00
Dan Ribbens
ce174878f3 fix: disableLocalStorage with image resizing 2022-09-14 15:34:59 -04:00
Dan Ribbens
14966796ae fix: resize images without local storage 2022-09-14 13:07:18 -04:00
Dan Ribbens
7b756f3421 fix: resize images without local storage 2022-09-14 11:34:40 -04:00
Marco Sangalli
9fea2b4e08 chore: fixing uploadFile when using s3 bucket 2022-09-14 14:43:47 +02:00
James
f9b1b1fe7f docs: adds Link example in rich text 2022-09-13 21:25:08 -07:00
Elliot DeNolf
205404a88a chore: remove unused cypress package 2022-09-13 20:09:24 -07:00
Elliot DeNolf
813c46c86d feat: sort select and relationship fields by default 2022-09-13 20:06:12 -07:00
Luciano Greiner
8bfe253157 Avoid adding password and email to schemas when disableLocalStrategy is on 2022-09-13 17:55:22 -03:00
Dan Ribbens
ed8e581629 chore: changelog update 2022-09-13 13:44:22 -04:00
Dan Ribbens
7cf66b081a chore(release): v1.1.1 2022-09-13 13:20:24 -04:00
Dan Ribbens
64503f8267 fix: conditions on collapsible fields 2022-09-13 13:16:52 -04:00
Dan Ribbens
d82c12eab6 Merge pull request #1120 from payloadcms/fix/#1117 2022-09-13 11:58:28 -04:00
Dan Ribbens
9c4f2b68b0 fix: conditions on conditionals 2022-09-13 11:53:52 -04:00
James
bcfda707ff Merge branch 'master' of github.com:payloadcms/payload 2022-09-13 07:40:57 -07:00
James
66b77f7dca chore: re-adds key to tabs RenderFields 2022-09-13 07:40:48 -07:00
Dan Ribbens
dcc8dad53b fix: dashboard links to globals 2022-09-13 09:47:28 -04:00
Elliot DeNolf
bb1477e08b chore(release): v1.1.0 2022-09-12 20:54:50 -07:00
James
4e165cf52e chore: ensures new listSearchableFields works with complex queries 2022-09-12 19:40:01 -07:00
James Mikrut
a1083727ef feat: #1001 - builds a way to allow list view to search multiple fields
* make textfields searchable

* shorten namings in placeholder function

* chore: finishes listSearchableFields

Co-authored-by: Christian Reichart <christian.reichart@camperboys.com>
2022-09-12 16:38:02 -07:00
Elliot DeNolf
d5ccd45b53 Ability to get the "previous" state in the AfterChange Hook (#1115)
Co-authored-by: Alessio Gravili <alessio@bonfireleads.com>
Co-authored-by: Dan Ribbens <dan.ribbens@gmail.com>
2022-09-12 15:48:50 -07:00
Dan Ribbens
94d355ba5e Merge pull request #1102 from payloadcms/feat/group-collections 2022-09-12 16:52:24 -04:00
Dan Ribbens
892a774998 Merge branch 'master' into feat/group-collections 2022-09-12 16:39:07 -04:00
James
78f39af5cf chore: finishes collapsible nav groups 2022-09-12 12:45:06 -07:00
James
813fa1571c Merge branch 'feat/group-collections' of github.com:payloadcms/payload into feat/group-collections 2022-09-12 10:55:15 -07:00
Dan Ribbens
c40e232ac6 feat: hide nav labels with no un-grouped collections 2022-09-12 13:51:24 -04:00
Dan Ribbens
834f4ebd38 feat/add support for setting collapsable fields (array, block, collapsable… (#1057)
Co-authored-by: liorix <liorix@gmail.com>
Co-authored-by: Elliot DeNolf <denolfe@gmail.com>
2022-09-12 10:39:49 -07:00
Elliot DeNolf
ca434b8a92 feat: implement gravatar (#1107) 2022-09-12 10:29:22 -07:00
Dan Ribbens
7acf944a28 Feat/expose sharp options (#1029)
Co-authored-by: khakimvinh <kha.kim.vinh@gmail.com>
Co-authored-by: Elliot DeNolf <denolfe@gmail.com>
2022-09-12 10:29:07 -07:00
Elliot DeNolf
391c9d8682 fix: word boundaries, no regex lookbehind support for Safari (#1114) 2022-09-12 10:28:29 -07:00
James Mikrut
8e47961da1 Merge pull request #814 from slavanossar/feat/optional-tab-namespacing
feat: optional tab namespacing
2022-09-11 21:42:54 -07:00
James
016f3e47ab chore: ensures generate types works with named tabs 2022-09-11 21:19:20 -07:00
James
21eb19edd1 chore: further refinements 2022-09-11 20:57:30 -07:00
James
ad4f7a5fff chore: fixes and cleanup 2022-09-11 20:07:02 -07:00
James
cd209379b2 chore: merge master 2022-09-11 18:07:05 -07:00
Elliot DeNolf
14a16dc05f chore: remove unneeded package (#1110) 2022-09-11 16:39:16 -07:00
James
9a461b8536 fix: #1106 2022-09-10 17:58:39 -07:00
Dan Ribbens
59af8725b4 feat: globals groups 2022-09-10 19:59:11 -04:00
Dan Ribbens
dffeaf6a69 feat: collection groups 2022-09-10 19:59:11 -04:00
James
c7851f8189 chore(release): v1.0.36 2022-09-10 13:55:23 -07:00
James
ada1871993 fix: bug with account view 2022-09-10 13:50:34 -07:00
James
78ccd2ad9b chore: cleanup exports 2022-09-10 13:33:14 -07:00
James
4cb69039ed chore(release): v1.0.35 2022-09-09 20:12:41 -07:00
James
c8b37f40cb fix: incorrect auth strategy type 2022-09-09 20:03:49 -07:00
Elliot DeNolf
4963f10a18 Merge pull request #1083 from payloadcms/feat/improve-rich-text-link
Co-authored-by: Elliot DeNolf <denolfe@gmail.com>
Co-authored-by: Jacob Fletcher <jacobsfletch@gmail.com>
2022-09-09 15:34:17 -07:00
Elliot DeNolf
6f77fe7c27 Merge branch 'master' into feat/improve-rich-text-link 2022-09-09 15:23:46 -07:00
Elliot DeNolf
c584c2ed47 test: rich text link e2e 2022-09-09 15:18:02 -07:00
Elliot DeNolf
5a19f6915a fix: rich text link with no selection 2022-09-09 15:17:51 -07:00
Jacob Fletcher
48f0c06edc chore: bumps @faceless-ui/modal to v2.0.0-alpha.4 2022-09-09 00:13:27 -04:00
Jacob Fletcher
50cc3c5a21 chore: bumps @faceless-ui/modal to v2.0.0-alpha.3 2022-09-08 23:08:54 -04:00
James
6674a0df6b Merge branch 'feat/improve-rich-text-link' of github.com:payloadcms/payload into feat/improve-rich-text-link 2022-09-08 18:05:39 -07:00
James
cbbace21ca chore: updates faceless modal 2022-09-08 18:05:21 -07:00
Elliot DeNolf
87346a97ab test: rich text internal link 2022-09-08 15:40:49 -07:00
Elliot DeNolf
4357c5491d docs: add rich text link fields 2022-09-08 15:40:49 -07:00
Elliot DeNolf
03847703b0 chore: update rich text data seeding 2022-09-08 15:40:49 -07:00
James
3c46851426 chore: migrates to new faceless modal version 2022-09-08 15:22:09 -07:00
James Mikrut
8115855e5a Merge pull request #1089 from payloadcms/fix/height-width-by-default
fix: add height/width if imageSizes not specified
2022-09-07 20:03:39 -07:00
James Mikrut
ddb2a0a4f5 Merge pull request #1095 from jacobsfletch/master
chore: bumps @faceless-ui/modal to v1.3.2 #1070
2022-09-07 20:03:27 -07:00
James
a45577f182 chore: misc ux improvements to rich text link 2022-09-07 17:25:15 -07:00
James
eb963066f7 chore: fixes bug with links always populating 2022-09-07 16:52:32 -07:00
James
a99d9c98c3 feat: allows rich text links to link to other docs 2022-09-07 16:42:43 -07:00
James
cdfc0dec70 chore: ensures logic is accurate while updating links 2022-09-07 13:48:36 -07:00
Elliot DeNolf
eb1ff7efce chore: update label for bug reports 2022-09-07 12:40:00 -07:00
Jacob Fletcher
55843f6c55 chore: bumps @faceless-ui/modal to v1.3.2 #1070 2022-09-07 15:23:47 -04:00
James
7856f66b31 merge master 2022-09-07 11:53:02 -07:00
James Mikrut
47ac86b4b7 Merge pull request #1094 from payloadcms/fix/#1059
fix: #1059
2022-09-07 11:51:42 -07:00
James
13dc39dc6d fix: #1059 2022-09-07 11:50:55 -07:00
James
65653bd1d3 chore(release): v1.0.34 2022-09-07 09:39:24 -07:00
James
299ee82ccf chore: pins faceless ui 2022-09-07 09:35:24 -07:00
James
b38b6427b8 fix: pins faceless ui modal 2022-09-07 09:29:04 -07:00
James
784696f9a6 chore: comments todos 2022-09-07 09:27:39 -07:00
Elliot DeNolf
8bd2a0e6c9 fix: add height/width if imageSizes not specified 2022-09-07 08:58:02 -07:00
Dan Ribbens
0f671b1b35 chore(release): v1.0.33 2022-09-07 10:57:08 -04:00
Dan Ribbens
d56882cc20 fix: require min 1 option in field schema validation (#1082) 2022-09-07 10:53:21 -04:00
James
6d13ae6846 chore: removes old comment 2022-09-06 22:58:14 -07:00
James
91000d7fda feat: improves rich text link ux 2022-09-06 22:53:27 -07:00
Elliot DeNolf
888734dcdf fix: accented label char sanitization for GraphQL (#1080) 2022-09-06 16:03:43 -07:00
James Mikrut
e81da57f61 Merge pull request #1079 from payloadcms/fix/#1062
fix: #1062
2022-09-06 13:58:20 -07:00
James
05d1b141b2 fix: #1062 2022-09-06 13:56:53 -07:00
Elliot DeNolf
b7e5828adc feat: cyrillic like query support (#1078) 2022-09-06 16:47:57 -04:00
Dan Ribbens
2ee4c7ad72 fix: update removing an upload with null (#1076) 2022-09-06 16:19:59 -04:00
max frühschütz
77ab11bce8 docs: move description prop doc to right place (#1077) 2022-09-06 16:19:47 -04:00
Arick
cd8edbaa1f fix: reorder plugin wrapping (#1051) 2022-09-06 16:19:21 -04:00
Matt Arnold
5e21048457 docs: update custom endpoints link (#1075) 2022-09-06 15:41:27 -04:00
pixelistik
c0c093d16c docs: Fix missing word (#1063) 2022-09-05 21:03:48 -04:00
James
117153fad7 chore: bump version 2022-09-02 14:56:09 -07:00
James
5ae666b0e0 fix: ensures adding new media to upload works when existing doc does not exist 2022-09-02 14:39:41 -07:00
Dustin Miller
afa03789b8 docs: Correct “autheticate” misspelling in docs (#1048) 2022-09-02 15:27:06 -04:00
Dan Ribbens
44b0073834 fix: update removing a relationship with null (#1056) 2022-09-02 15:21:09 -04:00
Dan Ribbens
254636167d test: custom css (#1053) 2022-09-02 14:03:49 -04:00
Dan Ribbens
29e82ec845 fix: children of conditional fields required in graphql schema (#1055) 2022-09-02 14:02:58 -04:00
Wesley
c3a0bd8625 fix: implement the same word boundary search as the like query (#1038)
Co-authored-by: Dan Ribbens <dan.ribbens@gmail.com>
2022-09-01 13:03:21 -04:00
Ikko Ashimine
32a4e8e9b9 docs: update overview.mdx (#1046) 2022-09-01 12:58:09 -04:00
Elliot DeNolf
482cbe71c7 feat: update operator type with contains (#1045) 2022-09-01 12:17:53 -04:00
Elliot DeNolf
7dbcd9ca89 docs: fix relationship where query 2022-09-01 12:14:07 -04:00
Dan Ribbens
a1f2dcab8f docs: fix defaultValue example (#1044) 2022-09-01 10:26:41 -04:00
James
21417c6598 chore: better logic for changing password in ui 2022-08-30 17:58:17 -07:00
James
f1a272f407 1.0.31 2022-08-30 15:21:59 -07:00
James Mikrut
064f797023 Merge pull request #1033 from Elliot67/patch-1
docs: fix graphql `disable` property explanation
2022-08-30 15:21:10 -07:00
James Mikrut
26c2020b12 Merge pull request #1034 from payloadcms/feat/duplicate-all-locales
Feat/duplicate all locales
2022-08-30 15:13:07 -07:00
James
af1a483e64 chore: ensures new Edit view is mounted when going directly between one id and another 2022-08-30 15:12:23 -07:00
James
f517cb5e93 chore: cleanup 2022-08-30 15:07:38 -07:00
James
c8a8914ea7 Merge branch 'feat/duplicate-all-locales' of github.com:payloadcms/payload into feat/duplicate-all-locales 2022-08-30 14:52:51 -07:00
James Mikrut
4f834c6bf8 Merge pull request #1035 from payloadcms/fix/#981
fix: #981
2022-08-30 14:44:40 -07:00
James
d588843121 fix: #981 2022-08-30 14:43:44 -07:00
Dan Ribbens
51c7770b10 feat: duplicate copies all locales 2022-08-30 17:23:30 -04:00
Elliot Lintz
18ff5d29b0 docs: fix graphql disable property explanation 2022-08-30 22:41:00 +02:00
Dan Ribbens
e31098eaa5 test: duplicate copies all locales 2022-08-30 16:25:26 -04:00
James Mikrut
0873050b32 Merge pull request #1032 from payloadcms/fix/#948
fix: #948
2022-08-30 11:55:39 -07:00
James
8df9ee7b2d fix: #948 2022-08-30 11:54:41 -07:00
Dan Ribbens
a9ef557ca4 chore(release): v1.0.30 2022-08-29 22:55:12 -04:00
Dan Ribbens
689fa008fb fix: upload field validation not required (#1025) 2022-08-29 22:49:08 -04:00
James
1a4ce65e6c chore(release): v1.0.29 2022-08-29 15:58:30 -07:00
James Mikrut
f6dff04cfe Merge pull request #1022 from payloadcms/fix/#953
fix: #953
2022-08-29 15:42:44 -07:00
James
a73c391c2c fix: #953 2022-08-29 15:41:59 -07:00
James
e88c7ca4b2 chore: revises the logic while clearing wherebuilder queries 2022-08-29 15:13:14 -07:00
Dan Ribbens
0cd8446735 chore(release): v1.0.28 2022-08-29 17:08:17 -04:00
Dan Ribbens
6a3cfced9a fix: relationship cell loading (#1021)
* fix: relationship cell lazy loading items in viewport

* fix: collection list page param changing
2022-08-29 17:03:45 -04:00
Hung Vu
0586d7aa7d fix: unpublish item will not crash the UI anymore (#1016) 2022-08-29 15:39:46 -04:00
Dan Ribbens
3736755a12 feat: types custom components to allow any props (#1013) 2022-08-29 14:57:30 -04:00
Dan Ribbens
d727fc8e24 feat: validate relationship and upload ids (#1004)
* feat: validate relationship and upload ids

* chore: update fields-relationship test data

* fix: skip FE relationship and upload id validation
2022-08-29 14:57:06 -04:00
Dan Ribbens
50b0303ab3 fix: incorrect field paths when nesting unnamed fields (#1011)
* chore: reproduce issue #976

* fix: incorrect field paths when nesting non-named fields
2022-08-29 14:52:17 -04:00
Dan Ribbens
6bc6e7bb61 fix: require properties in blocks and arrays fields (#1020)
* fix: make blocks required in block fields

* fix: make fields required in array fields
2022-08-29 14:51:12 -04:00
Dan Ribbens
cf2eb3e482 chore: fix dev hooks (#1006) 2022-08-26 11:11:21 -04:00
James Mikrut
4aa5500593 Merge pull request #965 from payloadcms/test/code-field
test: add code fields to test config
2022-08-24 08:26:08 -07:00
James Mikrut
c7432fb6e6 Merge pull request #986 from charkour/patch-1
docs: fix typo about collections
2022-08-24 08:25:46 -07:00
James Mikrut
f895443e33 Merge pull request #990 from payloadcms/docs/examples-with-ts-types
docs: update examples with ts types
2022-08-24 08:25:33 -07:00
James Mikrut
32cebb56ff Merge pull request #999 from jacobsfletch/master
chore: exports PayloadHandler interface
2022-08-24 08:24:14 -07:00
James Mikrut
4a6b01d094 Merge pull request #996 from payloadcms/fix/#948-tab-nav-scroll
fix: remove lazy load of array and blocks components
2022-08-24 08:23:46 -07:00
James Mikrut
f8295f7577 Merge pull request #1000 from payloadcms/ci/actions-on-pr
ci: run actions on PRs
2022-08-24 08:20:33 -07:00
Elliot DeNolf
a2fa99d06f ci: run actions on PRs 2022-08-24 09:00:52 -04:00
Jacob Fletcher
c508ac6dee chore: exports PayloadHandler interface 2022-08-24 07:54:09 -04:00
Dan Ribbens
4900fa799f fix: remove lazy loading of array and blocks 2022-08-23 15:42:33 -04:00
James Mikrut
135b1bcdd7 Merge pull request #975 from dsod/fix/node15-keep-request-properties
Keep original request and add properties to it, instead of copy
2022-08-23 11:19:01 -07:00
Elliot DeNolf
25f5d68b74 feat: export more fields config types and validation type (#989) 2022-08-23 13:26:00 -04:00
Elliot DeNolf
1ed867ce0c docs: update examples with ts types 2022-08-23 11:43:24 -04:00
Charles Kornoelje
5ef5f09a5c fix typo about collections
Really interesting product. Reading through the docs now. Loving it so far. 

Thanks
2022-08-22 16:23:59 -04:00
dsod
bc97d3d6f2 Keep original request and add properties to it, instead of copy 2022-08-20 01:33:29 +02:00
Dan Ribbens
b21a56fdf7 chore(release): v1.0.27 2022-08-18 17:45:16 -04:00
Dan Ribbens
97f2a9b484 test: fix e2e relationship 2022-08-18 17:43:06 -04:00
James
4ef6801230 fix: react-sortable-hoc dependency instead of dev dependency 2022-08-18 14:37:45 -07:00
Dan Ribbens
8e21a91b2c chore(release): v1.0.26 2022-08-18 17:03:45 -04:00
Afzaal Ahmad
38a1a38c0c feat: enable reordering of hasMany relationship and select fields (#952)
* feature: enable reordering of hasMany relationship and select fields using config

* update: correct docs for select, and relationship field for sortable config

* update: move sortable to admin config, and rename it to isSortable, apply grab, and grabbing classes while drag, and drop
2022-08-18 16:59:33 -04:00
Dan Ribbens
2b7785d101 chore: update endpoint type (#966) 2022-08-18 16:22:35 -04:00
Dan Ribbens
2cf9d35fed chore: run ci tests on pull request (#955)
* chore: run ci tests on pull request
2022-08-18 15:17:02 -04:00
Elliot DeNolf
4e1f9c7280 test: add code fields to test config 2022-08-18 14:44:10 -04:00
Will Viles
f45d5a0421 feat: adds more prismjs syntax highlighting options for code blocks (#961) 2022-08-18 13:17:05 -04:00
Dan Ribbens
39586d3cdb fix: missing fields in rows on custom id collections (#954) 2022-08-18 12:26:05 -04:00
James
5e66e3ee78 chore(release): v1.0.25 2022-08-17 15:36:28 -07:00
James Mikrut
a284f6c066 Merge pull request #950 from payloadcms/feat/top-level-endpoints
Feat/top level endpoints
2022-08-17 15:32:35 -07:00
James Mikrut
fdc0ad8a3c Merge pull request #947 from rustyy/chore/code-improvements
Chore/code improvements
2022-08-17 15:32:09 -07:00
James
fa01b353ef chore: removes unused code 2022-08-17 15:31:39 -07:00
Dan Ribbens
dac3308441 docs: custom api endpoints 2022-08-17 14:08:01 -04:00
Dan Ribbens
11d8fc71e8 feat: custom api endpoints 2022-08-17 13:28:50 -04:00
Dan Ribbens
771bbaedbc chore: validation reuses endpoints schema 2022-08-17 13:06:58 -04:00
Dan Ribbens
040833ead8 test: move endpoints tests to new suite 2022-08-17 12:57:07 -04:00
Felix Hofmann
7c2acb4324 chore: use type-var instead of 'as'-keyword for jwtDecode 2022-08-16 23:22:00 +02:00
Felix Hofmann
88fe797007 chore: remove unreachable return statement 2022-08-16 23:21:38 +02:00
Elliot DeNolf
5825d7e64f test: skip flaky sorting test for now (#945) 2022-08-16 12:04:25 -04:00
James Mikrut
97ff49f2bf Merge pull request #926 from rustyy/feat/datepicker-month-only
feat: add new pickerAppearance option 'monthOnly'
2022-08-15 19:21:50 -07:00
James
ccada2e8c9 chore: migrates to PATCH for collection updates 2022-08-15 19:19:44 -07:00
James
1d8bcd6e16 Merge commit 'refs/pull/863/head' of github.com:payloadcms/payload 2022-08-15 18:55:07 -07:00
James
1b58094e6f Merge branch 'master' of github.com:payloadcms/payload 2022-08-15 18:54:43 -07:00
James
1437bfe0c9 merge: #799 2022-08-15 18:54:34 -07:00
James Mikrut
171da32b00 Merge pull request #944 from payloadcms/fix/#568
fix: #568
2022-08-15 18:42:15 -07:00
James
a3edbf4fef fix: #568 2022-08-15 18:41:34 -07:00
James Mikrut
8ab4ec8d54 Update CHANGELOG.md 2022-08-15 18:04:32 -07:00
James
f8365abf1b chore(release): v1.0.24 2022-08-15 18:03:57 -07:00
James
078e8dcc51 feat: ensures you can query on blocks via specifying locale or not specifying locale 2022-08-15 17:59:08 -07:00
James
b1a1575122 fix: #939 2022-08-15 17:58:59 -07:00
James
201a8e1053 Merge branch 'master' of github.com:payloadcms/payload 2022-08-15 17:58:53 -07:00
Dan Ribbens
ff4c1a1c01 chore: simplifies indexing
* fix: create indexes in nested fields

* chore: remove unused devDependency mongodb

* fix: point index

* fix: nested schema indexes

* chore: begins to simplify index creation

* chore: simplifies index creation

Co-authored-by: James <james@trbl.design>
2022-08-15 17:56:39 -07:00
James
7c449e0d30 Merge branch 'chore/simplify-indexes' of github.com:payloadcms/payload 2022-08-15 13:58:10 -07:00
Dan Ribbens
2ca526bd22 chore: simplifies index creation 2022-08-15 16:54:23 -04:00
James
48f929f3ab chore: begins to simplify index creation 2022-08-15 13:03:13 -07:00
James
f2bec90663 Merge branch 'fix/#922-nested-index-creation' of github.com:payloadcms/payload into fix/#922-nested-index-creation 2022-08-15 12:37:10 -07:00
Dan Ribbens
1c7445dc7f fix: format graphql localization input type (#932)
* fix: format locales for graphql

* fix: locale missing from graphql mutation args
2022-08-15 11:42:29 -04:00
James
78630cafa2 chore(release): v1.0.23 2022-08-14 18:54:13 -07:00
James Mikrut
0a40dd43cb test: adds dataloader test (#936)
* chore: adds dataloader test config

* test: passing dataloader test
2022-08-14 11:04:05 -07:00
James Mikrut
32fb72a5bb Merge pull request #935 from payloadcms/fix/#930
fix: #930
2022-08-14 10:42:10 -07:00
James
cbb1c84be7 fix: #930 2022-08-14 10:40:52 -07:00
Dan Ribbens
145e1db05d fix: dev:generate-types on all test configs (#919) 2022-08-13 13:04:24 -04:00
Elliot DeNolf
4115045c15 test: flaky admin test fix (#929) 2022-08-13 08:08:40 -04:00
Dan Ribbens
d0744f3702 fix: nested schema indexes 2022-08-13 07:44:36 -04:00
James
e7caaf57a9 chore(release): v1.0.22 2022-08-12 16:25:55 -07:00
James
fba0847f0f fix: ensures you can query on mixed schema type within blocks 2022-08-12 16:08:36 -07:00
Felix Hofmann
566c6ba3a9 feat: add new pickerAppearance option 'monthOnly' 2022-08-12 23:11:33 +02:00
Dan Ribbens
b860959fea fix: point index 2022-08-12 16:35:08 -04:00
James
9e4e4b231c chore: adds commenting to obscure form function 2022-08-12 13:11:49 -07:00
James
b8421ddc0c fix: #905 2022-08-12 12:18:02 -07:00
Dan Ribbens
9165b25fd6 chore: remove unused devDependency mongodb 2022-08-12 12:01:34 -04:00
Dan Ribbens
f615abc9b1 fix: create indexes in nested fields 2022-08-12 11:59:51 -04:00
James
9237dd67da chore(release): v1.0.21 2022-08-11 15:06:20 -07:00
James
e1347d5a39 Merge branch 'master' of github.com:payloadcms/payload 2022-08-11 15:02:28 -07:00
James
ca852e8cb2 fix: ensures you can query on nested block fields 2022-08-11 15:02:17 -07:00
KGZM
d0da3d7962 fix: saving multiple versions (#918)
* test: saving multiple versions with unique fields

* fix: saving multiple versions with unique fields

Version schemas were getting produced with uniqueness constraints which
caused updates to likely fail because each successive version would
potentially reuse unchanged unique key-values (particularly ident keys
like slug) from previous versions.

This was due to `mongoose.buildSchema` not respecting buildSchemaOptions.disableUnique.

This regression was introduced with the fix at commit c175476e.

* test: eslint fix

Co-authored-by: Dan Ribbens <dan.ribbens@gmail.com>
2022-08-11 15:53:51 -04:00
Dan Ribbens
2ae33b603a feat: WIP tab compatible with traverseFields 2022-08-11 12:05:35 -04:00
Dan Ribbens
6a6a69190f feat: tabs support localization at the tab level 2022-08-11 12:05:33 -04:00
Dan Ribbens
a7b882c03d chore: run ci test workflow on pull requests 2022-08-11 12:05:05 -04:00
Dan Ribbens
a83921a2fe feat: support localized tab fields 2022-08-11 12:05:02 -04:00
Slava Nossar
4b7b04d5fa return full Tab object for column display 2022-08-11 12:04:20 -04:00
Slava Nossar
b403f5228b update Tabs field docs 2022-08-11 12:04:20 -04:00
Slava Nossar
dd289ca24a update data and path when tab had name 2022-08-11 12:04:20 -04:00
Slava Nossar
daf5fc83d8 update test data 2022-08-11 12:04:20 -04:00
Slava Nossar
08271086c3 return tab.name for columns 2022-08-11 12:04:20 -04:00
Slava Nossar
30da37becd add namespaced field path 2022-08-11 12:04:20 -04:00
Slava Nossar
df1491de74 add extra test fields and data 2022-08-11 12:04:20 -04:00
Slava Nossar
420fd67905 update mongodb schema builder 2022-08-11 12:04:20 -04:00
Slava Nossar
17a55e4a3a add tab field with name and data to test suite 2022-08-11 12:04:20 -04:00
Slava Nossar
1b3a328388 update graphql schema builder 2022-08-11 12:04:20 -04:00
Slava Nossar
060ee40bab add name to schema and types 2022-08-11 12:04:20 -04:00
Dan Ribbens
103966d36e chore(release): v1.0.20 2022-08-11 11:55:09 -04:00
Dan Ribbens
1ce2dc8e6d chore: update dependencies (#917)
* chore: update dependencies

* chore: mongoose version update

* chore: yarn lock

Co-authored-by: Elliot DeNolf <denolfe@gmail.com>
2022-08-11 11:51:30 -04:00
Tim Hallyburton
2f4f075441 feat: field name validation (#903)
* feat: add simple validation for field names

* test: add invalid field name coverage
2022-08-11 08:02:55 -04:00
Arick
50972b98a1 fix: E11000 duplicate key error has no keyValue (#916) 2022-08-11 07:49:59 -04:00
Dan Ribbens
874c001d3b fix: number validation works with 0 min and max (#906) 2022-08-10 08:18:39 -04:00
Petre Tudor
63519a8f54 docs: missing word (#909)
add `wait` in `...the second hook will wait for the first to complete before it starts.`
2022-08-10 07:59:52 -04:00
finnelliott
63a0336e98 docs: add missing comma to radio example (#901)
Missing comma in example, leading to syntax error when copied by user.
2022-08-08 20:56:55 -04:00
Yves Léon Jansen
ae51836187 docs: tabs example typo (#904) 2022-08-08 20:55:51 -04:00
James
888e756c6e chore(release): v1.0.19 2022-08-07 19:04:22 -04:00
James
a8d2e09952 feat: exposes static upload handlers 2022-08-07 19:00:26 -04:00
James
23d2ef5027 chore(release): v1.0.18 2022-08-06 15:44:34 -04:00
James
3735a28b0c chore: allows url to be used as thumbnail when no adminThumbnail property present 2022-08-06 15:35:54 -04:00
James
112defe846 chore(release): v1.0.17 2022-08-06 13:27:38 -04:00
James
804f3ced95 chore: simplifies base field merging 2022-08-06 13:12:47 -04:00
James
209b02b069 fix: #898 2022-08-06 13:12:25 -04:00
James
a5918059a8 chore(release): v1.0.16 2022-08-05 11:29:08 -04:00
James
c32dfea356 fix: #896 2022-08-05 11:22:26 -04:00
James
3b2061e54a chore(release): v1.0.15 2022-08-04 16:42:09 -04:00
James
61673907ca chore: threads through forceNullable in buildObjectType 2022-08-04 16:37:04 -04:00
James
1e72301cdf chore(release): v1.0.14 2022-08-04 16:14:30 -04:00
James Mikrut
055d1b9ea1 Merge pull request #892 from payloadcms/fix/allow-incomplete-drafts-graphql
fix: allows querying incomplete drafts in graphql
2022-08-04 15:47:41 -04:00
James
8d968b7690 fix: allows querying incomplete drafts in graphql 2022-08-04 15:45:33 -04:00
James Mikrut
2989ec5100 Merge pull request #887 from shumakmanohar/patch-1
Update overview.mdx
2022-08-04 14:05:00 -04:00
James Mikrut
c4d7df8bba Merge pull request #888 from payloadcms/feat/allow-rich-text-querying
feat: allows querying on rich text content
2022-08-04 14:04:40 -04:00
James Mikrut
d6cd5b1f0d Merge pull request #889 from payloadcms/fix/#884
Fix/#884
2022-08-04 14:04:28 -04:00
James
e9b3f3f060 fix: #884 2022-08-04 14:03:23 -04:00
James
ed80c30c74 chore: adds tests to reproduce #884 2022-08-04 11:39:15 -04:00
James
3343adb952 feat: allows querying on rich text content 2022-08-04 10:59:56 -04:00
Shumak Manohar
a8aaa6deea Update overview.mdx 2022-08-04 18:41:09 +05:30
Dan Ribbens
3c8fa72dc8 chore(release): v1.0.13 2022-08-03 15:33:52 -04:00
James
91c4f4f980 chore: remove duplicative video in docs 2022-08-03 15:28:29 -04:00
James
b2406b3696 docs: adds intro video to docs 2022-08-03 15:27:27 -04:00
James
b8504ffb25 fix: #878 2022-08-03 15:21:44 -04:00
James
0294c02aed feat: improves adjacent group styling 2022-08-03 15:21:32 -04:00
James Mikrut
31680dcdea Merge pull request #882 from payloadcms/fix/#880
fix: #880
2022-08-03 13:50:01 -04:00
James
d91b69c465 test: improves nested block test coverage 2022-08-03 13:49:49 -04:00
James
9c0c606b20 fix: #880 2022-08-03 13:39:22 -04:00
Dan Ribbens
6791352ce8 docs: payload plugins and getting started video (#876)
* docs: add link to payload-plugins github topic

* docs: add getting started developer intro video link
2022-08-02 17:08:02 -04:00
Dan Ribbens
d17d227fad chore(release): v1.0.12 2022-08-02 12:01:52 -04:00
Dan Ribbens
c175476e74 fix: unique index creation (#867)
* fix: unique indexes created for mongo 5 and later

* test: add index test coverage for unique, nested and localized fields
2022-08-02 11:56:18 -04:00
Falko Woudstra
f0ff1c7c99 Update documentation for PATCH instead of PUT in Rest API 2022-08-02 00:02:50 +02:00
Falko Woudstra
d0d498e9c7 Add warning PATCH update route and add deprecation warning on PUT 2022-08-01 23:59:26 +02:00
Dan Ribbens
da2a262208 test: e2e windows compatibility (#861)
* test: e2e compatible with windows
* chore: mongoose type fix
2022-08-01 15:21:25 -04:00
James
2f86a39e38 test: adds more tabs tests 2022-08-01 13:11:08 -04:00
James
408b66590a fix/#853 2022-08-01 12:23:53 -04:00
James
663cae4788 fix: ensures tabs can overflow on mobile when there are many 2022-08-01 08:54:23 -04:00
James
3a66860ab2 Merge branch 'master' of github.com:payloadcms/payload 2022-08-01 08:40:54 -04:00
James
9abb74abf7 fix/#854 2022-08-01 08:40:48 -04:00
Elliot DeNolf
bf47f69258 chore(release): v1.0.11 2022-07-28 14:09:41 -04:00
Elliot DeNolf
0b57e45ee4 test: consolidate e2e npm script 2022-07-28 13:51:34 -04:00
Elliot DeNolf
bf942bf015 ci: run all e2e tests (#847) 2022-07-28 13:33:06 -04:00
Elliot DeNolf
b2ae5da62a test: fix fields-relationship e2e (#846) 2022-07-28 11:50:23 -04:00
James
858b1afa54 fix: ensures when initial values changes, field value is updated 2022-07-28 11:46:52 -04:00
lordie
bc83153b60 assert every list element non null 2022-07-27 18:46:39 -03:00
Elliot DeNolf
1997153549 test: implement script to execute all e2e tests (#840) 2022-07-27 17:22:49 -04:00
Elliot DeNolf
b479013f00 test: fix admin e2e config (#839) 2022-07-27 17:10:51 -04:00
Dan Ribbens
211b960440 chore(release): v1.0.10 2022-07-27 15:53:41 -04:00
James
7157f70790 Merge branch 'master' of github.com:payloadcms/payload 2022-07-27 15:43:11 -04:00
James
84611aff2c fix: #836 2022-07-27 15:43:02 -04:00
James Mikrut
bd4dd45f8e Merge pull request #819 from payloadcms/feat/dataloader
feat: greatly enhances performance by using dataloader pattern to batch populations
2022-07-27 11:36:28 -04:00
James Mikrut
f190ad3576 Merge pull request #834 from payloadcms/fix/gql-refresh-resolver
fix: accesses payload config correctly in gql refresh resolver
2022-07-27 11:36:16 -04:00
Dan Ribbens
9813216ea9 test: add circular relationship to tests (#835) 2022-07-27 11:16:05 -04:00
Jarrod Flesch
d5e88cc1a9 fix: accesses payload config correctly in gql refresh resolver 2022-07-27 09:17:07 -04:00
James
5dc7caf356 fix: id now properly required in graphql findByID operation 2022-07-26 16:59:29 -04:00
James
a8a21e119b chore: better naming conventions within local api 2022-07-26 12:58:02 -04:00
Elliot DeNolf
2c9d45c59c chore: remove unused files 2022-07-26 11:02:53 -04:00
Elliot DeNolf
d176633804 test: increase custom id randomization window (#829) 2022-07-26 10:35:46 -04:00
wristshot9987
f65594be43 doc: Adding a contributing section to README.md (#804) 2022-07-26 09:58:11 -04:00
Elliot DeNolf
f0466f885f chore: update contributing guide (#825) 2022-07-25 21:07:28 -04:00
James Mikrut
309a8cde95 Merge pull request #823 from payloadcms/fix/#809
fix: ensures collapsible preferences are retained through doc save
2022-07-25 15:03:41 -07:00
James
61f0e8ea9f fix: ensures collapsible preferences are retained through doc save 2022-07-25 18:02:48 -04:00
James Mikrut
af00eb9cc4 Merge pull request #820 from payloadcms/fix/#801
fix: email not always loading while viewing auth collections
2022-07-25 14:07:50 -07:00
James Mikrut
61e8a4d6ee Merge pull request #821 from payloadcms/fix/#806
fix: #806, allow partial word matches using 'like' operator
2022-07-25 14:07:39 -07:00
James Mikrut
55a273d982 Merge pull request #811 from vincentvandijck/fix/set-overflow-modal-to-auto
fix: set overflow payload modal container to auto
2022-07-25 14:03:32 -07:00
James Mikrut
0993223e5c Merge pull request #810 from vincentvandijck/fix/trim-login-email
Fix/trim login email
2022-07-25 14:02:23 -07:00
James
08a38b03b9 chore: applies fix to other edit views 2022-07-25 16:58:47 -04:00
James
b79ae00603 test: adds like query partial word match test 2022-07-25 16:56:45 -04:00
James
c96985be0c fix: #806, allow partial word matches using 'like' operator 2022-07-25 16:48:45 -04:00
James
36e9acc637 fix: email not always loading while viewing auth collections 2022-07-25 16:29:20 -04:00
James
e541713282 chore: linting 2022-07-25 16:03:50 -04:00
James
5d57bfa438 feat: significantly improves complex GraphQL query performance 2022-07-25 15:54:52 -04:00
James
c5bcd1e341 feat: greatly enhances performance by using dataloader pattern to batch populations 2022-07-25 15:12:28 -04:00
Vincent Van Dijck
cfb5540e64 fix: set overflow payload modal container to auto 2022-07-25 03:14:19 +02:00
Vincent Van Dijck
38d1794ee2 Merge branch 'fix/trim-login-email' of https://github.com/vincentvandijck/payload into fix/trim-login-email 2022-07-24 23:12:09 +02:00
Vincent Van Dijck
8feed39fb9 fix: trim trailing whitespaces of email in login 2022-07-24 23:08:35 +02:00
Vincent Van Dijck
3140f9c3b8 trim trailing whitespaces of email in login 2022-07-24 23:05:50 +02:00
lordie
e13c6fa955 graphql schema: check blockfield 'required' property for null-ability 2022-07-22 18:05:43 -03:00
James Mikrut
b201168bd0 Merge pull request #796 from wenqingl/master
doc: Update README.md
2022-07-21 16:48:56 -07:00
James Mikrut
e5e675c14a Update CHANGELOG.md 2022-07-21 16:48:20 -07:00
James
9589f0798f chore(release): v1.0.9 2022-07-21 16:47:15 -07:00
James
e1c35b5220 chore: further documents strategies 2022-07-21 16:42:40 -07:00
Dan Ribbens
f22f56e73c feat: use provided auth strategy name or strategy.name (#797)
* feat: use provided auth strategy name or strategy.name

* fix: require strategy name when providing custom auth
2022-07-21 19:36:31 -04:00
wenqingl
61280e36c4 Update README.md 2022-07-21 16:17:10 -07:00
Luciano Greiner
3b4d5afd41 fix: avoid assuming Email will be present on JWT token. Using ID instead as email might not be in if using disableLocalStrategy (#789) 2022-07-21 15:20:23 -07:00
Luciano Greiner
3a3026cd63 feat: pass payload and names to custom auth strategies (#781) 2022-07-21 18:18:26 -04:00
Marco Sangalli
2a1f387bcc fix: enable index creation from schema (#791) 2022-07-21 18:16:28 -04:00
Jarrod Flesch
6f8b8d0fb8 fix(doc): corrects doc to match underlying Access type (#792) 2022-07-21 18:00:17 -04:00
Elliot DeNolf
8a81d0b274 fix: graphql gen logging output (#795) 2022-07-21 13:48:54 -07:00
Jarrod Flesch
e2c366f536 fix: sharpens radio input edges by replacing box-shadow trick with border property (#768) 2022-07-21 09:55:37 -07:00
Elliot DeNolf
4415f9db48 chore: add error message if test config doesn't exist 2022-07-21 08:17:54 -07:00
Elliot DeNolf
f6ff308dc4 chore(release): v1.0.8 2022-07-20 16:52:27 -07:00
Elliot DeNolf
546011d8a9 chore: add MIT license badge 2022-07-20 15:05:47 -07:00
Elliot DeNolf
60c0f0fb08 chore: organize relationship custom id tests 2022-07-20 15:04:57 -07:00
James Mikrut
4b6f451022 Merge pull request #785 from payloadcms/fix/#756
Fix/#756
2022-07-20 14:51:31 -07:00
Elliot DeNolf
3fb2bcfac7 feat: export PayloadRequest 2022-07-20 12:43:03 -07:00
Elliot DeNolf
66c820c863 feat: export PayloadRequest 2022-07-20 12:37:19 -07:00
Dan Ribbens
09f57e9a4c test: group relationships
* test: relationship fields inside groups and subgroup

* test: group nested relationships and arrays

* test: improves coverage for hooks

Co-authored-by: James <james@trbl.design>
2022-07-20 11:52:21 -07:00
James Mikrut
6f748f1adb feat: improves generated types by removing unnecessary optional properties (#784) 2022-07-20 11:51:19 -07:00
Dan Ribbens
893772ebd8 fix: await field hooks recursively 2022-07-19 19:57:47 -04:00
James
b987cb8dc4 fix: potential solution for #756 2022-07-19 15:52:05 -07:00
Dan Ribbens
aa322b2cf2 chore(release): v1.0.7 2022-07-19 14:45:11 -04:00
Dan Ribbens
4c68f64829 docs: update demo links and add examples to test dir (#773) 2022-07-19 14:42:14 -04:00
Elliot DeNolf
cc360191b5 docs: remove references to demo config 2022-07-19 11:09:13 -07:00
Elliot DeNolf
1d06117619 chore: adjust banner color 2022-07-19 07:20:59 -07:00
James
446a4e1d8a chore(release): v1.0.6 2022-07-19 01:46:02 -07:00
James
428edb05c4 feat: improves initAsync pattern 2022-07-19 01:42:56 -07:00
James
21708bcc1c chore(release): v1.0.5 2022-07-19 01:34:03 -07:00
James
23d605c5aa Merge branch 'master' of github.com:payloadcms/payload 2022-07-19 01:32:36 -07:00
James
b4ffa22885 feat: adds initAsync 2022-07-19 01:32:25 -07:00
Elliot DeNolf
d2bc4b72a0 chore: update onInit type 2022-07-19 01:05:49 -07:00
Elliot DeNolf
27c352c2ff chore: update changelog 2022-07-19 00:07:13 -07:00
James
19a354863f chore(release): v1.0.4 2022-07-18 23:54:41 -07:00
James
33f4a1322d chore: 1.0.3 2022-07-18 23:53:22 -07:00
Elliot DeNolf
563f98e2fb feat: merge 1.0 #762 2022-07-18 23:22:02 -07:00
Dan Ribbens
1e4b94c508 Merge branch 'feat/1.0' of github.com:payloadcms/payload into feat/1.0 2022-07-19 02:03:24 -04:00
Dan Ribbens
cd8d1c7ace docs: dark mode 2022-07-19 02:02:30 -04:00
Dan Ribbens
2ea545f0cf test: list cell data 2022-07-19 02:02:06 -04:00
Elliot DeNolf
e8a1cdafba test: misc e2e fixes 2022-07-18 22:59:48 -07:00
Elliot DeNolf
1f8b5d8e1a test: make auth e2e a todo 2022-07-18 22:53:30 -07:00
Dan Ribbens
793dfe96b9 test: promise hooks 2022-07-19 01:32:31 -04:00
Elliot DeNolf
6533af9c0e chore: add scss breaking change to changelog 2022-07-18 22:23:26 -07:00
Dan Ribbens
87ead2f89b Merge branch 'feat/1.0' of github.com:payloadcms/payload into feat/1.0 2022-07-18 23:50:57 -04:00
Dan Ribbens
28e3928094 test: array fields 2022-07-18 23:50:28 -04:00
Elliot DeNolf
dc41372acb test: test sibling data in access control 2022-07-18 20:33:36 -07:00
Elliot DeNolf
6a9ea638d5 test: add access-control int tests 2022-07-18 18:50:41 -07:00
Elliot DeNolf
2a7651eb9c test: fix odd behavior 2022-07-18 15:27:20 -07:00
James
9021d5352d Merge branch 'feat/1.0' of github.com:payloadcms/payload into feat/1.0 2022-07-18 13:07:25 -07:00
James
dc5c9ee3a0 chore: better fix to rich text upload 2022-07-18 13:07:20 -07:00
James
079623f40a fix: responsive improvements to rich text upload 2022-07-18 12:50:20 -07:00
Dan Ribbens
b59ba230de Merge branch 'feat/1.0' of github.com:payloadcms/payload into feat/1.0 2022-07-18 14:26:09 -04:00
Dan Ribbens
6826e44072 test: field default values 2022-07-18 14:25:18 -04:00
Elliot DeNolf
878fd4ab92 test: custom id crud 2022-07-18 10:29:33 -07:00
Elliot DeNolf
abfb1868ab test: custom id number relation test 2022-07-18 10:08:01 -07:00
Elliot DeNolf
7319a8e90d test: rest client update now can return errors 2022-07-18 10:07:25 -07:00
Elliot DeNolf
d2be893a5a test: port relationships spec 2022-07-18 09:55:59 -07:00
Dan Ribbens
cc8b636248 test: relationship populates with locale 2022-07-18 12:19:35 -04:00
Elliot DeNolf
a103665bd9 chore: typo 2022-07-17 16:38:24 -07:00
Elliot DeNolf
0d1603b467 test: fix more stuff 2022-07-17 16:22:20 -07:00
Elliot DeNolf
d6a7b8c319 test: remove demo and rework node scripts 2022-07-17 16:18:48 -07:00
Elliot DeNolf
f5ad7a163a test: remove all old tests 2022-07-17 16:08:07 -07:00
James
d433351dbd chore: typo in changelog 2022-07-17 15:12:55 -07:00
James
3601ef90bc Merge branch 'feat/1.0' of github.com:payloadcms/payload into feat/1.0 2022-07-17 15:12:36 -07:00
James
76b6c736e1 fix: success banner color rendering incorrectly 2022-07-17 15:12:27 -07:00
Dan Ribbens
a194a64845 Merge branch 'feat/1.0' of github.com:payloadcms/payload into feat/1.0 2022-07-17 18:02:49 -04:00
Dan Ribbens
b00d8584f3 feat: test admin globals 2022-07-17 18:02:41 -04:00
James
39d075b999 fix: ensures passing partial data to update works when fields are localized 2022-07-17 15:00:38 -07:00
James
e57a5741e5 chore: reduces lorem ipsum amount in rich text 2022-07-17 13:34:06 -07:00
James
a6a9ab15b7 feat: merges select isClearable 2022-07-17 13:29:18 -07:00
James
4280a59c77 Merge branch 'master' of github.com:payloadcms/payload into feat/1.0 2022-07-17 13:23:04 -07:00
James
3259e34e27 chore: merges master 2022-07-17 13:23:00 -07:00
Arick
3132d35e27 feat: allow clear select value (#735) 2022-07-17 13:22:49 -07:00
James
7376246592 fix: ensures success pills are properly colored 2022-07-17 13:22:01 -07:00
James
69ce6d78da Merge branch 'feat/1.0' of github.com:payloadcms/payload into feat/1.0 2022-07-17 13:11:47 -07:00
James
b43e8c5db0 tests: ports versions tests to new infra 2022-07-17 13:11:38 -07:00
Dan Ribbens
e348bdcc21 Merge branch 'feat/1.0' of github.com:payloadcms/payload into feat/1.0 2022-07-17 15:58:47 -04:00
Dan Ribbens
039c3ec110 test: int test globals and endpoints 2022-07-17 15:58:32 -04:00
Elliot DeNolf
f98ef62ad3 test: port auth tests to int 2022-07-17 10:46:07 -07:00
Elliot DeNolf
17ebcc6925 chore: remove .prettierignore, unused 2022-07-17 10:45:46 -07:00
James
6347a2febf fix: ensures column selector renders active columns properly 2022-07-17 10:06:58 -07:00
James
2ef8a1e35a fix: ensures point field doesn't interrupt version creation 2022-07-17 10:03:22 -07:00
James
df11478905 Merge branch 'feat/1.0' of github.com:payloadcms/payload into feat/1.0 2022-07-17 09:51:55 -07:00
James
e7d2bdb45a fix: styles empty version diff row for dark mode 2022-07-17 09:51:42 -07:00
Dan Ribbens
1564fcaeb3 fix test collections rest endpoints 2022-07-17 12:44:39 -04:00
Dan Ribbens
cf38e8d520 feat: test collections rest endpoints 2022-07-17 12:41:47 -04:00
Dan Ribbens
bb9f28fb08 feat: remove files test helper 2022-07-17 12:39:45 -04:00
James
d8a28acfa8 feat: expands rich text field config for better coverage 2022-07-17 09:26:43 -07:00
Elliot DeNolf
b0eccdd12e chore: revert prettier
This reverts commit bc9de859c4.
2022-07-17 09:06:37 -07:00
James
1427fb4078 Merge branch 'feat/1.0' of github.com:payloadcms/payload into feat/1.0 2022-07-17 08:32:23 -07:00
James
1812be2e16 feat: adds uploads collection for testing to /fields tests 2022-07-17 08:32:15 -07:00
Elliot DeNolf
db87179576 chore: fix .prettierignore 2022-07-17 08:32:06 -07:00
Elliot DeNolf
0d8d41ce7e chore: format demo dir 2022-07-17 08:29:53 -07:00
Elliot DeNolf
a2f95f6cea test: add .gitkeep to uploads/media 2022-07-17 08:23:26 -07:00
Elliot DeNolf
fa9bd6191c chore: run prettier on entire test dir 2022-07-17 08:20:01 -07:00
Elliot DeNolf
bc9de859c4 chore: add prettier config, test dir only 2022-07-17 08:19:07 -07:00
James
73d04262ad chore: version bump 2022-07-16 18:12:18 -07:00
James
6e7d547da5 Merge branch 'feat/1.0' of github.com:payloadcms/payload into feat/1.0 2022-07-16 18:08:46 -07:00
James
6060e4cb27 fix: bug with version diff screen when arrays have no labels 2022-07-16 18:08:37 -07:00
Elliot DeNolf
b5ce54c7ae test: localization relationship tests 2022-07-16 18:01:13 -07:00
Dan Ribbens
492a1308cc Merge branch 'feat/1.0' of github.com:payloadcms/payload into feat/1.0 2022-07-16 21:00:35 -04:00
Dan Ribbens
147a4f8624 hooks tests 2022-07-16 21:00:18 -04:00
James
eac982398e feat: avoids forcing fonts to be inline within webpack builds 2022-07-16 17:59:24 -07:00
Dan Ribbens
9afd51b7dd Merge branch 'feat/1.0' into feat/test-hooks 2022-07-16 20:42:13 -04:00
Dan Ribbens
dd810a3593 fix: tabs top margin 2022-07-16 19:09:36 -04:00
James
75a4c52071 chore: reduces padding in eyebrow on mobile 2022-07-16 16:03:22 -07:00
James
2707af1d45 fix: ensures blocks can be nested within tabs / rows / collapsibles 2022-07-16 15:51:05 -07:00
James
b7d49db536 Merge branch 'feat/1.0' of github.com:payloadcms/payload into feat/1.0 2022-07-16 15:45:20 -07:00
James
3a98c6ad53 feat: ensures groups within blocks render properly 2022-07-16 15:45:15 -07:00
Elliot DeNolf
79f3de8042 test: add localization int tests 2022-07-16 15:01:31 -07:00
Elliot DeNolf
81024e4753 test: extra desc block 2022-07-16 15:00:44 -07:00
James
e2c333ac02 Merge branch 'feat/1.0' of github.com:payloadcms/payload into feat/1.0 2022-07-16 13:57:44 -07:00
James
1bdacb9bda chore: removes unused file 2022-07-16 13:57:32 -07:00
James
2fa680cdf8 feat: refactors z index methodology 2022-07-16 13:56:49 -07:00
James
3a17a8a001 feat: styles nested groups and adds gutter back to richText 2022-07-16 12:45:15 -07:00
Dan Ribbens
afbb014cbd Merge branch 'feat/1.0' of github.com:payloadcms/payload into feat/1.0 2022-07-16 14:40:46 -04:00
Dan Ribbens
c75c67ec86 feat: point field int test 2022-07-16 14:40:02 -04:00
James
e8b72f186f chore: restores deprecated features for ease of uploading 2022-07-16 11:27:28 -07:00
James
a777032894 chore: only imports get-port if dev 2022-07-16 11:11:14 -07:00
James
624e25c077 chore: adds pretest 2022-07-16 11:06:06 -07:00
James
34d0b89376 chore: increases jest timeout 2022-07-16 11:01:09 -07:00
James
fcd3b0d2cb chore: updates version 2022-07-16 10:59:25 -07:00
James
5512022a10 chore(release): v0.20.1 2022-07-16 10:58:46 -07:00
James
28e31fee72 chore: patch 0.20.0 2022-07-16 10:56:53 -07:00
James
779a60a42c chore: removes unused dependencies 2022-07-16 10:41:54 -07:00
Dan Ribbens
ba29898d97 Merge branch 'feat/1.0' of github.com:payloadcms/payload into feat/1.0 2022-07-16 13:40:12 -04:00
Dan Ribbens
a636c65e34 chore: do not track images in media 2022-07-16 13:38:33 -04:00
Dan Ribbens
ff3e137c78 chore: media test dir 2022-07-16 13:37:56 -04:00
James
8c4e0fa7b2 feat: updates styling of group field 2022-07-15 22:24:52 -07:00
James
3ae1c26a07 fix: ensures duplicated rows have properly created ids 2022-07-15 22:04:31 -07:00
James
7a6f2392fa feat: restores built-in fields into table column builder 2022-07-15 21:08:49 -07:00
James
07949525ef Merge branch 'feat/1.0' of github.com:payloadcms/payload into feat/1.0 2022-07-15 21:06:22 -07:00
James
3b9fdf3ffd feat: ensures nested fields not affecting data can be traversed properly 2022-07-15 21:06:12 -07:00
Dan Ribbens
2694c0d5bd * feat: point field e2e test (#760) 2022-07-15 23:36:07 -04:00
Elliot DeNolf
4f8b5b9f85 test(int): collections-graphl 2022-07-15 20:32:40 -07:00
Dan Ribbens
e75cca4512 feat: upload integration tests (#759) 2022-07-15 22:48:39 -04:00
James
68e7c41fdc feat: finishes tabs field 2022-07-15 18:40:31 -07:00
James
735e385537 feat: only renders arrays and blocks once they are initialized 2022-07-15 17:26:05 -07:00
James
c995f797fe feat: initializes useField internalValue with incoming field value 2022-07-15 17:20:32 -07:00
James
54162b52cc feat: ensures tabs and collapsibles render in version diff 2022-07-15 17:18:33 -07:00
James
66fc06895a Merge branch 'feat/1.0' of github.com:payloadcms/payload into feat/tabs 2022-07-15 16:24:59 -07:00
James
85b7a490eb feat: scaffolds tabs field 2022-07-15 16:24:54 -07:00
Elliot DeNolf
4b0a257246 test: fix all test scripts 2022-07-15 14:36:09 -07:00
Elliot DeNolf
29f1af7eb4 chore: remove console logs 2022-07-15 12:53:07 -07:00
Elliot DeNolf
ba79b4446c test: refactor all test directories into one 2022-07-15 12:51:43 -07:00
Dan Ribbens
40b6afff2d feat: remove duplication of config in tests 2022-07-15 14:11:16 -04:00
Dan Ribbens
a664b627f6 fix: upload e2e file path 2022-07-15 13:39:12 -04:00
Elliot DeNolf
3a4657e368 test: fix bad file ref and update locators 2022-07-15 10:02:09 -07:00
James
4cb565f1cc Merge branch 'feat/1.0' of github.com:payloadcms/payload into feat/1.0 2022-07-14 16:35:58 -07:00
James
31ca363982 feat: revises e2e field testing 2022-07-14 16:35:35 -07:00
Elliot DeNolf
4a3588e965 test: collections and new test ids and classes 2022-07-14 16:16:16 -07:00
Dan Ribbens
11600930b7 feat: e2e test upload (#755) 2022-07-14 18:43:19 -04:00
James
4bb0d3994f fix: bug with base colors 2022-07-14 15:27:17 -07:00
James
5fc4f3adad feat: more maintainable colors 2022-07-14 15:20:34 -07:00
James
41a0ba5780 feat: finishes block field 2022-07-14 14:46:42 -07:00
Elliot DeNolf
f7a81d70ac test(access-control): restricted and read-only (#754) 2022-07-14 14:33:54 -07:00
Elliot DeNolf
baf4664073 feat: add card ids 2022-07-14 14:09:59 -07:00
Dan Ribbens
48700a93e3 * fix: css selectors 2022-07-14 17:00:34 -04:00
James
49d09a349f feat: updates block field to use new collapsible 2022-07-14 14:00:14 -07:00
Dan Ribbens
31bc4c6532 * feat: optimize collection list relationship queries (#749)
* feat: optimize collection list relationship queries
2022-07-14 16:51:41 -04:00
James
aa89251a3b feat: retrofits array to new collapsible component 2022-07-13 20:09:50 -07:00
Elliot DeNolf
057846e250 test: collections-rest and dev type generation (#750) 2022-07-13 17:46:59 -07:00
Dan Ribbens
5a5e3b589c chore: set playwright timeout to 10m 2022-07-13 20:20:25 -04:00
James
270dd22f08 docs: updates fields overview to include collapsible 2022-07-13 15:41:41 -07:00
James
beec04a1bc docs: collapsible 2022-07-13 15:40:59 -07:00
James
60bfb1c3b8 feat: finishes collapsible field 2022-07-13 15:29:49 -07:00
James
98676bea69 feat: adds collapsible field type 2022-07-13 14:45:10 -07:00
James
8589fdefda feat: reorganizes mongo connection 2022-07-13 13:17:00 -07:00
James
8ba25e8602 chore: renames admin url util conventions 2022-07-13 12:47:53 -07:00
James
de43e21ebc chore: stubs out fields e2e 2022-07-13 12:40:29 -07:00
Elliot DeNolf
90ba15f9bd feat: testing refactor (e2e/int) (#748)
Co-authored-by: James <james@trbl.design>
Co-authored-by: Dan Ribbens <dan.ribbens@gmail.com>
2022-07-13 11:00:10 -07:00
James Mikrut
b9f9f15d77 feat/adds dark mode and evolves admin ui
* feat: builds color palette for light and dark mode, removes all conflicting rgba sass

* chore: replaces colors with css vars

* chore: adapts blur-bg to be more performant and stable

* chore: getting ready for dark mode

* chore: removes unused file

* chore: reverts input bg

* chore: reverses selection in dark mode

* feat: builds theme toggler

* feat: adds auto mode for theme

* feat: establishes light / dark css pattern, updates account and list

* chore: migrates more views to gutter component

* chore: adapts global, adjusts popups

* chore: finishes retrofitting views

* feat: moves to medium instead of semi-bold for headlines

* feat: introduces new font for rte

* feat: updates rich text styles

* feat: styles react select in dark mode

* chore: styles datepicker, misc refinements

* chore: updates style of UploadCard

* chore: fixes code styles

* chore: styles PerPage

* chore: improves styling of column / where selector

* feat: improves field errors in dark mode

* chore: styles built-in rich text elements

* chore: improves styling of rte elements

* chore: tweaks
2022-07-13 10:36:25 -07:00
James
cac5266c79 chore: changelog 2022-07-11 11:53:12 -07:00
James
420afc6838 chore(release): v0.19.2 2022-07-11 11:50:25 -07:00
James
4e3c4e9c0c Merge branch 'master' of github.com:payloadcms/payload into feat/extensible-auth-strategies 2022-07-11 11:45:48 -07:00
James
2c27812ba1 chore: removes cookie-parser 2022-07-11 11:45:44 -07:00
James Mikrut
2f57a983cd Merge pull request #739 from payloadcms/feat/extensible-auth-strategies
Feat/extensible auth strategies
2022-07-11 11:44:32 -07:00
James
91c4ef226b fix: ensures router switch only contains top-level route components 2022-07-11 08:31:43 -07:00
James
38b52bf67b feat: better types useAuth and custom provider components 2022-07-09 22:23:37 -07:00
James
281985970d Merge branch 'feat/extensible-auth-strategies' of github.com:payloadcms/payload into feat/extensible-auth-strategies 2022-07-09 17:39:19 -07:00
James
03f28a4804 feat: ensures auth component doesn't render if disabled 2022-07-09 17:16:19 -07:00
Dan Ribbens
c0acba94c6 Merge branch 'feat/extensible-auth-strategies' of github.com:payloadcms/payload into feat/extensible-auth-strategies 2022-07-09 19:58:19 -04:00
Dan Ribbens
8d550d411e docs: update collection hooks 2022-07-09 19:57:58 -04:00
Elliot DeNolf
e8064371b0 feat: add preMiddleware and postMiddleware, deprecate middleware 2022-07-09 16:47:23 -07:00
Dan Ribbens
166bd31506 feat: add res to token hooks 2022-07-09 19:38:24 -04:00
Dan Ribbens
4055908bc8 feat: add afterMe afterLogout and afterRefresh 2022-07-09 19:29:00 -04:00
James
d68bb8c292 fix: removes reliance on auth email 2022-07-09 14:40:31 -07:00
James
c8be171f24 chore: further disabling of local auth strategy 2022-07-09 12:04:21 -07:00
Dan Ribbens
43eafd4b9f chore(release): v0.19.1 2022-07-09 12:04:17 -04:00
Dan Ribbens
ce1c99b01c fix: ensures duplicative relationship options are not present (#732)
Co-authored-by: James <james@trbl.design>
2022-07-09 11:58:03 -04:00
James
4b2bc36f89 chore: reduces unnecessary strategy complexity 2022-07-09 08:40:13 -07:00
James
58587525e5 feat: adds cookie-parser 2022-07-08 18:36:12 -07:00
James
df76f60e7f fix: ensures anonymous passport strategy is loaded last 2022-07-08 17:56:39 -07:00
James
2c66ad8689 feat: ensures only plain objects are merged within incoming configs 2022-07-08 17:37:43 -07:00
James
6016e2346c feat: extends strategies with more properties 2022-07-08 15:16:30 -07:00
James
56cdd943fd feat: only adds email if local strategy enabled 2022-07-08 14:50:04 -07:00
James
6d02f7d3ac feat: begins extensible auth strategies 2022-07-08 13:46:12 -07:00
Dan Ribbens
18f8790062 chore: breaking changes 0.19.0 2022-07-08 14:08:04 -04:00
Dan Ribbens
854b63ec34 chore(release): v0.19.0 2022-07-08 14:07:28 -04:00
Dan Ribbens
beccbbd3e8 chore: package script quotes windows compatibility 2022-07-08 14:00:23 -04:00
Dan Ribbens
91d0d84c65 docs: update graphql schema 2022-07-08 13:53:40 -04:00
chris-schra
7dd67a8d39 chore: ignore Yarn Berry files in .gitignore (#713) 2022-07-08 13:51:42 -04:00
Dan Ribbens
ad43cbc808 feat: graphql schema output (#730)
* chore: refactor graphql initialization

* feat: generate graphql schema script

* feat: script commands are case insenstive
2022-07-08 13:50:46 -04:00
James Mikrut
2b2a562d83 Merge pull request #731 from payloadcms/fix/auth-me-gql-relationships
Fix/auth me gql relationships
2022-07-08 10:48:09 -07:00
James
d9e7696384 chore: strips trailing slashes from jwt strategy 2022-07-08 10:41:10 -07:00
James
01bc1fef1e fix: ensures auth/me relations in gql can be queried 2022-07-08 10:25:00 -07:00
Dan Ribbens
567d8c19bf fix: allow passing of autoIndex mongoose connectionOptions (#722) 2022-07-06 15:57:02 -04:00
James Mikrut
b722bed24f Merge pull request #720 from payloadcms/fix/#692
fix: ensures old data from arrays is not persisted
2022-07-06 14:36:00 -04:00
James
0af66d68a7 chore: tests array functionality 2022-07-06 11:34:22 -07:00
Henri Tuan
f3b7dcff57 feat: File argument in create/update operation (#708)
Co-authored-by: Dan Ribbens <dan.ribbens@gmail.com>
2022-07-06 11:26:04 -07:00
chris-schra
67331eb975 fix: copyfiles cross platform (#712) 2022-07-06 13:57:18 -04:00
James
d9ef803d20 fix: ensures old data from arrays is not persisted 2022-07-06 10:52:52 -07:00
Andrzej Kłapeć
9fd171b26d feat: allow clearing DatePicker value (#641)
Co-authored-by: Elliot DeNolf <denolfe@gmail.com>
2022-07-06 09:38:45 -07:00
Dan Ribbens
91e33d1c1c fix: relationship field disabled from access control in related collections (#644)
* fix: disabled relationship field from access control in related collections

* fix: ids can be read from relationships regardless of access of related document
2022-07-03 07:01:45 -04:00
Akansh Sirohi
601e69ab0d Fixes payloadcms/payload#650 (#706)
* fix: min/max number validation of decimal values
2022-07-03 06:25:03 -04:00
Andres Kalle
81aa74bbbe docs: fixed example URL (#705) 2022-07-02 07:42:12 -04:00
Dan Ribbens
e84b7a9c58 chore(release): v0.18.5 2022-06-29 14:14:47 -04:00
Dan Ribbens
b6b0ffb674 fix: empty cell data renders in list (#699) 2022-06-29 14:07:21 -04:00
Dan Ribbens
62bd2db5f9 chore: update json-schema-to-typescript to v11 (#700) 2022-06-29 14:03:30 -04:00
Steven Roh
74342a4dea Avoid app crashing when code (data) is undefined (#681)
* fix: code field ui errors when data is undefined
2022-06-29 12:12:33 -04:00
Min Somai
c78d77446a fix: icon appears above select field's option list (#685)
* fix: icon of the date field appears above the option list
2022-06-29 12:09:53 -04:00
Dan Ribbens
6eb4fc04b1 Fix/validate imagesizes with mimetypes (#688)
* fix: mimetype validation with image sizes

* fix: unique filename error on image sizes
2022-06-29 12:05:57 -04:00
Dan Ribbens
f1b00e85fc docs: update links 2022-06-29 11:19:34 -04:00
gonza moiguer
7c73f2c1d9 Corrected Radio field doc, 'option' for 'label' (#690) 2022-06-27 13:03:41 -04:00
James
704e543c7e chore(release): v0.18.4 2022-06-24 17:53:35 -04:00
Lachlan Heywood
fcaa1454dc Update load.ts (#679) 2022-06-24 17:52:06 -04:00
James
9d388f7a89 chore(release): v0.18.3 2022-06-24 17:51:01 -04:00
James
918062de2f fix: #670, max tokenExpiration 2022-06-24 17:49:36 -04:00
James
375738d99c chore(release): v0.18.2 2022-06-24 17:34:07 -04:00
Dan Ribbens
1c37ec3902 feat: telemetry
* feat: add telemetry to payload config

wip: more telemetry

* feat: send telemetry events

* chore: update node ci versions

* chore: cleanup console log

* chore: updates ts due to dependency update

* chore: remove unused deps

* chore: fix origin and casing

* docs: telemetry

* feat: uses oneWayHash within telemetry

* chore: sends hashed domain in telemetry

* feat: improves reliability of telemetry projectID

* chore: revises telemetry docs

Co-authored-by: Elliot DeNolf <denolfe@gmail.com>
Co-authored-by: James <james@trbl.design>
2022-06-24 17:32:09 -04:00
Kent Warren
7eb804daf9 docs: typo (#683)
Changes "you" to "your"
2022-06-24 16:52:57 -04:00
James
d99a67ca95 chore(release): v0.18.1 2022-06-21 15:45:20 -04:00
James
3d5ed93fce fix: #671, password reset broken 2022-06-21 15:43:12 -04:00
Ahmet Kilinc
b80006be45 Change "ist" to "it" (#668)
docs: Small typo on middleware page
2022-06-20 10:45:34 -04:00
Dan Ribbens
70edb0ba38 chore(release): v0.18.0 2022-06-14 08:53:17 -04:00
Dan Ribbens
a1fe17d05d fix: me auth route breaks with query params (#648) 2022-06-13 11:49:04 -04:00
James Mikrut
7083225abd Feat/remove this bindings (#629)
* feat: removes this bindings for cleaner, more maintainable code

Co-authored-by: Elliot DeNolf <denolfe@users.noreply.github.com>
Co-authored-by: Dan Ribbens <dan.ribbens@gmail.com>
2022-06-08 14:44:34 -04:00
Jarrod Flesch
af6479bf34 feat: adds timestamps to generated collection types if enabled (#604)
* feat: adds timestamps to generated collection types if enabled
2022-06-08 11:41:09 -04:00
Dan Ribbens
44c12325b4 feat: enable webpack filesystem cache in dev (#621) 2022-06-08 11:38:07 -04:00
Dan Ribbens
f2bf2399fa fix: custom fields values resetting in ui (#626) 2022-06-08 11:37:31 -04:00
Dan Ribbens
7fe2fece6c chore: remove node-sass (#605) 2022-06-08 11:36:33 -04:00
James
bf0fe090ab chore(release): v0.17.3 2022-06-08 10:33:12 -04:00
Dan Ribbens
397dba4a30 Fix/delete document workflow (#622)
* fix: admin ui display server errors when deleting documents

* fix: admin ui display delete document state gets stuck after 403
2022-06-08 10:24:34 -04:00
Dan Ribbens
593d6a596a docs: remove withCondition for custom component fields (#588) 2022-06-08 10:24:21 -04:00
Dan Ribbens
82a6db8b4f docs: add examples to collection hooks (#620) 2022-06-08 10:23:55 -04:00
Dan Ribbens
28aa3dd17b chore: update license in package.json (#631) 2022-06-08 10:23:15 -04:00
James Mikrut
3d4d807370 Fix/propagate locale relationship (#637)
* fix: propagate locale through relationship

* fix: ensures locales are populated properly through local operations

* chore: adds test for locale propagation

Co-authored-by: Elliot DeNolf <denolfe@gmail.com>
2022-06-08 10:23:01 -04:00
James
c18cc23c71 fix: ensures unflattening locales only happens if config specifies locales 2022-06-08 10:07:17 -04:00
GeorgeyB
7ee374ea1a Custom collection/global endpoints (#607)
* feat: add custom endpoints for collections and globals REST APIs

Co-authored-by: Dan Ribbens <dan.ribbens@gmail.com>
2022-05-30 12:43:18 -04:00
Dan Ribbens
20bbda95c6 fix: duplicate objects in array fields in validate data and siblingData (#599) 2022-05-25 13:44:28 -04:00
James
67fecf6c2c chore(release): v0.17.2 2022-05-23 22:08:23 -04:00
James Mikrut
20d251fd5d fix: #576, graphql where on hasMany relationship not working (#582) 2022-05-23 22:06:37 -04:00
Jarrod Flesch
982b3f0582 fix: adds optional chaining to safely read drafts setting on versions (#577) 2022-05-23 20:23:24 -04:00
Roman Bondarenko
200aa2e1c2 chore: fix typo in plugins/overview (#578) 2022-05-23 20:22:54 -04:00
GeorgeyB
734e905c18 fix: passes required prop for select field (#579) 2022-05-23 20:22:36 -04:00
Elliot DeNolf
5ce223e5f4 ci: remove e2e test run until figure out flaking 2022-05-23 17:07:56 -04:00
James
6a17d3db98 chore: doc readability 2022-05-23 11:01:47 -04:00
James
f27c5ca6f0 docs: adds detail regarding access control arguments 2022-05-23 10:56:49 -04:00
James
ac355b58d4 chore(release): v0.17.1 2022-05-17 13:15:24 -04:00
James
e1a5547fea fix: only localizes schema if both field and top-level config are enabled 2022-05-17 13:13:37 -04:00
Dan Ribbens
dd8c1d7a9e chore(release): v0.17.0 2022-05-16 19:29:03 -04:00
Dan Ribbens
4913441017 Free and open-source under MIT license (#565)
* feat: free and open-source under MIT license
2022-05-16 19:25:20 -04:00
Dan Ribbens
16b7edbc97 fix: prevent changing order of readOnly arrays (#563) 2022-05-16 19:00:08 -04:00
Dan Ribbens
5bfde9da91 chore: fix inconsistent e2e test results (#562)
* chore: fix inconsistent e2e test results
2022-05-11 23:19:08 -04:00
Dan Ribbens
52acfcb0e3 chore: export useDocumentInfo (#561)
* chore: export useDocumentInfo and add to custom component documenation
2022-05-11 21:50:17 -04:00
Dan Ribbens
8813bc7695 chore: e2e running in CI (#559)
* chore: e2e ci testing with mongo-memory-server
2022-05-11 21:49:11 -04:00
Dan Ribbens
1dfe2b8929 fix: apply field condition to custom components (#560) 2022-05-11 19:43:53 -04:00
Dan Ribbens
afb158fb50 chore(release): v0.16.4 2022-05-06 13:58:01 -04:00
Dan Ribbens
78edac684e fix: fields in groups causing console error in browser (#553) 2022-05-06 13:50:58 -04:00
Dan Ribbens
46f4bc2a07 fix: save resized image file when equal to upload size (#555) 2022-05-06 13:50:47 -04:00
James
f361a44cca chore(release): v0.16.3 2022-05-04 11:20:47 -04:00
James
47c37e0153 fix: rare bug while merging locale data 2022-05-04 11:18:52 -04:00
James
5df3b35189 chore(release): v0.16.2 2022-05-02 13:44:31 -04:00
Elliot DeNolf
1e4a68f76e fix: checkbox defaultValues and more typing of sanitize (#550) 2022-05-02 13:42:56 -04:00
James
b3832e21c9 feat: exposes findMany argument to afterRead hooks to discern between find and findByID 2022-05-02 13:38:13 -04:00
James Mikrut
18489faceb feat: optimizes field operations
* wip: beforeChange field op pattern

* feat: optimizes field-level beforeChange

* feat: optimizes beforeValidate

* feat: optimizes afterChange

* feat: optimizes afterRead

* chore: comment accuracy
2022-05-02 12:46:52 -04:00
Dan Ribbens
69d328d15e docs: updated link 2022-04-29 23:29:46 -04:00
Dan Ribbens
738e8ab9b6 docs: preventing abuse of file uploads 2022-04-29 23:25:55 -04:00
Elliot DeNolf
e7349fea9a chore: add explicit release scripts 2022-04-29 20:21:01 -04:00
James
51a6790f26 chore(release): v0.16.1 2022-04-29 18:34:40 -04:00
James
515f20372e chore: passing tests 2022-04-29 18:30:40 -04:00
James
12fbe8368f Merge branch 'fix/localization-defaultvalues' of github.com:payloadcms/payload 2022-04-29 16:49:17 -04:00
Dan Ribbens
55b4dfb309 chore: test defaultValue with localization 2022-04-29 16:48:50 -04:00
James
fb7bb76674 Merge branch 'master' of github.com:payloadcms/payload 2022-04-29 16:48:24 -04:00
James
e46b942259 feat: exposes payload within server-side validation args 2022-04-29 16:48:15 -04:00
Dan Ribbens
e4affd4bf9 docs: updated links 2022-04-29 14:40:49 -04:00
Dan Ribbens
16398d3438 chore(release): v0.16.0 2022-04-29 13:19:34 -04:00
Dan Ribbens
e8503232ba chore: changes eslint rules no-console and cleanup 2022-04-29 12:36:21 -04:00
Dan Ribbens
bf48fdf189 fix: file upload safely handles missing mimeTypes (#540)
* fix: file upload safely handles missing mimeTypes

* feat: uploaded files that do not have mimeTypes are given one based on file extension
2022-04-29 10:36:58 -04:00
Dan Ribbens
834f4c2700 feat: allow subfield readOnly to override parent readOnly (#546) 2022-04-29 10:36:38 -04:00
Dan Ribbens
e297eb9090 feat: allows defaultValue to accept async function to calculate defaultValue (#547)
* feat: field default values with async functions

* docs: improves field default value

* chore: simplifies async defaultValue

* chore: api test coverage for default value functions

* chore: WIP defaultValue async arrays

* chore: refactors and simplifies buildStateFromSchema

* chore: improves tests for defaultValues

Co-authored-by: James <james@trbl.design>
2022-04-29 10:36:10 -04:00
James
1f394bef72 chore(release): v0.15.13 2022-04-26 10:21:55 -04:00
James
1cdd5b96b3 chore: ensures array fields update modified state 2022-04-26 10:19:39 -04:00
James
2d14ab1217 chore(release): v0.15.12 2022-04-25 21:02:31 -04:00
James
8bdbd0dd41 fix: ensures adding array / block rows modifies form state 2022-04-25 20:59:33 -04:00
James
800be4c9a0 chore(release): v0.15.11 2022-04-24 19:37:39 -04:00
James
b99ec060ca fix: improperly typed access control 2022-04-24 19:35:58 -04:00
James
d5f4c030b4 chore(release): v0.15.10 2022-04-24 19:19:41 -04:00
James
4de92e3924 Merge branch 'master' of github.com:payloadcms/payload 2022-04-24 19:16:48 -04:00
James
3b70560e25 fix: block form-data bug 2022-04-24 19:16:39 -04:00
Dan Ribbens
d88c89fb05 chore: update discord invite link 2022-04-24 10:24:37 -04:00
Dan Ribbens
24d6d8e5f9 chore: add public discord link (#541) 2022-04-22 14:35:39 -04:00
Elliot DeNolf
9a9b28113a test: implement cypress test suite (#527) 2022-04-20 23:12:02 -04:00
James
ec84ffbee2 chore(release): v0.15.9 2022-04-20 17:25:20 -04:00
James
3c1dfb88df fix: intermittent blocks UI issue 2022-04-20 17:20:05 -04:00
James
4a6b79b231 chore(release): v0.15.8 2022-04-20 13:53:52 -04:00
James
9e2ed56ef0 chore: migrates to React 18 2022-04-20 11:29:09 -04:00
Alessio Gravili
9e324be057 fix: ensure relationTo is valid in upload fields (#533)
* Error handling

* Improve error message

* Re-position error handling

* Move error checking to sanitize
2022-04-20 09:21:14 -04:00
James Mikrut
b7f47c9bb1 chore/ts dep compat (#535)
* chore: ensures typescript dependency compatibility

* chore: updates dependencies

* chore: updates window-info breakpoints
2022-04-20 09:16:36 -04:00
Dan Ribbens
8a997c82be chore: github action runs demo generate types (#530) 2022-04-17 10:59:32 -04:00
Dan Ribbens
3dcd8a24cb fix: richtext editor input height (#529) 2022-04-17 10:56:33 -04:00
Dan Ribbens
203ce2c2f9 chore: update changelog 2022-04-12 11:50:27 -04:00
1124 changed files with 54091 additions and 28097 deletions

View File

@@ -21,6 +21,28 @@ module.exports = {
},
},
overrides: [
{
files: ['test/**/int.spec.ts'],
rules: {
'@typescript-eslint/no-use-before-define': 'off',
'@typescript-eslint/consistent-type-imports': 'warn',
'jest/prefer-strict-equal': 'off',
}
},
{
files: ['test/**/e2e.spec.ts'],
extends: [
'plugin:playwright/playwright-test'
],
rules: {
'jest/consistent-test-it': 'off',
'jest/require-top-level-describe': 'off',
'jest/no-test-callback': 'off',
'jest/prefer-strict-equal': 'off',
'jest/expect-expect': 'off',
'jest-dom/prefer-to-have-attribute': 'off',
}
},
{
files: ['*.ts', '*.tsx'],
parser: '@typescript-eslint/parser',
@@ -46,19 +68,27 @@ module.exports = {
'@typescript-eslint/no-use-before-define': 'off',
},
},
{
files: ['*.e2e.ts'],
rules: {
'@typescript-eslint/no-use-before-define': 'off',
'jest/expect-expect': 'off',
},
},
],
rules: {
'no-sparse-arrays': 'off',
'import/no-extraneous-dependencies': ['error', { packageDir: './' }],
'react/jsx-filename-extension': [2, { extensions: ['.js', '.jsx', '.ts', '.tsx'] }],
'import/prefer-default-export': 'off',
'react/prop-types': 'off',
'react/require-default-props': 'off',
'react/no-unused-prop-types': 'off',
'no-console': 'warn',
'no-sparse-arrays': 'off',
'no-underscore-dangle': 'off',
'no-use-before-define': 'off',
'arrow-body-style': 0,
'@typescript-eslint/no-use-before-define': ['error'],
'@typescript-eslint/no-use-before-define': 'off',
'import/extensions': [
'error',
'ignorePackages',

View File

@@ -1,33 +1,22 @@
---
name: Bug Report
about: Create a bug report for Payload
labels: 'bug'
labels: 'possible-bug'
---
# Bug Report
<!--- Provide a general summary of the issue in the Title above -->
## Expected Behavior
<!--- Tell us what should happen -->
## Current Behavior
<!--- Tell us what happens instead of the expected behavior -->
## Possible Solution
<!--- Not obligatory, but suggest a fix/reason for the bug, -->
## Steps to Reproduce
<!--- Steps to reproduce this bug. Include any code, if relevant -->
1.
2.
3.
4.
## Detailed Description
## Other Details
<!--- Provide any other additional details -->
<!--- Payload version, browser, etc -->
<!--- Possible solution if you're familiar with the code -->

View File

@@ -1,13 +1,17 @@
name: build
on: [push]
on:
pull_request:
types: [opened, reopened, edited, synchronize]
push:
branches: ['master']
jobs:
build_yarn:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [12.x, 14.x, 16.x]
node-version: [14.x, 16.x, 18.x]
steps:
- uses: actions/checkout@v2
@@ -31,10 +35,26 @@ jobs:
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- run: yarn build
- run: yarn test:client
- run: yarn test:int # In-memory db + api tests
env:
CI: true
- name: Component Tests
run: yarn test:components
- name: Integration Tests
run: yarn test:int
- name: Generate Payload Types
run: yarn dev:generate-types fields
- name: Install Playwright Browsers
run: npx playwright install --with-deps
- name: E2E Tests
run: yarn test:e2e --bail
# - uses: actions/upload-artifact@v2
# if: always()
# with:
# name: playwright-report
# path: playwright-report/
# retention-days: 30
install_npm:
runs-on: ubuntu-latest
strategy:

10
.gitignore vendored
View File

@@ -86,6 +86,15 @@ typings/
# Yarn Integrity file
.yarn-integrity
# Yarn Berry
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions
.pnp.*
# dotenv environment variables file
.env
@@ -231,3 +240,4 @@ components/styles.css
# Ignore generated
demo/generated-types.ts
demo/generated-schema.graphql

1
.node-version Normal file
View File

@@ -0,0 +1 @@
v16.14.2

View File

@@ -1,5 +1,5 @@
{
"preReleaseId": "beta",
"preReleaseId": "canary",
"git": {
"requireCleanWorkingDir": false,
"commit": false,
@@ -11,7 +11,7 @@
},
"npm": {
"skipChecks": true,
"tag": "beta"
"tag": "canary"
},
"hooks": {
"before:init": ["yarn", "yarn clean", "yarn test"]

53
.vscode/launch.json vendored
View File

@@ -28,56 +28,9 @@
"type": "node",
"request": "launch",
"name": "Launch Program",
"env": {
"PAYLOAD_CONFIG_PATH": "demo/payload.config.ts",
"BABEL_ENV": "development"
},
"program": "${workspaceFolder}/demo/index.js",
"skipFiles": [
"<node_internals>/**"
],
"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/babel-node",
"runtimeArgs": [
"--nolazy"
],
},
{
"type": "node",
"request": "launch",
"name": "Launch Program - Production",
"env": {
"PAYLOAD_CONFIG_PATH": "demo/payload.config.ts",
"NODE_ENV": "production",
"BABEL_ENV": "development"
},
"program": "${workspaceFolder}/demo/index.js",
"skipFiles": [
"<node_internals>/**"
],
"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/babel-node",
"outputCapture": "std",
"runtimeArgs": [
"--nolazy"
],
},
{
"type": "chrome",
"request": "launch",
"name": "Launch Chrome against Localhost",
"url": "http://localhost:3000/admin",
"webRoot": "${workspaceFolder}"
},
{
"type": "node",
"request": "launch",
"name": "Debug Payload Generate Types",
"program": "${workspaceFolder}/src/bin/generateTypes.ts",
"env": {
"PAYLOAD_CONFIG_PATH": "demo/payload.config.ts",
},
"outFiles": [
"${workspaceFolder}/dist/**/*.js",
"!**/node_modules/**"
"program": "${workspaceFolder}/test/dev.js",
"args": [
"fields"
]
},
]

File diff suppressed because it is too large Load Diff

128
README.md
View File

@@ -1,41 +1,84 @@
<h1 align="center">Payload</h1>
<p align="center">A self-hosted, TypeScript / JavaScript headless CMS & application framework built with Express, MongoDB and React.</p>
<p align="center">
<a href="https://github.com/payloadcms/payload/actions">
<img src="https://github.com/payloadcms/payload/workflows/build/badge.svg">
</a>
<a href="https://www.npmjs.com/package/payload">
<img alt="npm" src="https://img.shields.io/npm/v/payload">
</a>
<h1 align="center">
<img width="350" src="/src/admin/assets/images/payload-logo-dark.svg#gh-light-mode-only" alt="payload cms">
<img width="350" src="/src/admin/assets/images/payload-logo-light.svg#gh-dark-mode-only" alt="payload cms">
</h1>
<a href="https://twitter.com/intent/tweet?text=Payload%20-%20A%20self-hosted%2C%20headless%20JavaScript%20CMS%20%26%20application%20framework&url=https%3A%2F%2Fgithub.com%2Fpayloadcms%2Fpayload">
<img alt="Tweet Payload" src="https://img.shields.io/twitter/url/http/shields.io.svg?style=social">
<h2 align="center" style="padding-bottom: 24px !important;">The most powerful TypeScript CMS</h2>
<p align="center">Code-first Headless CMS that bridges the gap between CMS and application framework</p>
<h3 align="center">
<br />
<a href="https://payloadcms.com/docs/getting-started/what-is-payload" rel="dofollow"><strong>Explore the docs »</strong></a>
<br />
<br/>
</h3>
<h4 align="center">
<a target="_blank" href="https://github.com/payloadcms/payload/discussions">Request Feature</a>
·
<a target="_blank" href="https://github.com/payloadcms/payload/issues/new?assignees=&labels=possible-bug&template=BUG_REPORT.md">Report Bug</a>
·
<a target="_blank" href="https://discord.com/invite/r6sCXqVk3v">Join Discord</a>
·
<a target="_blank" rel="dofollow" href="https://payloadcms.com/docs/getting-started/what-is-payload">Docs</a>
·
<a target="_blank" rel="dofollow" href="https://payloadcms.com/">Website</a>
</h4>
<br />
<p align="center">
<a href="https://opensource.org/licenses/MIT">
<img src="https://img.shields.io/badge/License-MIT-blue.svg" />
</a>
&nbsp;
<a href="https://github.com/payloadcms/payload/actions">
<img src="https://github.com/payloadcms/payload/workflows/build/badge.svg" />
</a>
&nbsp;
<a href="https://github.com/payloadcms/payload/commits">
<img src="https://img.shields.io/github/commit-activity/m/payloadcms/payload" alt="git commit activity"/>
</a>
&nbsp;
<a href="https://discord.com/invite/r6sCXqVk3v">
<img alt="Discord" src="https://img.shields.io/discord/967097582721572934?label=Discord&color=7289da" />
</a>
&nbsp;
<a href="https://www.npmjs.com/package/payload">
<img alt="npm" src="https://img.shields.io/npm/v/payload" />
</a>
&nbsp;
<a href="https://twitter.com/payloadcms">
<img src="https://img.shields.io/twitter/follow/payloadcms?label=Follow" alt="Payload CMS Twitter" />
</a>
</p>
<br />
<a href="https://payloadcms.com">
<img src="https://payloadcms.com/images/og-image.jpg" alt="Payload headless CMS Admin panel built with React" />
<img src="https://cms.payloadcms.com/media/payload-github-header.jpg" alt="Payload headless CMS Admin panel built with React" />
</a>
### Quick Start
<br />
```
npx create-payload-app
```
## ⭐ Why Payload?
Alternatively, it only takes about five minutes to [create an app from scratch](https://payloadcms.com/docs/getting-started/installation#from-scratch).
Payload is a CMS that has been designed for developers from the ground up to deliver them what they need to build great digital products. If you know JavaScript, you know Payload. It's a _code-first_ CMS, which allows us to do a lot of things right:
### Documentation
- Payload gives you everything you need, but then steps back and lets you build what you want in JavaScript or TypeScript - with no unnecessary complexity brought by GUIs. You'll understand how your CMS works because you will have written it exactly how you want it.
- Bring your own Express server and do whatever you need on top of Payload. Payload doesn't impose anything on you or your app.
- Completely control the Admin panel by using your own React components. Swap out fields or even entire views with ease.
- Use your data however and wherever you need thanks to auto-generated, yet fully extensible REST, GraphQL, and Local Node APIs.
Check out the [Payload website](https://payloadcms.com/docs/getting-started/what-is-payload) to find in-depth documentation for everything that Payload offers.
### Features
## ✨ Features
- Completely free and open-source
- [GraphQL](https://payloadcms.com/docs/graphql/overview), [REST](https://payloadcms.com/docs/rest-api/overview), and [Local](https://payloadcms.com/docs/local-api/overview) APIs
- [Easily customizable ReactJS Admin](https://payloadcms.com/docs/admin/overview)
- [Fully self-hosted](https://payloadcms.com/docs/production/deployment)
- [Extensible Authentication](https://payloadcms.com/docs/authentication/overview)
- [Local file storage & upload](https://payloadcms.com/docs/upload/overview)
- [Version History and Drafts](https://payloadcms.com/docs/versions/overview)
- [Field-based Localization](https://payloadcms.com/docs/configuration/localization)
- [Block-based Layout Builder](https://payloadcms.com/docs/fields/blocks)
- [Extensible SlateJS rich text editor](https://payloadcms.com/docs/fields/rich-text)
@@ -47,31 +90,38 @@ Check out the [Payload website](https://payloadcms.com/docs/getting-started/what
- Intensely fast API
- Highly secure thanks to HTTP-only cookies, CSRF protection, and more
### Code-first
If you know JavaScript, you know Payload. Payload is a _code-first_ CMS, which allows us to do a lot of things right:
- Payload gives you everything you need, but then steps back and lets you build what you want in JavaScript or TypeScript - with no unnecessary complexity brought by GUIs. You'll understand how your CMS works, because you will have written it exactly how you want it.
- Bring your own Express server and do whatever you need on top of Payload. Payload doesn't impose anything on you or your app.
- Completely control the Admin panel by using your own React components. Swap out fields or even entire views with ease.
- Use your data however and wherever you need thanks to auto-generated, yet fully extensible REST, GraphQL and Local Node APIs.
### Free forever for personal use and small projects
Payload is 100% free for personal projects or small use cases where only one admin user is required. You can also get started without an account whatsoever while running on `localhost`.
## Installation
## 🚀 Quick Start
Before beginning to work with Payload, make sure you have all of the [required software](https://payloadcms.com/docs/getting-started/installation).
From there, the easiest way to get started with Payload is to use the `create-payload-app` package:
```
```text
npx create-payload-app
```
Alternatively, it only takes about five minutes to [write out your own app from scratch](https://payloadcms.com/docs/getting-started/installation#from-scratch).
Alternatively, it only takes about five minutes to [create an app from scratch](https://payloadcms.com/docs/getting-started/installation#from-scratch).
## License
## 🗒️ Documentation
Find the Payload license [here](https://github.com/payloadcms/payload/blob/master/license.md).
Check out the [Payload website](https://payloadcms.com/docs/getting-started/what-is-payload) to find in-depth documentation for everything that Payload offers.
## 🙋 Contributing
If you want to add contributions to this repository, please follow the instructions in [contributing.md](./contributing.md).
## 🚨 Need help?
There are lots of good conversations and resources in our Github Discussions board & our Discord Server. If you're struggling with something, chances are, someone's already solved what you're up against. :point_down:
- [GitHub Discussions](https://github.com/payloadcms/payload/discussions)
- [GitHub Issues](https://github.com/payloadcms/payload/issues)
- [Discord](https://t.co/30APlsQUPB)
## ⭐ Like what we're doing? Give us a star
![payload-github-star](https://cms.payloadcms.com/media/payload-github-star.gif)
## 👏 Thanks to all our contributors
<img align="left" src="https://contributors-img.web.app/image?repo=payloadcms/payload"/>

View File

@@ -1,3 +0,0 @@
const config = require('./src/babel.config');
module.exports = config;

View File

@@ -1,3 +0,0 @@
const babelConfig = require('./dist/babel.config');
exports.config = babelConfig;

View File

@@ -2,3 +2,4 @@ export { default as Button } from '../dist/admin/components/elements/Button';
export { default as Card } from '../dist/admin/components/elements/Card';
export { default as Eyebrow } from '../dist/admin/components/elements/Eyebrow';
export { default as Nav } from '../dist/admin/components/elements/Nav';
export { Gutter } from '../dist/admin/components/elements/Gutter';

View File

@@ -1,2 +1 @@
// eslint-disable-next-line import/named
export { Props, RenderArrayProps } from '../../dist/admin/components/forms/field-types/Array/types';
export type { Props } from '../../dist/admin/components/forms/field-types/Array/types';

View File

@@ -1,2 +1 @@
// eslint-disable-next-line import/named
export { Props, RenderBlockProps } from '../../dist/admin/components/forms/field-types/Blocks/types';
export type { Props } from '../../dist/admin/components/forms/field-types/Blocks/types';

View File

@@ -1 +1 @@
export { Props } from '../../dist/admin/components/views/collections/List/Cell/types';
export type { Props } from '../../dist/admin/components/views/collections/List/Cell/types';

View File

@@ -1,2 +1 @@
// eslint-disable-next-line import/named
export { Props } from '../../dist/admin/components/forms/field-types/Checkbox/types';
export type { Props } from '../../dist/admin/components/forms/field-types/Checkbox/types';

View File

@@ -1,2 +1 @@
// eslint-disable-next-line import/named
export { Props } from '../../dist/admin/components/forms/field-types/Code/types';
export type { Props } from '../../dist/admin/components/forms/field-types/Code/types';

View File

@@ -1,2 +1 @@
// eslint-disable-next-line import/named
export { Props } from '../../dist/admin/components/forms/field-types/DateTime/types';
export type { Props } from '../../dist/admin/components/forms/field-types/DateTime/types';

View File

@@ -1,2 +1 @@
// eslint-disable-next-line import/named
export { Props } from '../../dist/admin/components/forms/field-types/Email/types';
export type { Props } from '../../dist/admin/components/forms/field-types/Email/types';

View File

@@ -1,2 +1 @@
// eslint-disable-next-line import/named
export { Props } from '../../dist/admin/components/forms/field-types/Group/types';
export type { Props } from '../../dist/admin/components/forms/field-types/Group/types';

View File

@@ -0,0 +1 @@
export type { Props } from '../../dist/admin/components/forms/field-types/JSON/types';

View File

@@ -1,2 +1 @@
// eslint-disable-next-line import/named
export { Props } from '../../dist/admin/components/forms/field-types/Number/types';
export type { Props } from '../../dist/admin/components/forms/field-types/Number/types';

View File

@@ -1,2 +1 @@
// eslint-disable-next-line import/named
export { Props } from '../../dist/admin/components/forms/field-types/Password/types';
export type { Props } from '../../dist/admin/components/forms/field-types/Password/types';

View File

@@ -1,2 +1 @@
// eslint-disable-next-line import/named
export { Props } from '../../../dist/admin/components/forms/field-types/RadioGroup/RadioInput/types';
export type { Props } from '../../../dist/admin/components/forms/field-types/RadioGroup/RadioInput/types';

View File

@@ -1,2 +1 @@
// eslint-disable-next-line import/named
export { Props } from '../../../dist/admin/components/forms/field-types/RadioGroup/types';
export type { Props } from '../../../dist/admin/components/forms/field-types/RadioGroup/types';

View File

@@ -1,2 +1 @@
// eslint-disable-next-line import/named
export { Props, Option, ValueWithRelation } from '../../dist/admin/components/forms/field-types/Relationship/types';
export type { Props, Option, ValueWithRelation } from '../../dist/admin/components/forms/field-types/Relationship/types';

View File

@@ -1,2 +1 @@
// eslint-disable-next-line import/named
export { Props } from '../../dist/admin/components/forms/field-types/RichText/types';
export type { Props } from '../../dist/admin/components/forms/field-types/RichText/types';

View File

@@ -1,2 +1 @@
// eslint-disable-next-line import/named
export { Props } from '../../dist/admin/components/forms/field-types/Row/types';
export type { Props } from '../../dist/admin/components/forms/field-types/Row/types';

View File

@@ -1,2 +1 @@
// eslint-disable-next-line import/named
export { Props, Option } from '../../dist/admin/components/forms/field-types/Select/types';
export type { Props } from '../../dist/admin/components/forms/field-types/Select/types';

View File

@@ -1,2 +1 @@
// eslint-disable-next-line import/named
export { Props } from '../../dist/admin/components/forms/field-types/Text/types';
export type { Props } from '../../dist/admin/components/forms/field-types/Text/types';

View File

@@ -1,2 +1 @@
// eslint-disable-next-line import/named
export { Props } from '../../dist/admin/components/forms/field-types/Textarea/types';
export type { Props } from '../../dist/admin/components/forms/field-types/Textarea/types';

View File

@@ -1,2 +1 @@
// eslint-disable-next-line import/named
export { Props } from '../../dist/admin/components/forms/field-types/Upload/types';
export type { Props } from '../../dist/admin/components/forms/field-types/Upload/types';

View File

@@ -1,12 +1,21 @@
export {
useForm,
/**
* @deprecated useWatchForm is no longer preferred. If you need all form fields, prefer `useAllFormFields`.
*/
useWatchForm,
useFormFields,
useAllFormFields,
useFormSubmitted,
useFormProcessing,
useFormModified,
} from '../dist/admin/components/forms/Form/context';
export { default as useField } from '../dist/admin/components/forms/useField';
/**
* @deprecated This method is now called useField. The useFieldType alias will be removed in an upcoming version.
*/
export { default as useFieldType } from '../dist/admin/components/forms/useField';
export { default as Form } from '../dist/admin/components/forms/Form';
@@ -24,5 +33,6 @@ export { default as Submit } from '../dist/admin/components/forms/Submit';
export { default as Label } from '../dist/admin/components/forms/Label';
export { default as reduceFieldsToValues } from '../dist/admin/components/forms/Form/reduceFieldsToValues';
export { default as getSiblingData } from '../dist/admin/components/forms/Form/getSiblingData';
export { default as withCondition } from '../dist/admin/components/forms/withCondition';

View File

@@ -1,2 +1,6 @@
export { default as Meta } from '../dist/admin/components/utilities/Meta';
export { useLocale } from '../dist/admin/components/utilities/Locale';
export { useDocumentInfo } from '../dist/admin/components/utilities/DocumentInfo';
export { useConfig } from '../dist/admin/components/utilities/Config';
export { useAuth } from '../dist/admin/components/utilities/Auth';
export { useEditDepth } from '../dist/admin/components/utilities/EditDepth';

View File

@@ -1,3 +1,2 @@
export { default as Cell } from '../../dist/admin/components/views/collections/List/Cell';
// eslint-disable-next-line import/named
export { Props } from '../../dist/admin/components/views/collections/List/Cell/types';
export type { Props } from '../../dist/admin/components/views/collections/List/Cell/types';

View File

@@ -1,3 +1,2 @@
export { default as Edit } from '../../dist/admin/components/views/collections/Edit/Default';
// eslint-disable-next-line import/named
export { Props } from '../../dist/admin/components/views/collections/Edit/types';
export type { Props } from '../../dist/admin/components/views/collections/Edit/types';

View File

@@ -1,3 +1,2 @@
export { default as List } from '../../dist/admin/components/views/collections/List/Default';
// eslint-disable-next-line import/named
export { Props } from '../../dist/admin/components/views/collections/Edit/types';
export type { Props } from '../../dist/admin/components/views/collections/Edit/types';

View File

@@ -2,10 +2,6 @@
Below you'll find a set of guidelines for how to contribute to Payload CMS.
## Payload is proprietary software
Even though you can read Payload's source code, it's technically not "open source". Payload requires an active license to be used in all production purposes. That said, we do not expect PRs from the public, but we still welcome pull requests of any kind.
## Opening issues
Before you submit an issue, please check all existing [open and closed issues](https://github.com/payloadcms/payload/issues) to see if your issue has previously been resolved or is already known. If there is already an issue logged, feel free to upvote it by adding a :thumbsup: [reaction](https://github.com/blog/2119-add-reactions-to-pull-requests-issues-and-comments). If you would like to submit a new issue, please fill out our Issue Template to the best of your ability so we can accurately understand your report.
@@ -22,12 +18,41 @@ Payload documentation can be found directly within its codebase and you can feel
## Building additional features
If you're an incredibly awesome person and want to help us make Payload even better through new features or additions, we would be thrilled to work with you. If your proposed feature is accepted by our team and is significant enough, pending our discretion, we'd be happy to hook you up with a pro-bono license.
If you're an incredibly awesome person and want to help us make Payload even better through new features or additions, we would be thrilled to work with you.
To help us work on new features, you can reach out to our Development team at [`dev@payloadcms.com`](mailto:dev@payloadcms.com). Be as complete and descriptive as possible regarding your vision and we'll go from there!
### Before Starting
To help us work on new features, you can create a new feature request post in [GitHub Discussion](https://github.com/payloadcms/payload/discussions) or discuss it in our [Discord](https://discord.com/invite/r6sCXqVk3v). New functionality often has large implications across the entire Payload repo, so it is best to discuss the architecture and approach before starting work on a pull request.
### Code
Most new functionality should keep testing in mind. With 1.0, testability of new features has been vastly improved. All top-level directories within the `test/` directory are for testing a specific category: `fields`, `collections`, etc.
If it makes sense to add your feature to an existing test directory, please do so.
A typical directory with `test/` will be structured like this:
```text
.
├── config.ts
├── int.spec.ts
├── e2e.spec.ts
└── payload-types.ts
```
- `config.ts` - This is the _granular_ Payload config for testing. It should be as lightweight as possible. Reference existing configs for an example
- `int.spec.ts` - This is the test file run by jest. Any test file must have a `*int.spec.ts` suffix.
- `e2e.spec.ts` - This is the end-to-end test file that will load up the admin UI using the above config and run Playwright tests. These tests are typically only needed if a large change is being made to the Admin UI.
- `payload-types.ts` - Generated types from `config.ts`. Generate this file by running `yarn dev:generate-types my-test-dir`.
The directory split up in this way specifically to reduce friction when creating tests and to add the ability to boot up Payload with that specific config.
The following command will start Payload with your config: `yarn dev my-test-dir`. This command will start up Payload using your config and refresh a test database on every restart.
When switching between test directories, you will want to remove your `node_modules/.cache ` manually or by running `yarn clean:cache`.
NOTE: It is recommended to add the test credentials (located in `test/credentials.ts`) to your autofill for `localhost:3000/admin` as this will be required on every nodemon restart. The default credentials are `dev@payloadcms.com` as E-Mail and `test` as password.
## Pull Requests
For all Pull Requests, you should be extremely descriptive about both your problem and proposed solution. If there are any affected open or closed issues, please leave the issue number in your PR message.
By opening a Pull Request against Payload's codebase, you automatically give the entirety of the contribution within your PR to Payload CMS, LLC and retain no personal ownership whatsoever afterward. For more information, please read the full [Payload license](https://github.com/payloadcms/payload/blob/master/license.md).

View File

@@ -1,17 +0,0 @@
/**
* authorize a request by comparing the current user with one or more roles
* @param allRoles
* @param user
* @returns {Function}
*/
const checkRole = (allRoles, user) => {
if (user) {
if (allRoles.some((role) => user.roles && user.roles.some((individualRole) => individualRole === role))) {
return true;
}
}
return false;
};
export default checkRole;

View File

@@ -1,7 +0,0 @@
export default [
'admin',
'editor',
'moderator',
'user',
'viewer',
];

View File

@@ -1,26 +0,0 @@
import { Block } from '../../src/fields/config/types';
const CTA: Block = {
slug: 'cta',
labels: {
singular: 'Call to Action',
plural: 'Calls to Action',
},
fields: [
{
name: 'label',
label: 'Label',
type: 'text',
maxLength: 100,
required: true,
},
{
name: 'url',
label: 'URL',
type: 'text',
required: true,
},
],
};
export default CTA;

View File

@@ -1,19 +0,0 @@
import { Block } from '../../src/fields/config/types';
const Email: Block = {
slug: 'email',
labels: {
singular: 'Email',
plural: 'Emails',
},
fields: [
{
name: 'testEmail',
label: 'Test Email Field',
type: 'email',
required: true,
},
],
};
export default Email;

View File

@@ -1,20 +0,0 @@
import { Block } from '../../src/fields/config/types';
const NumberBlock: Block = {
slug: 'number',
labels: {
singular: 'Number',
plural: 'Numbers',
},
fields: [
{
name: 'testNumber',
label: 'Test Number Field',
type: 'number',
max: 100,
required: true,
},
],
};
export default NumberBlock;

View File

@@ -1,27 +0,0 @@
import { Block } from '../../src/fields/config/types';
const Quote: Block = {
imageURL: '/static/assets/images/generic-block-image.svg',
slug: 'quote',
labels: {
singular: 'Quote',
plural: 'Quotes',
},
fields: [
{
name: 'quote',
label: 'Quote',
type: 'textarea',
required: true,
},
{
name: 'color',
label: 'Color',
type: 'text',
maxLength: 7,
required: true,
},
],
};
export default Quote;

View File

@@ -1,16 +0,0 @@
// As this is the demo folder, we import Payload SCSS functions relatively.
@import '../../../../scss';
// In your own projects, you'd import as follows:
// @import '~payload/scss';
.after-dashboard {
margin-top: base(2);
&__cards {
list-style: none;
margin: 0;
padding: 0;
}
}

View File

@@ -1,41 +0,0 @@
import { useConfig } from '@payloadcms/config-provider';
import React from 'react';
import { useHistory } from 'react-router-dom';
// As this is the demo project, we import our dependencies from the `src` directory.
import Card from '../../../../src/admin/components/elements/Card';
// In your projects, you can import as follows:
// import { Card } from 'payload/components/elements';
import './index.scss';
const baseClass = 'after-dashboard';
const AfterDashboard: React.FC = () => {
const history = useHistory();
const { routes: { admin: adminRoute } } = useConfig();
return (
<div className={baseClass}>
<h3>Custom Routes &amp; Dashboard Components</h3>
<p>This is a custom component that is rendered within the built-in dashboard component after its contents are rendered. Below, there are two cards that link to custom routes.</p>
<ul className="dashboard__card-list">
<li>
<Card
title="Default Template"
onClick={() => history.push(`${adminRoute}/custom-default-route`)}
/>
</li>
<li>
<Card
title="Minimal Template"
onClick={() => history.push(`${adminRoute}/custom-minimal-route`)}
/>
</li>
</ul>
</div>
);
};
export default AfterDashboard;

View File

@@ -1,14 +0,0 @@
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
</head>
<body>
<div id="app"></div>
<div id="portal"></div>
</body>
</html>

View File

@@ -1,9 +0,0 @@
<svg width="82" height="53" viewBox="0 0 82 53" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<rect x="0.713013" width="80.574" height="52.7791" fill="url(#pattern0)"/>
<defs>
<pattern id="pattern0" patternContentUnits="objectBoundingBox" width="1" height="1">
<use xlink:href="#image0" transform="scale(0.00387597 0.00591716)"/>
</pattern>
<image id="image0" width="258" height="169" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQIAAACpCAYAAADA4zPJAAALpklEQVR4Ae2dSY/UOhSF+///DCSGHQuEgAVI7BBITAI2zCCGZuhmpqEBP53W8yOvK1UdO3Zyr/NFilJdXalyTo4/X984zlZgQQEUWLwCW4tXAAFQAAUCIMAEKIACgAAPoAAKBECACVAABQABHkABFAiAABOgAAoAAjyAAiggBbhqgA9QAAUAAR5AARQgIsADKIACdA3wAAqggBQgR4APUAAFAAEeQAEUICLAAyiAAnQN8AAKoIAUIEeAD1AABQABHkABFCAiwAMogAJ0DfAACqCAFCBHgA9QAAUAAR5AARQgIsADKIACdA3wAAqggBQgR4APUAAFAAEeQAEUICLAAyiAAnQN8AAKoIAUIEeAD1AABQABHkABFCAiwAMogAJ0DfAACqCAFCBHgA9QAAUAAR5AARQgIsADKIACdA3wAAqggBQgR4APUAAFAAEeQAEUICLAAyiAAnQN8AAKoIAUIEeAD1AABQABHkABFCAiwAMLVmB/fz98+/YtfPr0KXz48CHs7u6GnZ2dg+3Hjx/D169fw48fP8KfP3+aV4muQfOnmAPsKqDKr4r/9u3bsL29PXgVKPb29pqFAiDouoTXzSrw8+fPg5Y+pfL3ffbdu3fh+/fvzekECJo7pRxQVwGF9YoA+ir1mPfUhVB00coCCFo5kxzHigKqqGrBx1T4Tfu+efOmmegAEKzYhzdaUEBdAVXUTRW51P+UVPS+AALvZ5DyryigSGAqCESYeIcBIFixEW94VuDXr1/JVwRiZR671VUFrwsg8HrmKPeKAkoMKok3tkLn7q8oRCDyuAACj2eNMvcqoMFBuZW41H4alORxAQQezxplXlHg9+/fk+cF1sHDYxcBEKxYijc8KvDly5fZo4EIhvfv37uTEBC4O2UU+LACyg2kDhmOlbbWVpcvPS2AwNPZoqy9CigUr1Whc79Xoxk9LYDA09mirL0K1BhCnAuAuJ8iFE8LIPB0tihrrwI1hxHHip2z9XQpERD0Wos3vSig/EBOJZ1iH09XDwCBF8dTzl4FNJx4ikqd8xu6kuFlAQRezhTl7FVAMwjlVNIp9vn8+XNvmS2+aR4E6md56mtZPMktl8niFYMIGU9XDkyDQCdZ47e1eupvtVzxrB0bEUGZM2ISBEoAafLISNa4FWH1PxYUiApo4E70h7UtOYJ4ljK2OrGbLgfpfy1NEZUhEbt0FNA9BtYAEMvjaW5DMxGBWnpN7hBFPGrrfSKIjpd5OVIBa8OLo3c9DTM2AQJRXbdvRgGHbrWP9mVZtgKaanyoZ6b6nPJanrqxs4MgJgRzTxCJxGVDQEevEDzXP7X2E5w8LbOBQLQsOUZ8TCLx9evX4fHjx+HRo0esTjW4efNmKL3eu3cvyBs5sPB2lWsWENSaZlr3gacmEi9fvhyOHTvGiga9Hjh79mwyDJSz8NQtUOQyOQhSEoI5JNY+mrJqyPLy5cvekw8YAGPXA7du3UqKCob6b4hHp/rMZCDITQjmwmBIIvH+/fuAgEjgSA9cuXJlMAh0edtbNCDYTAICjf6a4xKPflO/vW4BBLT83ZZ/3esUEHi6ZNitF1VBIDLqxovcVr3UfipDH6UBASBYV/m77w8FgaeRhF0I6HU1EChpp+Rdqco89nv6EomAABB0K/y610NAoCHxfY3N4Qpn9e8qILAwv3wfODTmoJvIef78+ZH9w3Xm4P3lQOTGjRsbGzSNGfAMgeIRgRKCFkd5HYaCyqiyaj1//jwwIGG41gOnT58Ourp02EPx7zHjVyxFB8UigrkSgvGEpG5jIlEw0ECiO3fusDaowe3bt8PVq1eDwvvU9fr162sh0NqI1tEgsJIQTAVB/Py6RKIlWlOWcQrIo+oSlrpypShADUhLyygQaOYgSwnBWLlTtzoGZkFqydb9xxKBkONZQUSNRqs+yQaBbvRQeJRa6ax+Xsfi6f7xfqvz7lAFVKEVJSjbLzCookc/a6uBQcol6ZKgxgZ4TwYepUsyCBQSeUgI5gJHxmgt7DvKBPwfBZJAIDKW6mflVtQp9tMxeh0hhqVRIEeBQSBQWKQQaYpKaOk3dMyth4Q5pmGf9hQ4EgTqS+3s7CwOAhFIOvZWE0Tt2ZkjylVgIwhaSwjGyp26JZGYay/286JALwiULOubTjy1ArX2ee/jyb2YknJOr8AKCJQk06WT1ipxqeORNiQSpzcqv1hXgf9AsNSEYC4gSCTWNSbfPq0CByBYekIwFwYkEqc1K79WT4GtsdOJ51aiVvZTItHbjLX17MQ3e1Vgq5UKOfdxtHI7ajSy7iYlFxLVaH8LCLa3iyVGlUhMnU7dmsWUK+pOL6dZpxlUZe0slS8PICgIghiV6F4M3ct+6dIlV+vFixcPJmo5d+5c6K4XLlwI+p/l47l27RpdtBF8AAQVQHDmzJm1M94wxVm9Kc6kOzeM5dEAEBQGgR6dRmWvV9mP0lbdM5Z0BQBBYRA8ePAAEMw4B6KeVciSrgAgAARNgQsQpENAewACQAAI8upOU3sBgsIgePjwYVMV66g+ubX/ExHk8QkQFAaB5sA/ceIEMJghT3D8+HHmnczjAF2DeO2/5Pbu3bvh1KlTwGBCGJw8eTI8efIksxqwGxFB4YggAuXVq1fh2bNn4enTp0euL168OJj/QaP4Sq26O1JzLw75/Rqf0czApY5lyPcwfmAczABBJRBEIAzd6ual7nMZx5xWK3eTxkfLjTkW9p1GAUBgBAQRGGMrj7W7SRWV6AYmFtsKAAJjIBAQciqPbgyyPL0cj5YDBMXu7out5lK2QyuPl+nleLScXRgQERiMCLqg2zQLkqIAJdK6n7f+mhmhbcIAEBgHgSp2X+VRlnx3d9cVBLqQGpsLsVmd/JYKEDgAQaxA8bmM1hKCsXypWx4tZwccgMARCFTRFB2kVjjrn2dG6PmBAAicgcB6pc4t36ZcyPzVpP0SAAJAYCbC6MuFtF8FbRwhIAAEZkAQowkeLTc9HAABIDAHAgGBR8tNCwNAAAhMgiBGByQSpwECIAAEpkEgIJBIrA8DQAAIzINAMFAikUfL1QMCIAAELkAQuwqtPVquXtVO+2ZAAAhcgUBAaOHRcmnVtP6nAQEgcAeCGB3ohiuWMgoAAkDgFgQCgm68Ypqy8TAABIDANQgEAxKJgMC9iWOYy3b84+lJJOYDgYiAiKApmGoWpP39/fwasdA9AQEgaAoEMbIqNSP0UrgACABBkyAQEEgkDscYIAAEzYJAMMiZEXp49Wnnk4AAEDQNgthVGDojdDtVO+1IAAEgWAQIBAQSievhAAgAwWJAIBhozAGJxFUgAAJAsCgQxK4C06n/HwaAABAsEgQCAonEvzAABIBgsSCI0QGJxBAAASBYPAgEhKU/lxEQAAJA8K8HljydOiAABIDgkAfio+X+9qDbfwUIDpkg9hvZjr8b0LOGS3suIyAABEQEGzywlOnUAcEGE3hu0Sh7uYhmCdOpAwJAQEQwwAOtJxIBwQAT0LqWa129a9nqcxkBASAgIkj0QIvPZQQEiSbw3qJR/nLRTUuJREAACIgIRniglUQiIBhhAlrXcq2rZy1bmE4dEAACIoJCHvA8nTogKGQCzy0aZS8X2Xh9LiMgAAREBBU84O25jICgggloYcu1sJ619DSdOiAABEQEFT3gJZEICCqawHNrRtnLRjXWE4mAABAQEUzkAcvTqQOCiUxAC1u2hfWsp8Xp1AEBICAimMED1hKJgGAGE3huzSh7ucjG0nTqgAAQEBHM7AEL06kDgplNQAtbroX1rOXciURAAAiICIx4QGMO5kokAgIjJvDcmlH2slHNHM9lBASAgIjAoAemTiQCAoMmoIUt28J61nOqRCIgAAREBMY9MMUsSIDAuAk8t2aUvVxkU3s6dUAACIgIHHmg1nMZAYEjE9DClmthPWtZYzp1QAAIiAiceqDkdOqAwKkJPLdolL1cZFMqkbilkUysaIAH/Hpgb28vjF3+AbSb48mcXO9tAAAAAElFTkSuQmCC"/>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 4.4 KiB

View File

@@ -1,67 +0,0 @@
import { CollectionConfig } from '../../src/collections/config/types';
import roles from '../access/roles';
import checkRole from '../access/checkRole';
const access = ({ req: { user } }) => {
const result = checkRole(['admin'], user);
return result;
};
const Admin: CollectionConfig = {
slug: 'admins',
labels: {
singular: 'Admin',
plural: 'Admins',
},
access: {
create: access,
read: access,
update: access,
delete: access,
admin: () => true,
},
auth: {
tokenExpiration: 7200, // 2 hours
verify: false,
maxLoginAttempts: 5,
lockTime: 600 * 1000, // lock time in ms
useAPIKey: true,
depth: 0,
cookies: {
secure: false,
sameSite: 'lax',
domain: undefined,
},
},
fields: [
{
name: 'roles',
label: 'Role',
type: 'select',
options: roles,
defaultValue: 'user',
required: true,
saveToJWT: true,
hasMany: true,
},
{
name: 'publicUser',
type: 'relationship',
hasMany: true,
relationTo: 'public-users',
},
{
name: 'apiKey',
type: 'text',
access: {
read: ({ req: { user } }) => checkRole(['admin'], user),
},
},
],
timestamps: true,
admin: {
useAsTitle: 'email',
},
};
export default Admin;

View File

@@ -1,343 +0,0 @@
import { CollectionConfig } from '../../src/collections/config/types';
import checkRole from '../access/checkRole';
import Email from '../blocks/Email';
import Quote from '../blocks/Quote';
import NumberBlock from '../blocks/Number';
import CallToAction from '../blocks/CallToAction';
import CollectionDescription from '../customComponents/CollectionDescription';
import DemoUIField from '../client/components/DemoUIField/Field';
import DemoUIFieldCell from '../client/components/DemoUIField/Cell';
const AllFields: CollectionConfig = {
slug: 'all-fields',
labels: {
singular: 'All Fields',
plural: 'All Fields',
},
admin: {
defaultColumns: ['text', 'demo', 'createdAt'],
useAsTitle: 'text',
preview: (doc, { token }) => {
const { text } = doc;
if (doc && text) {
return `http://localhost:3000/previewable-posts/${text}?preview=true&token=${token}`;
}
return null;
},
description: CollectionDescription,
},
versions: {
maxPerDoc: 20,
retainDeleted: true,
drafts: false,
},
access: {
read: () => true,
},
fields: [
{
name: 'text',
type: 'text',
label: 'Text',
required: true,
defaultValue: 'Default Value',
unique: true,
access: {
create: ({ req: { user } }) => checkRole(['admin'], user),
update: ({ req: { user } }) => checkRole(['admin'], user),
read: ({ req: { user } }) => Boolean(user),
},
},
{
name: 'descriptionText',
type: 'text',
label: 'Text with text description',
defaultValue: 'Default Value',
admin: {
description: 'This text describes the field',
},
},
{
name: 'descriptionFunction',
type: 'text',
label: 'Text with function description',
defaultValue: 'Default Value',
maxLength: 20,
admin: {
description: ({ value }) => (typeof value === 'string' ? `${20 - value.length} characters left` : ''),
},
},
{
name: 'image',
type: 'upload',
label: 'Image',
relationTo: 'media',
admin: {
description: 'No selfies',
},
},
{
name: 'select',
label: 'Select',
type: 'select',
options: [{
value: 'option-1',
label: 'Option 1 Label',
}, {
value: 'option-2',
label: 'Option 2 Label',
}, {
value: 'option-3',
label: 'Option 3 Label',
}, {
value: 'option-4',
label: 'Option 4 Label',
}],
defaultValue: 'option-1',
required: true,
},
{
name: 'selectMany',
label: 'Select w/ hasMany',
type: 'select',
options: [{
value: 'option-1',
label: 'Option 1 Label',
}, {
value: 'option-2',
label: 'Option 2 Label',
}, {
value: 'option-3',
label: 'Option 3 Label',
}, {
value: 'option-4',
label: 'Option 4 Label',
}],
defaultValue: 'option-1',
required: true,
hasMany: true,
},
{
name: 'dayOnlyDateFieldExample',
label: 'Day Only',
type: 'date',
required: true,
admin: {
date: {
pickerAppearance: 'dayOnly',
monthsToShow: 2,
},
},
},
{
name: 'timeOnlyDateFieldExample',
label: 'Time Only',
type: 'date',
admin: {
date: {
pickerAppearance: 'timeOnly',
},
},
},
{
name: 'point',
label: 'Point Field (GeoJSON)',
type: 'point',
},
{
name: 'radioGroupExample',
label: 'Radio Group Example',
type: 'radio',
options: [{
value: 'option-1',
label: 'Options 1 Label',
}, {
value: 'option-2',
label: 'Option 2 Label',
}, {
value: 'option-3',
label: 'Option 3 Label',
}],
defaultValue: 'option-2',
required: true,
admin: {
readOnly: true,
},
},
{
type: 'row',
fields: [
{
name: 'email',
label: 'Email',
type: 'email',
}, {
name: 'number',
label: 'Number',
type: 'number',
},
],
},
{
type: 'group',
label: 'Group',
name: 'group',
fields: [
{
type: 'row',
fields: [
{
name: 'nestedText1',
label: 'Nested Text 1',
type: 'text',
}, {
name: 'nestedText2',
label: 'Nested Text 2',
type: 'text',
},
],
},
],
},
{
type: 'array',
label: 'Array',
name: 'array',
minRows: 2,
maxRows: 4,
fields: [
{
type: 'row',
fields: [
{
name: 'arrayText1',
label: 'Array Text 1',
type: 'text',
required: true,
admin: {
width: '50%',
},
},
{
name: 'arrayText2',
label: 'Array Text 2',
type: 'text',
required: true,
admin: {
width: '50%',
},
access: {
read: ({ req: { user } }) => Boolean(user),
update: ({ req: { user } }) => checkRole(['admin'], user),
},
},
],
},
{
type: 'text',
name: 'arrayText3',
label: 'Array Text 3',
admin: {
readOnly: true,
},
},
{
name: 'checkbox',
label: 'Checkbox',
type: 'checkbox',
},
],
},
{
type: 'blocks',
label: 'Blocks Content',
name: 'blocks',
minRows: 2,
blocks: [Email, NumberBlock, Quote, CallToAction],
localized: true,
required: true,
},
{
type: 'relationship',
label: 'Relationship to One Collection',
name: 'relationship',
relationTo: 'conditions',
admin: {
description: 'Relates to description',
},
},
{
type: 'relationship',
label: 'Relationship hasMany',
name: 'relationshipHasMany',
relationTo: 'localized-posts',
hasMany: true,
},
{
type: 'relationship',
label: 'Relationship to Multiple Collections',
name: 'relationshipMultipleCollections',
relationTo: ['localized-posts', 'conditions'],
},
{
type: 'textarea',
label: 'Textarea',
name: 'textarea',
admin: {
description: 'Hello textarea description',
},
},
{
name: 'richText',
type: 'richText',
label: 'Rich Text',
required: true,
},
{
type: 'ui',
name: 'demo',
admin: {
position: 'sidebar',
components: {
Field: DemoUIField,
Cell: DemoUIFieldCell,
},
},
},
{
name: 'slug',
type: 'text',
label: 'Slug',
admin: {
position: 'sidebar',
},
localized: true,
unique: true,
required: true,
},
{
name: 'checkbox',
type: 'checkbox',
label: 'Checkbox',
admin: {
position: 'sidebar',
},
},
{
name: 'dateFieldExample',
label: 'Day and Time',
type: 'date',
admin: {
position: 'sidebar',
date: {
timeIntervals: 30,
},
},
},
],
timestamps: true,
};
export default AllFields;

View File

@@ -1,102 +0,0 @@
import { CollectionConfig } from '../../src/collections/config/types';
const AutoLabel: CollectionConfig = {
slug: 'auto-label',
admin: {
useAsTitle: 'autoLabelField',
enableRichTextRelationship: true,
},
fields: [
{
name: 'autoLabelField',
type: 'text',
},
{
name: 'noLabel',
type: 'text',
label: false,
},
{
name: 'labelOverride',
type: 'text',
label: 'Custom Label',
},
{
name: 'testRelationship',
type: 'relationship',
relationTo: 'all-fields',
},
{
name: 'specialBlock',
type: 'blocks',
minRows: 1,
maxRows: 20,
// Will auto-label
// labels: {
// singular: 'Special Block',
// plural: 'Special Blocks',
// },
blocks: [
{
slug: 'number',
// Will auto-label
// labels: {
// singular: 'Number',
// plural: 'Numbers',
// },
fields: [
{
name: 'testNumber',
type: 'number',
},
],
},
],
},
{
name: 'noLabelBlock',
type: 'blocks',
label: false,
minRows: 1,
maxRows: 20,
blocks: [
{
slug: 'number',
// labels: {
// singular: 'Number',
// plural: 'Numbers',
// },
fields: [
{
name: 'testNumber',
type: 'number',
},
],
},
],
},
{
name: 'items',
type: 'array',
fields: [
{
name: 'itemName',
type: 'text',
},
],
},
{
name: 'noLabelArray',
type: 'array',
label: false,
fields: [
{
type: 'text',
name: 'textField',
},
],
},
],
};
export default AutoLabel;

View File

@@ -1,46 +0,0 @@
import { CollectionConfig } from '../../src/collections/config/types';
import Email from '../blocks/Email';
import Quote from '../blocks/Quote';
import NumberBlock from '../blocks/Number';
import CallToAction from '../blocks/CallToAction';
const Blocks: CollectionConfig = {
slug: 'blocks',
labels: {
singular: 'Blocks',
plural: 'Blocks',
},
access: {
read: () => true,
},
versions: {
drafts: true,
},
fields: [
{
name: 'layout',
label: 'Layout Blocks',
labels: {
singular: 'Block',
plural: 'Blocks',
},
type: 'blocks',
blocks: [Email, NumberBlock, Quote, CallToAction],
localized: true,
required: true,
},
{
name: 'nonLocalizedLayout',
label: 'Non Localized Layout',
labels: {
singular: 'Layout',
plural: 'Layouts',
},
type: 'blocks',
blocks: [Email, NumberBlock, Quote, CallToAction],
required: true,
},
],
};
export default Blocks;

View File

@@ -1,23 +0,0 @@
import { CollectionConfig } from '../../src/collections/config/types';
const Code: CollectionConfig = {
slug: 'code',
labels: {
singular: 'Code',
plural: 'Codes',
},
fields: [
{
name: 'code',
type: 'code',
label: 'Code',
required: true,
admin: {
language: 'js',
description: 'javascript example',
},
},
],
};
export default Code;

View File

@@ -1,73 +0,0 @@
import { CollectionConfig } from '../../src/collections/config/types';
import Email from '../blocks/Email';
import Quote from '../blocks/Quote';
import NumberBlock from '../blocks/Number';
import CallToAction from '../blocks/CallToAction';
const Conditions: CollectionConfig = {
slug: 'conditions',
labels: {
singular: 'Conditions',
plural: 'Conditions',
},
fields: [
{
name: 'title',
type: 'text',
label: 'Title',
required: true,
},
{
name: 'enableTest',
type: 'checkbox',
label: 'Enable Test',
},
{
name: 'number',
type: 'number',
label: 'Number Field',
},
{
name: 'simpleCondition',
type: 'text',
label: 'Enable Test is checked',
required: true,
admin: {
condition: (_, siblings) => siblings.enableTest === true,
},
},
{
name: 'orCondition',
type: 'text',
label: 'Number is greater than 20 OR enableTest is checked',
required: true,
admin: {
condition: (_, siblings) => siblings.number > 20 || siblings.enableTest === true,
},
},
{
name: 'nestedConditions',
type: 'text',
label: 'Number is either greater than 20 AND enableTest is checked, OR number is less than 20 and enableTest is NOT checked',
admin: {
condition: (_, siblings) => (siblings.number > 20 && siblings.enableTest === true) || (siblings.number < 20 && siblings.enableTest === false),
},
},
{
name: 'blocks',
label: 'Blocks',
labels: {
singular: 'Block',
plural: 'Blocks',
},
type: 'blocks',
blocks: [Email, NumberBlock, Quote, CallToAction],
required: true,
admin: {
condition: (_, siblings) => siblings?.enableTest === true,
},
},
],
};
export default Conditions;

View File

@@ -1,5 +0,0 @@
import React from 'react';
const Cell: React.FC = () => <div className="description">fake description cell</div>;
export default Cell;

View File

@@ -1,5 +0,0 @@
import React from 'react';
const Description: React.FC = () => <div className="description">fake description field</div>;
export default Description;

View File

@@ -1,3 +0,0 @@
.custom-description-filter {
background: lightgray;
}

View File

@@ -1,15 +0,0 @@
import React from 'react';
import { Props } from './types';
import './index.scss';
const Filter: React.FC<Props> = ({ onChange, value }) => (
<input
className="custom-description-filter"
type="text"
onChange={(e) => onChange(e.target.value)}
value={value}
/>
);
export default Filter;

View File

@@ -1,4 +0,0 @@
export type Props = {
value?: string
onChange?: (value: string) => void
}

View File

@@ -1,19 +0,0 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Group } from '../../../../../../../components/forms';
const CustomGroup: React.FC = (props) => (
<div className="custom-group">
<Group {...props} />
</div>
);
CustomGroup.defaultProps = {
value: '',
};
CustomGroup.propTypes = {
value: PropTypes.string,
};
export default CustomGroup;

View File

@@ -1,5 +0,0 @@
import React from 'react';
const NestedArrayCustomField = () => <div className="nested-array-custom-field">Nested array custom field</div>;
export default NestedArrayCustomField;

View File

@@ -1,5 +0,0 @@
import React from 'react';
const NestedGroupCustomField = () => <div className="nested-group-custom-field">Nested group custom field</div>;
export default NestedGroupCustomField;

View File

@@ -1,5 +0,0 @@
import React from 'react';
const NestedText1 = () => <div className="nested-text-1">Nested Text 1</div>;
export default NestedText1;

View File

@@ -1,61 +0,0 @@
import React, { useCallback } from 'react';
import SelectInput from '../../../../../../../src/admin/components/forms/field-types/Select/Input';
import { Props as SelectFieldType } from '../../../../../../../src/admin/components/forms/field-types/Select/types';
import useField from '../../../../../../../src/admin/components/forms/useField';
const Select: React.FC<SelectFieldType> = (props) => {
const {
path,
name,
label,
options,
} = props;
const {
showError,
value,
setValue,
} = useField({
path,
});
const onChange = useCallback((incomingOption) => {
const { value: incomingValue } = incomingOption;
const sendToCRM = async () => {
try {
const req = await fetch('https://fake-crm.com', {
method: 'post',
body: JSON.stringify({
someKey: incomingValue,
}),
});
const res = await req.json();
if (res.ok) {
console.log('Successfully synced to CRM.'); // eslint-disable-line no-console
}
} catch (e) {
console.error(e);
}
};
sendToCRM();
setValue(incomingValue);
}, [
setValue,
]);
return (
<SelectInput
name={name}
label={label}
options={options}
value={value as string}
onChange={onChange}
showError={showError}
/>
);
};
export default Select;

View File

@@ -1,44 +0,0 @@
import React, { useCallback } from 'react';
import TextInput from '../../../../../../../src/admin/components/forms/field-types/Text/Input';
import { Props as TextFieldType } from '../../../../../../../src/admin/components/forms/field-types/Text/types';
import useField from '../../../../../../../src/admin/components/forms/useField';
const Text: React.FC<TextFieldType> = (props) => {
const {
path,
name,
label,
} = props;
const field = useField({
path,
enableDebouncedValue: true,
});
const {
showError,
value,
setValue,
} = field;
const onChange = useCallback((e) => {
const { value: incomingValue } = e.target;
const valueWithoutSpaces = incomingValue.replace(/\s/g, '');
setValue(valueWithoutSpaces);
}, [
setValue,
]);
return (
<TextInput
path={path}
name={name}
value={value as string || ''}
label={label}
onChange={onChange}
showError={showError}
/>
);
};
export default Text;

View File

@@ -1,41 +0,0 @@
import React, { useCallback } from 'react';
import TextAreaInput from '../../../../../../../src/admin/components/forms/field-types/Textarea/Input';
import { Props as TextFieldType } from '../../../../../../../src/admin/components/forms/field-types/Text/types';
import useField from '../../../../../../../src/admin/components/forms/useField';
const TextArea: React.FC<TextFieldType> = (props) => {
const {
path,
name,
label,
} = props;
const field = useField({
path,
});
const {
showError,
value,
setValue,
} = field;
const onChange = useCallback((e) => {
const { value: incomingValue } = e.target;
setValue(incomingValue);
}, [
setValue,
]);
return (
<TextAreaInput
name={name}
value={value as string || ''}
label={label}
onChange={onChange}
showError={showError}
/>
);
};
export default TextArea;

View File

@@ -1,50 +0,0 @@
import React, { useCallback } from 'react';
import TextInput from '../../../../../../../src/admin/components/forms/field-types/Text';
import { UIField as UIFieldType } from '../../../../../../../src/fields/config/types';
import SelectInput from '../../../../../../../src/admin/components/forms/field-types/Select';
const UIField: React.FC<UIFieldType> = () => {
const [textValue, setTextValue] = React.useState('');
const [selectValue, setSelectValue] = React.useState('');
const onTextChange = useCallback((incomingValue) => {
setTextValue(incomingValue);
}, [])
const onSelectChange = useCallback((incomingValue) => {
setSelectValue(incomingValue);
}, [])
return (
<div>
<TextInput
name="ui-text"
label="Presentation-only text field (does not submit)"
value={textValue as string}
onChange={onTextChange}
/>
<SelectInput
name="ui-select"
label="Presentation-only select field (does not submit)"
options={[
{
label: 'Option 1',
value: 'option-1'
},
{
label: 'Option 2',
value: 'option-2'
},
{
label: 'Option 3',
value: 'option-4'
}
]}
value={selectValue as string}
onChange={onSelectChange}
/>
</div>
)
};
export default UIField;

View File

@@ -1,57 +0,0 @@
import { useConfig } from '@payloadcms/config-provider';
import React, { useCallback } from 'react';
import UploadInput from '../../../../../../../src/admin/components/forms/field-types/Upload/Input';
import { Props as UploadFieldType } from '../../../../../../../src/admin/components/forms/field-types/Upload/types';
import useField from '../../../../../../../src/admin/components/forms/useField';
import { SanitizedCollectionConfig } from '../../../../../../../src/collections/config/types';
const Text: React.FC<UploadFieldType> = (props) => {
const {
path,
name,
label,
relationTo,
fieldTypes,
} = props;
const {
value,
setValue,
showError,
} = useField({
path,
});
const onChange = useCallback((incomingValue) => {
const incomingID = incomingValue?.id || incomingValue;
setValue(incomingID);
}, [setValue]);
const {
collections,
serverURL,
routes: {
api,
},
} = useConfig();
const collection = collections.find((coll) => coll.slug === relationTo) || undefined;
return (
<UploadInput
path={path}
relationTo={relationTo}
fieldTypes={fieldTypes}
name={name}
label={label}
value={value as string}
onChange={onChange}
showError={showError}
collection={collection as SanitizedCollectionConfig}
serverURL={serverURL}
api={api}
/>
);
};
export default Text;

View File

@@ -1,5 +0,0 @@
$color: purple;
.custom-list {
color: $color;
}

View File

@@ -1,14 +0,0 @@
import React from 'react';
import DefaultList from '../../../../../../src/admin/components/views/collections/List/Default';
import './index.scss';
const CustomListView: React.FC = (props) => (
<div className="custom-list">
<p>This is a custom Pages list view</p>
<p>Sup</p>
<DefaultList {...props} />
</div>
);
export default CustomListView;

View File

@@ -1,224 +0,0 @@
import { CollectionConfig } from '../../../src/collections/config/types';
import DescriptionField from './components/fields/Description/Field';
import TextField from './components/fields/Text/Field';
import SelectField from './components/fields/Select/Field';
import TextAreaField from './components/fields/TextArea/Field';
import UploadField from './components/fields/Upload/Field';
import DescriptionCell from './components/fields/Description/Cell';
import DescriptionFilter from './components/fields/Description/Filter';
import NestedArrayField from './components/fields/NestedArrayCustomField/Field';
import GroupField from './components/fields/Group/Field';
import NestedGroupField from './components/fields/NestedGroupCustomField/Field';
import NestedText1Field from './components/fields/NestedText1/Field';
import UIField from './components/fields/UI/Field';
import ListView from './components/views/List';
import CustomDescriptionComponent from '../../customComponents/Description';
const CustomComponents: CollectionConfig = {
slug: 'custom-components',
labels: {
singular: 'Custom Component',
plural: 'Custom Components',
},
fields: [
{
name: 'title',
label: 'Title',
type: 'text',
maxLength: 100,
required: true,
unique: true,
},
{
name: 'normalText',
label: 'Normal text field',
type: 'text',
// required: true,
},
{
name: 'customText',
label: 'Custom text field (removes whitespace)',
type: 'text',
// required: true,
admin: {
components: {
Field: TextField,
},
},
},
{
name: 'normalSelect',
label: 'Normal select field',
type: 'select',
options: [
{
label: 'Option 1',
value: '1',
},
{
label: 'Option 2',
value: '2',
},
{
label: 'Option 3',
value: '3',
},
],
},
{
name: 'customSelect',
label: 'Custom select field (syncs value with crm)',
type: 'select',
options: [
{
label: 'Option 1',
value: '1',
},
{
label: 'Option 2',
value: '2',
},
{
label: 'Option 3',
value: '3',
},
],
admin: {
components: {
Field: SelectField,
},
},
},
{
name: 'normalTextarea',
label: 'Normal textarea field',
type: 'textarea',
},
{
name: 'customTextarea',
label: 'Custom textarea field',
type: 'textarea',
admin: {
components: {
Field: TextAreaField,
},
},
},
{
name: 'ui',
label: 'UI',
type: 'ui',
admin: {
components: {
Field: UIField,
},
},
},
{
name: 'normalUpload',
label: 'Normal upload field',
type: 'upload',
relationTo: 'media',
},
{
name: 'customUpload',
label: 'Custom upload field',
type: 'upload',
relationTo: 'media',
admin: {
components: {
Field: UploadField,
},
},
},
{
name: 'description',
label: 'Description',
type: 'textarea',
admin: {
components: {
Field: DescriptionField,
Cell: DescriptionCell,
Filter: DescriptionFilter,
},
},
},
{
name: 'componentDescription',
label: 'Component ViewDescription',
type: 'text',
admin: {
description: CustomDescriptionComponent,
},
},
{
name: 'array',
label: 'Array',
type: 'array',
fields: [
{
type: 'text',
name: 'nestedArrayCustomField',
label: 'Nested Array Custom Field',
admin: {
components: {
Field: NestedArrayField,
},
},
},
],
},
{
name: 'group',
label: 'Group',
type: 'group',
admin: {
components: {
Field: GroupField,
},
},
fields: [
{
type: 'text',
name: 'nestedGroupCustomField',
label: 'Nested Group Custom Field',
admin: {
components: {
Field: NestedGroupField,
},
},
},
],
},
{
type: 'row',
fields: [
{
name: 'nestedText1',
label: 'Nested Text 1',
type: 'text',
admin: {
components: {
Field: NestedText1Field,
},
},
}, {
name: 'nestedText2',
label: 'Nested Text 2',
type: 'text',
},
],
},
],
timestamps: true,
admin: {
useAsTitle: 'title',
components: {
views: {
List: ListView,
},
},
},
};
export default CustomComponents;

View File

@@ -1,22 +0,0 @@
import { CollectionConfig } from '../../src/collections/config/types';
const CustomID: CollectionConfig = {
slug: 'custom-id',
labels: {
singular: 'CustomID',
plural: 'CustomIDs',
},
fields: [
{
name: 'id',
type: 'number',
},
{
name: 'name',
type: 'text',
required: true,
},
],
};
export default CustomID;

View File

@@ -1,287 +0,0 @@
import { CollectionConfig } from '../../src/collections/config/types';
import checkRole from '../access/checkRole';
import Email from '../blocks/Email';
import Quote from '../blocks/Quote';
import NumberBlock from '../blocks/Number';
import CallToAction from '../blocks/CallToAction';
const DefaultValues: CollectionConfig = {
slug: 'default-values',
labels: {
singular: 'Default Value Test',
plural: 'Default Value Tests',
},
admin: {
useAsTitle: 'text',
},
access: {
read: () => true,
},
fields: [
{
name: 'text',
type: 'text',
label: 'Text',
defaultValue: 'Default Value',
unique: true,
access: {
create: ({ req: { user } }) => checkRole(['admin'], user),
update: ({ req: { user } }) => checkRole(['admin'], user),
read: ({ req: { user } }) => Boolean(user),
},
},
{
name: 'image',
type: 'upload',
label: 'Image',
relationTo: 'media',
},
{
name: 'select',
label: 'Select',
type: 'select',
options: [{
value: 'option-1',
label: 'Option 1 Label',
}, {
value: 'option-2',
label: 'Option 2 Label',
}, {
value: 'option-3',
label: 'Option 3 Label',
}, {
value: 'option-4',
label: 'Option 4 Label',
}],
defaultValue: 'option-1',
},
{
name: 'selectMany',
label: 'Select w/ hasMany',
type: 'select',
options: [{
value: 'option-1',
label: 'Option 1 Label',
}, {
value: 'option-2',
label: 'Option 2 Label',
}, {
value: 'option-3',
label: 'Option 3 Label',
}, {
value: 'option-4',
label: 'Option 4 Label',
}],
defaultValue: ['option-1', 'option-4'],
hasMany: true,
},
{
name: 'radioGroupExample',
label: 'Radio Group Example',
type: 'radio',
options: [{
value: 'option-1',
label: 'Options 1 Label',
}, {
value: 'option-2',
label: 'Option 2 Label',
}, {
value: 'option-3',
label: 'Option 3 Label',
}],
defaultValue: 'option-2',
},
{
type: 'row',
fields: [
{
name: 'email',
label: 'Email',
type: 'email',
defaultValue: 'some@email.com',
}, {
name: 'number',
label: 'Number',
type: 'number',
defaultValue: 5,
},
],
},
{
type: 'group',
label: 'Group',
name: 'group',
defaultValue: {
nestedText1: 'neat',
},
fields: [
{
type: 'row',
fields: [
{
name: 'nestedText1',
label: 'Nested Text 1',
type: 'text',
defaultValue: 'nested default text 1',
}, {
name: 'nestedText2',
label: 'Nested Text 2',
type: 'text',
defaultValue: 'nested default text 2',
},
],
},
],
},
{
type: 'array',
label: 'Array',
name: 'array',
admin: {
readOnly: true,
},
defaultValue: [
{
arrayText1: 'Get out',
},
],
fields: [
{
type: 'row',
fields: [
{
name: 'arrayText1',
label: 'Array Text 1',
type: 'text',
admin: {
width: '50%',
},
defaultValue: 'default array text',
},
{
name: 'arrayText2',
label: 'Array Text 2',
type: 'text',
admin: {
width: '50%',
},
access: {
read: ({ req: { user } }) => Boolean(user),
update: ({ req: { user } }) => checkRole(['admin'], user),
},
},
],
},
{
type: 'text',
name: 'arrayText3',
label: 'Array Text 3',
admin: {
readOnly: true,
},
},
{
name: 'checkbox',
label: 'Checkbox',
type: 'checkbox',
defaultValue: true,
},
],
},
{
type: 'blocks',
label: 'Blocks Content',
name: 'blocks',
labels: {
singular: 'Block',
plural: 'Blocks',
},
blocks: [Email, NumberBlock, Quote, CallToAction],
localized: true,
admin: {
readOnly: true,
},
defaultValue: [
{
blockType: 'email',
testEmail: 'dev@payloadcms.com',
},
],
},
{
type: 'relationship',
label: 'Relationship to One Collection',
name: 'relationship',
relationTo: 'conditions',
},
{
type: 'relationship',
label: 'Relationship hasMany',
name: 'relationshipHasMany',
relationTo: 'localized-posts',
hasMany: true,
},
{
type: 'relationship',
label: 'Relationship to Multiple Collections',
name: 'relationshipMultipleCollections',
relationTo: ['localized-posts', 'conditions'],
},
{
type: 'textarea',
label: 'Textarea',
name: 'textarea',
defaultValue: 'my textarea text',
},
{
name: 'slug',
type: 'text',
label: 'Slug',
admin: {
position: 'sidebar',
},
localized: true,
unique: true,
defaultValue: 'my-slug',
},
{
name: 'checkbox',
type: 'checkbox',
label: 'Checkbox',
admin: {
position: 'sidebar',
},
defaultValue: true,
},
{
name: 'richText',
type: 'richText',
label: 'Rich Text',
admin: {
elements: [
'h1',
'h2',
'h3',
'h4',
'h5',
'h6',
'blockquote',
'ul',
'ol',
'link',
],
leaves: [
'bold',
'italic',
'underline',
'strikethrough',
],
},
defaultValue: [{
children: [{ text: 'Cookin now' }],
}],
},
],
timestamps: true,
};
export default DefaultValues;

View File

@@ -1,70 +0,0 @@
import { CollectionConfig } from '../../src/collections/config/types';
import checkRole from '../access/checkRole';
const access = ({ req: { user } }) => {
const isAdmin = checkRole(['admin'], user);
if (isAdmin) {
return true;
}
if (user) {
return {
owner: {
equals: user.id,
},
};
}
return false;
};
const Files: CollectionConfig = {
slug: 'files',
labels: {
singular: 'File',
plural: 'Files',
},
upload: {
staticURL: '/files',
staticDir: './files',
},
access: {
create: () => true,
read: access,
update: access,
delete: access,
},
fields: [
{
name: 'type',
label: 'Type',
type: 'select',
options: [{
value: 'Type 1',
label: 'Type 1 Label',
}, {
value: 'Type 2',
label: 'Type 2 Label',
}, {
value: 'Type 3',
label: 'Type 3 Label',
}],
defaultValue: 'Type 1',
required: true,
},
{
name: 'owner',
label: 'Owner',
type: 'relationship',
relationTo: 'admins',
required: true,
},
],
timestamps: true,
admin: {
useAsTitle: 'filename',
},
};
export default Files;

View File

@@ -1,35 +0,0 @@
import { CollectionConfig } from '../../src/collections/config/types';
const HiddenFields: CollectionConfig = {
slug: 'hidden-fields',
labels: {
singular: 'Hidden Fields',
plural: 'Hidden Fields',
},
fields: [
{
name: 'title',
type: 'text',
label: 'Title - Not Hidden',
required: true,
},
{
name: 'hiddenAdmin',
type: 'text',
label: 'Hidden on Admin',
admin: {
hidden: true,
},
required: true,
},
{
name: 'hiddenAPI',
type: 'text',
label: 'Hidden on API',
hidden: true,
required: true, // this should not matter
},
],
};
export default HiddenFields;

View File

@@ -1,97 +0,0 @@
/* eslint-disable no-param-reassign, no-console */
// If importing outside of demo project, should import CollectionAfterReadHook, CollectionBeforeChangeHook, etc
import { AfterChangeHook, AfterDeleteHook, AfterReadHook, BeforeChangeHook, BeforeDeleteHook, BeforeReadHook, CollectionConfig } from '../../src/collections/config/types';
import { FieldHook } from '../../src/fields/config/types';
import { Hook } from '../payload-types';
const Hooks: CollectionConfig = {
slug: 'hooks',
labels: {
singular: 'Hook',
plural: 'Hooks',
},
admin: {
useAsTitle: 'title',
},
access: {
create: () => true,
read: () => true,
update: () => true,
delete: () => true,
},
hooks: {
beforeRead: [
((operation) => {
if (operation.req.headers.hook === 'beforeRead') {
console.log('before reading Hooks document');
}
}) as BeforeReadHook<Hook>,
],
beforeChange: [
((operation) => {
if (operation.req.headers.hook === 'beforeChange') {
operation.data.description += '-beforeChangeSuffix';
}
return operation.data;
}) as BeforeChangeHook<Hook>,
],
beforeDelete: [
((operation) => {
if (operation.req.headers.hook === 'beforeDelete') {
// TODO: Find a better hook operation to assert against in tests
operation.req.headers.hook = 'afterDelete';
}
}) as BeforeDeleteHook,
],
afterRead: [
((operation) => {
const { doc } = operation;
doc.afterReadHook = true;
return doc;
}) as AfterReadHook<Hook & { afterReadHook: boolean }>,
],
afterChange: [
((operation) => {
if (operation.req.headers.hook === 'afterChange') {
operation.doc.afterChangeHook = true;
}
return operation.doc;
}) as AfterChangeHook<Hook & { afterChangeHook: boolean }>,
],
afterDelete: [
((operation) => {
if (operation.req.headers.hook === 'afterDelete') {
operation.doc.afterDeleteHook = true;
}
return operation.doc;
}) as AfterDeleteHook,
],
},
fields: [
{
name: 'title',
label: 'Title',
type: 'text',
maxLength: 100,
required: true,
unique: true,
localized: true,
hooks: {
afterRead: [
({ value }) => (value ? value.toUpperCase() : null) as FieldHook<Hook, 'title'>,
],
},
},
{
name: 'description',
label: 'Description',
type: 'textarea',
required: true,
localized: true,
},
],
timestamps: true,
};
export default Hooks;

View File

@@ -1,22 +0,0 @@
import { CollectionConfig } from '../../src/collections/config/types';
const Images: CollectionConfig = {
slug: 'images',
admin: {
description: 'Used to test upload relationship queries',
},
labels: {
singular: 'Image',
plural: 'Images',
},
fields: [
{
name: 'upload',
type: 'upload',
relationTo: 'media',
},
],
timestamps: true,
};
export default Images;

View File

@@ -1,38 +0,0 @@
import { CollectionConfig } from '../../src/collections/config/types';
const LocalOperations: CollectionConfig = {
slug: 'local-operations',
labels: {
singular: 'Local Operation',
plural: 'Local Operations',
},
hooks: {
afterRead: [
async ({ req, doc }) => {
const formattedData = { ...doc };
const localizedPosts = await req.payload.find({
collection: 'localized-posts',
});
const blocksGlobal = await req.payload.findGlobal({
slug: 'blocks-global',
});
formattedData.localizedPosts = localizedPosts;
formattedData.blocksGlobal = blocksGlobal;
return formattedData;
},
],
},
fields: [
{
name: 'title',
type: 'text',
label: 'title',
required: true,
},
],
};
export default LocalOperations;

View File

@@ -1,146 +0,0 @@
import { CollectionConfig } from '../../src/collections/config/types';
import { PayloadRequest } from '../../src/express/types';
import { Block } from '../../src/fields/config/types';
const validateLocalizationTransform = (hook: string, value, req: PayloadRequest) => {
if (req.locale !== 'all' && value !== undefined && typeof value !== 'string' && value !== null) {
console.error(hook, value);
throw new Error('Locale transformation should happen before hook is called');
}
return value;
};
const RichTextBlock: Block = {
slug: 'richTextBlock',
labels: {
singular: 'Rich Text Block',
plural: 'Rich Text Blocks',
},
fields: [
{
name: 'content',
localized: true,
type: 'richText',
admin: {
hideGutter: true,
},
},
],
};
const LocalizedPosts: CollectionConfig = {
slug: 'localized-posts',
labels: {
singular: 'Localized Post',
plural: 'Localized Posts',
},
admin: {
useAsTitle: 'title',
defaultColumns: [
'title',
'priority',
'createdAt',
],
enableRichTextRelationship: true,
},
access: {
read: () => true,
},
fields: [
{
name: 'title',
label: 'Title',
type: 'text',
maxLength: 100,
required: true,
unique: true,
localized: true,
hooks: {
beforeValidate: [({ value, req }) => validateLocalizationTransform('beforeValidate', value, req)],
beforeChange: [({ value, req }) => validateLocalizationTransform('beforeChange', value, req)],
afterChange: [({ value, req }) => validateLocalizationTransform('afterChange', value, req)],
afterRead: [({ value, req }) => validateLocalizationTransform('afterRead', value, req)],
},
},
{
name: 'summary',
label: 'Summary',
type: 'text',
index: true,
},
{
name: 'description',
label: 'Description',
type: 'textarea',
required: true,
localized: true,
},
{
type: 'richText',
name: 'richText',
label: 'Rich Text',
},
{
name: 'priority',
label: 'Priority',
type: 'number',
localized: true,
},
{
name: 'localizedGroup',
label: 'Localized Group',
type: 'group',
localized: true,
fields: [
{
type: 'text',
name: 'text',
label: 'Text',
},
{
type: 'text',
name: 'demoHiddenField',
hidden: true,
},
],
},
{
name: 'nonLocalizedGroup',
label: 'Non-Localized Group',
type: 'group',
fields: [
{
type: 'text',
name: 'text',
label: 'Text',
localized: true,
},
],
},
{
type: 'array',
label: 'Non-Localized Array',
name: 'nonLocalizedArray',
maxRows: 3,
fields: [
{
type: 'text',
name: 'localizedEmbeddedText',
label: 'Localized Embedded Text',
localized: true,
},
],
},
{
label: 'Blocks',
name: 'richTextBlocks',
type: 'blocks',
blocks: [
RichTextBlock,
],
},
],
timestamps: true,
};
export default LocalizedPosts;

View File

@@ -1,79 +0,0 @@
import { CollectionConfig } from '../../src/collections/config/types';
import { FieldAccess } from '../../src/fields/config/types';
import checkRole from '../access/checkRole';
const PublicReadabilityAccess: FieldAccess = ({ req: { user }, siblingData }) => {
if (checkRole(['admin'], user)) {
return true;
}
if (siblingData?.allowPublicReadability) return true;
return false;
};
const LocalizedArrays: CollectionConfig = {
slug: 'localized-arrays',
labels: {
singular: 'Localized Array',
plural: 'Localized Arrays',
},
access: {
read: () => true,
},
fields: [
{
type: 'array',
label: false,
name: 'array',
localized: true,
required: true,
minRows: 2,
maxRows: 4,
fields: [
{
type: 'row',
fields: [
{
name: 'allowPublicReadability',
label: 'Allow Public Readability',
type: 'checkbox',
},
{
name: 'arrayText1',
label: 'Array Text 1',
type: 'text',
required: true,
admin: {
width: '50%',
},
access: {
read: PublicReadabilityAccess,
},
},
{
name: 'arrayText2',
label: 'Array Text 2',
type: 'text',
required: true,
admin: {
width: '50%',
},
},
],
},
{
type: 'text',
name: 'arrayText3',
label: 'Array Text 3',
admin: {
readOnly: true,
},
},
],
},
],
timestamps: true,
};
export default LocalizedArrays;

View File

@@ -1,81 +0,0 @@
import { CollectionConfig, BeforeChangeHook } from '../../src/collections/config/types';
const checkForUploadSizesHook: BeforeChangeHook = ({ req: { payloadUploadSizes }, data }) => {
if (typeof payloadUploadSizes === 'object') {
return {
...data,
foundUploadSizes: true,
};
}
return data;
};
const Media: CollectionConfig = {
slug: 'media',
labels: {
singular: 'Media',
plural: 'Media',
},
access: {
read: () => true,
},
admin: {
enableRichTextRelationship: true,
description: 'No selfies please',
},
hooks: {
beforeChange: [
checkForUploadSizesHook,
],
},
upload: {
staticURL: '/media',
staticDir: './media',
adminThumbnail: ({ doc }) => `/media/${doc.filename}`,
imageSizes: [
{
name: 'maintainedAspectRatio',
width: 1024,
height: null,
crop: 'center',
},
{
name: 'tablet',
width: 640,
height: 480,
crop: 'left top',
},
{
name: 'mobile',
width: 320,
height: 240,
crop: 'left top',
},
{
name: 'icon',
width: 16,
height: 16,
},
],
staticOptions: {
maxAge: 21600000, // 6 hours in milliseconds
},
},
fields: [
{
name: 'alt',
label: 'Alt Text',
type: 'text',
required: true,
localized: true,
},
{
name: 'foundUploadSizes',
type: 'checkbox',
},
],
timestamps: true,
};
export default Media;

View File

@@ -1,71 +0,0 @@
import { CollectionConfig } from '../../src/collections/config/types';
const NestedArray: CollectionConfig = {
slug: 'nested-arrays',
labels: {
singular: 'Nested Array',
plural: 'Nested Arrays',
},
access: {
read: () => true,
},
fields: [
{
type: 'array',
label: 'Array',
name: 'array',
labels: {
singular: 'Parent Row',
plural: 'Parent Rows',
},
required: true,
minRows: 2,
maxRows: 4,
fields: [
{
name: 'parentIdentifier',
label: 'Parent Identifier',
defaultValue: ' ',
type: 'text',
required: true,
},
{
type: 'array',
name: 'nestedArray',
labels: {
singular: 'Child Row',
plural: 'Child Rows',
},
required: true,
fields: [
{
name: 'childIdentifier',
label: 'Child Identifier',
type: 'text',
required: true,
},
{
type: 'array',
name: 'deeplyNestedArray',
labels: {
singular: 'Grandchild Row',
plural: 'Grandchild Rows',
},
required: true,
fields: [
{
name: 'grandchildIdentifier',
label: 'Grandchild Identifier',
type: 'text',
},
],
},
],
},
],
},
],
timestamps: true,
};
export default NestedArray;

View File

@@ -1,37 +0,0 @@
import { CollectionConfig } from '../../src/collections/config/types';
const Preview: CollectionConfig = {
slug: 'previewable-post',
labels: {
singular: 'Previewable Post',
plural: 'Previewable Posts',
},
admin: {
useAsTitle: 'title',
preview: async (doc, { token }) => {
const { title } = doc;
if (title) {
const mockAsyncReq = await fetch(`http://localhost:3000/api/previewable-post?depth=0`)
const mockJSON = await mockAsyncReq.json();
const mockParam = mockJSON?.docs?.[0]?.title || '';
return `http://localhost:3000/previewable-posts/${title}?preview=true&token=${token}&mockParam=${mockParam}`;
}
return null;
},
},
fields: [
{
name: 'title',
label: 'Title',
type: 'text',
maxLength: 100,
required: true,
unique: true,
localized: true,
},
],
timestamps: true,
};
export default Preview;

View File

@@ -1,61 +0,0 @@
import checkRole from '../access/checkRole';
import { CollectionConfig } from '../../src/collections/config/types';
const access = ({ req: { user } }) => checkRole(['admin'], user);
const PublicUsers: CollectionConfig = {
slug: 'public-users',
labels: {
singular: 'Public User',
plural: 'Public Users',
},
admin: {
useAsTitle: 'email',
},
access: {
admin: () => false,
create: () => true,
read: () => true,
update: ({ req: { user } }) => {
if (checkRole(['admin'], user)) {
return true;
}
if (user) {
return {
id: user.id,
};
}
return false;
},
delete: ({ req: { user } }) => checkRole(['admin'], user),
},
auth: {
tokenExpiration: 300,
verify: true,
maxLoginAttempts: 5,
lockTime: 600 * 1000, // lock time in ms
cookies: {
secure: process.env.NODE_ENV === 'production',
sameSite: 'lax',
domain: undefined,
},
},
fields: [
{
name: 'adminOnly',
label: 'This field should only be readable and editable by Admins with "admin" role',
type: 'text',
defaultValue: 'test',
access: {
create: access,
read: access,
update: access,
},
},
],
timestamps: true,
};
export default PublicUsers;

View File

@@ -1,86 +0,0 @@
import { CollectionConfig } from '../../src/collections/config/types';
const RelationshipA: CollectionConfig = {
slug: 'relationship-a',
access: {
read: () => true,
},
labels: {
singular: 'Relationship A',
plural: 'Relationship A',
},
fields: [
{
name: 'post',
label: 'Post',
type: 'relationship',
relationTo: 'relationship-b',
},
{
name: 'LocalizedPost',
label: 'Localized Post',
type: 'relationship',
relationTo: 'localized-posts',
hasMany: true,
localized: true,
},
{
name: 'postLocalizedMultiple',
label: 'Localized Post Multiple',
type: 'relationship',
relationTo: ['localized-posts', 'all-fields', 'custom-id'],
hasMany: true,
localized: true,
},
{
name: 'postManyRelationships',
label: 'Post Many Relationships',
type: 'relationship',
relationTo: ['relationship-b'],
localized: true,
hasMany: false,
},
{
name: 'postMaxDepth',
maxDepth: 0,
label: 'Post With MaxDepth',
type: 'relationship',
relationTo: 'relationship-b',
hasMany: false,
},
{
name: 'customID',
label: 'CustomID Relation',
type: 'relationship',
relationTo: 'custom-id',
hasMany: true,
localized: true,
},
{
name: 'filterRelationship',
type: 'relationship',
relationTo: 'relationship-b',
filterOptions: {
disableRelation: {
not_equals: true,
},
},
},
{
name: 'files',
type: 'upload',
relationTo: 'files',
filterOptions: {
type: { equals: 'Type 2' },
},
},
{
name: 'demoHiddenField',
type: 'text',
hidden: true,
},
],
timestamps: true,
};
export default RelationshipA;

View File

@@ -1,65 +0,0 @@
import { CollectionConfig } from '../../src/collections/config/types';
const RelationshipB: CollectionConfig = {
slug: 'relationship-b',
access: {
read: () => true,
},
admin: {
useAsTitle: 'title',
},
labels: {
singular: 'Relationship B',
plural: 'Relationship B',
},
fields: [
{
name: 'title',
type: 'text',
},
{
name: 'disableRelation', // used on RelationshipA.filterRelationship field
type: 'checkbox',
required: true,
admin: {
position: 'sidebar',
},
},
{
name: 'post',
label: 'Post',
type: 'relationship',
relationTo: 'relationship-a',
localized: false,
hasMany: true,
},
{
name: 'postManyRelationships',
label: 'Post Many Relationships',
type: 'relationship',
relationTo: ['relationship-a', 'media'],
localized: true,
hasMany: false,
},
{
name: 'localizedPosts',
label: 'Localized Posts',
type: 'relationship',
hasMany: true,
relationTo: ['localized-posts', 'previewable-post'],
},
{
name: 'nonLocalizedRelationToMany',
type: 'relationship',
relationTo: ['localized-posts', 'relationship-a'],
},
{
name: 'strictAccess',
type: 'relationship',
relationTo: 'strict-access',
},
],
timestamps: true,
};
export default RelationshipB;

View File

@@ -1,112 +0,0 @@
import Button from '../client/components/richText/elements/Button';
import PurpleBackground from '../client/components/richText/leaves/PurpleBackground';
import { CollectionConfig } from '../../src/collections/config/types';
const RichText: CollectionConfig = {
slug: 'rich-text',
labels: {
singular: 'Rich Text',
plural: 'Rich Texts',
},
access: {
read: ({ req }) => {
if (req.user) return true;
return {
_status: {
equals: 'published',
},
};
},
},
versions: {
drafts: {
autosave: false,
},
},
admin: {
preview: () => 'https://payloadcms.com',
useAsTitle: 'title',
},
fields: [
{
name: 'title',
type: 'text',
},
{
name: 'defaultRichText',
type: 'richText',
label: 'Default Rich Text',
required: true,
admin: {
upload: {
collections: {
media: {
fields: [
{
type: 'richText',
name: 'caption',
label: 'Caption',
},
{
type: 'row',
fields: [
{
type: 'relationship',
relationTo: 'admins',
name: 'linkToAdmin',
label: 'Link to Admin',
},
{
type: 'select',
name: 'imageAlignment',
label: 'Image Alignment',
options: [
{
label: 'Left',
value: 'left',
},
{
label: 'Center',
value: 'center',
},
{
label: 'Right',
value: 'right',
},
],
},
],
},
{
type: 'checkbox',
name: 'wrapText',
label: 'Wrap Text',
},
],
},
},
},
},
},
{
name: 'customRichText',
type: 'richText',
label: 'Customized Rich Text',
required: true,
admin: {
elements: [
'h2',
'h3',
Button,
],
leaves: [
'bold',
PurpleBackground,
],
},
},
],
};
export default RichText;

View File

@@ -1,99 +0,0 @@
import { CollectionConfig } from '../../src/collections/config/types';
const Select: CollectionConfig = {
slug: 'select',
labels: {
singular: 'Select',
plural: 'Selects',
},
fields: [
{
name: 'select',
type: 'select',
options: [{
value: 'one',
label: 'One',
}, {
value: 'two',
label: 'Two',
}, {
value: 'three',
label: 'Three',
}],
label: 'Select From',
required: true,
},
{
name: 'selectHasMany',
type: 'select',
options: [{
value: 'one',
label: 'One',
}, {
value: 'two',
label: 'Two',
}, {
value: 'three',
label: 'Three',
}],
label: 'Select HasMany',
required: true,
hasMany: true,
},
{
name: 'selectJustStrings',
type: 'select',
options: ['blue', 'green', 'yellow'],
label: 'Select Just Strings',
required: true,
hasMany: true,
},
{
name: 'selectWithEmptyString',
type: 'select',
defaultValue: '',
options: [{
value: '',
label: 'None',
}, {
value: 'option',
label: 'Option',
}],
required: true,
},
{
name: 'radio',
type: 'radio',
options: [{
value: 'one',
label: 'One',
}, {
value: 'two',
label: 'Two',
}, {
value: 'three',
label: 'Three',
}],
label: 'Choose From',
required: true,
},
{
name: 'radioWithEmptyString',
type: 'radio',
defaultValue: '',
options: [{
value: '',
label: 'None',
}, {
value: 'one',
label: 'One',
}, {
value: 'two',
label: 'Two',
}],
required: true,
},
],
};
export default Select;

View File

@@ -1,76 +0,0 @@
import { CollectionConfig } from '../../src/collections/config/types';
import checkRole from '../access/checkRole';
const StrictAccess: CollectionConfig = {
slug: 'strict-access',
labels: {
singular: 'Strict Access',
plural: 'Strict Access',
},
admin: {
useAsTitle: 'address',
},
access: {
create: () => true,
read: ({ req: { user } }) => {
if (checkRole(['admin'], user)) {
return true;
}
if (user) {
return {
owner: {
equals: user.id,
},
};
}
return false;
},
update: ({ req: { user } }) => {
if (checkRole(['admin'], user)) {
return true;
}
if (user) {
return {
owner: {
equals: user.id,
},
};
}
return false;
},
delete: ({ req: { user } }) => checkRole(['admin'], user),
},
fields: [
{
name: 'address',
type: 'text',
label: 'Address',
required: true,
},
{
name: 'city',
type: 'text',
label: 'City',
required: true,
},
{
name: 'state',
type: 'text',
label: 'State',
required: true,
},
{
name: 'zip',
type: 'number',
label: 'ZIP Code',
required: true,
},
],
timestamps: true,
};
export default StrictAccess;

View File

@@ -1,25 +0,0 @@
import { CollectionConfig } from '../../src/collections/config/types';
const Uniques: CollectionConfig = {
slug: 'uniques',
labels: {
singular: 'Unique',
plural: 'Uniques',
},
fields: [
{
name: 'title',
type: 'text',
label: 'Title',
required: true,
unique: true,
},
{
name: 'description',
type: 'textarea',
label: 'Description',
},
],
};
export default Uniques;

View File

@@ -1,35 +0,0 @@
import { CollectionConfig } from '../../src/collections/config/types';
const UnstoredMedia: CollectionConfig = {
slug: 'unstored-media',
labels: {
singular: 'Unstored Media',
plural: 'Unstored Media',
},
access: {
read: () => true,
},
upload: {
staticURL: '/unstored-media',
disableLocalStorage: true,
imageSizes: [
{
name: 'tablet',
width: 640,
height: 480,
crop: 'left top',
},
],
},
fields: [
{
name: 'alt',
label: 'Alt Text',
type: 'text',
required: true,
localized: true,
},
],
};
export default UnstoredMedia;

View File

@@ -1,141 +0,0 @@
import { CollectionConfig } from '../../src/collections/config/types';
const Validations: CollectionConfig = {
slug: 'validations',
labels: {
singular: 'Validation',
plural: 'Validations',
},
access: {
read: () => true,
},
fields: [
{
name: 'validationOptions',
type: 'text',
label: 'Text with siblingData Validation',
required: true,
validate: (value: string, { data, siblingData, id, operation, user }) => {
if (typeof value === 'undefined') {
return 'Validation is missing value';
}
if (data?.text !== 'test') {
return 'The next field should be test';
}
if (siblingData?.text !== 'test') {
return 'The next field should be test';
}
if (!user) {
return 'ValidationOptions is missing "user"';
}
if (typeof operation === 'undefined') {
return 'ValidationOptions is missing "operation"';
}
if (operation === 'update' && typeof id === 'undefined') {
return 'ValidationOptions is missing "id"';
}
return true;
},
},
{
name: 'text',
type: 'text',
label: 'Text',
required: true,
validate: (value) => {
const result = value === 'test';
if (!result) {
return 'The only accepted value of this field is "test".';
}
return true;
},
},
{
type: 'row',
fields: [
{
name: 'lessThan10',
label: 'Less than 10',
type: 'number',
required: true,
validate: (value) => {
const result = parseInt(value, 10) < 10;
if (!result) {
return 'The value of this field needs to be less than 10.';
}
return true;
},
}, {
name: 'greaterThan10LessThan50',
label: 'Greater than 10, Less than 50',
type: 'number',
required: true,
min: 10,
max: 50,
},
],
},
{
type: 'array',
label: 'Should have at least 3 rows',
name: 'atLeast3Rows',
required: true,
validate: (value) => {
const result = value >= 3;
if (!result) {
return 'This array needs to have at least 3 rows.';
}
return true;
},
fields: [
{
type: 'number',
name: 'greaterThan30',
label: 'Number should be greater than 30',
required: true,
validate: (value) => {
const result = value > 30;
if (!result) {
return 'This value of this field needs to be greater than 30.';
}
return true;
},
},
],
},
{
type: 'array',
label: 'Default array validation',
name: 'array',
required: true,
fields: [
{
type: 'number',
name: 'lessThan20',
label: 'Number should be less than 20',
required: true,
validate: (value) => {
const result = value < 20;
if (!result) {
return 'This value of this field needs to be less than 20.';
}
return true;
},
},
],
},
],
};
export default Validations;

View File

@@ -1,15 +0,0 @@
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="application-name" content="My Payload Application" />
</head>
<body>
<div id="app"></div>
<div id="portal"></div>
</body>
</html>

View File

@@ -1,9 +0,0 @@
import React from 'react';
const CollectionDescription: React.FC = () => (
<div>
Collection description
</div>
);
export default CollectionDescription;

View File

@@ -1,11 +0,0 @@
import React from 'react';
const CustomDescriptionComponent: React.FC = ({ value }) => (
<div>
Character count:
{' '}
{ value?.length || 0 }
</div>
);
export default CustomDescriptionComponent;

View File

@@ -1,5 +0,0 @@
import React from 'react';
const CustomAccountView: React.FC = () => <div>fake account view</div>;
export default CustomAccountView;

View File

@@ -1,5 +0,0 @@
import React from 'react';
const CustomDashboardView: React.FC = () => <div>fake dashboard view</div>;
export default CustomDashboardView;

View File

@@ -1,43 +0,0 @@
import checkRole from '../access/checkRole';
import Quote from '../blocks/Quote';
import CallToAction from '../blocks/CallToAction';
import { GlobalConfig } from '../../src/globals/config/types';
const BlocksGlobal: GlobalConfig = {
slug: 'blocks-global',
label: 'Blocks Global',
versions: {
max: 20,
drafts: {
autosave: true,
},
},
access: {
update: ({ req: { user } }) => checkRole(['admin'], user),
read: ({ draft, req: { user } }) => {
// To read a draft of this global, you need to be authenticated
if (draft) {
return Boolean(user);
}
return true;
},
},
fields: [
{
name: 'title',
type: 'text',
required: true,
localized: true,
},
{
name: 'blocks',
label: 'Blocks',
type: 'blocks',
blocks: [Quote, CallToAction],
localized: true,
},
],
};
export default BlocksGlobal;

View File

@@ -1,37 +0,0 @@
import { GlobalConfig } from '../../src/globals/config/types';
import checkRole from '../access/checkRole';
const GlobalWithAccess: GlobalConfig = {
slug: 'global-with-access',
label: 'Global with Strict Access',
access: {
update: ({ req: { user } }) => checkRole(['admin'], user),
read: ({ req: { user } }) => checkRole(['admin'], user),
},
fields: [
{
name: 'title',
label: 'Site Title',
type: 'text',
maxLength: 100,
required: true,
},
{
name: 'relationship',
label: 'Test Relationship',
type: 'relationship',
relationTo: 'localized-posts',
hasMany: true,
required: true,
},
{
name: 'singleRelationship',
label: 'Test Single Relationship',
type: 'relationship',
relationTo: 'localized-posts',
required: true,
},
],
};
export default GlobalWithAccess;

Some files were not shown because too many files have changed in this diff Show More