@primershop/strapi-plugin-status-manager 0.0.15 → 0.0.17
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/_chunks/HomePage-CYpSKXVE.mjs +2116 -0
- package/dist/_chunks/HomePage-CYpSKXVE.mjs.map +1 -0
- package/dist/_chunks/HomePage-D9xj2-y8.js +2116 -0
- package/dist/_chunks/HomePage-D9xj2-y8.js.map +1 -0
- package/dist/_chunks/index-BXToWkDF.js +228 -0
- package/dist/_chunks/index-BXToWkDF.js.map +1 -0
- package/dist/_chunks/index-CzxwE0pe.mjs +227 -0
- package/dist/_chunks/index-CzxwE0pe.mjs.map +1 -0
- package/dist/admin/index.js +3 -48
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +3 -45
- package/dist/admin/index.mjs.map +1 -1
- package/dist/server/index.js +646 -18
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +648 -17
- package/dist/server/index.mjs.map +1 -1
- package/package.json +9 -5
- package/dist/admin/components/Initializer.js +0 -17
- package/dist/admin/components/Initializer.js.map +0 -1
- package/dist/admin/components/Initializer.mjs +0 -15
- package/dist/admin/components/Initializer.mjs.map +0 -1
- package/dist/admin/components/PluginIcon.js +0 -9
- package/dist/admin/components/PluginIcon.js.map +0 -1
- package/dist/admin/components/PluginIcon.mjs +0 -7
- package/dist/admin/components/PluginIcon.mjs.map +0 -1
- package/dist/admin/components/ProductStatusField.js +0 -104
- package/dist/admin/components/ProductStatusField.js.map +0 -1
- package/dist/admin/components/ProductStatusField.mjs +0 -102
- package/dist/admin/components/ProductStatusField.mjs.map +0 -1
- package/dist/admin/components/StatusManager.js +0 -367
- package/dist/admin/components/StatusManager.js.map +0 -1
- package/dist/admin/components/StatusManager.mjs +0 -365
- package/dist/admin/components/StatusManager.mjs.map +0 -1
- package/dist/admin/listView/StatusFilter.js +0 -76
- package/dist/admin/listView/StatusFilter.js.map +0 -1
- package/dist/admin/listView/StatusFilter.mjs +0 -74
- package/dist/admin/listView/StatusFilter.mjs.map +0 -1
- package/dist/admin/listView/add-status-column-hook.js +0 -34
- package/dist/admin/listView/add-status-column-hook.js.map +0 -1
- package/dist/admin/listView/add-status-column-hook.mjs +0 -32
- package/dist/admin/listView/add-status-column-hook.mjs.map +0 -1
- package/dist/admin/listView/status-cell.js +0 -28
- package/dist/admin/listView/status-cell.js.map +0 -1
- package/dist/admin/listView/status-cell.mjs +0 -26
- package/dist/admin/listView/status-cell.mjs.map +0 -1
- package/dist/admin/pages/HomePage.js +0 -55
- package/dist/admin/pages/HomePage.js.map +0 -1
- package/dist/admin/pages/HomePage.mjs +0 -53
- package/dist/admin/pages/HomePage.mjs.map +0 -1
- package/dist/admin/permissions.js +0 -16
- package/dist/admin/permissions.js.map +0 -1
- package/dist/admin/permissions.mjs +0 -14
- package/dist/admin/permissions.mjs.map +0 -1
- package/dist/admin/pluginId.js +0 -6
- package/dist/admin/pluginId.js.map +0 -1
- package/dist/admin/pluginId.mjs +0 -4
- package/dist/admin/pluginId.mjs.map +0 -1
- package/dist/server/bootstrap.js +0 -35
- package/dist/server/bootstrap.js.map +0 -1
- package/dist/server/bootstrap.mjs +0 -33
- package/dist/server/bootstrap.mjs.map +0 -1
- package/dist/server/content-types/index.js +0 -16
- package/dist/server/content-types/index.js.map +0 -1
- package/dist/server/content-types/index.mjs +0 -14
- package/dist/server/content-types/index.mjs.map +0 -1
- package/dist/server/content-types/status-link.js +0 -43
- package/dist/server/content-types/status-link.js.map +0 -1
- package/dist/server/content-types/status-link.mjs +0 -41
- package/dist/server/content-types/status-link.mjs.map +0 -1
- package/dist/server/content-types/status.js +0 -50
- package/dist/server/content-types/status.js.map +0 -1
- package/dist/server/content-types/status.mjs +0 -48
- package/dist/server/content-types/status.mjs.map +0 -1
- package/dist/server/controllers/content.js +0 -33
- package/dist/server/controllers/content.js.map +0 -1
- package/dist/server/controllers/content.mjs +0 -31
- package/dist/server/controllers/content.mjs.map +0 -1
- package/dist/server/controllers/index.js +0 -12
- package/dist/server/controllers/index.js.map +0 -1
- package/dist/server/controllers/index.mjs +0 -10
- package/dist/server/controllers/index.mjs.map +0 -1
- package/dist/server/controllers/status.js +0 -106
- package/dist/server/controllers/status.js.map +0 -1
- package/dist/server/controllers/status.mjs +0 -104
- package/dist/server/controllers/status.mjs.map +0 -1
- package/dist/server/middlewares/add-status-field.js +0 -48
- package/dist/server/middlewares/add-status-field.js.map +0 -1
- package/dist/server/middlewares/add-status-field.mjs +0 -46
- package/dist/server/middlewares/add-status-field.mjs.map +0 -1
- package/dist/server/middlewares/filter-by-status.js +0 -42
- package/dist/server/middlewares/filter-by-status.js.map +0 -1
- package/dist/server/middlewares/filter-by-status.mjs +0 -40
- package/dist/server/middlewares/filter-by-status.mjs.map +0 -1
- package/dist/server/middlewares/filter-published.js +0 -35
- package/dist/server/middlewares/filter-published.js.map +0 -1
- package/dist/server/middlewares/filter-published.mjs +0 -33
- package/dist/server/middlewares/filter-published.mjs.map +0 -1
- package/dist/server/permissions.js +0 -51
- package/dist/server/permissions.js.map +0 -1
- package/dist/server/permissions.mjs +0 -49
- package/dist/server/permissions.mjs.map +0 -1
- package/dist/server/pluginId.js +0 -6
- package/dist/server/pluginId.js.map +0 -1
- package/dist/server/pluginId.mjs +0 -4
- package/dist/server/pluginId.mjs.map +0 -1
- package/dist/server/register.js +0 -20
- package/dist/server/register.js.map +0 -1
- package/dist/server/register.mjs +0 -18
- package/dist/server/register.mjs.map +0 -1
- package/dist/server/routes/content-management.js +0 -41
- package/dist/server/routes/content-management.js.map +0 -1
- package/dist/server/routes/content-management.mjs +0 -39
- package/dist/server/routes/content-management.mjs.map +0 -1
- package/dist/server/routes/index.js +0 -17
- package/dist/server/routes/index.js.map +0 -1
- package/dist/server/routes/index.mjs +0 -15
- package/dist/server/routes/index.mjs.map +0 -1
- package/dist/server/routes/status-management.js +0 -122
- package/dist/server/routes/status-management.js.map +0 -1
- package/dist/server/routes/status-management.mjs +0 -120
- package/dist/server/routes/status-management.mjs.map +0 -1
- package/dist/server/services/index.js +0 -12
- package/dist/server/services/index.js.map +0 -1
- package/dist/server/services/index.mjs +0 -10
- package/dist/server/services/index.mjs.map +0 -1
- package/dist/server/services/status-link.js +0 -38
- package/dist/server/services/status-link.js.map +0 -1
- package/dist/server/services/status-link.mjs +0 -36
- package/dist/server/services/status-link.mjs.map +0 -1
- package/dist/server/services/status.js +0 -110
- package/dist/server/services/status.js.map +0 -1
- package/dist/server/services/status.mjs +0 -108
- package/dist/server/services/status.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../server/src/index.ts"],"sourcesContent":["import bootstrap from \"./bootstrap\";\r\nimport contentTypes from \"./content-types/index\";\r\nimport { controllers } from \"./controllers\";\r\nimport register from \"./register\";\r\nimport { routes } from \"./routes\";\r\nimport { services } from \"./services\";\r\n\r\nexport default {\r\n register,\r\n controllers,\r\n contentTypes,\r\n routes,\r\n services,\r\n bootstrap,\r\n };\r\n"],"names":["register","controllers","contentTypes","routes","services","bootstrap"],"mappings":";;;;;;;AAOA,YAAe;AACXA,IAAAA,QAAAA;AACAC,IAAAA,WAAAA;AACAC,IAAAA,YAAAA;AACAC,IAAAA,MAAAA;AACAC,IAAAA,QAAAA;AACAC,IAAAA;AACF,CAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../server/src/permissions.ts","../../server/src/bootstrap.ts","../../server/src/content-types/status.ts","../../server/src/content-types/status-link.ts","../../server/src/content-types/index.ts","../../server/src/controllers/content.ts","../../server/src/controllers/status.ts","../../server/src/controllers/index.ts","../../server/src/pluginId.ts","../../server/src/middlewares/add-status-field.ts","../../server/src/middlewares/filter-by-status.ts","../../server/src/middlewares/filter-published.ts","../../server/src/register.ts","../../server/src/routes/status-management.ts","../../server/src/routes/content-management.ts","../../server/src/routes/index.ts","../../server/src/services/status.ts","../../server/src/services/status-link.ts","../../server/src/services/index.ts","../../server/src/index.ts"],"sourcesContent":["export default [\r\n {\r\n section: \"plugins\",\r\n displayName: \"Access Status Manager\",\r\n uid: \"main\",\r\n pluginName: \"primershop-status-manager\",\r\n },\r\n {\r\n section: \"plugins\",\r\n displayName: \"Create\",\r\n uid: \"status.create\",\r\n subCategory: \"status\",\r\n pluginName: \"primershop-status-manager\",\r\n },\r\n {\r\n section: \"plugins\",\r\n displayName: \"Read\",\r\n uid: \"status.read\",\r\n subCategory: \"status\",\r\n pluginName: \"primershop-status-manager\",\r\n aliases: [\r\n {\r\n actionId: \"plugin::content-manager.explorer.read\",\r\n subjects: [\"plugin::primershop-status-manager.status\"],\r\n },\r\n ],\r\n },\r\n {\r\n section: \"plugins\",\r\n displayName: \"Update\",\r\n uid: \"status.update\",\r\n subCategory: \"status\",\r\n pluginName: \"primershop-status-manager\",\r\n },\r\n {\r\n section: \"plugins\",\r\n displayName: \"Delete\",\r\n uid: \"status.delete\",\r\n subCategory: \"status\",\r\n pluginName: \"primershop-status-manager\",\r\n },\r\n ]\r\n","import permissions from \"./permissions\";\r\nimport type { Core } from \"@strapi/strapi\";\r\n\r\nconst bootstrap = async ({ strapi }: { strapi: Core.Strapi }) => {\r\n try {\r\n strapi.admin.services.permission.actionProvider.registerMany(\r\n permissions\r\n );\r\n strapi.log.info(\r\n `[primershop-status-manager] Registered ${permissions.length} permission actions`\r\n );\r\n } catch (error) {\r\n strapi.log.error(\r\n \"[primershop-status-manager] Failed to register permissions:\",\r\n error\r\n );\r\n throw error;\r\n }\r\n\r\n // Register lifecycle hooks for status filtering\r\n strapi.db?.lifecycles?.subscribe?.({\r\n // catch all models\r\n models: [\"*\"],\r\n\r\n async afterDelete(event: {\r\n model?: { uid: string };\r\n result?: { documentId: string };\r\n }) {\r\n const modelUid = event?.model?.uid;\r\n const deleted = event?.result;\r\n const documentId = deleted?.documentId;\r\n if (!modelUid || !documentId) return;\r\n\r\n await strapi.db\r\n .query(\"plugin::primershop-status-manager.status-link\")\r\n .deleteMany({\r\n where: { targetUid: modelUid, targetDocumentId: documentId },\r\n });\r\n },\r\n });\r\n};\r\n\r\nexport default bootstrap;\r\n","export default {\r\n kind: \"collectionType\",\r\n collectionName: \"status\",\r\n info: {\r\n singularName: \"status\",\r\n pluralName: \"statuses\",\r\n displayName: \"Status\",\r\n description: \"Status for products\",\r\n },\r\n options: {\r\n draftAndPublish: false,\r\n },\r\n pluginOptions: {\r\n \"content-manager\": {\r\n visible: false,\r\n },\r\n \"content-type-builder\": {\r\n visible: false,\r\n },\r\n },\r\n attributes: {\r\n name: {\r\n type: \"string\",\r\n minLength: 1,\r\n maxLength: 50,\r\n required: true,\r\n configurable: false,\r\n },\r\n published: {\r\n type: \"boolean\",\r\n default: false,\r\n },\r\n order: {\r\n type: \"integer\",\r\n default: 0,\r\n },\r\n links: {\r\n type: \"relation\",\r\n relation: \"oneToMany\",\r\n target: \"plugin::primershop-status-manager.status-link\",\r\n mappedBy: \"status\",\r\n configurable: false,\r\n },\r\n },\r\n};\r\n","export default {\r\n kind: \"collectionType\",\r\n collectionName: \"status_links\",\r\n info: {\r\n singularName: \"status-link\",\r\n pluralName: \"status-links\",\r\n displayName: \"Status Link\",\r\n description:\r\n \"Association between any content type document and a single status\",\r\n },\r\n options: {\r\n draftAndPublish: false,\r\n },\r\n pluginOptions: {\r\n \"content-manager\": {\r\n visible: false,\r\n },\r\n \"content-type-builder\": {\r\n visible: false,\r\n },\r\n },\r\n attributes: {\r\n targetUid: {\r\n type: \"string\",\r\n required: true,\r\n },\r\n targetDocumentId: {\r\n type: \"string\",\r\n required: true,\r\n },\r\n status: {\r\n type: \"relation\",\r\n relation: \"manyToOne\",\r\n target: \"plugin::primershop-status-manager.status\",\r\n required: false,\r\n configurable: false,\r\n },\r\n },\r\n} as const;\r\n","import status from \"./status\";\r\nimport statusLink from \"./status-link\";\r\n\r\nexport default {\r\n status: {\r\n schema: status,\r\n },\r\n \"status-link\": {\r\n schema: statusLink,\r\n },\r\n};\r\n","import type { Core } from \"@strapi/strapi\";\r\nimport type { Schema, ContentType } from \"@strapi/types/dist/uid\";\r\nimport type { Context } from \"koa\";\r\n\r\nconst content = ({ strapi }: { strapi: Core.Strapi }): Core.Controller => ({\r\n async getStatusForTarget(ctx: Context) {\r\n const requestParams = ctx.request.URL.searchParams;\r\n const contentTypeUid = requestParams.get(\"contentTypeUid\") as Schema;\r\n if (!strapi.getModel(contentTypeUid))\r\n return ctx.notFound(\"Unknown contentTypeUid\");\r\n\r\n const contentDocumentId = requestParams.get(\"contentDocumentId\") as string;\r\n const exists = await strapi\r\n .documents(contentTypeUid as ContentType)\r\n .findOne({\r\n documentId: contentDocumentId,\r\n });\r\n if (!exists) return ctx.notFound(\"Target document not found\");\r\n\r\n const link = await strapi\r\n .plugin(\"primershop-status-manager\")\r\n .service(\"statusLink\")\r\n .getForTarget(contentTypeUid as string, contentDocumentId);\r\n return ctx.send({ status: link?.status ?? null });\r\n },\r\n\r\n async setStatusForTarget(ctx: Context) {\r\n const { contentTypeUid, contentDocumentId, statusId } = ctx.request\r\n .body as {\r\n contentTypeUid: Schema;\r\n contentDocumentId: string;\r\n statusId: string;\r\n };\r\n\r\n if (!strapi.getModel(contentTypeUid))\r\n return ctx.notFound(\"Unknown contentTypeUid\");\r\n\r\n const exists = await strapi\r\n .documents(contentTypeUid as ContentType)\r\n .findOne({\r\n documentId: contentDocumentId,\r\n });\r\n if (!exists) return ctx.notFound(\"Target document not found\");\r\n\r\n const link = await strapi\r\n .plugin(\"primershop-status-manager\")\r\n .service(\"statusLink\")\r\n .setForTarget(contentTypeUid as string, contentDocumentId, statusId);\r\n return ctx.send({ status: link.status });\r\n },\r\n});\r\n\r\nexport { content };\r\n","import type { Core } from \"@strapi/strapi\";\r\nimport type { Context } from \"koa\";\r\n\r\nconst status = ({ strapi }: { strapi: Core.Strapi }): Core.Controller => ({\r\n async listStatuses(ctx: Context) {\r\n try {\r\n const statuses = await strapi\r\n .documents(\"plugin::primershop-status-manager.status\")\r\n .findMany({\r\n sort: { order: \"asc\" },\r\n });\r\n return ctx.send(statuses);\r\n } catch (err) {\r\n console.error(\"❌ Status controller: find error:\", err);\r\n ctx.throw(500, err as string);\r\n }\r\n },\r\n\r\n async create(ctx: Context) {\r\n try {\r\n const { name, published = false } = ctx.request.body;\r\n\r\n // Validate name (only Latin characters)\r\n if (!/^[a-zA-Z\\s]+$/.test(name)) {\r\n return ctx.badRequest(\r\n \"Status name must contain only Latin characters.\"\r\n );\r\n }\r\n\r\n // Get the highest order value\r\n const existingStatuses = await strapi\r\n .documents(\"plugin::primershop-status-manager.status\")\r\n .findMany({\r\n orderBy: { order: \"desc\" },\r\n limit: 1,\r\n });\r\n\r\n const newOrder =\r\n existingStatuses.length > 0 ? existingStatuses[0].order + 1 : 0;\r\n\r\n // Create status\r\n const newStatus = await strapi\r\n .documents(\"plugin::primershop-status-manager.status\")\r\n .create({\r\n data: {\r\n name,\r\n published,\r\n order: newOrder,\r\n },\r\n });\r\n\r\n return ctx.send(newStatus);\r\n } catch (error) {\r\n console.error(\"Status controller: create error:\", error);\r\n ctx.internalServerError(`Error adding status: ${error}`);\r\n }\r\n },\r\n\r\n async reorder(ctx: Context) {\r\n try {\r\n const { statuses } = ctx.request.body;\r\n\r\n if (!Array.isArray(statuses)) {\r\n return ctx.badRequest(\"Invalid data format\");\r\n }\r\n\r\n // Update each status with new order\r\n await Promise.all(\r\n statuses.map(({ documentId, order }) =>\r\n strapi.documents(\"plugin::primershop-status-manager.status\").update({\r\n documentId,\r\n data: { order } as any,\r\n })\r\n )\r\n );\r\n\r\n ctx.send({ message: \"Order updated successfully\" });\r\n } catch (error) {\r\n console.error(\"Status controller: reorder error:\", error);\r\n ctx.internalServerError(`Error updating order: ${error}`);\r\n }\r\n },\r\n\r\n async publish(ctx: Context) {\r\n try {\r\n const { id } = ctx.params;\r\n const { published } = ctx.request.body;\r\n\r\n await strapi\r\n .documents(\"plugin::primershop-status-manager.status\")\r\n .update({\r\n documentId: id,\r\n data: { published } as any,\r\n });\r\n\r\n ctx.send({ message: \"Status updated successfully\" });\r\n } catch (error) {\r\n console.error(\"Status controller: publish error:\", error);\r\n ctx.internalServerError(`Error updating status: ${error}`);\r\n }\r\n },\r\n\r\n async delete(ctx: Context) {\r\n try {\r\n const { statusId } = ctx.request.body;\r\n\r\n if (!statusId) {\r\n return ctx.badRequest(\"Status ID is required.\");\r\n }\r\n\r\n // Delete the status\r\n await strapi\r\n .documents(\"plugin::primershop-status-manager.status\")\r\n .delete({\r\n documentId: statusId,\r\n });\r\n\r\n return ctx.send({ message: \"Status deleted successfully\" });\r\n } catch (error) {\r\n console.error(\"Status controller: delete error:\", error);\r\n ctx.internalServerError(`Error deleting status: ${error}`);\r\n }\r\n },\r\n});\r\n\r\nexport { status };\r\n","import { content } from \"./content\";\r\nimport { status } from \"./status\";\r\n\r\nexport default {\r\n status_controller: status,\r\n content_controller: content\r\n};\r\n","export const PLUGIN_ID = \"primershop-status-manager\";\r\n","import {\r\n AnyDocument,\r\n Middleware as DocumentMiddleware,\r\n} from \"@strapi/types/dist/modules/documents\";\r\n\r\nexport default async (\r\n context: DocumentMiddleware.Context,\r\n next: () => Promise<\r\n | number\r\n | AnyDocument\r\n | AnyDocument[]\r\n | { documentId: string; entries: AnyDocument[] }\r\n >\r\n) => {\r\n const uid = context.uid;\r\n if (!uid.includes(\"api::\")) {\r\n return next();\r\n }\r\n\r\n const result = await next();\r\n\r\n let documentIds: string[] = [];\r\n if (Array.isArray(result)) {\r\n documentIds = result\r\n .map((doc: AnyDocument) => doc.documentId)\r\n .filter(Boolean);\r\n } else if (result && typeof result === \"object\" && \"documentId\" in result) {\r\n documentIds = [(result as AnyDocument).documentId].filter(Boolean);\r\n }\r\n\r\n if (documentIds.length === 0) {\r\n return result;\r\n }\r\n\r\n try {\r\n const statusLinks = await strapi.db\r\n .query(\"plugin::primershop-status-manager.status-link\")\r\n .findMany({\r\n populate: {\r\n status: true,\r\n },\r\n where: {\r\n targetUid: uid,\r\n targetDocumentId: { $in: documentIds },\r\n },\r\n });\r\n\r\n if (Array.isArray(result)) {\r\n result.forEach((doc: AnyDocument) => {\r\n doc.statusField =\r\n statusLinks.find((link) => link.targetDocumentId === doc.documentId)\r\n ?.status || undefined;\r\n });\r\n }\r\n if (result && typeof result === \"object\") {\r\n (result as AnyDocument).statusField =\r\n statusLinks.find(\r\n (link) => link.targetDocumentId === (result as AnyDocument).documentId\r\n )?.status || undefined;\r\n }\r\n } catch (error) {\r\n // If status enrichment fails, just return original result\r\n console.error(\"primershop-status-manager: status enrichment error\", error);\r\n }\r\n\r\n return result;\r\n};\r\n","import {\r\n AnyDocument,\r\n Middleware as DocumentMiddleware,\r\n} from \"@strapi/types/dist/modules/documents\";\r\nimport { errors } from \"@strapi/utils\";\r\n\r\nexport default async (\r\n context: DocumentMiddleware.Context,\r\n next: () => Promise<\r\n | number\r\n | AnyDocument\r\n | AnyDocument[]\r\n | { documentId: string; entries: AnyDocument[] }\r\n >\r\n) => {\r\n const uid = context.uid;\r\n if (!uid.includes(\"api::\")) {\r\n return next();\r\n }\r\n const paramKeys = Object.keys(context.params || {});\r\n\r\n if (!paramKeys.includes(\"statusName\")) {\r\n return next();\r\n }\r\n const desiredStatus = context.params[\"statusName\"];\r\n\r\n if (!desiredStatus || desiredStatus === \"all\") return next();\r\n\r\n const isValid = await strapi\r\n .plugin(\"primershop-status-manager\")\r\n .service(\"status\")\r\n .isValidStatus(desiredStatus);\r\n if (!isValid)\r\n throw new errors.ValidationError(`Invalid status: ${desiredStatus}`);\r\n\r\n const status = await strapi\r\n .plugin(\"primershop-status-manager\")\r\n .service(\"status\")\r\n .getStatusByName(desiredStatus);\r\n if (!status) {\r\n throw new errors.ValidationError(`Status not found: ${desiredStatus}`);\r\n }\r\n\r\n const statusLinks = await strapi.db\r\n .query(\"plugin::primershop-status-manager.status-link\")\r\n .findMany({\r\n where: {\r\n targetUid: uid,\r\n status: status.id,\r\n },\r\n select: [\"targetDocumentId\"],\r\n });\r\n\r\n const allowedDocumentIds = statusLinks.map((link) => link.targetDocumentId);\r\n\r\n context.params[\"filters\"] = {\r\n ...context.params[\"filters\"],\r\n documentId: { $in: allowedDocumentIds },\r\n };\r\n\r\n return next();\r\n};\r\n","import {\r\n AnyDocument,\r\n Middleware as DocumentMiddleware,\r\n} from \"@strapi/types/dist/modules/documents\";\r\n\r\nexport default async (\r\n context: DocumentMiddleware.Context,\r\n next: () => Promise<\r\n | number\r\n | AnyDocument\r\n | AnyDocument[]\r\n | { documentId: string; entries: AnyDocument[] }\r\n >\r\n) => {\r\n const uid = context.uid;\r\n if (!uid.includes(\"api::\")) {\r\n return next();\r\n }\r\n\r\n const params = context.params;\r\n if ((!params && !params[\"status\"]) || params[\"statusName\"]) return next();\r\n\r\n const unpublishedStatusLinks = await strapi.db\r\n .query(\"plugin::primershop-status-manager.status-link\")\r\n .findMany({\r\n populate: {\r\n status: true,\r\n },\r\n where: {\r\n targetUid: uid,\r\n status: {\r\n published: false,\r\n },\r\n },\r\n select: [\"targetDocumentId\"],\r\n });\r\n\r\n const unpublishedDocumentIds = unpublishedStatusLinks.map(\r\n (link) => link.targetDocumentId\r\n );\r\n\r\n context.params[\"filters\"] = {\r\n ...context.params[\"filters\"],\r\n documentId: { $notIn: unpublishedDocumentIds },\r\n };\r\n\r\n return next();\r\n};\r\n","import { PLUGIN_ID } from \"./pluginId\";\r\nimport type { Core } from \"@strapi/strapi\";\r\nimport addStatusField from \"./middlewares/add-status-field\";\r\nimport filterByStatus from \"./middlewares/filter-by-status\";\r\nimport filterPublished from \"./middlewares/filter-published\";\r\n\r\nconst register = ({ strapi }: { strapi: Core.Strapi }): void => {\r\n strapi.customFields.register({\r\n name: \"statusName\",\r\n plugin: PLUGIN_ID,\r\n type: \"string\",\r\n });\r\n\r\n strapi.documents.use(filterByStatus);\r\n strapi.documents.use(addStatusField);\r\n strapi.documents.use(filterPublished);\r\n};\r\n\r\nexport default register;","export default [\r\n {\r\n method: \"GET\",\r\n path: \"/statuses\",\r\n handler: \"status_controller.listStatuses\",\r\n config: {\r\n policies: [\r\n {\r\n name: \"admin::hasPermissions\",\r\n config: {\r\n actions: [\"plugin::primershop-status-manager.status.read\"],\r\n },\r\n },\r\n ],\r\n },\r\n description: \"Get all statuses\",\r\n tag: {\r\n plugin: \"primershop-status-manager\",\r\n name: \"statuses\",\r\n actionType: \"findMany\",\r\n },\r\n },\r\n {\r\n method: \"POST\",\r\n path: \"/status\",\r\n handler: \"status_controller.create\",\r\n config: {\r\n policies: [\r\n {\r\n name: \"admin::hasPermissions\",\r\n config: {\r\n actions: [\"plugin::primershop-status-manager.status.create\"],\r\n },\r\n },\r\n ],\r\n },\r\n description: \"Create a new status\",\r\n tag: {\r\n plugin: \"primershop-status-manager\",\r\n name: \"Status\",\r\n actionType: \"create\",\r\n },\r\n },\r\n {\r\n method: \"PUT\",\r\n path: \"/statuses/reorder\",\r\n handler: \"status_controller.reorder\",\r\n config: {\r\n policies: [\r\n {\r\n name: \"admin::hasPermissions\",\r\n config: {\r\n actions: [\"plugin::primershop-status-manager.status.update\"],\r\n },\r\n },\r\n ],\r\n description: \"Reorder statuses\",\r\n tag: {\r\n plugin: \"primershop-status-manager\",\r\n name: \"Status\",\r\n actionType: \"update\",\r\n },\r\n },\r\n },\r\n {\r\n method: \"PUT\",\r\n path: \"/statuses/delete\",\r\n handler: \"status_controller.delete\",\r\n config: {\r\n policies: [\r\n {\r\n name: \"admin::hasPermissions\",\r\n config: {\r\n actions: [\"plugin::primershop-status-manager.status.delete\"],\r\n },\r\n },\r\n ],\r\n description: \"Delete a status\",\r\n tag: {\r\n plugin: \"primershop-status-manager\",\r\n name: \"Status\",\r\n actionType: \"delete\",\r\n },\r\n },\r\n },\r\n {\r\n method: \"PUT\",\r\n path: \"/statuses/:id\",\r\n handler: \"status_controller.publish\",\r\n config: {\r\n policies: [\r\n {\r\n name: \"admin::hasPermissions\",\r\n config: {\r\n actions: [\"plugin::primershop-status-manager.status.update\"],\r\n },\r\n },\r\n ],\r\n description: \"Update status publish state\",\r\n tag: {\r\n plugin: \"primershop-status-manager\",\r\n name: \"Status\",\r\n actionType: \"update\",\r\n },\r\n },\r\n },\r\n];\r\n","export default [\r\n {\r\n method: \"GET\",\r\n path: \"/content-status\",\r\n handler: \"content_controller.getStatusForTarget\",\r\n config: {\r\n policies: [\r\n {\r\n name: \"admin::hasPermissions\",\r\n config: {\r\n actions: [\"plugin::primershop-status-manager.status.read\"],\r\n },\r\n },\r\n ],\r\n },\r\n },\r\n {\r\n method: \"PUT\",\r\n path: \"/content-status\",\r\n handler: \"content_controller.setStatusForTarget\",\r\n config: {\r\n policies: [\r\n {\r\n name: \"admin::hasPermissions\",\r\n config: {\r\n actions: [\"plugin::primershop-status-manager.status.update\"],\r\n },\r\n },\r\n ],\r\n },\r\n },\r\n];\r\n","import statusManagement from \"./status-management\";\r\nimport contentManagement from \"./content-management\";\r\n\r\nexport default {\r\n admin: {\r\n type: \"admin\",\r\n routes: [...statusManagement, ...contentManagement],\r\n },\r\n};\r\n\r\n","import type { Core } from \"@strapi/strapi\";\r\nimport type { PluginStatusManagerStatusInput } from \"../types/contentTypes\";\r\n\r\nexport const statusService = ({ strapi }: { strapi: Core.Strapi }) => ({\r\n async isValidStatus(code: string): Promise<boolean> {\r\n try {\r\n const row = await strapi.db\r\n .query(\"plugin::primershop-status-manager.status\")\r\n .findOne({ where: { name: code }, select: [\"id\"] } as unknown as never);\r\n return !!row;\r\n } catch {\r\n return false;\r\n }\r\n },\r\n\r\n async getStatusByName(name: string) {\r\n return strapi.db\r\n .query(\"plugin::primershop-status-manager.status\")\r\n .findOne({ where: { name } });\r\n },\r\n\r\n isStatusEnabledFor(uid: string): boolean {\r\n return !!strapi.getModel(uid as unknown as never);\r\n },\r\n async find() {\r\n const result = await strapi.db\r\n .query(\"plugin::primershop-status-manager.status\")\r\n .findMany({\r\n orderBy: { order: \"asc\" },\r\n });\r\n\r\n return result;\r\n },\r\n\r\n async findOne(id: number) {\r\n const result = await strapi.db\r\n .query(\"plugin::primershop-status-manager.status\")\r\n .findOne({\r\n where: { id },\r\n });\r\n return result;\r\n },\r\n\r\n async createStatus(data: PluginStatusManagerStatusInput) {\r\n const result = await strapi.db\r\n .query(\"plugin::primershop-status-manager.status\")\r\n .create({\r\n data: {\r\n name: data.name,\r\n published: data.published ?? false,\r\n order: data.order ?? 0,\r\n },\r\n });\r\n\r\n return result;\r\n },\r\n\r\n async findProductsByStatus(statusId: number) {\r\n return strapi.db.query(\"api::product.product\").findMany({\r\n where: { status: statusId },\r\n });\r\n },\r\n\r\n async updateProductStatus(productId: number, statusId: number) {\r\n return strapi.db.query(\"api::product.product\").update({\r\n where: { id: productId },\r\n data: { status: statusId },\r\n });\r\n },\r\n\r\n async delete(id: number) {\r\n return strapi.db.query(\"plugin::primershop-status-manager.status\").delete({\r\n where: { id },\r\n });\r\n },\r\n\r\n async deleteStatus(statusId: number, replacementId?: number) {\r\n // Find status by documentId\r\n const status = await strapi.db\r\n .query(\"plugin::primershop-status-manager.status\")\r\n .findOne({\r\n where: { documentId: statusId },\r\n });\r\n\r\n if (!status) {\r\n throw new Error(\"Status not found\");\r\n }\r\n\r\n if (replacementId) {\r\n const replacementStatus = await strapi.db\r\n .query(\"plugin::primershop-status-manager.status\")\r\n .findOne({\r\n where: { documentId: replacementId },\r\n });\r\n\r\n if (!replacementStatus) {\r\n throw new Error(\"Replacement status not found\");\r\n }\r\n }\r\n\r\n // Delete the status\r\n await strapi.db.query(\"plugin::primershop-status-manager.status\").delete({\r\n where: { documentId: statusId },\r\n });\r\n\r\n return true;\r\n },\r\n});\r\n","import type { Core } from \"@strapi/strapi\";\r\n\r\nexport const statusLinkService = ({ strapi }: { strapi: Core.Strapi }) => ({\r\n async getForTarget(targetUid: string, targetDocumentId: string) {\r\n const link = await strapi.db\r\n .query(\"plugin::primershop-status-manager.status-link\")\r\n .findOne({\r\n where: { targetUid, targetDocumentId },\r\n populate: { status: true },\r\n });\r\n return link ?? null;\r\n },\r\n\r\n async setForTarget(\r\n targetUid: string,\r\n targetDocumentId: string,\r\n statusDocumentId: string\r\n ) {\r\n // Create status link\r\n await strapi.db\r\n .query(\"plugin::primershop-status-manager.status-link\")\r\n .deleteMany({ where: { targetUid, targetDocumentId } });\r\n\r\n const created = await strapi\r\n .documents(\"plugin::primershop-status-manager.status-link\")\r\n .create({\r\n data: {\r\n targetUid,\r\n targetDocumentId,\r\n status: {\r\n set: statusDocumentId,\r\n },\r\n },\r\n });\r\n return created;\r\n },\r\n});\r\n","import { statusService } from \"./status\";\r\nimport { statusLinkService } from \"./status-link\";\r\n\r\nexport default {\r\n status: statusService,\r\n statusLink: statusLinkService,\r\n};\r\n","import bootstrap from \"./bootstrap\";\r\nimport contentTypes from \"./content-types\";\r\nimport controllers from \"./controllers\";\r\nimport register from \"./register\";\r\nimport routes from \"./routes\";\r\nimport services from \"./services\";\r\n\r\nexport default {\r\n register,\r\n controllers,\r\n contentTypes,\r\n routes,\r\n services,\r\n bootstrap\r\n };\r\n"],"names":["strapi","status"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@primershop/strapi-plugin-status-manager",
|
|
3
|
-
"version": "0.0.
|
|
4
|
-
"description": "Enables more status variations for Strapi (v0.0.
|
|
3
|
+
"version": "0.0.17",
|
|
4
|
+
"description": "Enables more status variations for Strapi (v0.0.17)",
|
|
5
5
|
"exports": {
|
|
6
6
|
"./strapi-admin": {
|
|
7
7
|
"import": "./dist/admin/index.mjs",
|
|
8
8
|
"require": "./dist/admin/index.js",
|
|
9
|
+
"source": "./admin/src/index.ts",
|
|
9
10
|
"default": "./dist/admin/index.js"
|
|
10
11
|
},
|
|
11
12
|
"./strapi-server": {
|
|
12
13
|
"import": "./dist/server/index.mjs",
|
|
14
|
+
"source": "./server/src/index.ts",
|
|
13
15
|
"require": "./dist/server/index.js",
|
|
14
16
|
"default": "./dist/server/index.js"
|
|
15
17
|
},
|
|
@@ -19,7 +21,8 @@
|
|
|
19
21
|
"dist/"
|
|
20
22
|
],
|
|
21
23
|
"scripts": {
|
|
22
|
-
"build": "
|
|
24
|
+
"build": "pack-up build",
|
|
25
|
+
"check": "pack-up check",
|
|
23
26
|
"build:code": "rollup -c",
|
|
24
27
|
"build:dev": "rollup -c rollup.config.dev.mjs",
|
|
25
28
|
"build:types": "run-p build:types:server build:types:admin",
|
|
@@ -73,9 +76,9 @@
|
|
|
73
76
|
"@strapi/admin": "^5.29.0",
|
|
74
77
|
"@strapi/content-manager": "^5.29.0",
|
|
75
78
|
"@strapi/types": "^5.29.0",
|
|
79
|
+
"@types/node": "^25.0.2",
|
|
76
80
|
"@types/react": "^18.3.1",
|
|
77
81
|
"@types/react-dom": "^18.3.1",
|
|
78
|
-
"@types/node": "^25.0.2",
|
|
79
82
|
"cross-env": "^10.0.0",
|
|
80
83
|
"eslint": "9.39.2",
|
|
81
84
|
"jest": "^30.2.0",
|
|
@@ -92,11 +95,12 @@
|
|
|
92
95
|
"kind": "plugin",
|
|
93
96
|
"name": "primershop-status-manager",
|
|
94
97
|
"displayName": "Status Manager",
|
|
95
|
-
"description": "Manages content statuses (v0.0.
|
|
98
|
+
"description": "Manages content statuses (v0.0.17)"
|
|
96
99
|
},
|
|
97
100
|
"dependencies": {
|
|
98
101
|
"@strapi/design-system": "^2.0.0-rc.27",
|
|
99
102
|
"@strapi/icons": "^2.0.0-rc.27",
|
|
103
|
+
"@strapi/pack-up": "^5.1.1",
|
|
100
104
|
"@strapi/utils": "^5.29.0",
|
|
101
105
|
"react": "18.3.1",
|
|
102
106
|
"react-dom": "18.3.1",
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var React = require('react');
|
|
4
|
-
var pluginId = require('../pluginId.js');
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* @type {import('react').FC<{ setPlugin: (id: string) => void }>}
|
|
8
|
-
*/ const Initializer = ({ setPlugin })=>{
|
|
9
|
-
const ref = React.useRef(setPlugin);
|
|
10
|
-
React.useEffect(()=>{
|
|
11
|
-
ref.current(pluginId.PLUGIN_ID);
|
|
12
|
-
}, []);
|
|
13
|
-
return null;
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
exports.Initializer = Initializer;
|
|
17
|
-
//# sourceMappingURL=Initializer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Initializer.js","sources":["../../../admin/src/components/Initializer.tsx"],"sourcesContent":["import { useEffect, useRef } from \"react\";\r\n\r\nimport { PLUGIN_ID } from \"../pluginId\";\r\n\r\n/**\r\n * @type {import('react').FC<{ setPlugin: (id: string) => void }>}\r\n */\r\nconst Initializer = ({ setPlugin }: { setPlugin: (id: string) => void }) => {\r\n const ref = useRef(setPlugin);\r\n\r\n useEffect(() => {\r\n ref.current(PLUGIN_ID);\r\n }, []);\r\n\r\n return null;\r\n};\r\n\r\nexport { Initializer };\r\n"],"names":["Initializer","setPlugin","ref","useRef","useEffect","current","PLUGIN_ID"],"mappings":";;;;;AAIA;;AAEC,IACD,MAAMA,WAAAA,GAAc,CAAC,EAAEC,SAAS,EAAuC,GAAA;AACrE,IAAA,MAAMC,MAAMC,YAAAA,CAAOF,SAAAA,CAAAA;IAEnBG,eAAAA,CAAU,IAAA;AACRF,QAAAA,GAAAA,CAAIG,OAAO,CAACC,kBAAAA,CAAAA;AACd,IAAA,CAAA,EAAG,EAAE,CAAA;IAEL,OAAO,IAAA;AACT;;;;"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { useRef, useEffect } from 'react';
|
|
2
|
-
import { PLUGIN_ID } from '../pluginId.mjs';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* @type {import('react').FC<{ setPlugin: (id: string) => void }>}
|
|
6
|
-
*/ const Initializer = ({ setPlugin })=>{
|
|
7
|
-
const ref = useRef(setPlugin);
|
|
8
|
-
useEffect(()=>{
|
|
9
|
-
ref.current(PLUGIN_ID);
|
|
10
|
-
}, []);
|
|
11
|
-
return null;
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
export { Initializer };
|
|
15
|
-
//# sourceMappingURL=Initializer.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Initializer.mjs","sources":["../../../admin/src/components/Initializer.tsx"],"sourcesContent":["import { useEffect, useRef } from \"react\";\r\n\r\nimport { PLUGIN_ID } from \"../pluginId\";\r\n\r\n/**\r\n * @type {import('react').FC<{ setPlugin: (id: string) => void }>}\r\n */\r\nconst Initializer = ({ setPlugin }: { setPlugin: (id: string) => void }) => {\r\n const ref = useRef(setPlugin);\r\n\r\n useEffect(() => {\r\n ref.current(PLUGIN_ID);\r\n }, []);\r\n\r\n return null;\r\n};\r\n\r\nexport { Initializer };\r\n"],"names":["Initializer","setPlugin","ref","useRef","useEffect","current","PLUGIN_ID"],"mappings":";;;AAIA;;AAEC,IACD,MAAMA,WAAAA,GAAc,CAAC,EAAEC,SAAS,EAAuC,GAAA;AACrE,IAAA,MAAMC,MAAMC,MAAAA,CAAOF,SAAAA,CAAAA;IAEnBG,SAAAA,CAAU,IAAA;AACRF,QAAAA,GAAAA,CAAIG,OAAO,CAACC,SAAAA,CAAAA;AACd,IAAA,CAAA,EAAG,EAAE,CAAA;IAEL,OAAO,IAAA;AACT;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PluginIcon.js","sources":["../../../admin/src/components/PluginIcon.tsx"],"sourcesContent":["import { CheckCircle } from \"@strapi/icons\";\r\n\r\nconst PluginIcon = () => <CheckCircle />;\r\n\r\nexport { PluginIcon };\r\n"],"names":["PluginIcon","_jsx","CheckCircle"],"mappings":";;;;;AAEA,MAAMA,UAAAA,GAAa,kBAAMC,cAAA,CAACC,iBAAAA,EAAAA,EAAAA;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PluginIcon.mjs","sources":["../../../admin/src/components/PluginIcon.tsx"],"sourcesContent":["import { CheckCircle } from \"@strapi/icons\";\r\n\r\nconst PluginIcon = () => <CheckCircle />;\r\n\r\nexport { PluginIcon };\r\n"],"names":["PluginIcon","_jsx","CheckCircle"],"mappings":";;;AAEA,MAAMA,UAAAA,GAAa,kBAAMC,GAAA,CAACC,WAAAA,EAAAA,EAAAA;;;;"}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
-
var React = require('react');
|
|
5
|
-
var designSystem = require('@strapi/design-system');
|
|
6
|
-
var admin = require('@strapi/strapi/admin');
|
|
7
|
-
|
|
8
|
-
const ProductStatusField = ()=>{
|
|
9
|
-
const { contentType, id } = admin.unstable_useContentManagerContext();
|
|
10
|
-
const [statuses, setStatuses] = React.useState([]);
|
|
11
|
-
const [currentStatus, setCurrentStatus] = React.useState("");
|
|
12
|
-
const [message, setMessage] = React.useState("");
|
|
13
|
-
const { get, put } = admin.useFetchClient();
|
|
14
|
-
const handleStatusChange = React.useCallback(async (newStatus)=>{
|
|
15
|
-
if (!id) {
|
|
16
|
-
setMessage("Save the product first and then change the status");
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
try {
|
|
20
|
-
await put(`primershop-status-manager/content-status`, {
|
|
21
|
-
contentTypeUid: "api::product.product",
|
|
22
|
-
contentDocumentId: id,
|
|
23
|
-
statusId: statuses.find((status)=>status.name === newStatus)?.documentId
|
|
24
|
-
});
|
|
25
|
-
setMessage(`Status updated ${currentStatus ? `from ${currentStatus}` : ""} to ${newStatus}`);
|
|
26
|
-
setCurrentStatus(newStatus || "");
|
|
27
|
-
} catch (error) {
|
|
28
|
-
setMessage("Error updating status");
|
|
29
|
-
console.error("Error updating status:", error);
|
|
30
|
-
}
|
|
31
|
-
}, [
|
|
32
|
-
id,
|
|
33
|
-
statuses,
|
|
34
|
-
currentStatus,
|
|
35
|
-
put
|
|
36
|
-
]);
|
|
37
|
-
React.useEffect(()=>{
|
|
38
|
-
async function fetchCurrentStatus() {
|
|
39
|
-
try {
|
|
40
|
-
const { data: productData } = await get(`primershop-status-manager/content-status?contentDocumentId=${id}&contentTypeUid=api::product.product`);
|
|
41
|
-
const status = productData?.status;
|
|
42
|
-
if (status && status.name) return setCurrentStatus(status.name);
|
|
43
|
-
if (statuses.length) return handleStatusChange(statuses[0].name);
|
|
44
|
-
} catch (error) {
|
|
45
|
-
console.error("Error fetching product status:", error);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
if (id && !currentStatus.length) fetchCurrentStatus();
|
|
49
|
-
if (!id && statuses.length) setCurrentStatus(statuses[0].name);
|
|
50
|
-
}, [
|
|
51
|
-
id,
|
|
52
|
-
statuses,
|
|
53
|
-
get
|
|
54
|
-
]);
|
|
55
|
-
React.useEffect(()=>{
|
|
56
|
-
async function fetchStatuses() {
|
|
57
|
-
try {
|
|
58
|
-
const { data } = await get("primershop-status-manager/statuses");
|
|
59
|
-
setStatuses(data);
|
|
60
|
-
} catch (error) {
|
|
61
|
-
console.error("Error fetching statuses:", error);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
fetchStatuses();
|
|
65
|
-
}, [
|
|
66
|
-
get
|
|
67
|
-
]);
|
|
68
|
-
return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
|
69
|
-
direction: "column",
|
|
70
|
-
justifyContent: "center",
|
|
71
|
-
alignItems: "stretch",
|
|
72
|
-
width: "100%",
|
|
73
|
-
children: [
|
|
74
|
-
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
|
|
75
|
-
padding: 2,
|
|
76
|
-
children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Typography, {
|
|
77
|
-
variant: "sigma",
|
|
78
|
-
children: [
|
|
79
|
-
contentType?.info.displayName,
|
|
80
|
-
" status"
|
|
81
|
-
]
|
|
82
|
-
})
|
|
83
|
-
}),
|
|
84
|
-
/*#__PURE__*/ jsxRuntime.jsx(designSystem.SingleSelect, {
|
|
85
|
-
placeholder: currentStatus,
|
|
86
|
-
onChange: handleStatusChange,
|
|
87
|
-
children: statuses.map((status)=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.SingleSelectOption, {
|
|
88
|
-
value: status.name,
|
|
89
|
-
children: status.name
|
|
90
|
-
}, status.documentId))
|
|
91
|
-
}),
|
|
92
|
-
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
|
|
93
|
-
padding: 2,
|
|
94
|
-
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
|
95
|
-
variant: "sigma",
|
|
96
|
-
children: message
|
|
97
|
-
})
|
|
98
|
-
})
|
|
99
|
-
]
|
|
100
|
-
});
|
|
101
|
-
};
|
|
102
|
-
|
|
103
|
-
exports.ProductStatusField = ProductStatusField;
|
|
104
|
-
//# sourceMappingURL=ProductStatusField.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ProductStatusField.js","sources":["../../../admin/src/components/ProductStatusField.tsx"],"sourcesContent":["import React, { useEffect, useState, useCallback } from \"react\";\r\n\r\nimport {\r\n SingleSelect,\r\n SingleSelectOption,\r\n Box,\r\n Typography,\r\n Flex,\r\n} from \"@strapi/design-system\";\r\nimport {\r\n useFetchClient,\r\n unstable_useContentManagerContext as useContentManagerContext,\r\n} from \"@strapi/strapi/admin\";\r\n\r\ninterface Status {\r\n documentId: string;\r\n name: string;\r\n}\r\n\r\nconst ProductStatusField = () => {\r\n const { contentType, id } = useContentManagerContext();\r\n const [statuses, setStatuses] = useState<Status[]>([]);\r\n const [currentStatus, setCurrentStatus] = useState(\"\");\r\n const [message, setMessage] = useState(\"\");\r\n const { get, put } = useFetchClient();\r\n\r\n const handleStatusChange = useCallback(\r\n async (newStatus: string) => {\r\n if (!id) {\r\n setMessage(\"Save the product first and then change the status\");\r\n return;\r\n }\r\n try {\r\n await put(`primershop-status-manager/content-status`, {\r\n contentTypeUid: \"api::product.product\",\r\n contentDocumentId: id,\r\n statusId: statuses.find((status) => status.name === newStatus)\r\n ?.documentId,\r\n });\r\n setMessage(\r\n `Status updated ${currentStatus ? `from ${currentStatus}` : \"\"} to ${newStatus}`\r\n );\r\n setCurrentStatus(newStatus || \"\");\r\n } catch (error) {\r\n setMessage(\"Error updating status\");\r\n console.error(\"Error updating status:\", error);\r\n }\r\n },\r\n [id, statuses, currentStatus, put]\r\n );\r\n\r\n useEffect(() => {\r\n async function fetchCurrentStatus() {\r\n try {\r\n const { data: productData } = await get(\r\n `primershop-status-manager/content-status?contentDocumentId=${id}&contentTypeUid=api::product.product`\r\n );\r\n const status = productData?.status;\r\n if (status && status.name) return setCurrentStatus(status.name);\r\n if (statuses.length) return handleStatusChange(statuses[0].name);\r\n } catch (error) {\r\n console.error(\"Error fetching product status:\", error);\r\n }\r\n }\r\n if (id && !currentStatus.length) fetchCurrentStatus();\r\n if (!id && statuses.length) setCurrentStatus(statuses[0].name);\r\n }, [id, statuses, get]);\r\n\r\n useEffect(() => {\r\n async function fetchStatuses() {\r\n try {\r\n const { data } = await get(\"primershop-status-manager/statuses\");\r\n setStatuses(data);\r\n } catch (error) {\r\n console.error(\"Error fetching statuses:\", error);\r\n }\r\n }\r\n fetchStatuses();\r\n }, [get]);\r\n\r\n return (\r\n <Flex\r\n direction=\"column\"\r\n justifyContent=\"center\"\r\n alignItems=\"stretch\"\r\n width=\"100%\"\r\n >\r\n <Box padding={2}>\r\n <Typography variant=\"sigma\">\r\n {contentType?.info.displayName} status\r\n </Typography>\r\n </Box>\r\n <SingleSelect placeholder={currentStatus} onChange={handleStatusChange}>\r\n {statuses.map((status) => (\r\n <SingleSelectOption key={status.documentId} value={status.name}>\r\n {status.name}\r\n </SingleSelectOption>\r\n ))}\r\n </SingleSelect>\r\n <Box padding={2}>\r\n <Typography variant=\"sigma\">{message}</Typography>\r\n </Box>\r\n </Flex>\r\n );\r\n};\r\n\r\nexport { ProductStatusField };\r\n"],"names":["ProductStatusField","contentType","id","useContentManagerContext","statuses","setStatuses","useState","currentStatus","setCurrentStatus","message","setMessage","get","put","useFetchClient","handleStatusChange","useCallback","newStatus","contentTypeUid","contentDocumentId","statusId","find","status","name","documentId","error","console","useEffect","fetchCurrentStatus","data","productData","length","fetchStatuses","_jsxs","Flex","direction","justifyContent","alignItems","width","_jsx","Box","padding","Typography","variant","info","displayName","SingleSelect","placeholder","onChange","map","SingleSelectOption","value"],"mappings":"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"}
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { useState, useCallback, useEffect } from 'react';
|
|
3
|
-
import { Flex, Box, Typography, SingleSelect, SingleSelectOption } from '@strapi/design-system';
|
|
4
|
-
import { unstable_useContentManagerContext, useFetchClient } from '@strapi/strapi/admin';
|
|
5
|
-
|
|
6
|
-
const ProductStatusField = ()=>{
|
|
7
|
-
const { contentType, id } = unstable_useContentManagerContext();
|
|
8
|
-
const [statuses, setStatuses] = useState([]);
|
|
9
|
-
const [currentStatus, setCurrentStatus] = useState("");
|
|
10
|
-
const [message, setMessage] = useState("");
|
|
11
|
-
const { get, put } = useFetchClient();
|
|
12
|
-
const handleStatusChange = useCallback(async (newStatus)=>{
|
|
13
|
-
if (!id) {
|
|
14
|
-
setMessage("Save the product first and then change the status");
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
try {
|
|
18
|
-
await put(`primershop-status-manager/content-status`, {
|
|
19
|
-
contentTypeUid: "api::product.product",
|
|
20
|
-
contentDocumentId: id,
|
|
21
|
-
statusId: statuses.find((status)=>status.name === newStatus)?.documentId
|
|
22
|
-
});
|
|
23
|
-
setMessage(`Status updated ${currentStatus ? `from ${currentStatus}` : ""} to ${newStatus}`);
|
|
24
|
-
setCurrentStatus(newStatus || "");
|
|
25
|
-
} catch (error) {
|
|
26
|
-
setMessage("Error updating status");
|
|
27
|
-
console.error("Error updating status:", error);
|
|
28
|
-
}
|
|
29
|
-
}, [
|
|
30
|
-
id,
|
|
31
|
-
statuses,
|
|
32
|
-
currentStatus,
|
|
33
|
-
put
|
|
34
|
-
]);
|
|
35
|
-
useEffect(()=>{
|
|
36
|
-
async function fetchCurrentStatus() {
|
|
37
|
-
try {
|
|
38
|
-
const { data: productData } = await get(`primershop-status-manager/content-status?contentDocumentId=${id}&contentTypeUid=api::product.product`);
|
|
39
|
-
const status = productData?.status;
|
|
40
|
-
if (status && status.name) return setCurrentStatus(status.name);
|
|
41
|
-
if (statuses.length) return handleStatusChange(statuses[0].name);
|
|
42
|
-
} catch (error) {
|
|
43
|
-
console.error("Error fetching product status:", error);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
if (id && !currentStatus.length) fetchCurrentStatus();
|
|
47
|
-
if (!id && statuses.length) setCurrentStatus(statuses[0].name);
|
|
48
|
-
}, [
|
|
49
|
-
id,
|
|
50
|
-
statuses,
|
|
51
|
-
get
|
|
52
|
-
]);
|
|
53
|
-
useEffect(()=>{
|
|
54
|
-
async function fetchStatuses() {
|
|
55
|
-
try {
|
|
56
|
-
const { data } = await get("primershop-status-manager/statuses");
|
|
57
|
-
setStatuses(data);
|
|
58
|
-
} catch (error) {
|
|
59
|
-
console.error("Error fetching statuses:", error);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
fetchStatuses();
|
|
63
|
-
}, [
|
|
64
|
-
get
|
|
65
|
-
]);
|
|
66
|
-
return /*#__PURE__*/ jsxs(Flex, {
|
|
67
|
-
direction: "column",
|
|
68
|
-
justifyContent: "center",
|
|
69
|
-
alignItems: "stretch",
|
|
70
|
-
width: "100%",
|
|
71
|
-
children: [
|
|
72
|
-
/*#__PURE__*/ jsx(Box, {
|
|
73
|
-
padding: 2,
|
|
74
|
-
children: /*#__PURE__*/ jsxs(Typography, {
|
|
75
|
-
variant: "sigma",
|
|
76
|
-
children: [
|
|
77
|
-
contentType?.info.displayName,
|
|
78
|
-
" status"
|
|
79
|
-
]
|
|
80
|
-
})
|
|
81
|
-
}),
|
|
82
|
-
/*#__PURE__*/ jsx(SingleSelect, {
|
|
83
|
-
placeholder: currentStatus,
|
|
84
|
-
onChange: handleStatusChange,
|
|
85
|
-
children: statuses.map((status)=>/*#__PURE__*/ jsx(SingleSelectOption, {
|
|
86
|
-
value: status.name,
|
|
87
|
-
children: status.name
|
|
88
|
-
}, status.documentId))
|
|
89
|
-
}),
|
|
90
|
-
/*#__PURE__*/ jsx(Box, {
|
|
91
|
-
padding: 2,
|
|
92
|
-
children: /*#__PURE__*/ jsx(Typography, {
|
|
93
|
-
variant: "sigma",
|
|
94
|
-
children: message
|
|
95
|
-
})
|
|
96
|
-
})
|
|
97
|
-
]
|
|
98
|
-
});
|
|
99
|
-
};
|
|
100
|
-
|
|
101
|
-
export { ProductStatusField };
|
|
102
|
-
//# sourceMappingURL=ProductStatusField.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ProductStatusField.mjs","sources":["../../../admin/src/components/ProductStatusField.tsx"],"sourcesContent":["import React, { useEffect, useState, useCallback } from \"react\";\r\n\r\nimport {\r\n SingleSelect,\r\n SingleSelectOption,\r\n Box,\r\n Typography,\r\n Flex,\r\n} from \"@strapi/design-system\";\r\nimport {\r\n useFetchClient,\r\n unstable_useContentManagerContext as useContentManagerContext,\r\n} from \"@strapi/strapi/admin\";\r\n\r\ninterface Status {\r\n documentId: string;\r\n name: string;\r\n}\r\n\r\nconst ProductStatusField = () => {\r\n const { contentType, id } = useContentManagerContext();\r\n const [statuses, setStatuses] = useState<Status[]>([]);\r\n const [currentStatus, setCurrentStatus] = useState(\"\");\r\n const [message, setMessage] = useState(\"\");\r\n const { get, put } = useFetchClient();\r\n\r\n const handleStatusChange = useCallback(\r\n async (newStatus: string) => {\r\n if (!id) {\r\n setMessage(\"Save the product first and then change the status\");\r\n return;\r\n }\r\n try {\r\n await put(`primershop-status-manager/content-status`, {\r\n contentTypeUid: \"api::product.product\",\r\n contentDocumentId: id,\r\n statusId: statuses.find((status) => status.name === newStatus)\r\n ?.documentId,\r\n });\r\n setMessage(\r\n `Status updated ${currentStatus ? `from ${currentStatus}` : \"\"} to ${newStatus}`\r\n );\r\n setCurrentStatus(newStatus || \"\");\r\n } catch (error) {\r\n setMessage(\"Error updating status\");\r\n console.error(\"Error updating status:\", error);\r\n }\r\n },\r\n [id, statuses, currentStatus, put]\r\n );\r\n\r\n useEffect(() => {\r\n async function fetchCurrentStatus() {\r\n try {\r\n const { data: productData } = await get(\r\n `primershop-status-manager/content-status?contentDocumentId=${id}&contentTypeUid=api::product.product`\r\n );\r\n const status = productData?.status;\r\n if (status && status.name) return setCurrentStatus(status.name);\r\n if (statuses.length) return handleStatusChange(statuses[0].name);\r\n } catch (error) {\r\n console.error(\"Error fetching product status:\", error);\r\n }\r\n }\r\n if (id && !currentStatus.length) fetchCurrentStatus();\r\n if (!id && statuses.length) setCurrentStatus(statuses[0].name);\r\n }, [id, statuses, get]);\r\n\r\n useEffect(() => {\r\n async function fetchStatuses() {\r\n try {\r\n const { data } = await get(\"primershop-status-manager/statuses\");\r\n setStatuses(data);\r\n } catch (error) {\r\n console.error(\"Error fetching statuses:\", error);\r\n }\r\n }\r\n fetchStatuses();\r\n }, [get]);\r\n\r\n return (\r\n <Flex\r\n direction=\"column\"\r\n justifyContent=\"center\"\r\n alignItems=\"stretch\"\r\n width=\"100%\"\r\n >\r\n <Box padding={2}>\r\n <Typography variant=\"sigma\">\r\n {contentType?.info.displayName} status\r\n </Typography>\r\n </Box>\r\n <SingleSelect placeholder={currentStatus} onChange={handleStatusChange}>\r\n {statuses.map((status) => (\r\n <SingleSelectOption key={status.documentId} value={status.name}>\r\n {status.name}\r\n </SingleSelectOption>\r\n ))}\r\n </SingleSelect>\r\n <Box padding={2}>\r\n <Typography variant=\"sigma\">{message}</Typography>\r\n </Box>\r\n </Flex>\r\n );\r\n};\r\n\r\nexport { ProductStatusField };\r\n"],"names":["ProductStatusField","contentType","id","useContentManagerContext","statuses","setStatuses","useState","currentStatus","setCurrentStatus","message","setMessage","get","put","useFetchClient","handleStatusChange","useCallback","newStatus","contentTypeUid","contentDocumentId","statusId","find","status","name","documentId","error","console","useEffect","fetchCurrentStatus","data","productData","length","fetchStatuses","_jsxs","Flex","direction","justifyContent","alignItems","width","_jsx","Box","padding","Typography","variant","info","displayName","SingleSelect","placeholder","onChange","map","SingleSelectOption","value"],"mappings":"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"}
|