aboutsummaryrefslogtreecommitdiff
path: root/admin/src/index.ts
diff options
context:
space:
mode:
Diffstat (limited to 'admin/src/index.ts')
-rw-r--r--admin/src/index.ts93
1 files changed, 75 insertions, 18 deletions
diff --git a/admin/src/index.ts b/admin/src/index.ts
index f3e7a28..a1c0473 100644
--- a/admin/src/index.ts
+++ b/admin/src/index.ts
@@ -1,25 +1,10 @@
-import { Check } from '@strapi/icons';
+import { EnumerationField } from '@strapi/icons/symbols';
import { Initializer } from './components/Initializer';
-import { PluginIcon } from './components/PluginIcon';
+import { CheckboxListDefaultInput } from './components/CheckboxListDefaultInput';
import { PLUGIN_ID } from './pluginId';
-import { getTranslation } from './utils/getTranslation';
export default {
register(app: any) {
- app.addMenuLink({
- to: `plugins/${PLUGIN_ID}`,
- icon: PluginIcon,
- intlLabel: {
- id: `${PLUGIN_ID}.plugin.name`,
- defaultMessage: PLUGIN_ID,
- },
- Component: async () => {
- const { App } = await import('./pages/App');
-
- return App;
- },
- });
-
app.registerPlugin({
id: PLUGIN_ID,
initializer: Initializer,
@@ -27,11 +12,20 @@ export default {
name: PLUGIN_ID,
});
+ const ctbPlugin = app.getPlugin?.('content-type-builder');
+
+ if (ctbPlugin?.apis?.forms?.components?.add) {
+ ctbPlugin.apis.forms.components.add({
+ id: 'checkbox-list-default',
+ component: CheckboxListDefaultInput,
+ });
+ }
+
app.customFields.register({
name: 'checkbox-list',
pluginId: PLUGIN_ID,
type: 'json',
- icon: Check,
+ icon: EnumerationField,
intlLabel: {
id: `${PLUGIN_ID}.customField.label`,
defaultMessage: 'Checkbox list',
@@ -71,6 +65,69 @@ export default {
],
},
],
+ advanced: [
+ {
+ sectionTitle: null,
+ items: [
+ {
+ name: 'default',
+ type: 'checkbox-list-default',
+ size: 6,
+ intlLabel: {
+ id: 'form.attribute.settings.default',
+ defaultMessage: 'Default value',
+ },
+ validations: {},
+ },
+ {
+ name: 'options.enumName',
+ type: 'text',
+ size: 6,
+ intlLabel: {
+ id: 'form.attribute.item.enumeration.graphql',
+ defaultMessage: 'Name override for GraphQL',
+ },
+ description: {
+ id: 'form.attribute.item.enumeration.graphql.description',
+ defaultMessage: 'Allows you to override the default generated name for GraphQL',
+ },
+ validations: {},
+ },
+ ],
+ },
+ {
+ sectionTitle: {
+ id: 'global.settings',
+ defaultMessage: 'Settings',
+ },
+ items: [
+ {
+ name: 'required',
+ type: 'checkbox',
+ intlLabel: {
+ id: 'form.attribute.item.requiredField',
+ defaultMessage: 'Required field',
+ },
+ description: {
+ id: 'form.attribute.item.requiredField.description',
+ defaultMessage: "You won't be able to create an entry if this field is empty",
+ },
+ },
+ {
+ name: 'private',
+ type: 'checkbox',
+ intlLabel: {
+ id: 'form.attribute.item.privateField',
+ defaultMessage: 'Private field',
+ },
+ description: {
+ id: 'form.attribute.item.privateField.description',
+ defaultMessage: 'This field will not show up in the API response',
+ },
+ },
+ ],
+ },
+ ],
},
});
},