Add checkbox-list custom field plugin to Strapi

- Introduced a new custom field type 'checkbox-list' with associated input component.
- Updated package.json to reflect the new plugin name.
- Added necessary server-side files for plugin registration, including bootstrap, destroy, and service methods.
- Updated package-lock.json to include new dependencies and versions.
- Enhanced admin interface with custom field registration and input handling.
This commit is contained in:
2026-02-05 11:53:17 +00:00
parent efa89313fa
commit 7fe5502dc1
21 changed files with 1254 additions and 170 deletions

6
server/src/bootstrap.js vendored Normal file
View File

@@ -0,0 +1,6 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const bootstrap = ({ strapi }) => {
// bootstrap phase
};
exports.default = bootstrap;

View File

@@ -0,0 +1,6 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = {
default: {},
validator() { },
};

View File

@@ -0,0 +1,3 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = {};

View File

@@ -0,0 +1,12 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const controller = ({ strapi }) => ({
index(ctx) {
ctx.body = strapi
.plugin('strapi-plugin-checkbox-list')
// the name of the service file & the method.
.service('service')
.getWelcomeMessage();
},
});
exports.default = controller;

View File

@@ -0,0 +1,9 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const controller_1 = __importDefault(require("./controller"));
exports.default = {
controller: controller_1.default,
};

6
server/src/destroy.js Normal file
View File

@@ -0,0 +1,6 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const destroy = ({ strapi }) => {
// destroy phase
};
exports.default = destroy;

33
server/src/index.js Normal file
View File

@@ -0,0 +1,33 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
/**
* Application methods
*/
const bootstrap_1 = __importDefault(require("./bootstrap"));
const destroy_1 = __importDefault(require("./destroy"));
const register_1 = __importDefault(require("./register"));
/**
* Plugin server methods
*/
const config_1 = __importDefault(require("./config"));
const content_types_1 = __importDefault(require("./content-types"));
const controllers_1 = __importDefault(require("./controllers"));
const middlewares_1 = __importDefault(require("./middlewares"));
const policies_1 = __importDefault(require("./policies"));
const routes_1 = __importDefault(require("./routes"));
const services_1 = __importDefault(require("./services"));
exports.default = {
register: register_1.default,
bootstrap: bootstrap_1.default,
destroy: destroy_1.default,
config: config_1.default,
controllers: controllers_1.default,
routes: routes_1.default,
services: services_1.default,
contentTypes: content_types_1.default,
policies: policies_1.default,
middlewares: middlewares_1.default,
};

View File

@@ -0,0 +1,3 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = {};

View File

@@ -0,0 +1,3 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = {};

11
server/src/register.js Normal file
View File

@@ -0,0 +1,11 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const register = ({ strapi }) => {
// register phase
strapi.customFields.register({
name: 'checkbox-list',
plugin: 'checkbox-list',
type: 'json',
});
};
exports.default = register;

View File

@@ -2,6 +2,11 @@ import type { Core } from '@strapi/strapi';
const register = ({ strapi }: { strapi: Core.Strapi }) => {
// register phase
strapi.customFields.register({
name: 'checkbox-list',
plugin: 'checkbox-list',
type: 'json',
});
};
export default register;

View File

@@ -0,0 +1,6 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = () => ({
type: 'admin',
routes: [],
});

View File

@@ -0,0 +1,16 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = () => ({
type: 'content-api',
routes: [
{
method: 'GET',
path: '/',
// name of the controller file & the method.
handler: 'controller.index',
config: {
policies: [],
},
},
],
});

View File

@@ -0,0 +1,12 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const content_api_1 = __importDefault(require("./content-api"));
const admin_1 = __importDefault(require("./admin"));
const routes = {
'content-api': content_api_1.default,
admin: admin_1.default,
};
exports.default = routes;

View File

@@ -0,0 +1,9 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const service_1 = __importDefault(require("./service"));
exports.default = {
service: service_1.default,
};

View File

@@ -0,0 +1,8 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const service = ({ strapi }) => ({
getWelcomeMessage() {
return 'Welcome to Strapi 🚀';
},
});
exports.default = service;