@directus/app 9.5.0 → 9.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/@directus_extensions-sdk.3cf05510.entry.js +1 -0
- package/dist/assets/{active-line.116e8a0f.js → active-line.6d34314c.js} +1 -1
- package/dist/assets/{activity-log.809685f3.js → activity-log.66ed5d6c.js} +1 -1
- package/dist/assets/{activity.21011780.js → activity.cc14795b.js} +3 -3
- package/dist/assets/{apl.5ef647d4.js → apl.2ad16f17.js} +1 -1
- package/dist/assets/article-overview.86ef3f76.png +0 -0
- package/dist/assets/{asciiarmor.99affac2.js → asciiarmor.336dc2e3.js} +1 -1
- package/dist/assets/{asn.1.23fb8a38.js → asn.1.25e6a7c5.js} +1 -1
- package/dist/assets/{asterisk.5dd5867e.js → asterisk.2773a853.js} +1 -1
- package/dist/assets/{authentication.ad0509db.js → authentication.5ec9ad8a.js} +4 -4
- package/dist/assets/{autorefresh.4de3a6ca.js → autorefresh.30ac5e2f.js} +1 -1
- package/dist/assets/{aws.8982a19c.js → aws.e33862c0.js} +1 -1
- package/dist/assets/{backing-directus.fd9c0b9e.js → backing-directus.1337e62f.js} +1 -1
- package/dist/assets/{bg-BG.280f817c.js → bg-BG.177b7163.js} +1 -1
- package/dist/assets/{brainfuck.bc87fd47.js → brainfuck.5af1e43d.js} +1 -1
- package/dist/assets/{cli.e6034ea9.js → cli.0d34ef7d.js} +13 -11
- package/dist/assets/{cli.bd4ff238.js → cli.5b3b9963.js} +2 -2
- package/dist/assets/{clike.6c2d1b48.js → clike.543490fd.js} +1 -1
- package/dist/assets/{clojure.1ce4fa8e.js → clojure.9f5468f0.js} +1 -1
- package/dist/assets/{cloudron.f44c1f67.js → cloudron.823254d1.js} +1 -1
- package/dist/assets/cmake.d5ff0ab2.js +1 -0
- package/dist/assets/{cobol.c31c9527.js → cobol.d1205c4d.js} +1 -1
- package/dist/assets/{codebase-overview.a3da6d8b.js → codebase-overview.f51b759c.js} +1 -1
- package/dist/assets/{coffeescript.b4b599ef.js → coffeescript.f4b30f40.js} +1 -1
- package/dist/assets/collection-overview.f5f4bdd0.png +0 -0
- package/dist/assets/{collections.a881ee76.js → collections.064a3bd6.js} +3 -3
- package/dist/assets/{commonlisp.7ddac9a9.js → commonlisp.9a02cefb.js} +1 -1
- package/dist/assets/{config-options.fcabecb0.js → config-options.7098eca6.js} +2 -2
- package/dist/assets/{content-collections.c0245556.js → content-collections.ece14f28.js} +1 -1
- package/dist/assets/{content-items.5f6c8054.js → content-items.e9c73ca6.js} +1 -1
- package/dist/assets/content.1091e52f.js +1 -0
- package/dist/assets/{creating-extensions.3bd54c03.js → creating-extensions.b6c76056.js} +3 -3
- package/dist/assets/{crystal.dde76d21.js → crystal.6e2bb73a.js} +1 -1
- package/dist/assets/{css.d4d7bd7b.js → css.bd97e209.js} +1 -1
- package/dist/assets/{cypher.5d6b6bb6.js → cypher.120e49e2.js} +1 -1
- package/dist/assets/{d.cc41caa4.js → d.a0adfdc1.js} +1 -1
- package/dist/assets/{dart.f3c45c4c.js → dart.2b866b57.js} +1 -1
- package/dist/assets/data-model.0637636b.js +1 -0
- package/dist/assets/de-DE.aa267b89.js +1 -0
- package/dist/assets/{diff.c1542639.js → diff.5f519d5f.js} +1 -1
- package/dist/assets/digitalocean-app-platform.7819a966.js +3 -0
- package/dist/assets/{displays.30e705b7.js → displays.6a4daf50.js} +5 -5
- package/dist/assets/{django.c4edc48a.js → django.41c6c2a0.js} +1 -1
- package/dist/assets/{docker.25994fc0.js → docker.49871af8.js} +1 -1
- package/dist/assets/{dockerfile.5693a227.js → dockerfile.87f55929.js} +1 -1
- package/dist/assets/{documentation.b680c6e6.js → documentation.fad370ee.js} +1 -1
- package/dist/assets/{dtd.32c5f33d.js → dtd.2128151b.js} +1 -1
- package/dist/assets/{dylan.43169119.js → dylan.baab8db7.js} +1 -1
- package/dist/assets/{ebnf.1ff40cbe.js → ebnf.36149d6d.js} +1 -1
- package/dist/assets/{ecl.3a604120.js → ecl.66a969cc.js} +1 -1
- package/dist/assets/{eiffel.01caf57f.js → eiffel.4fd5f845.js} +1 -1
- package/dist/assets/elm.6d0378b9.js +1 -0
- package/dist/assets/{email-templates.16a93b70.js → email-templates.d7413ac1.js} +2 -2
- package/dist/assets/{endpoints.7539ee8c.js → endpoints.a31864aa.js} +2 -2
- package/dist/assets/{erlang.ce39711a.js → erlang.f0e6cc30.js} +1 -1
- package/dist/assets/es-419.acfe801e.js +1 -0
- package/dist/assets/{extensions.53c9a780.js → extensions.6669c998.js} +2 -2
- package/dist/assets/{factor.4af6f1df.js → factor.3893c637.js} +1 -1
- package/dist/assets/{faq.ff43f889.js → faq.225071a3.js} +1 -1
- package/dist/assets/{fcl.fff56dfe.js → fcl.7378bd6e.js} +1 -1
- package/dist/assets/{fields.343f5ff9.js → fields.8ac43b39.js} +3 -3
- package/dist/assets/file-library-overview.b41d2005.png +0 -0
- package/dist/assets/file-library.85190425.js +1 -0
- package/dist/assets/file-overview.c28ace50.png +0 -0
- package/dist/assets/{files.00a84d8b.js → files.4be2b7d8.js} +10 -10
- package/dist/assets/{filter-rules.1d359ed5.js → filter-rules.da1f7a0c.js} +2 -2
- package/dist/assets/{folders.9b1b4b91.js → folders.fda5443a.js} +4 -4
- package/dist/assets/{forth.a11494d0.js → forth.92be39ae.js} +1 -1
- package/dist/assets/{fortran.461d648e.js → fortran.63e04dee.js} +1 -1
- package/dist/assets/fr-CA.00ffaa22.js +1 -0
- package/dist/assets/fr-FR.0b2acd5f.js +1 -0
- package/dist/assets/{gas.87370c00.js → gas.12ab5fd7.js} +1 -1
- package/dist/assets/{gcp.66b4d0d5.js → gcp.b79ff7ab.js} +15 -4
- package/dist/assets/{gfm.0d1c73a1.js → gfm.7ee80754.js} +1 -1
- package/dist/assets/{gherkin.144c9510.js → gherkin.919f3328.js} +1 -1
- package/dist/assets/{github-ci.6c0892e9.js → github-ci.ecfe6bcc.js} +2 -2
- package/dist/assets/glossary.0a56cc9b.js +1 -0
- package/dist/assets/{go.5d2b15cd.js → go.237d6144.js} +1 -1
- package/dist/assets/{groovy.98c0ab23.js → groovy.492fc790.js} +1 -1
- package/dist/assets/{haml.5483f001.js → haml.334d5557.js} +1 -1
- package/dist/assets/{handlebars.c6cd39d7.js → handlebars.ff8e7285.js} +1 -1
- package/dist/assets/{haskell-literate.f935039d.js → haskell-literate.882e524e.js} +1 -1
- package/dist/assets/{haskell.90b3655f.js → haskell.22676b92.js} +1 -1
- package/dist/assets/{haxe.9d2e7d67.js → haxe.3d65e7b4.js} +1 -1
- package/dist/assets/{hooks.d18ce175.js → hooks.4528122b.js} +1 -1
- package/dist/assets/{htmlembedded.855a258a.js → htmlembedded.a9785cf4.js} +1 -1
- package/dist/assets/{htmlmixed.7c87b0f0.js → htmlmixed.a7e052a7.js} +1 -1
- package/dist/assets/{http.5613c227.js → http.0a3b81f0.js} +1 -1
- package/dist/assets/{idl.45cf818e.js → idl.fac301bd.js} +1 -1
- package/dist/assets/{iis.d53945ae.js → iis.5bf49b8f.js} +2 -2
- package/dist/assets/{index.4941752f.js → index.04b70838.js} +1 -1
- package/dist/assets/{index.5c98ffde.js → index.063518b5.js} +1 -1
- package/dist/assets/{index.fb3c7ac0.js → index.0adc5df5.js} +1 -1
- package/dist/assets/{index.59a04935.js → index.0ae37273.js} +1 -1
- package/dist/assets/{index.714243aa.js → index.0c331bf1.js} +1 -1
- package/dist/assets/{index.19fb6927.js → index.0e9bbd23.js} +6 -6
- package/dist/assets/{index.6754f5ff.js → index.17a41c6f.js} +1 -1
- package/dist/assets/{index.9e449c69.js → index.18ffc04f.js} +1 -1
- package/dist/assets/{index.8de95117.js → index.190da52d.js} +1 -1
- package/dist/assets/{index.84e91583.js → index.1fb7c96e.js} +1 -1
- package/dist/assets/{index.62328d13.js → index.2a8495be.js} +1 -1
- package/dist/assets/{index.aab3ad32.js → index.2c9ea780.js} +1 -1
- package/dist/assets/{index.a4097a5e.js → index.2cbdf5a0.js} +1 -1
- package/dist/assets/{index.8407c6cb.js → index.30554737.js} +1 -1
- package/dist/assets/{index.78970693.js → index.324f5e2b.js} +1 -1
- package/dist/assets/{index.5c24f70c.js → index.32dbcbf2.js} +1 -1
- package/dist/assets/{index.fe26f195.js → index.33ba115d.js} +1 -1
- package/dist/assets/{index.4191f62b.js → index.35cb22c1.js} +1 -1
- package/dist/assets/{index.48f9411c.js → index.36fb5a72.js} +1 -1
- package/dist/assets/{index.e3c8b335.js → index.374349c1.js} +1 -1
- package/dist/assets/{index.3d49cc07.js → index.38548ee0.js} +1 -1
- package/dist/assets/{index.4392b262.js → index.395fae9e.js} +1 -1
- package/dist/assets/{index.78ccd967.js → index.3c746c21.js} +1 -1
- package/dist/assets/{index.171487e6.css → index.43280c70.css} +1 -1
- package/dist/assets/{index.6abc4c4a.js → index.4ab0d6c4.js} +1 -1
- package/dist/assets/{index.97672267.js → index.4d1dceef.js} +1 -1
- package/dist/assets/{index.ab6dcaea.js → index.4db93bd3.js} +1 -1
- package/dist/assets/{index.b851dbc5.js → index.4e8d7951.js} +1 -1
- package/dist/assets/{index.3f3d9fa8.js → index.534ed83b.js} +1 -1
- package/dist/assets/{index.71391947.js → index.57b78798.js} +1 -1
- package/dist/assets/{index.80cc5b1a.js → index.5b18068a.js} +1 -1
- package/dist/assets/{index.8ff3a54b.js → index.5bb5011a.js} +1 -1
- package/dist/assets/{index.37b78477.js → index.62dc6f98.js} +1 -1
- package/dist/assets/{index.c048a125.js → index.64fceca2.js} +1 -1
- package/dist/assets/{index.87b8fa32.js → index.6b133e41.js} +1 -1
- package/dist/assets/{index.bc098053.js → index.6bab7763.js} +1 -1
- package/dist/assets/{index.c425fe84.js → index.6c8a6f17.js} +1 -1
- package/dist/assets/{index.5c5e0c4e.js → index.713639ce.js} +1 -1
- package/dist/assets/{index.d82c8cfa.js → index.714fac13.js} +1 -1
- package/dist/assets/{index.bb84b1bd.js → index.775dfdc1.js} +1 -1
- package/dist/assets/index.7af4eb85.entry.js +531 -0
- package/dist/assets/{index.ba6d2e1d.js → index.7b5b2b11.js} +1 -1
- package/dist/assets/{index.55963003.js → index.7b9af633.js} +1 -1
- package/dist/assets/{index.0a4e2361.js → index.81a51a62.js} +1 -1
- package/dist/assets/{index.e22f8abe.js → index.8b1b9273.js} +1 -1
- package/dist/assets/{index.76c0176c.js → index.8de84e0a.js} +1 -1
- package/dist/assets/{index.c2200ee4.js → index.90a09533.js} +1 -1
- package/dist/assets/{index.702d69f2.js → index.948899e1.js} +1 -1
- package/dist/assets/{index.e382ecdc.js → index.94b6142e.js} +1 -1
- package/dist/assets/{index.1b6c82d7.js → index.9611946d.js} +1 -1
- package/dist/assets/{index.732d90e6.js → index.9b0d3651.js} +1 -1
- package/dist/assets/{index.ed1c4be4.js → index.9cd9812a.js} +1 -1
- package/dist/assets/{index.8da1270b.js → index.a1cb4c13.js} +1 -1
- package/dist/assets/{index.3a46f49f.js → index.a4b9b487.js} +1 -1
- package/dist/assets/{index.9c05f463.js → index.a504aee5.js} +1 -1
- package/dist/assets/{index.4c2797ca.js → index.a870dd39.js} +1 -1
- package/dist/assets/{index.bca97bd3.js → index.a9aa949b.js} +1 -1
- package/dist/assets/{index.da02233c.js → index.ac05a9e7.js} +1 -1
- package/dist/assets/{index.9f8531c9.js → index.aca2fbce.js} +1 -1
- package/dist/assets/{index.ddff35c7.js → index.b15bbf59.js} +1 -1
- package/dist/assets/{index.28b997d4.js → index.b4db1ec0.js} +1 -1
- package/dist/assets/{index.b3e4a522.js → index.b71684e3.js} +1 -1
- package/dist/assets/{index.7a5e06da.js → index.b8487b1d.js} +1 -1
- package/dist/assets/{index.6143d636.js → index.be99047d.js} +1 -1
- package/dist/assets/{index.bf27b868.js → index.c0b38d5d.js} +1 -1
- package/dist/assets/{index.d068ed25.js → index.c172fe45.js} +1 -1
- package/dist/assets/{index.05574ccd.js → index.c503ba3f.js} +1 -1
- package/dist/assets/{index.9a1e39d1.js → index.cda9c09a.js} +1 -1
- package/dist/assets/{index.2069cd25.js → index.cf0076d3.js} +1 -1
- package/dist/assets/{index.847d77c1.js → index.cf7cc265.js} +1 -1
- package/dist/assets/{index.30151efc.js → index.d0faaeb2.js} +1 -1
- package/dist/assets/{index.03a7f3bc.js → index.d122fc87.js} +1 -1
- package/dist/assets/{index.bb6a02dc.js → index.d2c590ba.js} +1 -1
- package/dist/assets/{index.fded5c41.js → index.d7fea83b.js} +1 -1
- package/dist/assets/{index.1cbcb585.js → index.dc3f8342.js} +1 -1
- package/dist/assets/{index.7411c17e.js → index.dfb4d31b.js} +1 -1
- package/dist/assets/{index.ca9b3837.js → index.e0bf3865.js} +1 -1
- package/dist/assets/{index.f79a8990.js → index.e3384276.js} +1 -1
- package/dist/assets/{index.625b2c3c.js → index.e81a390a.js} +1 -1
- package/dist/assets/{index.ae92e9ed.js → index.ec02f495.js} +1 -1
- package/dist/assets/{index.083b60db.js → index.f5dcea21.js} +1 -1
- package/dist/assets/{index.07813a74.js → index.f79fe5d2.js} +1 -1
- package/dist/assets/{index.b267e02a.js → index.f828d625.js} +1 -1
- package/dist/assets/{input-rich-text-html.d03d46a8.css → input-rich-text-html.80761684.css} +1 -1
- package/dist/assets/{input-rich-text-html.65ba73f7.js → input-rich-text-html.a83f04a4.js} +5 -5
- package/dist/assets/insights.e3562dc5.js +1 -0
- package/dist/assets/{installation.25a626fb.js → installation.d26988a1.js} +1 -1
- package/dist/assets/{interfaces.0d2bde70.js → interfaces.7b56a1f6.js} +3 -3
- package/dist/assets/{introduction.95c347fa.js → introduction.186ea1c2.js} +1 -1
- package/dist/assets/{introduction.f71eead0.js → introduction.8bc94b3b.js} +1 -1
- package/dist/assets/{introduction.39f4e226.js → introduction.c8833986.js} +1 -1
- package/dist/assets/{introduction.07eddd48.js → introduction.e862a41c.js} +4 -4
- package/dist/assets/it-IT.12117185.js +1 -0
- package/dist/assets/{items.f84cadfc.js → items.5070c7cb.js} +4 -4
- package/dist/assets/{javascript-hint.5bdb0231.js → javascript-hint.b144c8de.js} +1 -1
- package/dist/assets/{javascript.29241fdc.js → javascript.40e26531.js} +1 -1
- package/dist/assets/{jinja2.39842bae.js → jinja2.88480640.js} +1 -1
- package/dist/assets/jsx.d71b99b9.js +1 -0
- package/dist/assets/{julia.ad6c52d8.js → julia.d16cf79c.js} +1 -1
- package/dist/assets/ko-KR.b5ed9ca7.js +1 -0
- package/dist/assets/{layouts.47ea97ab.js → layouts.ca9fafb4.js} +4 -4
- package/dist/assets/{livescript.ee260a8e.js → livescript.92db6aa4.js} +1 -1
- package/dist/assets/{localization.bf31e95e.js → localization.2cbec683.js} +1 -1
- package/dist/assets/{lua.fcab0a17.js → lua.c89a03a0.js} +1 -1
- package/dist/assets/{manual.817bb41a.js → manual.b46e3870.js} +4 -4
- package/dist/assets/{mark-selection.14bd39dc.js → mark-selection.568b46ae.js} +1 -1
- package/dist/assets/{match-highlighter.e1f4ebb8.js → match-highlighter.03ac7c48.js} +1 -1
- package/dist/assets/{mathematica.4c290bd7.js → mathematica.d93d953c.js} +1 -1
- package/dist/assets/{mbox.fbea4820.js → mbox.6a756fb0.js} +1 -1
- package/dist/assets/{migrations.1fc0576b.js → migrations.3d2a34de.js} +1 -1
- package/dist/assets/{mirc.acdeecf7.js → mirc.f3166b71.js} +1 -1
- package/dist/assets/{mllike.4a02b532.js → mllike.30ca2866.js} +1 -1
- package/dist/assets/{modelica.85d5e0b2.js → modelica.53ca7e82.js} +1 -1
- package/dist/assets/{modules.aa9cac56.js → modules.2533e6f7.js} +3 -3
- package/dist/assets/{mscgen.2c9167b3.js → mscgen.57208a49.js} +1 -1
- package/dist/assets/{multiplex.c15f482c.js → multiplex.08d43a90.js} +2 -2
- package/dist/assets/{mumps.6a681e98.js → mumps.35e9490e.js} +1 -1
- package/dist/assets/{nginx.82a8c85b.js → nginx.6e11e9f9.js} +1 -1
- package/dist/assets/nl-NL.01bfcc35.js +1 -0
- package/dist/assets/{notifications.3798c5e9.js → notifications.fea8d4c4.js} +4 -4
- package/dist/assets/{nsis.de3724d7.js → nsis.53e47910.js} +1 -1
- package/dist/assets/{ntriples.a29d8bcb.js → ntriples.a049a5c9.js} +1 -1
- package/dist/assets/{octave.f67bef4b.js → octave.96253883.js} +1 -1
- package/dist/assets/{overlay.b3e1f82e.js → overlay.6a10de99.js} +1 -1
- package/dist/assets/{overview.54c9613c.js → overview.5483f71c.js} +1 -1
- package/dist/assets/overview.62c5e348.js +1 -0
- package/dist/assets/{oz.ce2f819e.js → oz.a4fae36d.js} +1 -1
- package/dist/assets/{panels.0c7e4633.js → panels.bebf918f.js} +3 -3
- package/dist/assets/{pascal.db0b64f7.js → pascal.59a7db39.js} +1 -1
- package/dist/assets/{pegjs.c5c07f6b.js → pegjs.7f9022ee.js} +1 -1
- package/dist/assets/{perl.44cf4d10.js → perl.205584d7.js} +1 -1
- package/dist/assets/{permissions.1444fce3.js → permissions.c84e9940.js} +4 -4
- package/dist/assets/{php.17effd63.js → php.ecedf73e.js} +1 -1
- package/dist/assets/{pig.4447f159.js → pig.219ccd88.js} +1 -1
- package/dist/assets/pinia.2ded1a30.entry.js +1 -0
- package/dist/assets/pl-PL.b682b73e.js +1 -0
- package/dist/assets/{plesk.daedfdec.js → plesk.4bf1fae2.js} +3 -3
- package/dist/assets/{powershell.1f264757.js → powershell.d1ed864a.js} +1 -1
- package/dist/assets/presets-bookmarks.58587602.js +1 -0
- package/dist/assets/{presets.dc6baaec.js → presets.34b168d1.js} +1 -1
- package/dist/assets/{project-settings.1a98dfa5.js → project-settings.42d5f9c2.js} +1 -1
- package/dist/assets/{properties.0d8a6aae.js → properties.dda8a0c7.js} +1 -1
- package/dist/assets/{protobuf.df95db32.js → protobuf.7521b574.js} +1 -1
- package/dist/assets/pt-BR.5d2cff88.js +1 -0
- package/dist/assets/{pug.8d41d1be.js → pug.b1804d25.js} +1 -1
- package/dist/assets/{puppet.0d6bcdab.js → puppet.74373bd4.js} +1 -1
- package/dist/assets/{python.6643b699.js → python.e9c10263.js} +1 -1
- package/dist/assets/{q.5a04e18a.js → q.6e4ce851.js} +1 -1
- package/dist/assets/{query.7f986fd7.js → query.8f0b770d.js} +4 -4
- package/dist/assets/{quickstart.159dd1ff.js → quickstart.80242153.js} +3 -3
- package/dist/assets/{r.f3a2cf7a.js → r.364f4683.js} +1 -1
- package/dist/assets/{relations.6d91ed11.js → relations.69d90d24.js} +1 -1
- package/dist/assets/{relationships.33fbbfc0.js → relationships.ac91c590.js} +5 -5
- package/dist/assets/{revisions.0e3bd24b.js → revisions.cc89f55e.js} +2 -2
- package/dist/assets/ro-RO.cbc76b89.js +1 -0
- package/dist/assets/{roles.95ebb028.js → roles.48ceba6d.js} +7 -7
- package/dist/assets/{rpm.756f8c88.js → rpm.507c17f5.js} +1 -1
- package/dist/assets/rst.3ebce1b8.js +1 -0
- package/dist/assets/{ru-RU.230415aa.js → ru-RU.b5582235.js} +1 -1
- package/dist/assets/{ruby.3c0e57e9.js → ruby.f21dab2b.js} +1 -1
- package/dist/assets/{running-locally.29a0f2d9.js → running-locally.50bd627b.js} +4 -4
- package/dist/assets/{rust.7ef79fbc.js → rust.7eb73218.js} +1 -1
- package/dist/assets/{sas.f21126e1.js → sas.e3ef6c88.js} +1 -1
- package/dist/assets/{sass.ab45f48c.js → sass.9e649df5.js} +1 -1
- package/dist/assets/{scheme.c6be56b9.js → scheme.7a001213.js} +1 -1
- package/dist/assets/{sdk.43fd35f7.js → sdk.fb856e77.js} +47 -47
- package/dist/assets/{security.93aa3fa6.js → security.17eafeaa.js} +1 -1
- package/dist/assets/{server.af830537.js → server.1eecb229.js} +3 -3
- package/dist/assets/{settings.721cc223.js → settings.647a37d5.js} +1 -1
- package/dist/assets/{settings.d50c2dc3.js → settings.71512657.js} +4 -4
- package/dist/assets/{shell.821e3cd2.js → shell.0962d93f.js} +1 -1
- package/dist/assets/{show-hint.05df6eda.js → show-hint.e9fbbc4b.js} +1 -1
- package/dist/assets/sieve.6af3ccc7.js +1 -0
- package/dist/assets/{simple.a6c44ee7.js → simple.2235ba1e.js} +1 -1
- package/dist/assets/{slim.bf9a0a37.js → slim.40c1025a.js} +1 -1
- package/dist/assets/{smalltalk.c1484de8.js → smalltalk.8189fdc0.js} +1 -1
- package/dist/assets/{smarty.b7345017.js → smarty.cdcb9db5.js} +1 -1
- package/dist/assets/solr.9a8bccfa.js +1 -0
- package/dist/assets/{soy.e4f8442f.js → soy.e90a0965.js} +1 -1
- package/dist/assets/{sparql.d90a5254.js → sparql.2a1e619b.js} +1 -1
- package/dist/assets/{spreadsheet.d6d6876c.js → spreadsheet.5c6a58a1.js} +1 -1
- package/dist/assets/{sql.6e1011fe.js → sql.619134f5.js} +1 -1
- package/dist/assets/{sso.cdae46d9.js → sso.15d8311f.js} +4 -4
- package/dist/assets/{stex.dcc1c298.js → stex.d08542a5.js} +1 -1
- package/dist/assets/{stylus.c67ff4ff.js → stylus.d0fb8f7c.js} +1 -1
- package/dist/assets/{support.0591d87c.js → support.d1353668.js} +1 -1
- package/dist/assets/{swift.84099452.js → swift.f66b151d.js} +1 -1
- package/dist/assets/{tcl.2c52a2bf.js → tcl.a4b584af.js} +1 -1
- package/dist/assets/{textile.cc219320.js → textile.44eb1e19.js} +1 -1
- package/dist/assets/{themes.b1eb7ab6.js → themes.f20fd12b.js} +1 -1
- package/dist/assets/{tiddlywiki.3cd0302e.js → tiddlywiki.7ac72961.js} +1 -1
- package/dist/assets/{tiki.0cbe2322.js → tiki.072c562d.js} +1 -1
- package/dist/assets/{toml.c701ff10.js → toml.1c068984.js} +1 -1
- package/dist/assets/{tornado.3456d025.js → tornado.4dd1a5aa.js} +1 -1
- package/dist/assets/{translations.866c3e24.js → translations.b1bcc017.js} +1 -1
- package/dist/assets/{troff.2cb0b6c3.js → troff.f9041b19.js} +1 -1
- package/dist/assets/{ttcn-cfg.177a79d7.js → ttcn-cfg.af43e5b0.js} +1 -1
- package/dist/assets/{ttcn.615119d0.js → ttcn.9655edb3.js} +1 -1
- package/dist/assets/{turtle.9f74f9ab.js → turtle.c79431e1.js} +1 -1
- package/dist/assets/{twig.0498a8bd.js → twig.f2ca58fc.js} +1 -1
- package/dist/assets/{ubuntu.c24c1bbd.js → ubuntu.9358f45c.js} +1 -1
- package/dist/assets/{upgrades-migrations.d9e217c8.js → upgrades-migrations.4d55de78.js} +1 -1
- package/dist/assets/use-sync.8032b12d.js +1 -0
- package/dist/assets/user-directory-overview.69a80519.png +0 -0
- package/dist/assets/user-directory.00d32f4f.js +1 -0
- package/dist/assets/user-overview.5cc16f64.png +0 -0
- package/dist/assets/users-roles-permissions.c1282af0.js +1 -0
- package/dist/assets/{users.83f5130a.js → users.dcef8dce.js} +7 -7
- package/dist/assets/{utilities.833a9bee.js → utilities.20549f4c.js} +1 -1
- package/dist/assets/{vb.b20ab1c8.js → vb.e0bb0f3c.js} +1 -1
- package/dist/assets/{vbscript.f5b5895a.js → vbscript.1bf2a908.js} +1 -1
- package/dist/assets/{velocity.83212b52.js → velocity.fa905b51.js} +1 -1
- package/dist/assets/{vendor.9c15ff54.js → vendor.62e5a05d.js} +1 -1
- package/dist/assets/{verilog.65c681b4.js → verilog.76d34fc6.js} +1 -1
- package/dist/assets/{vhdl.b1ee8307.js → vhdl.9986a053.js} +1 -1
- package/dist/assets/vue-i18n.3a3605b7.entry.js +1 -0
- package/dist/assets/vue-router.74cb0c8d.entry.js +1 -0
- package/dist/assets/vue.01fe05ef.entry.js +1 -0
- package/dist/assets/{vue.6f8d3092.js → vue.9f9dbabf.js} +1 -1
- package/dist/assets/{wast.4d449e41.js → wast.ee96f878.js} +1 -1
- package/dist/assets/webhooks.afcddb72.js +1 -0
- package/dist/assets/{webhooks.59c32103.js → webhooks.d85993c6.js} +1 -1
- package/dist/assets/{webidl.0627d676.js → webidl.09b4846d.js} +1 -1
- package/dist/assets/{xquery.d15c12e9.js → xquery.f13c3599.js} +1 -1
- package/dist/assets/{yacas.cbcb8ee5.js → yacas.73705eb4.js} +1 -1
- package/dist/assets/yaml-frontmatter.d9710e50.js +1 -0
- package/dist/assets/{yaml.0f11002b.js → yaml.91118312.js} +1 -1
- package/dist/assets/{z80.65a8f8ed.js → z80.7da94b69.js} +1 -1
- package/dist/index.html +4 -4
- package/package.json +6 -6
- package/dist/assets/@directus_extensions-sdk.f1e1c1f8.entry.js +0 -1
- package/dist/assets/cmake.eaf1d3a6.js +0 -1
- package/dist/assets/content.c7aafb97.js +0 -1
- package/dist/assets/data-model.fce64021.js +0 -1
- package/dist/assets/de-DE.4cf007f5.js +0 -1
- package/dist/assets/digitalocean-app-platform.5d0d1f93.js +0 -3
- package/dist/assets/elm.6a194bb5.js +0 -1
- package/dist/assets/es-419.d31b2106.js +0 -1
- package/dist/assets/file-library.177b80e7.js +0 -1
- package/dist/assets/fr-CA.0325e87d.js +0 -1
- package/dist/assets/fr-FR.e0d247ce.js +0 -1
- package/dist/assets/glossary.3dae6249.js +0 -1
- package/dist/assets/index.3a276397.entry.js +0 -531
- package/dist/assets/insights.3cc829e4.js +0 -1
- package/dist/assets/it-IT.095b1e73.js +0 -1
- package/dist/assets/jsx.8de28f58.js +0 -1
- package/dist/assets/ko-KR.0b7b6298.js +0 -1
- package/dist/assets/nl-NL.0b898799.js +0 -1
- package/dist/assets/overview.fe32c908.js +0 -1
- package/dist/assets/pinia.20984854.entry.js +0 -1
- package/dist/assets/pl-PL.88d918cf.js +0 -1
- package/dist/assets/presets-bookmarks.f728cc5f.js +0 -1
- package/dist/assets/pt-BR.c8c96e63.js +0 -1
- package/dist/assets/ro-RO.b5957327.js +0 -1
- package/dist/assets/rst.6bc99bab.js +0 -1
- package/dist/assets/sieve.9a8aca75.js +0 -1
- package/dist/assets/solr.b8447a9b.js +0 -1
- package/dist/assets/use-sync.4163a308.js +0 -1
- package/dist/assets/user-directory.88f66846.js +0 -1
- package/dist/assets/users-roles-permissions.2c43c5a9.js +0 -1
- package/dist/assets/vue-i18n.eb71fdd3.entry.js +0 -1
- package/dist/assets/vue-router.568152dc.entry.js +0 -1
- package/dist/assets/vue.40191742.entry.js +0 -1
- package/dist/assets/webhooks.dcd21715.js +0 -1
- package/dist/assets/yaml-frontmatter.2536f248.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as a,p as r,q as h,w as s,z as e,t as n,
|
|
1
|
+
import{r as a,p as r,q as h,w as s,z as e,t as n,S as t}from"./vendor.62e5a05d.js";const d={class:"markdown-body"},p={class:"two-up"},u={class:"left"},_=t("Collections are the individual collections of items, similar to tables in a database. Changes to collections will alter the schema of the database. "),g=t("Learn more about Collections"),m=t("."),f=e("div",{class:"right"},[e("p",null,[e("div",{class:"table-of-contents"},[e("ul",null,[e("li",null,[e("a",{href:"#the-collection-object"},"The Collection Object")]),e("li",null,[e("a",{href:"#list-collections"},"List Collections")]),e("li",null,[e("a",{href:"#retrieve-a-collection"},"Retrieve a Collection")]),e("li",null,[e("a",{href:"#create-a-collection"},"Create a Collection")]),e("li",null,[e("a",{href:"#update-a-collection"},"Update a Collection")]),e("li",null,[e("a",{href:"#delete-a-collection"},"Delete a Collection")])])])])],-1),j=e("hr",null,null,-1),y=e("h2",{id:"the-collection-object"},[t("The Collection Object "),e("a",{class:"header-anchor",href:"#the-collection-object"},"#")],-1),b={class:"two-up"},v={class:"left"},q=e("div",{class:"definitions"},[e("p",null,[e("code",null,"collection"),t(),e("strong",null,"string"),e("br"),t(" Name of the collection. This matches the table name in the database.")])],-1),w=e("h4",{id:"meta"},[t("Meta "),e("a",{class:"header-anchor",href:"#meta"},"#")],-1),T=e("p",null,"Directus metadata, primarily used in the Admin App.",-1),x={class:"definitions"},A=e("p",null,[e("code",null,"collection"),t(),e("strong",null,"string"),e("br"),t(" Name of the collection. This matches the table name in the database.")],-1),C=e("p",null,[e("code",null,"icon"),t(),e("strong",null,"string"),e("br"),t(" Icon displayed in the Admin App when working with this collection.")],-1),S=e("p",null,[e("code",null,"note"),t(),e("strong",null,"string"),e("br"),t(" Short description displayed in the Admin App.")],-1),E=e("p",null,[e("code",null,"display_template"),t(),e("strong",null,"string"),e("br"),t(" How items in this collection should be displayed when viewed relationally in the Admin App.")],-1),k=e("p",null,[e("code",null,"hidden"),t(),e("strong",null,"boolean"),e("br"),t(" Whether or not this collection is hidden in the Admin App.")],-1),P=e("p",null,[e("code",null,"singleton"),t(),e("strong",null,"boolean"),e("br"),t(" Whether or not this collection is treated as a singleton.")],-1),R=e("p",null,[e("code",null,"translations"),t(),e("strong",null,"array"),e("br"),t(" How this collection\u2019s name is displayed in the different languages in the Admin App.")],-1),L=e("p",null,[e("code",null,"archive_field"),t(),e("strong",null,"string"),e("br"),t(" What field in the collection holds the archived state.")],-1),W=e("p",null,[e("code",null,"archive_value"),t(),e("strong",null,"string"),e("br"),t(" What value the archive field should be set to when archiving an item.")],-1),O=e("p",null,[e("code",null,"unarchive_value"),t(),e("strong",null,"string"),e("br"),t(" What value the archive field should be set to when unarchiving an item.")],-1),Q=e("p",null,[e("code",null,"archive_app_filter"),t(),e("strong",null,"boolean"),e("br"),t(" Whether or not the Admin App should allow the user to view archived items.")],-1),D=e("p",null,[e("code",null,"sort_field"),t(),e("strong",null,"boolean"),e("br"),t(" What field holds the sort value on the collection. The Admin App uses this to allow drag-and-drop manual sorting.")],-1),B=e("code",null,"accountability",-1),G=t(),H=e("strong",null,"string",-1),I=e("br",null,null,-1),N=t(" What data is tracked. One of "),M=e("code",null,"all",-1),U=t(", "),V=e("code",null,"activity",-1),Y=t(". See "),z=t("Accountability"),F=t(" for more information."),J=e("code",null,"item_duplication_fields",-1),K=t(),X=e("strong",null,"array",-1),Z=e("br",null,null,-1),$=t(" What fields are duplicated during \u201CSave as copy\u201D action of an item in this collection. See "),ee=t("Duplication"),te=t(" for more information."),se=e("code",null,"group",-1),le=t(),ne=e("strong",null,"string",-1),oe=e("br",null,null,-1),ae=t(" The name of the parent collection. This is used in "),ce=t("grouping/nesting of collections"),ie=t("."),re=e("code",null,"sort",-1),he=t(),de=e("strong",null,"number",-1),pe=e("br",null,null,-1),ue=t(" What sort order of the collection relative to other collections of the same level. This is used in "),_e=t("sorting of collections"),ge=t("."),me=e("p",null,[e("code",null,"collapse"),t(),e("strong",null,"string"),e("br"),t(" What is the default behavior of this collection or \u201Cfolder\u201D collection when it has nested collections. One of "),e("code",null,"open"),t(", "),e("code",null,"closed"),t(", "),e("code",null,"locked"),t(".")],-1),fe=e("h4",{id:"schema"},[t("Schema "),e("a",{class:"header-anchor",href:"#schema"},"#")],-1),je=e("p",null,"\u201CRaw\u201D database information. Based on the database vendor used, different information might be returned. The following are available for all drivers.",-1),ye=e("div",{class:"definitions"},[e("p",null,[e("code",null,"name"),t(),e("strong",null,"string"),e("br"),t(" The table name.")]),e("p",null,[e("code",null,"comment"),t(),e("strong",null,"string"),e("br"),t(" The table comment.")])],-1),be={class:"tip hint"},ve=t("\u201Cfolder\u201D collections do not hold any data"),qe=t(", hence their schema would be "),we=e("code",null,"null",-1),Te=t("."),xe=e("div",{class:"right"},[e("pre",null,[e("code",{class:"language-json"},[t(`{
|
|
2
2
|
`),e("span",{class:"hljs-attr"},'"collection"'),t(": "),e("span",{class:"hljs-string"},'"articles"'),t(`,
|
|
3
3
|
`),e("span",{class:"hljs-attr"},'"meta"'),t(`: {
|
|
4
4
|
`),e("span",{class:"hljs-attr"},'"collection"'),t(": "),e("span",{class:"hljs-string"},'"articles"'),t(`,
|
|
@@ -30,7 +30,7 @@ import{r as a,p as r,q as h,w as s,z as e,t as n,R as t}from"./vendor.9c15ff54.j
|
|
|
30
30
|
`),e("span",{class:"hljs-attr"},'"comment"'),t(": "),e("span",{class:"hljs-literal"},"null"),t(`
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
-
`)])])],-1),Ae=e("hr",null,null,-1),Ce=e("h2",{id:"list-collections"},[t("List Collections "),e("a",{class:"header-anchor",href:"#list-collections"},"#")],-1),
|
|
33
|
+
`)])])],-1),Ae=e("hr",null,null,-1),Ce=e("h2",{id:"list-collections"},[t("List Collections "),e("a",{class:"header-anchor",href:"#list-collections"},"#")],-1),Se=e("p",null,"List the available collections.",-1),Ee={class:"two-up"},ke=e("div",{class:"left"},[e("h3",{id:"query-parameters"},[t("Query Parameters "),e("a",{class:"header-anchor",href:"#query-parameters"},"#")]),e("p",null,"This endpoint doesn\u2019t currently support any query parameters."),e("h3",{id:"returns"},[t("Returns "),e("a",{class:"header-anchor",href:"#returns"},"#")]),e("p",null,[t("An array of "),e("a",{href:"#the-collection-object"},"collection objects"),t(".")])],-1),Pe={class:"right"},Re=e("h3",{id:"rest-api"},[t("REST API "),e("a",{class:"header-anchor",href:"#rest-api"},"#")],-1),Le=e("pre",null,[e("code",null,`GET /collections
|
|
34
34
|
SEARCH /collections
|
|
35
35
|
`)],-1),We=t("Learn more about SEARCH ->"),Oe=e("h3",{id:"graphql"},[t("GraphQL "),e("a",{class:"header-anchor",href:"#graphql"},"#")],-1),Qe=e("pre",null,[e("code",null,`POST /graphql/system
|
|
36
36
|
`)],-1),De=e("pre",null,[e("code",{class:"language-graphql"},[e("span",{class:"hljs-keyword"},"type"),e("span",{class:"hljs-type"}," Query"),t(` {
|
|
@@ -103,4 +103,4 @@ SEARCH /collections
|
|
|
103
103
|
collection
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
|
-
`)])])])],-1),wt=e("hr",null,null,-1),
|
|
106
|
+
`)])])])],-1),wt=e("hr",null,null,-1),St={setup(Tt,{expose:c}){const o={title:"Collections",modularExtension:!1,pageClass:"page-reference"};return c({frontmatter:o}),(xt,At)=>{const l=a("router-link"),i=a("DocsWrapper");return r(),h(i,{frontmatter:o},{default:s(()=>[e("div",d,[e("div",p,[e("div",u,[e("blockquote",null,[e("p",null,[_,n(l,{to:"/docs/getting-started/glossary/#collections"},{default:s(()=>[g]),_:1}),m])])]),f]),j,y,e("div",b,[e("div",v,[q,w,T,e("div",x,[A,C,S,E,k,P,R,L,W,O,Q,D,e("p",null,[B,G,H,I,N,M,U,V,Y,n(l,{to:"/docs/configuration/data-model/#accountability"},{default:s(()=>[z]),_:1}),F]),e("p",null,[J,K,X,Z,$,n(l,{to:"/docs/configuration/data-model/#duplication"},{default:s(()=>[ee]),_:1}),te]),e("p",null,[se,le,ne,oe,ae,n(l,{to:"/docs/configuration/data-model/#sorting-grouping"},{default:s(()=>[ce]),_:1}),ie]),e("p",null,[re,he,de,pe,ue,n(l,{to:"/docs/configuration/data-model/#sorting-grouping"},{default:s(()=>[_e]),_:1}),ge]),me]),fe,je,ye,e("div",be,[e("p",null,[n(l,{to:"/docs/configuration/data-model/#sorting-grouping"},{default:s(()=>[ve]),_:1}),qe,we,Te])])]),xe]),Ae,Ce,Se,e("div",Ee,[ke,e("div",Pe,[Re,Le,e("p",null,[n(l,{to:"/docs/reference/introduction/#search-http-method"},{default:s(()=>[We]),_:1})]),Oe,Qe,De,Be,Ge])]),He,Ie,Ne,Me,Ue,Ve,Ye,e("div",ze,[e("div",Fe,[Je,Ke,Xe,Ze,e("p",null,[$e,et,tt,n(l,{to:"/docs/reference/system/fields/#the-fields-object"},{default:s(()=>[st]),_:1}),lt]),nt,ot,e("div",at,[e("p",null,[ct,it,rt,ht,dt,n(l,{to:"/docs/configuration/data-model/#sorting-grouping"},{default:s(()=>[pt]),_:1}),ut])])]),_t]),gt,mt,ft,jt,yt,bt,vt,qt,wt])]),_:1})}}};export{St as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{bK as y}from"./vendor.
|
|
1
|
+
import{bK as y}from"./vendor.62e5a05d.js";function k(c,d){return d.forEach(function(i){i&&typeof i!="string"&&!Array.isArray(i)&&Object.keys(i).forEach(function(l){if(l!=="default"&&!(l in c)){var u=Object.getOwnPropertyDescriptor(i,l);Object.defineProperty(c,l,u.get?u:{enumerable:!0,get:function(){return i[l]}})}})}),Object.freeze(c)}var x={exports:{}};(function(c,d){(function(i){i(y.exports)})(function(i){i.defineMode("commonlisp",function(l){var u=/^(block|let*|return-from|catch|load-time-value|setq|eval-when|locally|symbol-macrolet|flet|macrolet|tagbody|function|multiple-value-call|the|go|multiple-value-prog1|throw|if|progn|unwind-protect|labels|progv|let|quote)$/,s=/^with|^def|^do|^prog|case$|^cond$|bind$|when$|unless$/,a=/^(?:[+\-]?(?:\d+|\d*\.\d+)(?:[efd][+\-]?\d+)?|[+\-]?\d+(?:\/[+\-]?\d+)?|#b[+\-]?[01]+|#o[+\-]?[0-7]+|#x[+\-]?[\da-f]+)/,b=/[^\s'`,@()\[\]";]/,o;function f(e){for(var n;n=e.next();)if(n=="\\")e.next();else if(!b.test(n)){e.backUp(1);break}return e.current()}function p(e,n){if(e.eatSpace())return o="ws",null;if(e.match(a))return"number";var t=e.next();if(t=="\\"&&(t=e.next()),t=='"')return(n.tokenize=m)(e,n);if(t=="(")return o="open","bracket";if(t==")"||t=="]")return o="close","bracket";if(t==";")return e.skipToEnd(),o="ws","comment";if(/['`,@]/.test(t))return null;if(t=="|")return e.skipTo("|")?(e.next(),"symbol"):(e.skipToEnd(),"error");if(t=="#"){var t=e.next();return t=="("?(o="open","bracket"):/[+\-=\.']/.test(t)||/\d/.test(t)&&e.match(/^\d*#/)?null:t=="|"?(n.tokenize=v)(e,n):t==":"?(f(e),"meta"):t=="\\"?(e.next(),f(e),"string-2"):"error"}else{var r=f(e);return r=="."?null:(o="symbol",r=="nil"||r=="t"||r.charAt(0)==":"?"atom":n.lastType=="open"&&(u.test(r)||s.test(r))?"keyword":r.charAt(0)=="&"?"variable-2":"variable")}}function m(e,n){for(var t=!1,r;r=e.next();){if(r=='"'&&!t){n.tokenize=p;break}t=!t&&r=="\\"}return"string"}function v(e,n){for(var t,r;t=e.next();){if(t=="#"&&r=="|"){n.tokenize=p;break}r=t}return o="ws","comment"}return{startState:function(){return{ctx:{prev:null,start:0,indentTo:0},lastType:null,tokenize:p}},token:function(e,n){e.sol()&&typeof n.ctx.indentTo!="number"&&(n.ctx.indentTo=n.ctx.start+1),o=null;var t=n.tokenize(e,n);return o!="ws"&&(n.ctx.indentTo==null?o=="symbol"&&s.test(e.current())?n.ctx.indentTo=n.ctx.start+l.indentUnit:n.ctx.indentTo="next":n.ctx.indentTo=="next"&&(n.ctx.indentTo=e.column()),n.lastType=o),o=="open"?n.ctx={prev:n.ctx,start:e.column(),indentTo:null}:o=="close"&&(n.ctx=n.ctx.prev||n.ctx),t},indent:function(e,n){var t=e.ctx.indentTo;return typeof t=="number"?t:e.ctx.start+1},closeBrackets:{pairs:'()[]{}""'},lineComment:";;",blockCommentStart:"#|",blockCommentEnd:"|#"}}),i.defineMIME("text/x-common-lisp","commonlisp")})})();var h=x.exports,g=Object.freeze(k({__proto__:null,[Symbol.toStringTag]:"Module",default:h},[x.exports]));export{g as c};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as s,p as r,q as i,w as n,z as l,t as o,
|
|
1
|
+
import{r as s,p as r,q as i,w as n,z as l,t as o,S as e}from"./vendor.62e5a05d.js";const c={class:"markdown-body"},h=l("blockquote",null,[l("p",null,"Environment variables are used for all configuration within a Directus project. These variables can be defined in a number of ways, which we cover below.")],-1),_=l("p",null,[l("div",{class:"table-of-contents"},[l("ul",null,[l("li",null,[l("a",{href:"#configuration-files"},"Configuration Files")]),l("li",null,[l("a",{href:"#environment-variable-files"},"Environment Variable Files")]),l("li",null,[l("a",{href:"#type-casting-and-nesting"},"Type Casting and Nesting")]),l("li",null,[l("a",{href:"#environment-syntax-prefix"},"Environment Syntax Prefix")]),l("li",null,[l("a",{href:"#general"},"General")]),l("li",null,[l("a",{href:"#database"},"Database")]),l("li",null,[l("a",{href:"#security"},"Security")]),l("li",null,[l("a",{href:"#cors"},"CORS")]),l("li",null,[l("a",{href:"#rate-limiting"},"Rate Limiting")]),l("li",null,[l("a",{href:"#cache"},"Cache")]),l("li",null,[l("a",{href:"#file-storage"},"File Storage")]),l("li",null,[l("a",{href:"#assets"},"Assets")]),l("li",null,[l("a",{href:"#authentication"},"Authentication")]),l("li",null,[l("a",{href:"#extensions"},"Extensions")]),l("li",null,[l("a",{href:"#email"},"Email")]),l("li",null,[l("a",{href:"#admin-account"},"Admin Account")]),l("li",null,[l("a",{href:"#telemetry"},"Telemetry")])])])],-1),p=l("h2",{id:"configuration-files"},[e("Configuration Files "),l("a",{class:"header-anchor",href:"#configuration-files"},"#")],-1),f=l("p",null,[e("By default, Directus will read the "),l("code",null,".env"),e(" file located next to your project\u2019s "),l("code",null,"package.json"),e(" (typically in the root folder of your project) for its configuration. You can change this path and filename by setting the "),l("code",null,"CONFIG_PATH"),e(" environment variable before starting Directus. For example:")],-1),m=l("pre",null,[l("code",{class:"language-bash"},[e("CONFIG_PATH="),l("span",{class:"hljs-string"},'"/path/to/config.js"'),e(` npx directus start
|
|
2
2
|
`)])],-1),E=l("p",null,[e("In case you prefer using a configuration file instead of environment variables, you can also use the "),l("code",null,"CONFIG_PATH"),e(" environment variable to instruct Directus to use a local configuration file instead of environment variables. The config file can be one of the following formats:")],-1),g=l("ul",null,[l("li",null,[l("a",{href:"#env"},".env")]),l("li",null,[l("a",{href:"#config-json"},"config.json")]),l("li",null,[l("a",{href:"#config-yaml"},"config.yaml")]),l("li",null,[l("a",{href:"#config-js"},"config.js")])],-1),A=l("h3",{id:".env"},[e(".env "),l("a",{class:"header-anchor",href:"#.env"},"#")],-1),T=l("p",null,"If the config path has no file extension, or a file extension that\u2019s not one of the other supported formats, Directus will try reading the file config path as environment variables. This has the following structure:",-1),R=l("pre",null,[l("code",null,`PORT=8055
|
|
3
3
|
|
|
4
4
|
DB_CLIENT="pg"
|
|
@@ -83,7 +83,7 @@ RATE_LIMITER_DURATION="5"
|
|
|
83
83
|
RATE_LIMITER_STORE="redis"
|
|
84
84
|
|
|
85
85
|
RATE_LIMITER_REDIS="redis://@127.0.0.1"
|
|
86
|
-
`)],-1),ee=l("h2",{id:"cache"},[e("Cache "),l("a",{class:"header-anchor",href:"#cache"},"#")],-1),ne=l("p",null,"Directus has a built-in data-caching option. Enabling this will cache the output of requests (based on the current user and exact query parameters used) into
|
|
86
|
+
`)],-1),ee=l("h2",{id:"cache"},[e("Cache "),l("a",{class:"header-anchor",href:"#cache"},"#")],-1),ne=l("p",null,"Directus has a built-in data-caching option. Enabling this will cache the output of requests (based on the current user and exact query parameters used) into configured cache storage location. This drastically improves API performance, as subsequent requests are served straight from this cache. Enabling cache will also make Directus return accurate cache-control headers. Depending on your setup, this will further improve performance by caching the request in middleman servers (like CDNs) and even the browser.",-1),te=l("div",{class:"tip hint"},[l("div",{class:"hint-title"},"Assets Cache"),l("p",null,[e("The cache-control header for the "),l("code",null,"/assets"),e(" endpoint is separate from the regular data-cache. This is useful as it\u2019s often possible to cache assets for far longer than you would cache database content. "),l("a",{href:"#assets"},"Learn More")])],-1),oe=l("table",null,[l("thead",null,[l("tr",null,[l("th",null,"Variable"),l("th",null,"Description"),l("th",null,"Default Value")])]),l("tbody",null,[l("tr",null,[l("td",null,[l("code",null,"CACHE_ENABLED")]),l("td",null,"Whether or not caching is enabled."),l("td",null,[l("code",null,"false")])]),l("tr",null,[l("td",null,[l("code",null,"CACHE_TTL"),l("sup",null,"[1]")]),l("td",null,"How long the cache is persisted."),l("td",null,[l("code",null,"30m")])]),l("tr",null,[l("td",null,[l("code",null,"CACHE_CONTROL_S_MAXAGE")]),l("td",null,[e("Whether to not to add the "),l("code",null,"s-maxage"),e(" expiration flag. Set to a number for a custom value")]),l("td",null,[l("code",null,"0")])]),l("tr",null,[l("td",null,[l("code",null,"CACHE_AUTO_PURGE"),l("sup",null,"[2]")]),l("td",null,[e("Automatically purge the cache on "),l("code",null,"create"),e(", "),l("code",null,"update"),e(", and "),l("code",null,"delete"),e(" actions.")]),l("td",null,[l("code",null,"false")])]),l("tr",null,[l("td",null,[l("code",null,"CACHE_SCHEMA"),l("sup",null,"[3]")]),l("td",null,[e("Whether or not the database schema is cached. One of "),l("code",null,"false"),e(", "),l("code",null,"true")]),l("td",null,[l("code",null,"true")])]),l("tr",null,[l("td",null,[l("code",null,"CACHE_PERMISSIONS"),l("sup",null,"[3]")]),l("td",null,[e("Whether or not the user permissions are cached. One of "),l("code",null,"false"),e(", "),l("code",null,"true")]),l("td",null,[l("code",null,"true")])]),l("tr",null,[l("td",null,[l("code",null,"CACHE_NAMESPACE")]),l("td",null,"How to scope the cache data."),l("td",null,[l("code",null,"directus-cache")])]),l("tr",null,[l("td",null,[l("code",null,"CACHE_STORE"),l("sup",null,"[4]")]),l("td",null,[e("Where to store the cache data. Either "),l("code",null,"memory"),e(", "),l("code",null,"redis"),e(", or "),l("code",null,"memcache"),e(".")]),l("td",null,[l("code",null,"memory")])])])],-1),ue=l("p",null,[l("sup",null,"[1]"),e(),l("code",null,"CACHE_TTL"),e(" Based on your project\u2019s needs, you might be able to aggressively cache your data, only requiring new data to be fetched every hour or so. This allows you to squeeze the most performance out of your Directus instance. This can be incredibly useful for applications where you have a lot of (public) read-access and where updates aren\u2019t real-time (for example a website). "),l("code",null,"CACHE_TTL"),e(" uses "),l("a",{href:"https://www.npmjs.com/package/ms",target:"_blank",rel:"noopener noreferrer"},[l("code",null,"ms")]),e(" to parse the value, so you configure it using human readable values (like "),l("code",null,"2 days"),e(", "),l("code",null,"7 hrs"),e(", "),l("code",null,"5m"),e(").")],-1),se=l("p",null,[l("sup",null,"[2]"),e(),l("code",null,"CACHE_AUTO_PURGE"),e(" allows you to keep the Directus API real-time, while still getting the performance benefits on quick subsequent reads.")],-1),ae=l("p",null,[l("sup",null,"[3]"),e(" Not affected by the "),l("code",null,"CACHE_ENABLED"),e(" value.")],-1),de=l("p",null,[l("sup",null,"[4]"),e(),l("code",null,"CACHE_STORE"),e(" For larger projects, you most likely don\u2019t want to rely on local memory for caching. Instead, you can use the above "),l("code",null,"CACHE_STORE"),e(" environment variable to use either "),l("code",null,"memcache"),e(" or "),l("code",null,"redis"),e(" as the cache store. Based on the chosen "),l("code",null,"CACHE_STORE"),e(", you must also provide the following configurations:")],-1),re=l("h3",{id:"memory-2"},[e("Memory "),l("a",{class:"header-anchor",href:"#memory-2"},"#")],-1),ie=l("p",null,"No additional configuration required.",-1),ce=l("h3",{id:"redis-2"},[e("Redis "),l("a",{class:"header-anchor",href:"#redis-2"},"#")],-1),he=l("table",null,[l("thead",null,[l("tr",null,[l("th",null,"Variable"),l("th",null,"Description"),l("th",null,"Default Value")])]),l("tbody",null,[l("tr",null,[l("td",null,[l("code",null,"CACHE_REDIS")]),l("td",null,[e("Redis connection string, eg: "),l("code",null,"redis://:authpassword@127.0.0.1:6380/4")]),l("td",null,"\u2014")])])],-1),_e=l("p",null,"Alternatively, you can provide the individual connection parameters:",-1),pe=l("table",null,[l("thead",null,[l("tr",null,[l("th",null,"Variable"),l("th",null,"Description"),l("th",null,"Default Value")])]),l("tbody",null,[l("tr",null,[l("td",null,[l("code",null,"CACHE_REDIS_HOST")]),l("td",null,"Hostname of the Redis instance"),l("td",null,"\u2013")]),l("tr",null,[l("td",null,[l("code",null,"CACHE_REDIS_PORT")]),l("td",null,"Port of the Redis instance"),l("td",null,"\u2013")]),l("tr",null,[l("td",null,[l("code",null,"CACHE_REDIS_PASSWORD")]),l("td",null,"Password for your Redis instance"),l("td",null,"\u2013")])])],-1),fe=l("h3",{id:"memcache-2"},[e("Memcache "),l("a",{class:"header-anchor",href:"#memcache-2"},"#")],-1),me=l("table",null,[l("thead",null,[l("tr",null,[l("th",null,"Variable"),l("th",null,"Description"),l("th",null,"Default Value")])]),l("tbody",null,[l("tr",null,[l("td",null,[l("code",null,"CACHE_MEMCACHE")]),l("td",null,[e("Location of your memcache instance. You can use "),l("a",{href:"#environment-syntax-prefix"},[l("code",null,"array:"),e(" syntax")]),e(", eg: "),l("code",null,"array:<instance-1>,<instance-2>"),e(" for multiple memcache instances.")]),l("td",null,"\u2014")])])],-1),Ee=l("h2",{id:"file-storage"},[e("File Storage "),l("a",{class:"header-anchor",href:"#file-storage"},"#")],-1),ge=l("p",null,[e("By default, Directus stores all uploaded files locally on disk. However, you can also configure Directus to use S3, Google Cloud Storage, or Azure. You can also configure "),l("em",null,"multiple"),e(" storage adapters at the same time. This allows you to choose where files are being uploaded on a file-by-file basis. In the Admin App, files will automatically be uploaded to the first configured storage location (in this case "),l("code",null,"local"),e("). The used storage location is saved under "),l("code",null,"storage"),e(" in "),l("code",null,"directus_files"),e(".")],-1),Ae=l("div",{class:"tip hint"},[l("div",{class:"hint-title"},"File Storage Default"),l("p",null,"If you don\u2019t provide any configuration for storage adapters, this default will be used:"),l("pre",null,[l("code",null,`STORAGE_LOCATIONS="local"
|
|
87
87
|
STORAGE_LOCAL_ROOT="./uploads"
|
|
88
88
|
`)])],-1),Te=l("div",{class:"warning hint"},[l("div",{class:"hint-title"},"Case sensitivity"),l("p",null,"The location value(s) you specify should be capitalized when specifying the additional configuration values. For example, this will not work:"),l("pre",null,[l("code",null,`STORAGE_LOCATIONS="s3"
|
|
89
89
|
STORAGE_s3_DRIVER="s3" # Will not work, lowercase "s3" \u274C
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as s,p as d,q as h,w as o,z as t,t as l,R as e}from"./vendor.9c15ff54.js";const c={class:"markdown-body"},u=t("blockquote",null,[t("p",null,"This is the main gateway to your content items, providing a highly configurable Layout for browsing and visualizing the items within a collection. The header of this page includes key action buttons for creating, deleting, and batch editing items.")],-1),_=t("p",null,[t("div",{class:"table-of-contents"},[t("ul",null,[t("li",null,[t("a",{href:"#creating-an-item"},"Creating an Item")]),t("li",null,[t("a",{href:"#manually-sorting-items"},"Manually Sorting Items")]),t("li",null,[t("a",{href:"#ordering-items"},"Ordering Items")]),t("li",null,[t("a",{href:"#adjusting-item-layouts"},"Adjusting Item Layouts")]),t("li",null,[t("a",{href:"#searching-items"},"Searching Items")]),t("li",null,[t("a",{href:"#filtering-items"},"Filtering Items")]),t("li",null,[t("a",{href:"#viewing-archived-items"},"Viewing Archived Items")]),t("li",null,[t("a",{href:"#bookmarking-item-presets"},"Bookmarking Item Presets")]),t("li",null,[t("a",{href:"#importing-%2F-exporting-items"},"Importing / Exporting Items")])])])],-1),m=t("h2",{id:"creating-an-item"},[e("Creating an Item "),t("a",{class:"header-anchor",href:"#creating-an-item"},"#")],-1),g=t("ol",null,[t("li",null,"Navigate to the collection where you want to add an item"),t("li",null,"Click on the \u201CCreate Item\u201D (+ icon) button located in the header"),t("li",null,"Complete the Item Detail form"),t("li",null,"Click the \u201CSave Item\u201D (\u2713 icon) button located in the header")],-1),p=t("div",{class:"tip hint"},[t("div",{class:"hint-title"},"Singletons"),t("p",null,"If the Collection is configured as a \u201CSingleton\u201D in the data model settings, then the App will automatically skip step #2 above.")],-1),f=t("h2",{id:"manually-sorting-items"},[e("Manually Sorting Items "),t("a",{class:"header-anchor",href:"#manually-sorting-items"},"#")],-1),y=e("Navigate to the "),v=e("Content Module"),b=t("li",null,"Navigate to the collection of the items you want to sort",-1),w=t("li",null,"Choose a layout that supports manual sorting (eg: the default \u201Ctable\u201D mode)",-1),k=t("li",null,"Enable manual sorting. (eg: for the table layout, click on the Sort column\u2019s header)",-1),C=t("li",null,"Drag items by their handle into a new position",-1),I=t("p",null,"The new sort order is saved automatically, so make sure you wait until the App\u2019s loading indicator finishes before navigating away from the page.",-1),S=t("div",{class:"warning hint"},[t("div",{class:"hint-title"},"Requires Configuration"),t("p",null,"This feature is only available if a Sort column has been configured in the Collection\u2019s data model settings.")],-1),N=t("h2",{id:"ordering-items"},[e("Ordering Items "),t("a",{class:"header-anchor",href:"#ordering-items"},"#")],-1),L=e("Navigate to the "),F=e("Content Module"),x=t("li",null,"Navigate to a collection of items",-1),O=t("li",null,"Choose a layout that supports manual ordering (eg: the default \u201Ctable\u201D mode)",-1),A=t("li",null,[e("Set the Order Field and Order Direction "),t("ul",null,[t("li",null,"Table Layout: Click on the field\u2019s column header, clicking again changes order direction"),t("li",null,"Card Layout: Adjust the two dropdowns in the layout\u2019s subheader")])],-1),D={class:"tip hint"},M=t("div",{class:"hint-title"},"Sort vs Order",-1),T=t("strong",null,"Ordering",-1),E=e(" is a non-destructive action (does "),B=t("em",null,"not",-1),j=e(" change your data) used to browse items alphabetically or numerically. "),R=t("strong",null,"Sorting",-1),V=e(" (when enabled) saves a value in a "),q=e("Sort"),z=e(" field, which can then be used to return data in a custom order."),P=t("h2",{id:"adjusting-item-layouts"},[e("Adjusting Item Layouts "),t("a",{class:"header-anchor",href:"#adjusting-item-layouts"},"#")],-1),W=e("Learn more about Layouts"),J=e("Navigate to the "),X=e("Content Module"),U=t("li",null,"Navigate to the collection of the items you want to browse",-1),G=t("li",null,"Click \u201CLayout Options\u201D in the page sidebar",-1),H=t("li",null,"Choose the desired \u201CLayout\u201D you want to use",-1),K=t("li",null,"Configure any other layout options",-1),Q=t("h3",{id:"table-layout"},[e("Table Layout "),t("a",{class:"header-anchor",href:"#table-layout"},"#")],-1),Y=t("p",null,"Supports all forms of data, and is therefore the default within the Content module. It includes the following features/options:",-1),Z=t("ul",null,[t("li",null,"Toggle & Reorder Field Columns (Option)"),t("li",null,"Row Spacing (Option)"),t("li",null,"Manual Item Ordering"),t("li",null,"Column Sort"),t("li",null,"Column Resizing"),t("li",null,"Select All")],-1),$=t("h3",{id:"card-layout"},[e("Card Layout "),t("a",{class:"header-anchor",href:"#card-layout"},"#")],-1),tt=e("This tiled layout is ideal for collections that prioritize an image, and is the default for both the "),et=e("User Directory"),ot=e(" and "),it=e("File Library"),lt=e(". It includes the following features/options:"),nt=t("ul",null,[t("li",null,"Image Source (Option)"),t("li",null,"Title (Option)"),t("li",null,"Subtitle (Option)"),t("li",null,"Image Fit (Option)"),t("li",null,"Fallback Icon (Option)"),t("li",null,"Card Size"),t("li",null,"Sort Field & Direction"),t("li",null,"Select All")],-1),st=t("h3",{id:"calendar-layout"},[e("Calendar Layout "),t("a",{class:"header-anchor",href:"#calendar-layout"},"#")],-1),at=t("p",null,"An excellent choice for temporal (date/time) data, this Layout allows you to choose between a Month, Week, Day, and List view. The following options are included:",-1),rt=t("ul",null,[t("li",null,"Display Template"),t("li",null,"Start Date Field"),t("li",null,"End Date Field")],-1),dt=t("h3",{id:"map-layout"},[e("Map Layout "),t("a",{class:"header-anchor",href:"#map-layout"},"#")],-1),ht=t("p",null,"For geospatial/geographic data, the Map Layout provides a world map for points, lines, and other geometry. The following options are available:",-1),ct=t("ul",null,[t("li",null,"Basemap"),t("li",null,"Location Field"),t("li",null,"Display Template"),t("li",null,"Enable Clustering")],-1),ut=t("h2",{id:"searching-items"},[e("Searching Items "),t("a",{class:"header-anchor",href:"#searching-items"},"#")],-1),_t=e("Navigate to the "),mt=e("Content Module"),gt=t("li",null,"Navigate to the collection of the items you want to search",-1),pt=t("li",null,"Type your search query into the input (magnifying glass icon) located in the header",-1),ft=t("h2",{id:"filtering-items"},[e("Filtering Items "),t("a",{class:"header-anchor",href:"#filtering-items"},"#")],-1),yt=e("Learn more about Filtering"),vt=e("."),bt=e("Navigate to the "),wt=e("Content Module"),kt=t("li",null,"Navigate to the collection of the items you want to filter",-1),Ct=t("li",null,"Click on Filter (filter icon) located in the header",-1),It=t("li",null,"Click the \u201CAdd Filter\u201D dropdown and select the field to filter on",-1),St=t("li",null,"Adjust the operator (eg: \u201CContains\u201D) as needed by clicking on it",-1),Nt=t("li",null,"Enter a value in the field filter\u2019s input(s)",-1),Lt=t("li",null,"Remove unwanted filters by hovering over the field and clicking \u201CX\u201D",-1),Ft=t("h2",{id:"viewing-archived-items"},[e("Viewing Archived Items "),t("a",{class:"header-anchor",href:"#viewing-archived-items"},"#")],-1),xt=e("Learn more about Archive"),Ot=e("."),At=e("Navigate to the "),Dt=e("Content Module"),Mt=t("li",null,"Navigate to the collection of the items you want to view",-1),Tt=t("li",null,"Click \u201CArchive\u201D in the page sidebar",-1),Et=t("li",null,[e("Choose the desired view: "),t("code",null,"Show Items"),e(" (default), "),t("code",null,"Show Archived Items"),e(", or "),t("code",null,"Show Items + Archived Items")],-1),Bt=t("h2",{id:"bookmarking-item-presets"},[e("Bookmarking Item Presets "),t("a",{class:"header-anchor",href:"#bookmarking-item-presets"},"#")],-1),jt=e("Navigate to the "),Rt=e("Content Module"),Vt=t("li",null,"Navigate to the collection of the items you want to bookmark",-1),qt=t("li",null,"Configure the page as desired (eg: layout, options, search, filters, order, etc)",-1),zt=t("li",null,"Click the \u201CCreate Bookmark\u201D (bookmark icon) button in the header beside the page title",-1),Pt=t("li",null,"Rename bookmarks by right-clicking them in the navigation sidebar and selecting \u201CRename Bookmark\u201D",-1),Wt=t("li",null,"Delete bookmarks by right-clicking them in the navigation sidebar and selecting \u201CDelete Bookmark\u201D",-1),Jt=t("h2",{id:"importing-%2F-exporting-items"},[e("Importing / Exporting Items "),t("a",{class:"header-anchor",href:"#importing-%2F-exporting-items"},"#")],-1),Xt=t("h3",{id:"import"},[e("Import "),t("a",{class:"header-anchor",href:"#import"},"#")],-1),Ut=e("Learn more about Import Data from a File"),Gt=e("Navigate to the "),Ht=e("Content Module"),Kt=t("li",null,"Navigate to the collection of the items you want to import",-1),Qt=t("li",null,"Click \u201CImport / Export\u201D in the page sidebar",-1),Yt=t("li",null,"Choose the desired file containing items to import in the accepted format: either CSV or JSON",-1),Zt=t("li",null,"Click the \u201CStart Import\u201D button to import the items from the chosen file",-1),$t=t("h3",{id:"export"},[e("Export "),t("a",{class:"header-anchor",href:"#export"},"#")],-1),te=t("ol",null,[t("li",null,"Navigate to the collection of the items you want to export"),t("li",null,"Optional: Configure the dataset as desired (eg: layout, options, search, filters, order, etc)"),t("li",null,"Click \u201CImport / Export\u201D in the page sidebar"),t("li",null,"Choose the desired format: either CSV, JSON or XML"),t("li",null,"Choose whether you want to use your current Filters and Settings in the export"),t("li",null,"Click the \u201CStart Export\u201D button to download the file to your device")],-1),ne={setup(ee,{expose:a}){const n={title:"Collection Page",modularExtension:!1};return a({frontmatter:n}),(oe,ie)=>{const i=s("router-link"),r=s("DocsWrapper");return d(),h(r,{frontmatter:n},{default:o(()=>[t("div",c,[u,_,m,g,p,f,t("ol",null,[t("li",null,[y,l(i,{to:"/docs/app/overview/#_1-module-bar"},{default:o(()=>[v]),_:1})]),b,w,k,C]),I,S,N,t("ol",null,[t("li",null,[L,l(i,{to:"/docs/app/overview/#_1-module-bar"},{default:o(()=>[F]),_:1})]),x,O,A]),t("div",D,[M,t("p",null,[T,E,B,j,R,V,l(i,{to:"/docs/reference/query/#sort"},{default:o(()=>[q]),_:1}),z])]),P,t("p",null,[t("strong",null,[l(i,{to:"/docs/getting-started/glossary/#layouts"},{default:o(()=>[W]),_:1})])]),t("ol",null,[t("li",null,[J,l(i,{to:"/docs/app/overview/#_1-module-bar"},{default:o(()=>[X]),_:1})]),U,G,H,K]),Q,Y,Z,$,t("p",null,[tt,l(i,{to:"/docs/app/user-directory/"},{default:o(()=>[et]),_:1}),ot,l(i,{to:"/docs/reference/files/"},{default:o(()=>[it]),_:1}),lt]),nt,st,at,rt,dt,ht,ct,ut,t("ol",null,[t("li",null,[_t,l(i,{to:"/docs/app/overview/#_1-module-bar"},{default:o(()=>[mt]),_:1})]),gt,pt]),ft,t("p",null,[t("strong",null,[l(i,{to:"/docs/configuration/filter-rules/"},{default:o(()=>[yt]),_:1}),vt])]),t("ol",null,[t("li",null,[bt,l(i,{to:"/docs/app/overview/#_1-module-bar"},{default:o(()=>[wt]),_:1})]),kt,Ct,It,St,Nt,Lt]),Ft,t("p",null,[t("strong",null,[l(i,{to:"/docs/configuration/data-model/#archive"},{default:o(()=>[xt]),_:1}),Ot])]),t("ol",null,[t("li",null,[At,l(i,{to:"/docs/app/overview/#_1-module-bar"},{default:o(()=>[Dt]),_:1})]),Mt,Tt,Et]),Bt,t("ol",null,[t("li",null,[jt,l(i,{to:"/docs/app/overview/#_1-module-bar"},{default:o(()=>[Rt]),_:1})]),Vt,qt,zt,Pt,Wt]),Jt,Xt,t("p",null,[t("strong",null,[l(i,{to:"/docs/reference/system/utilities/#import-data-from-file"},{default:o(()=>[Ut]),_:1})])]),t("ol",null,[t("li",null,[Gt,l(i,{to:"/docs/app/overview/#_1-module-bar"},{default:o(()=>[Ht]),_:1})]),Kt,Qt,Yt,Zt]),$t,te])]),_:1})}}};export{ne as default};
|
|
1
|
+
import{r as s,p as d,q as h,w as o,z as t,t as l,S as e}from"./vendor.62e5a05d.js";const c={class:"markdown-body"},u=t("blockquote",null,[t("p",null,"This is the main gateway to your content items, providing a highly configurable Layout for browsing and visualizing the items within a collection. The header of this page includes key action buttons for creating, deleting, and batch editing items.")],-1),_=t("p",null,[t("div",{class:"table-of-contents"},[t("ul",null,[t("li",null,[t("a",{href:"#creating-an-item"},"Creating an Item")]),t("li",null,[t("a",{href:"#manually-sorting-items"},"Manually Sorting Items")]),t("li",null,[t("a",{href:"#ordering-items"},"Ordering Items")]),t("li",null,[t("a",{href:"#adjusting-item-layouts"},"Adjusting Item Layouts")]),t("li",null,[t("a",{href:"#searching-items"},"Searching Items")]),t("li",null,[t("a",{href:"#filtering-items"},"Filtering Items")]),t("li",null,[t("a",{href:"#viewing-archived-items"},"Viewing Archived Items")]),t("li",null,[t("a",{href:"#bookmarking-item-presets"},"Bookmarking Item Presets")]),t("li",null,[t("a",{href:"#importing-%2F-exporting-items"},"Importing / Exporting Items")])])])],-1),m=t("h2",{id:"creating-an-item"},[e("Creating an Item "),t("a",{class:"header-anchor",href:"#creating-an-item"},"#")],-1),g=t("ol",null,[t("li",null,"Navigate to the collection where you want to add an item"),t("li",null,"Click on the \u201CCreate Item\u201D (+ icon) button located in the header"),t("li",null,"Complete the Item Detail form"),t("li",null,"Click the \u201CSave Item\u201D (\u2713 icon) button located in the header")],-1),p=t("div",{class:"tip hint"},[t("div",{class:"hint-title"},"Singletons"),t("p",null,"If the Collection is configured as a \u201CSingleton\u201D in the data model settings, then the App will automatically skip step #2 above.")],-1),f=t("h2",{id:"manually-sorting-items"},[e("Manually Sorting Items "),t("a",{class:"header-anchor",href:"#manually-sorting-items"},"#")],-1),y=e("Navigate to the "),v=e("Content Module"),b=t("li",null,"Navigate to the collection of the items you want to sort",-1),w=t("li",null,"Choose a layout that supports manual sorting (eg: the default \u201Ctable\u201D mode)",-1),k=t("li",null,"Enable manual sorting. (eg: for the table layout, click on the Sort column\u2019s header)",-1),C=t("li",null,"Drag items by their handle into a new position",-1),I=t("p",null,"The new sort order is saved automatically, so make sure you wait until the App\u2019s loading indicator finishes before navigating away from the page.",-1),S=t("div",{class:"warning hint"},[t("div",{class:"hint-title"},"Requires Configuration"),t("p",null,"This feature is only available if a Sort column has been configured in the Collection\u2019s data model settings.")],-1),N=t("h2",{id:"ordering-items"},[e("Ordering Items "),t("a",{class:"header-anchor",href:"#ordering-items"},"#")],-1),L=e("Navigate to the "),F=e("Content Module"),x=t("li",null,"Navigate to a collection of items",-1),O=t("li",null,"Choose a layout that supports manual ordering (eg: the default \u201Ctable\u201D mode)",-1),A=t("li",null,[e("Set the Order Field and Order Direction "),t("ul",null,[t("li",null,"Table Layout: Click on the field\u2019s column header, clicking again changes order direction"),t("li",null,"Card Layout: Adjust the two dropdowns in the layout\u2019s subheader")])],-1),D={class:"tip hint"},M=t("div",{class:"hint-title"},"Sort vs Order",-1),T=t("strong",null,"Ordering",-1),E=e(" is a non-destructive action (does "),B=t("em",null,"not",-1),j=e(" change your data) used to browse items alphabetically or numerically. "),R=t("strong",null,"Sorting",-1),V=e(" (when enabled) saves a value in a "),q=e("Sort"),z=e(" field, which can then be used to return data in a custom order."),P=t("h2",{id:"adjusting-item-layouts"},[e("Adjusting Item Layouts "),t("a",{class:"header-anchor",href:"#adjusting-item-layouts"},"#")],-1),W=e("Learn more about Layouts"),J=e("Navigate to the "),X=e("Content Module"),U=t("li",null,"Navigate to the collection of the items you want to browse",-1),G=t("li",null,"Click \u201CLayout Options\u201D in the page sidebar",-1),H=t("li",null,"Choose the desired \u201CLayout\u201D you want to use",-1),K=t("li",null,"Configure any other layout options",-1),Q=t("h3",{id:"table-layout"},[e("Table Layout "),t("a",{class:"header-anchor",href:"#table-layout"},"#")],-1),Y=t("p",null,"Supports all forms of data, and is therefore the default within the Content module. It includes the following features/options:",-1),Z=t("ul",null,[t("li",null,"Toggle & Reorder Field Columns (Option)"),t("li",null,"Row Spacing (Option)"),t("li",null,"Manual Item Ordering"),t("li",null,"Column Sort"),t("li",null,"Column Resizing"),t("li",null,"Select All")],-1),$=t("h3",{id:"card-layout"},[e("Card Layout "),t("a",{class:"header-anchor",href:"#card-layout"},"#")],-1),tt=e("This tiled layout is ideal for collections that prioritize an image, and is the default for both the "),et=e("User Directory"),ot=e(" and "),it=e("File Library"),lt=e(". It includes the following features/options:"),nt=t("ul",null,[t("li",null,"Image Source (Option)"),t("li",null,"Title (Option)"),t("li",null,"Subtitle (Option)"),t("li",null,"Image Fit (Option)"),t("li",null,"Fallback Icon (Option)"),t("li",null,"Card Size"),t("li",null,"Sort Field & Direction"),t("li",null,"Select All")],-1),st=t("h3",{id:"calendar-layout"},[e("Calendar Layout "),t("a",{class:"header-anchor",href:"#calendar-layout"},"#")],-1),at=t("p",null,"An excellent choice for temporal (date/time) data, this Layout allows you to choose between a Month, Week, Day, and List view. The following options are included:",-1),rt=t("ul",null,[t("li",null,"Display Template"),t("li",null,"Start Date Field"),t("li",null,"End Date Field")],-1),dt=t("h3",{id:"map-layout"},[e("Map Layout "),t("a",{class:"header-anchor",href:"#map-layout"},"#")],-1),ht=t("p",null,"For geospatial/geographic data, the Map Layout provides a world map for points, lines, and other geometry. The following options are available:",-1),ct=t("ul",null,[t("li",null,"Basemap"),t("li",null,"Location Field"),t("li",null,"Display Template"),t("li",null,"Enable Clustering")],-1),ut=t("h2",{id:"searching-items"},[e("Searching Items "),t("a",{class:"header-anchor",href:"#searching-items"},"#")],-1),_t=e("Navigate to the "),mt=e("Content Module"),gt=t("li",null,"Navigate to the collection of the items you want to search",-1),pt=t("li",null,"Type your search query into the input (magnifying glass icon) located in the header",-1),ft=t("h2",{id:"filtering-items"},[e("Filtering Items "),t("a",{class:"header-anchor",href:"#filtering-items"},"#")],-1),yt=e("Learn more about Filtering"),vt=e("."),bt=e("Navigate to the "),wt=e("Content Module"),kt=t("li",null,"Navigate to the collection of the items you want to filter",-1),Ct=t("li",null,"Click on Filter (filter icon) located in the header",-1),It=t("li",null,"Click the \u201CAdd Filter\u201D dropdown and select the field to filter on",-1),St=t("li",null,"Adjust the operator (eg: \u201CContains\u201D) as needed by clicking on it",-1),Nt=t("li",null,"Enter a value in the field filter\u2019s input(s)",-1),Lt=t("li",null,"Remove unwanted filters by hovering over the field and clicking \u201CX\u201D",-1),Ft=t("h2",{id:"viewing-archived-items"},[e("Viewing Archived Items "),t("a",{class:"header-anchor",href:"#viewing-archived-items"},"#")],-1),xt=e("Learn more about Archive"),Ot=e("."),At=e("Navigate to the "),Dt=e("Content Module"),Mt=t("li",null,"Navigate to the collection of the items you want to view",-1),Tt=t("li",null,"Click \u201CArchive\u201D in the page sidebar",-1),Et=t("li",null,[e("Choose the desired view: "),t("code",null,"Show Items"),e(" (default), "),t("code",null,"Show Archived Items"),e(", or "),t("code",null,"Show Items + Archived Items")],-1),Bt=t("h2",{id:"bookmarking-item-presets"},[e("Bookmarking Item Presets "),t("a",{class:"header-anchor",href:"#bookmarking-item-presets"},"#")],-1),jt=e("Navigate to the "),Rt=e("Content Module"),Vt=t("li",null,"Navigate to the collection of the items you want to bookmark",-1),qt=t("li",null,"Configure the page as desired (eg: layout, options, search, filters, order, etc)",-1),zt=t("li",null,"Click the \u201CCreate Bookmark\u201D (bookmark icon) button in the header beside the page title",-1),Pt=t("li",null,"Rename bookmarks by right-clicking them in the navigation sidebar and selecting \u201CRename Bookmark\u201D",-1),Wt=t("li",null,"Delete bookmarks by right-clicking them in the navigation sidebar and selecting \u201CDelete Bookmark\u201D",-1),Jt=t("h2",{id:"importing-%2F-exporting-items"},[e("Importing / Exporting Items "),t("a",{class:"header-anchor",href:"#importing-%2F-exporting-items"},"#")],-1),Xt=t("h3",{id:"import"},[e("Import "),t("a",{class:"header-anchor",href:"#import"},"#")],-1),Ut=e("Learn more about Import Data from a File"),Gt=e("Navigate to the "),Ht=e("Content Module"),Kt=t("li",null,"Navigate to the collection of the items you want to import",-1),Qt=t("li",null,"Click \u201CImport / Export\u201D in the page sidebar",-1),Yt=t("li",null,"Choose the desired file containing items to import in the accepted format: either CSV or JSON",-1),Zt=t("li",null,"Click the \u201CStart Import\u201D button to import the items from the chosen file",-1),$t=t("h3",{id:"export"},[e("Export "),t("a",{class:"header-anchor",href:"#export"},"#")],-1),te=t("ol",null,[t("li",null,"Navigate to the collection of the items you want to export"),t("li",null,"Optional: Configure the dataset as desired (eg: layout, options, search, filters, order, etc)"),t("li",null,"Click \u201CImport / Export\u201D in the page sidebar"),t("li",null,"Choose the desired format: either CSV, JSON or XML"),t("li",null,"Choose whether you want to use your current Filters and Settings in the export"),t("li",null,"Click the \u201CStart Export\u201D button to download the file to your device")],-1),ne={setup(ee,{expose:a}){const n={title:"Collection Page",modularExtension:!1};return a({frontmatter:n}),(oe,ie)=>{const i=s("router-link"),r=s("DocsWrapper");return d(),h(r,{frontmatter:n},{default:o(()=>[t("div",c,[u,_,m,g,p,f,t("ol",null,[t("li",null,[y,l(i,{to:"/docs/app/overview/#_1-module-bar"},{default:o(()=>[v]),_:1})]),b,w,k,C]),I,S,N,t("ol",null,[t("li",null,[L,l(i,{to:"/docs/app/overview/#_1-module-bar"},{default:o(()=>[F]),_:1})]),x,O,A]),t("div",D,[M,t("p",null,[T,E,B,j,R,V,l(i,{to:"/docs/reference/query/#sort"},{default:o(()=>[q]),_:1}),z])]),P,t("p",null,[t("strong",null,[l(i,{to:"/docs/getting-started/glossary/#layouts"},{default:o(()=>[W]),_:1})])]),t("ol",null,[t("li",null,[J,l(i,{to:"/docs/app/overview/#_1-module-bar"},{default:o(()=>[X]),_:1})]),U,G,H,K]),Q,Y,Z,$,t("p",null,[tt,l(i,{to:"/docs/app/user-directory/"},{default:o(()=>[et]),_:1}),ot,l(i,{to:"/docs/reference/files/"},{default:o(()=>[it]),_:1}),lt]),nt,st,at,rt,dt,ht,ct,ut,t("ol",null,[t("li",null,[_t,l(i,{to:"/docs/app/overview/#_1-module-bar"},{default:o(()=>[mt]),_:1})]),gt,pt]),ft,t("p",null,[t("strong",null,[l(i,{to:"/docs/configuration/filter-rules/"},{default:o(()=>[yt]),_:1}),vt])]),t("ol",null,[t("li",null,[bt,l(i,{to:"/docs/app/overview/#_1-module-bar"},{default:o(()=>[wt]),_:1})]),kt,Ct,It,St,Nt,Lt]),Ft,t("p",null,[t("strong",null,[l(i,{to:"/docs/configuration/data-model/#archive"},{default:o(()=>[xt]),_:1}),Ot])]),t("ol",null,[t("li",null,[At,l(i,{to:"/docs/app/overview/#_1-module-bar"},{default:o(()=>[Dt]),_:1})]),Mt,Tt,Et]),Bt,t("ol",null,[t("li",null,[jt,l(i,{to:"/docs/app/overview/#_1-module-bar"},{default:o(()=>[Rt]),_:1})]),Vt,qt,zt,Pt,Wt]),Jt,Xt,t("p",null,[t("strong",null,[l(i,{to:"/docs/reference/system/utilities/#import-data-from-file"},{default:o(()=>[Ut]),_:1})])]),t("ol",null,[t("li",null,[Gt,l(i,{to:"/docs/app/overview/#_1-module-bar"},{default:o(()=>[Ht]),_:1})]),Kt,Qt,Yt,Zt]),$t,te])]),_:1})}}};export{ne as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as a,p as c,q as d,w as i,z as t,t as o,
|
|
1
|
+
import{r as a,p as c,q as d,w as i,z as t,t as o,S as e}from"./vendor.62e5a05d.js";const r={class:"markdown-body"},u=t("blockquote",null,[t("p",null,"A tailored form for viewing and editing an item\u2019s fields. This page also includes options for archiving, reverting, deleting, and commenting on the item.")],-1),_=t("p",null,[t("div",{class:"table-of-contents"},[t("ul",null,[t("li",null,[t("a",{href:"#updating-an-item"},"Updating an Item")]),t("li",null,[t("a",{href:"#deleting-an-item"},"Deleting an Item")]),t("li",null,[t("a",{href:"#archiving-an-item"},"Archiving an Item")]),t("li",null,[t("a",{href:"#reverting-an-item"},"Reverting an Item")]),t("li",null,[t("a",{href:"#commenting-on-an-item"},"Commenting on an Item")])])])],-1),m=t("div",{class:"warning hint"},[t("div",{class:"hint-title"},"Permissions"),t("p",null,"The actions on this page assume the current user has permission to perform that action. However, certain features may be disabled or hidden based on permissions.")],-1),g=t("h2",{id:"updating-an-item"},[e("Updating an Item "),t("a",{class:"header-anchor",href:"#updating-an-item"},"#")],-1),v=e("Navigate to the "),p=e("Content Module"),f=t("li",null,"Navigate to the collection of the item you want to update",-1),w=t("li",null,"Click on the item within the current layout (eg: on the row of the table)",-1),b=t("li",null,"Update the Item Detail form",-1),y=t("li",null,"Click the \u201CSave Item\u201D (\u2713 icon) button located in the header",-1),C=t("div",{class:"tip hint"},[t("div",{class:"hint-title"},"Other Save Options"),t("p",null,"To the right of the primary Save button there is a \u201C\u2026\u201D icon which contains the following alternate save options:"),t("ul",null,[t("li",null,"Save and Stay (\u2318S)"),t("li",null,"Save and Create New (\u2318\u21E7S)"),t("li",null,"Save as Copy")])],-1),k=t("div",{class:"tip hint"},[t("div",{class:"hint-title"},"Singletons"),t("p",null,"If the Collection is configured as a \u201CSingleton\u201D in the data model settings, then the App will automatically skip step #3 above.")],-1),I=t("h2",{id:"deleting-an-item"},[e("Deleting an Item "),t("a",{class:"header-anchor",href:"#deleting-an-item"},"#")],-1),D=e("Navigate to the "),S=e("Content Module"),N=t("li",null,"Navigate to the collection of the item you want to delete",-1),A=t("li",null,"Select the item(s) within the desired layout (eg: the checkbox on the table row)",-1),x=t("li",null,"Click the \u201CDelete Item\u201D (trash icon) button located in the header",-1),T=t("li",null,"Confirm the action within the dialog by clicking \u201CDelete\u201D",-1),M=t("div",{class:"tip hint"},[t("div",{class:"hint-title"},"Deleting from the Item Detail page"),t("p",null,"You can also click on an item to navigate to its Detail page. From there, you can click on the \u201CDelete Item\u201D (trash icon) button located in the header.")],-1),R=t("h2",{id:"archiving-an-item"},[e("Archiving an Item "),t("a",{class:"header-anchor",href:"#archiving-an-item"},"#")],-1),q=e("Navigate to the "),B=e("Content Module"),U=t("li",null,"Navigate to the collection of the item you want to archive",-1),V=t("li",null,"Select the item(s) within the desired layout (eg: the checkbox on the table row)",-1),Y=t("li",null,"Click the \u201CArchive Item\u201D (archive icon) button located in the header",-1),F=t("li",null,"Confirm the action within the dialog by clicking \u201CArchive\u201D",-1),O=t("div",{class:"warning hint"},[t("div",{class:"hint-title"},"Requires Configuration"),t("p",null,"This feature is only available if an Archive column has been configured in the Collection\u2019s data model settings.")],-1),P=t("div",{class:"tip hint"},[t("div",{class:"hint-title"},"Archiving from the Item Detail page"),t("p",null,"You can also click on an item to navigate to its Detail page. From there, you can click on the \u201CArchive Item\u201D (archive icon) button located in the header.")],-1),W=t("h2",{id:"reverting-an-item"},[e("Reverting an Item "),t("a",{class:"header-anchor",href:"#reverting-an-item"},"#")],-1),j=e("Navigate to the "),z=e("Content Module"),E=t("li",null,"Navigate to the collection of the item you want to archive",-1),H=t("li",null,"Click on an item to navigate to its Detail page",-1),G=t("li",null,"Click \u201CRevisions\u201D in the page sidebar",-1),J=t("li",null,"Click on the revision you wish to preview",-1),K=t("li",null,"Click on the \u201CRevert\u201D button located in the drawer\u2019s header",-1),L=t("li",null,"Confirm the action within the dialog by clicking \u201CRevert\u201D",-1),Q=t("h2",{id:"commenting-on-an-item"},[e("Commenting on an Item "),t("a",{class:"header-anchor",href:"#commenting-on-an-item"},"#")],-1),X=e("Navigate to the "),Z=e("Content Module"),$=t("li",null,"Navigate to the collection of the item you want to comment on",-1),tt=t("li",null,"Click on an item to navigate to its Detail page",-1),et=t("li",null,"Click \u201CComments\u201D in the page sidebar",-1),it=t("li",null,"Type your message within the input",-1),nt=t("li",null,"Click the \u201CSubmit\u201D button",-1),ot=t("h3",{id:"mentions"},[e("Mentions "),t("a",{class:"header-anchor",href:"#mentions"},"#")],-1),lt=t("p",null,[e("You can also mention any user by typing "),t("code",null,"@"),e(" along with their name or email in your comment. They will then receive a notification which will direct them to your comment.")],-1),dt={setup(at,{expose:s}){const l={title:"Item Page",modularExtension:!1};return s({frontmatter:l}),(st,ht)=>{const n=a("router-link"),h=a("DocsWrapper");return c(),d(h,{frontmatter:l},{default:i(()=>[t("div",r,[u,_,m,g,t("ol",null,[t("li",null,[v,o(n,{to:"/docs/app/overview#1.-module-bar"},{default:i(()=>[p]),_:1})]),f,w,b,y]),C,k,I,t("ol",null,[t("li",null,[D,o(n,{to:"/docs/app/overview#1.-module-bar"},{default:i(()=>[S]),_:1})]),N,A,x,T]),M,R,t("ol",null,[t("li",null,[q,o(n,{to:"/docs/app/overview#1.-module-bar"},{default:i(()=>[B]),_:1})]),U,V,Y,F]),O,P,W,t("ol",null,[t("li",null,[j,o(n,{to:"/docs/app/overview#1.-module-bar"},{default:i(()=>[z]),_:1})]),E,H,G,J,K,L]),Q,t("ol",null,[t("li",null,[X,o(n,{to:"/docs/app/overview#1.-module-bar"},{default:i(()=>[Z]),_:1})]),$,tt,et,it,nt]),ot,lt])]),_:1})}}};export{dt as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as n,p as c,q as d,w as o,z as e,t as s,S as t}from"./vendor.62e5a05d.js";var _="assets/collection-overview.f5f4bdd0.png",g="assets/article-overview.86ef3f76.png";const m={class:"markdown-body"},h=e("blockquote",null,[e("p",null,"This module is the primary way for interacting with your database content. Here you can browse/visualize collections of items, and navigate to their individual item forms.")],-1),p=e("h2",{id:"collection-page"},[t("Collection Page "),e("a",{class:"header-anchor",href:"#collection-page"},"#")],-1),u=e("p",null,[e("img",{src:_,alt:"Collection Overview"})],-1),f=t("This is the main gateway to your items, providing highly configurable Layouts for browsing, visualizing, and managing the items within a collection. Clicking on an item takes to you to the Item Page. "),v=t("Learn more about the Collection Page"),w=e("h2",{id:"item-page"},[t("Item Page "),e("a",{class:"header-anchor",href:"#item-page"},"#")],-1),y=e("p",null,[e("img",{src:g,alt:"Article Overview"})],-1),b=t("A tailored form for viewing and editing an item\u2019s fields. This page also includes options for archiving, reverting, deleting, and commenting on the item. "),k=t("Learn more about the Item Page"),z={setup(C,{expose:r}){const i={title:"Content",modularExtension:!1};return r({frontmatter:i}),(x,P)=>{const a=n("router-link"),l=n("DocsWrapper");return c(),d(l,{frontmatter:i},{default:o(()=>[e("div",m,[h,p,u,e("p",null,[f,s(a,{to:"/docs/getting-started/glossary/#collections"},{default:o(()=>[v]),_:1})]),w,y,e("p",null,[b,s(a,{to:"/docs/getting-started/glossary/#items"},{default:o(()=>[k]),_:1})])])]),_:1})}}};export{z as default};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import{r as l,p as c,q as u,w as t,z as e,t as s,
|
|
1
|
+
import{r as l,p as c,q as u,w as t,z as e,t as s,S as n}from"./vendor.62e5a05d.js";const r={class:"markdown-body"},h=e("h2",{id:"scaffolding-your-directus-extension"},[n("Scaffolding your Directus Extension "),e("a",{class:"header-anchor",href:"#scaffolding-your-directus-extension"},"#")],-1),p=e("p",null,[n("The easiest way to start developing extensions is to use the "),e("code",null,"create-directus-extension"),n(" utility:")],-1),_=e("pre",null,[e("code",{class:"language-bash"},`npm init directus-extension
|
|
2
2
|
`)],-1),f=e("p",null,"After specifying the the name of the extension, the type of the extension and the programming language you want to use, the utility will create a folder with the recommended file structure to create an extension.",-1),g=e("h3",{id:"extension-folder-structure"},[n("Extension Folder Structure "),e("a",{class:"header-anchor",href:"#extension-folder-structure"},"#")],-1),y=e("p",null,[n("The folder created by the utility is in fact a npm package. It comes with a few pre-installed packages depending on the extension type and the language you chose. The most important one is "),e("code",null,"@directus/extensions-sdk"),n(". This package includes a CLI, which allows you to build your extension and to scaffold additional extensions, and it provides Typescript helpers and other utilities.")],-1),x=e("p",null,[n("Inside the created folder there is a "),e("code",null,"src/"),n(" folder. This folder contains the entrypoint of your extension. If you write additional source files, they should go into this folder.")],-1),m=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Entrypoint"),e("p",null,[n("The entrypoint is either called "),e("code",null,"index.js"),n(" or "),e("code",null,"index.ts"),n(", depending on which programming language you chose.")])],-1),b=e("p",null,[n("The generated "),e("code",null,"package.json"),n(" file contains an additional "),e("code",null,"directus:extension"),n(" field with the following sub-fields:")],-1),w=e("ul",null,[e("li",null,[e("code",null,"type"),n(" \u2014 The type of the extension")]),e("li",null,[e("code",null,"path"),n(" \u2014 The path to the built extension")]),e("li",null,[e("code",null,"source"),n(" \u2014 The path to the source entrypoint")]),e("li",null,[e("code",null,"host"),n(" \u2014 A semver string that indicates with which versions of the Directus host, the extension is compatible with")])],-1),v=e("p",null,"The CLI will use those fields by default to determine the input and output file paths and how the extension should be built.",-1),T=e("h2",{id:"building-your-extension"},[n("Building your Extension "),e("a",{class:"header-anchor",href:"#building-your-extension"},"#")],-1),k=e("p",null,[n("Before your extension can be used by Directus, it has to be built. If you used the "),e("code",null,"create-directus-extension"),n(" utility to scaffold your extension, building your extension is as easy as running:")],-1),I=e("pre",null,[e("code",{class:"language-bash"},`npm run build
|
|
3
3
|
`)],-1),j=e("p",null,[n("The generated "),e("code",null,"package.json"),n(" contains a script that calls the "),e("code",null,"directus-extension"),n(" CLI which is part of "),e("code",null,"@directus/extensions-sdk"),n(":")],-1),E=e("pre",null,[e("code",{class:"language-json"},[n(`{
|
|
4
4
|
`),e("span",{class:"hljs-attr"},'"scripts"'),n(`: {
|
|
5
5
|
`),e("span",{class:"hljs-attr"},'"build"'),n(": "),e("span",{class:"hljs-string"},'"directus-extension build"'),n(`
|
|
6
6
|
}
|
|
7
7
|
}
|
|
8
|
-
`)])],-1),C=e("p",null,[n("If you prefer to scaffold your extension manually, you can use the "),e("code",null,"directus-extension"),n(" CLI binary directly. The "),e("code",null,"--help"),n(" flag provides useful information regarding the available options and flags.")],-1),L=e("p",null,"Internally, the CLI uses Rollup to bundle your extension to a single entrypoint.",-1),
|
|
8
|
+
`)])],-1),C=e("p",null,[n("If you prefer to scaffold your extension manually, you can use the "),e("code",null,"directus-extension"),n(" CLI binary directly. The "),e("code",null,"--help"),n(" flag provides useful information regarding the available options and flags.")],-1),L=e("p",null,"Internally, the CLI uses Rollup to bundle your extension to a single entrypoint.",-1),S=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"Watch"),e("p",null,[n("The CLI supports rebuilding extensions whenever a file has changed by using the "),e("code",null,"--watch"),n(" flag.")])],-1),D=e("h3",{id:"configuring-the-cli"},[n("Configuring the CLI "),e("a",{class:"header-anchor",href:"#configuring-the-cli"},"#")],-1),A=e("p",null,[n("Most of the time, it should be sufficient to use the CLI as is. But, in some cases it might be necessary to customize it to your specific needs. This can be done by creating a "),e("code",null,"extension.config.js"),n(" file at the root of your extension package with the following content:")],-1),B=e("pre",null,[e("code",{class:"language-js"},[e("span",{class:"hljs-built_in"},"module"),n(`.exports = {
|
|
9
9
|
`),e("span",{class:"hljs-attr"},"plugins"),n(`: [],
|
|
10
10
|
};
|
|
11
|
-
`)])],-1),N=e("h4",{id:"supported-options"},[n("Supported Options "),e("a",{class:"header-anchor",href:"#supported-options"},"#")],-1),
|
|
11
|
+
`)])],-1),N=e("h4",{id:"supported-options"},[n("Supported Options "),e("a",{class:"header-anchor",href:"#supported-options"},"#")],-1),M=e("ul",null,[e("li",null,[e("code",null,"plugins"),n(" \u2014 An array of Rollup plugins that will be used when building extensions in addition to the built-in ones.")])],-1),O=e("div",{class:"tip hint"},[e("div",{class:"hint-title"},"CommonJS or ESM"),e("p",null,[n("By using the "),e("code",null,"type"),n(" field inside your "),e("code",null,"package.json"),n(" file or using the appropriate file extension ("),e("code",null,".mjs"),n(" or "),e("code",null,".cjs"),n("), the config file can be loaded as a CommonJS or ESM file.")])],-1),R=e("h2",{id:"deploying-your-extension"},[n("Deploying your Extension "),e("a",{class:"header-anchor",href:"#deploying-your-extension"},"#")],-1),W=e("p",null,[n("To deploy your extension, you have to move the output from the "),e("code",null,"dist/"),n(" folder into your project\u2019s "),e("code",null,"./extensions/<extension-folder>/<extension-name>/"),n(" folder. "),e("code",null,"<extension-folder>"),n(" has to be replaced by the extension type in plural form (e.g. interfaces). "),e("code",null,"<extension-name>"),n(" should be replaced with the name of your extension.")],-1),P=e("div",{class:"warning hint"},[e("div",{class:"hint-title"},"Configurable Folders"),e("p",null,"The path to the built extension as well as the extensions directory are configurable and may be located elsewhere.")],-1),V=e("h2",{id:"developing-your-extension"},[n("Developing your Extension "),e("a",{class:"header-anchor",href:"#developing-your-extension"},"#")],-1),z=e("p",null,"To learn more about developing extensions of a specific type, you can refer to one of the individual guides:",-1),F=e("h4",{id:"app-extensions"},[n("App Extensions "),e("a",{class:"header-anchor",href:"#app-extensions"},"#")],-1),J=n("Interfaces"),q=n("Displays"),H=n("Layouts"),U=n("Modules"),X=n("Panels"),G=e("h4",{id:"api-extensions"},[n("API Extensions "),e("a",{class:"header-anchor",href:"#api-extensions"},"#")],-1),K=n("Hooks"),Q=n("Endpoints"),Y={class:"tip hint"},Z=e("div",{class:"hint-title"},"Live Reloading",-1),$=n("When working on extensions, try setting the "),ee=e("code",null,"EXTENSIONS_AUTO_RELOAD",-1),ne=n(" environment variable"),te=n(". This will make the API reload extensions on changes automatically."),ae={setup(oe,{expose:a}){const i={title:"Creating Extensions",modularExtension:!1};return a({frontmatter:i}),(se,ie)=>{const o=l("router-link"),d=l("DocsWrapper");return c(),u(d,{frontmatter:i},{default:t(()=>[e("div",r,[h,p,_,f,g,y,x,m,b,w,v,T,k,I,j,E,C,L,S,D,A,B,N,M,O,R,W,P,V,z,F,e("ul",null,[e("li",null,[s(o,{to:"/docs/extensions/interfaces/"},{default:t(()=>[J]),_:1})]),e("li",null,[s(o,{to:"/docs/extensions/displays/"},{default:t(()=>[q]),_:1})]),e("li",null,[s(o,{to:"/docs/extensions/layouts/"},{default:t(()=>[H]),_:1})]),e("li",null,[s(o,{to:"/docs/extensions/modules/"},{default:t(()=>[U]),_:1})]),e("li",null,[s(o,{to:"/docs/extensions/panels/"},{default:t(()=>[X]),_:1})])]),G,e("ul",null,[e("li",null,[s(o,{to:"/docs/extensions/hooks/"},{default:t(()=>[K]),_:1})]),e("li",null,[s(o,{to:"/docs/extensions/endpoints/"},{default:t(()=>[Q]),_:1})])]),e("div",Y,[Z,e("p",null,[$,s(o,{to:"/docs/configuration/config-options"},{default:t(()=>[ee,ne]),_:1}),te])])])]),_:1})}}};export{ae as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{bK as L}from"./vendor.
|
|
1
|
+
import{bK as L}from"./vendor.62e5a05d.js";function q(v,g){return g.forEach(function(o){o&&typeof o!="string"&&!Array.isArray(o)&&Object.keys(o).forEach(function(c){if(c!=="default"&&!(c in v)){var f=Object.getOwnPropertyDescriptor(o,c);Object.defineProperty(v,c,f.get?f:{enumerable:!0,get:function(){return o[c]}})}})}),Object.freeze(v)}var O={exports:{}};(function(v,g){(function(o){o(L.exports)})(function(o){o.defineMode("crystal",function(c){function f(n,e){return new RegExp((e?"":"^")+"(?:"+n.join("|")+")"+(e?"$":"\\b"))}function l(n,e,r){return r.tokenize.push(n),n(e,r)}var y=/^(?:[-+/%|&^]|\*\*?|[<>]{2})/,_=/^(?:[=!]~|===|<=>|[<>=!]=?|[|&]{2}|~)/,b=/^(?:\[\][?=]?)/,A=/^(?:\.(?:\.{2})?|->|[?:])/,h=/^[a-z_\u009F-\uFFFF][a-zA-Z0-9_\u009F-\uFFFF]*/,F=/^[A-Z_\u009F-\uFFFF][a-zA-Z0-9_\u009F-\uFFFF]*/,T=f(["abstract","alias","as","asm","begin","break","case","class","def","do","else","elsif","end","ensure","enum","extend","for","fun","if","include","instance_sizeof","lib","macro","module","next","of","out","pointerof","private","protected","rescue","return","require","select","sizeof","struct","super","then","type","typeof","uninitialized","union","unless","until","when","while","with","yield","__DIR__","__END_LINE__","__FILE__","__LINE__"]),j=f(["true","false","nil","self"]),K=["def","fun","macro","class","module","struct","lib","enum","union","do","for"],P=f(K),D=["if","unless","case","while","until","begin","then"],M=f(D),s=["end","else","elsif","rescue","ensure"],N=f(s),I=["\\)","\\}","\\]"],Z=new RegExp("^(?:"+I.join("|")+")$"),E={def:S,fun:S,macro:$,class:p,module:p,struct:p,lib:p,enum:p,union:p},z={"[":"]","{":"}","(":")","<":">"};function w(n,e){if(n.eatSpace())return null;if(e.lastToken!="\\"&&n.match("{%",!1))return l(a("%","%"),n,e);if(e.lastToken!="\\"&&n.match("{{",!1))return l(a("{","}"),n,e);if(n.peek()=="#")return n.skipToEnd(),"comment";var r;if(n.match(h))return n.eat(/[?!]/),r=n.current(),n.eat(":")?"atom":e.lastToken=="."?"property":T.test(r)?(P.test(r)?!(r=="fun"&&e.blocks.indexOf("lib")>=0)&&!(r=="def"&&e.lastToken=="abstract")&&(e.blocks.push(r),e.currentIndent+=1):(e.lastStyle=="operator"||!e.lastStyle)&&M.test(r)?(e.blocks.push(r),e.currentIndent+=1):r=="end"&&(e.blocks.pop(),e.currentIndent-=1),E.hasOwnProperty(r)&&e.tokenize.push(E[r]),"keyword"):j.test(r)?"atom":"variable";if(n.eat("@"))return n.peek()=="["?l(d("[","]","meta"),n,e):(n.eat("@"),n.match(h)||n.match(F),"variable-2");if(n.match(F))return"tag";if(n.eat(":"))return n.eat('"')?l(x('"',"atom",!1),n,e):n.match(h)||n.match(F)||n.match(y)||n.match(_)||n.match(b)?"atom":(n.eat(":"),"operator");if(n.eat('"'))return l(x('"',"string",!0),n,e);if(n.peek()=="%"){var u="string",t=!0,i;if(n.match("%r"))u="string-2",i=n.next();else if(n.match("%w"))t=!1,i=n.next();else if(n.match("%q"))t=!1,i=n.next();else if(i=n.match(/^%([^\w\s=])/))i=i[1];else{if(n.match(/^%[a-zA-Z_\u009F-\uFFFF][\w\u009F-\uFFFF]*/))return"meta";if(n.eat("%"))return"operator"}return z.hasOwnProperty(i)&&(i=z[i]),l(x(i,u,t),n,e)}return(r=n.match(/^<<-('?)([A-Z]\w*)\1/))?l(R(r[2],!r[1]),n,e):n.eat("'")?(n.match(/^(?:[^']|\\(?:[befnrtv0'"]|[0-7]{3}|u(?:[0-9a-fA-F]{4}|\{[0-9a-fA-F]{1,6}\})))/),n.eat("'"),"atom"):n.eat("0")?(n.eat("x")?n.match(/^[0-9a-fA-F_]+/):n.eat("o")?n.match(/^[0-7_]+/):n.eat("b")&&n.match(/^[01_]+/),"number"):n.eat(/^\d/)?(n.match(/^[\d_]*(?:\.[\d_]+)?(?:[eE][+-]?\d+)?/),"number"):n.match(y)?(n.eat("="),"operator"):n.match(_)||n.match(A)?"operator":(r=n.match(/[({[]/,!1))?(r=r[0],l(d(r,z[r],null),n,e)):n.eat("\\")?(n.next(),"meta"):(n.next(),null)}function d(n,e,r,u){return function(t,i){if(!u&&t.match(n))return i.tokenize[i.tokenize.length-1]=d(n,e,r,!0),i.currentIndent+=1,r;var k=w(t,i);return t.current()===e&&(i.tokenize.pop(),i.currentIndent-=1,k=r),k}}function a(n,e,r){return function(u,t){return!r&&u.match("{"+n)?(t.currentIndent+=1,t.tokenize[t.tokenize.length-1]=a(n,e,!0),"meta"):u.match(e+"}")?(t.currentIndent-=1,t.tokenize.pop(),"meta"):w(u,t)}}function $(n,e){if(n.eatSpace())return null;var r;if(r=n.match(h)){if(r=="def")return"keyword";n.eat(/[?!]/)}return e.tokenize.pop(),"def"}function S(n,e){return n.eatSpace()?null:(n.match(h)?n.eat(/[!?]/):n.match(y)||n.match(_)||n.match(b),e.tokenize.pop(),"def")}function p(n,e){return n.eatSpace()?null:(n.match(F),e.tokenize.pop(),"def")}function x(n,e,r){return function(u,t){for(var i=!1;u.peek();)if(i)u.next(),i=!1;else{if(u.match("{%",!1))return t.tokenize.push(a("%","%")),e;if(u.match("{{",!1))return t.tokenize.push(a("{","}")),e;if(r&&u.match("#{",!1))return t.tokenize.push(d("#{","}","meta")),e;var k=u.next();if(k==n)return t.tokenize.pop(),e;i=r&&k=="\\"}return e}}function R(n,e){return function(r,u){if(r.sol()&&(r.eatSpace(),r.match(n)))return u.tokenize.pop(),"string";for(var t=!1;r.peek();)if(t)r.next(),t=!1;else{if(r.match("{%",!1))return u.tokenize.push(a("%","%")),"string";if(r.match("{{",!1))return u.tokenize.push(a("{","}")),"string";if(e&&r.match("#{",!1))return u.tokenize.push(d("#{","}","meta")),"string";t=e&&r.next()=="\\"}return"string"}}return{startState:function(){return{tokenize:[w],currentIndent:0,lastToken:null,lastStyle:null,blocks:[]}},token:function(n,e){var r=e.tokenize[e.tokenize.length-1](n,e),u=n.current();return r&&r!="comment"&&(e.lastToken=u,e.lastStyle=r),r},indent:function(n,e){return e=e.replace(/^\s*(?:\{%)?\s*|\s*(?:%\})?\s*$/g,""),N.test(e)||Z.test(e)?c.indentUnit*(n.currentIndent-1):c.indentUnit*n.currentIndent},fold:"indent",electricInput:f(I.concat(s),!0),lineComment:"#"}}),o.defineMIME("text/x-crystal","crystal")})})();var U=O.exports,H=Object.freeze(q({__proto__:null,[Symbol.toStringTag]:"Module",default:U},[O.exports]));export{H as c};
|