@primershop/strapi-plugin-status-manager 0.0.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/README.md +52 -0
- package/dist/admin/components/Initializer.js +17 -0
- package/dist/admin/components/Initializer.js.map +1 -0
- package/dist/admin/components/Initializer.mjs +15 -0
- package/dist/admin/components/Initializer.mjs.map +1 -0
- package/dist/admin/components/PluginIcon.js +9 -0
- package/dist/admin/components/PluginIcon.js.map +1 -0
- package/dist/admin/components/PluginIcon.mjs +7 -0
- package/dist/admin/components/PluginIcon.mjs.map +1 -0
- package/dist/admin/components/ProductStatusField.js +104 -0
- package/dist/admin/components/ProductStatusField.js.map +1 -0
- package/dist/admin/components/ProductStatusField.mjs +102 -0
- package/dist/admin/components/ProductStatusField.mjs.map +1 -0
- package/dist/admin/components/StatusManager.js +367 -0
- package/dist/admin/components/StatusManager.js.map +1 -0
- package/dist/admin/components/StatusManager.mjs +365 -0
- package/dist/admin/components/StatusManager.mjs.map +1 -0
- package/dist/admin/index.js +46 -0
- package/dist/admin/index.js.map +1 -0
- package/dist/admin/index.mjs +44 -0
- package/dist/admin/index.mjs.map +1 -0
- package/dist/admin/listView/StatusFilter.js +76 -0
- package/dist/admin/listView/StatusFilter.js.map +1 -0
- package/dist/admin/listView/StatusFilter.mjs +74 -0
- package/dist/admin/listView/StatusFilter.mjs.map +1 -0
- package/dist/admin/listView/add-status-column-hook.js +34 -0
- package/dist/admin/listView/add-status-column-hook.js.map +1 -0
- package/dist/admin/listView/add-status-column-hook.mjs +32 -0
- package/dist/admin/listView/add-status-column-hook.mjs.map +1 -0
- package/dist/admin/listView/status-cell.js +28 -0
- package/dist/admin/listView/status-cell.js.map +1 -0
- package/dist/admin/listView/status-cell.mjs +26 -0
- package/dist/admin/listView/status-cell.mjs.map +1 -0
- package/dist/admin/pages/HomePage.js +51 -0
- package/dist/admin/pages/HomePage.js.map +1 -0
- package/dist/admin/pages/HomePage.mjs +49 -0
- package/dist/admin/pages/HomePage.mjs.map +1 -0
- package/dist/admin/pluginId.js +6 -0
- package/dist/admin/pluginId.js.map +1 -0
- package/dist/admin/pluginId.mjs +4 -0
- package/dist/admin/pluginId.mjs.map +1 -0
- package/dist/admin/src/components/Initializer.js +13 -0
- package/dist/admin/src/components/PluginIcon.js +4 -0
- package/dist/admin/src/components/ProductStatusField.js +64 -0
- package/dist/admin/src/components/StatusManager.js +239 -0
- package/dist/admin/src/index.js +43 -0
- package/dist/admin/src/listView/StatusFilter.js +47 -0
- package/dist/admin/src/listView/add-status-column-hook.js +18 -0
- package/dist/admin/src/listView/status-cell.js +18 -0
- package/dist/admin/src/pages/HomePage.js +18 -0
- package/dist/admin/src/pluginId.js +1 -0
- package/dist/server/bootstrap.js +29 -0
- package/dist/server/bootstrap.js.map +1 -0
- package/dist/server/bootstrap.mjs +27 -0
- package/dist/server/bootstrap.mjs.map +1 -0
- package/dist/server/content-types/index.js +16 -0
- package/dist/server/content-types/index.js.map +1 -0
- package/dist/server/content-types/index.mjs +14 -0
- package/dist/server/content-types/index.mjs.map +1 -0
- package/dist/server/content-types/status-link.js +43 -0
- package/dist/server/content-types/status-link.js.map +1 -0
- package/dist/server/content-types/status-link.mjs +41 -0
- package/dist/server/content-types/status-link.mjs.map +1 -0
- package/dist/server/content-types/status.js +50 -0
- package/dist/server/content-types/status.js.map +1 -0
- package/dist/server/content-types/status.mjs +48 -0
- package/dist/server/content-types/status.mjs.map +1 -0
- package/dist/server/controllers/content.js +33 -0
- package/dist/server/controllers/content.js.map +1 -0
- package/dist/server/controllers/content.mjs +31 -0
- package/dist/server/controllers/content.mjs.map +1 -0
- package/dist/server/controllers/index.js +12 -0
- package/dist/server/controllers/index.js.map +1 -0
- package/dist/server/controllers/index.mjs +10 -0
- package/dist/server/controllers/index.mjs.map +1 -0
- package/dist/server/controllers/status.js +106 -0
- package/dist/server/controllers/status.js.map +1 -0
- package/dist/server/controllers/status.mjs +104 -0
- package/dist/server/controllers/status.mjs.map +1 -0
- package/dist/server/index.js +23 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/index.mjs +21 -0
- package/dist/server/index.mjs.map +1 -0
- package/dist/server/middlewares/add-status-field.js +48 -0
- package/dist/server/middlewares/add-status-field.js.map +1 -0
- package/dist/server/middlewares/add-status-field.mjs +46 -0
- package/dist/server/middlewares/add-status-field.mjs.map +1 -0
- package/dist/server/middlewares/filter-by-status.js +42 -0
- package/dist/server/middlewares/filter-by-status.js.map +1 -0
- package/dist/server/middlewares/filter-by-status.mjs +40 -0
- package/dist/server/middlewares/filter-by-status.mjs.map +1 -0
- package/dist/server/middlewares/filter-published.js +35 -0
- package/dist/server/middlewares/filter-published.js.map +1 -0
- package/dist/server/middlewares/filter-published.mjs +33 -0
- package/dist/server/middlewares/filter-published.mjs.map +1 -0
- package/dist/server/permissions.js +46 -0
- package/dist/server/permissions.js.map +1 -0
- package/dist/server/permissions.mjs +44 -0
- package/dist/server/permissions.mjs.map +1 -0
- package/dist/server/pluginId.js +6 -0
- package/dist/server/pluginId.js.map +1 -0
- package/dist/server/pluginId.mjs +4 -0
- package/dist/server/pluginId.mjs.map +1 -0
- package/dist/server/register.js +27 -0
- package/dist/server/register.js.map +1 -0
- package/dist/server/register.mjs +25 -0
- package/dist/server/register.mjs.map +1 -0
- package/dist/server/routes/content-management.js +41 -0
- package/dist/server/routes/content-management.js.map +1 -0
- package/dist/server/routes/content-management.mjs +39 -0
- package/dist/server/routes/content-management.mjs.map +1 -0
- package/dist/server/routes/index.js +17 -0
- package/dist/server/routes/index.js.map +1 -0
- package/dist/server/routes/index.mjs +15 -0
- package/dist/server/routes/index.mjs.map +1 -0
- package/dist/server/routes/status-management.js +122 -0
- package/dist/server/routes/status-management.js.map +1 -0
- package/dist/server/routes/status-management.mjs +120 -0
- package/dist/server/routes/status-management.mjs.map +1 -0
- package/dist/server/services/index.js +12 -0
- package/dist/server/services/index.js.map +1 -0
- package/dist/server/services/index.mjs +10 -0
- package/dist/server/services/index.mjs.map +1 -0
- package/dist/server/services/status-link.js +38 -0
- package/dist/server/services/status-link.js.map +1 -0
- package/dist/server/services/status-link.mjs +36 -0
- package/dist/server/services/status-link.mjs.map +1 -0
- package/dist/server/services/status.js +110 -0
- package/dist/server/services/status.js.map +1 -0
- package/dist/server/services/status.mjs +108 -0
- package/dist/server/services/status.mjs.map +1 -0
- package/dist/server/src/bootstrap.js +32 -0
- package/dist/server/src/config/dev.js +13 -0
- package/dist/server/src/content-types/index.js +15 -0
- package/dist/server/src/content-types/status-link.js +40 -0
- package/dist/server/src/content-types/status.js +47 -0
- package/dist/server/src/controllers/content.js +44 -0
- package/dist/server/src/controllers/index.js +9 -0
- package/dist/server/src/controllers/status.js +106 -0
- package/dist/server/src/index.js +23 -0
- package/dist/server/src/middlewares/add-status-field.js +51 -0
- package/dist/server/src/middlewares/filter-by-status.js +44 -0
- package/dist/server/src/middlewares/filter-published.js +31 -0
- package/dist/server/src/permissions.js +41 -0
- package/dist/server/src/pluginId.js +4 -0
- package/dist/server/src/register.js +28 -0
- package/dist/server/src/routes/content-management.js +34 -0
- package/dist/server/src/routes/index.js +15 -0
- package/dist/server/src/routes/status-management.js +109 -0
- package/dist/server/src/services/index.js +9 -0
- package/dist/server/src/services/status-link.js +33 -0
- package/dist/server/src/services/status.js +96 -0
- package/package.json +104 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var utils = require('@strapi/utils');
|
|
4
|
+
|
|
5
|
+
var filterByStatus = (async (context, next)=>{
|
|
6
|
+
const uid = context.uid;
|
|
7
|
+
if (!uid.includes("api::")) {
|
|
8
|
+
return next();
|
|
9
|
+
}
|
|
10
|
+
const paramKeys = Object.keys(context.params || {});
|
|
11
|
+
if (!paramKeys.includes("statusName")) {
|
|
12
|
+
return next();
|
|
13
|
+
}
|
|
14
|
+
const desiredStatus = context.params["statusName"];
|
|
15
|
+
if (!desiredStatus || desiredStatus === "all") return next();
|
|
16
|
+
const isValid = await strapi.plugin("primershop-status-manager").service("status").isValidStatus(desiredStatus);
|
|
17
|
+
if (!isValid) throw new utils.errors.ValidationError(`Invalid status: ${desiredStatus}`);
|
|
18
|
+
const status = await strapi.plugin("primershop-status-manager").service("status").getStatusByName(desiredStatus);
|
|
19
|
+
if (!status) {
|
|
20
|
+
throw new utils.errors.ValidationError(`Status not found: ${desiredStatus}`);
|
|
21
|
+
}
|
|
22
|
+
const statusLinks = await strapi.db.query("plugin::primershop-status-manager.status-link").findMany({
|
|
23
|
+
where: {
|
|
24
|
+
targetUid: uid,
|
|
25
|
+
status: status.id
|
|
26
|
+
},
|
|
27
|
+
select: [
|
|
28
|
+
"targetDocumentId"
|
|
29
|
+
]
|
|
30
|
+
});
|
|
31
|
+
const allowedDocumentIds = statusLinks.map((link)=>link.targetDocumentId);
|
|
32
|
+
context.params["filters"] = {
|
|
33
|
+
...context.params["filters"],
|
|
34
|
+
documentId: {
|
|
35
|
+
$in: allowedDocumentIds
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
return next();
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
module.exports = filterByStatus;
|
|
42
|
+
//# sourceMappingURL=filter-by-status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter-by-status.js","sources":["../../../server/src/middlewares/filter-by-status.ts"],"sourcesContent":["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"],"names":["context","next","uid","includes","paramKeys","Object","keys","params","desiredStatus","isValid","strapi","plugin","service","isValidStatus","errors","ValidationError","status","getStatusByName","statusLinks","db","query","findMany","where","targetUid","id","select","allowedDocumentIds","map","link","targetDocumentId","documentId","$in"],"mappings":";;;;AAMA,qBAAe,CAAA,OACbA,OAAAA,EACAC,IAAAA,GAAAA;IAOA,MAAMC,GAAAA,GAAMF,QAAQE,GAAG;AACvB,IAAA,IAAI,CAACA,GAAAA,CAAIC,QAAQ,CAAC,OAAA,CAAA,EAAU;QAC1B,OAAOF,IAAAA,EAAAA;AACT,IAAA;AACA,IAAA,MAAMG,YAAYC,MAAAA,CAAOC,IAAI,CAACN,OAAAA,CAAQO,MAAM,IAAI,EAAC,CAAA;AAEjD,IAAA,IAAI,CAACH,SAAAA,CAAUD,QAAQ,CAAC,YAAA,CAAA,EAAe;QACrC,OAAOF,IAAAA,EAAAA;AACT,IAAA;AACA,IAAA,MAAMO,aAAAA,GAAgBR,OAAAA,CAAQO,MAAM,CAAC,YAAA,CAAa;AAElD,IAAA,IAAI,CAACC,aAAAA,IAAiBA,aAAAA,KAAkB,KAAA,EAAO,OAAOP,IAAAA,EAAAA;IAEtD,MAAMQ,OAAAA,GAAU,MAAMC,MAAAA,CACnBC,MAAM,CAAC,6BACPC,OAAO,CAAC,QAAA,CAAA,CACRC,aAAa,CAACL,aAAAA,CAAAA;IACjB,IAAI,CAACC,OAAAA,EACH,MAAM,IAAIK,YAAAA,CAAOC,eAAe,CAAC,CAAC,gBAAgB,EAAEP,aAAAA,CAAAA,CAAe,CAAA;IAErE,MAAMQ,MAAAA,GAAS,MAAMN,MAAAA,CAClBC,MAAM,CAAC,6BACPC,OAAO,CAAC,QAAA,CAAA,CACRK,eAAe,CAACT,aAAAA,CAAAA;AACnB,IAAA,IAAI,CAACQ,MAAAA,EAAQ;AACX,QAAA,MAAM,IAAIF,YAAAA,CAAOC,eAAe,CAAC,CAAC,kBAAkB,EAAEP,aAAAA,CAAAA,CAAe,CAAA;AACvE,IAAA;IAEA,MAAMU,WAAAA,GAAc,MAAMR,MAAAA,CAAOS,EAAE,CAChCC,KAAK,CAAC,+CAAA,CAAA,CACNC,QAAQ,CAAC;QACRC,KAAAA,EAAO;YACLC,SAAAA,EAAWrB,GAAAA;AACXc,YAAAA,MAAAA,EAAQA,OAAOQ;AACjB,SAAA;QACAC,MAAAA,EAAQ;AAAC,YAAA;AAAmB;AAC9B,KAAA,CAAA;AAEF,IAAA,MAAMC,qBAAqBR,WAAAA,CAAYS,GAAG,CAAC,CAACC,IAAAA,GAASA,KAAKC,gBAAgB,CAAA;IAE1E7B,OAAAA,CAAQO,MAAM,CAAC,SAAA,CAAU,GAAG;QAC1B,GAAGP,OAAAA,CAAQO,MAAM,CAAC,SAAA,CAAU;QAC5BuB,UAAAA,EAAY;YAAEC,GAAAA,EAAKL;AAAmB;AACxC,KAAA;IAEA,OAAOzB,IAAAA,EAAAA;AACT,CAAA;;;;"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { errors } from '@strapi/utils';
|
|
2
|
+
|
|
3
|
+
var filterByStatus = (async (context, next)=>{
|
|
4
|
+
const uid = context.uid;
|
|
5
|
+
if (!uid.includes("api::")) {
|
|
6
|
+
return next();
|
|
7
|
+
}
|
|
8
|
+
const paramKeys = Object.keys(context.params || {});
|
|
9
|
+
if (!paramKeys.includes("statusName")) {
|
|
10
|
+
return next();
|
|
11
|
+
}
|
|
12
|
+
const desiredStatus = context.params["statusName"];
|
|
13
|
+
if (!desiredStatus || desiredStatus === "all") return next();
|
|
14
|
+
const isValid = await strapi.plugin("primershop-status-manager").service("status").isValidStatus(desiredStatus);
|
|
15
|
+
if (!isValid) throw new errors.ValidationError(`Invalid status: ${desiredStatus}`);
|
|
16
|
+
const status = await strapi.plugin("primershop-status-manager").service("status").getStatusByName(desiredStatus);
|
|
17
|
+
if (!status) {
|
|
18
|
+
throw new errors.ValidationError(`Status not found: ${desiredStatus}`);
|
|
19
|
+
}
|
|
20
|
+
const statusLinks = await strapi.db.query("plugin::primershop-status-manager.status-link").findMany({
|
|
21
|
+
where: {
|
|
22
|
+
targetUid: uid,
|
|
23
|
+
status: status.id
|
|
24
|
+
},
|
|
25
|
+
select: [
|
|
26
|
+
"targetDocumentId"
|
|
27
|
+
]
|
|
28
|
+
});
|
|
29
|
+
const allowedDocumentIds = statusLinks.map((link)=>link.targetDocumentId);
|
|
30
|
+
context.params["filters"] = {
|
|
31
|
+
...context.params["filters"],
|
|
32
|
+
documentId: {
|
|
33
|
+
$in: allowedDocumentIds
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
return next();
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
export { filterByStatus as default };
|
|
40
|
+
//# sourceMappingURL=filter-by-status.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter-by-status.mjs","sources":["../../../server/src/middlewares/filter-by-status.ts"],"sourcesContent":["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"],"names":["context","next","uid","includes","paramKeys","Object","keys","params","desiredStatus","isValid","strapi","plugin","service","isValidStatus","errors","ValidationError","status","getStatusByName","statusLinks","db","query","findMany","where","targetUid","id","select","allowedDocumentIds","map","link","targetDocumentId","documentId","$in"],"mappings":";;AAMA,qBAAe,CAAA,OACbA,OAAAA,EACAC,IAAAA,GAAAA;IAOA,MAAMC,GAAAA,GAAMF,QAAQE,GAAG;AACvB,IAAA,IAAI,CAACA,GAAAA,CAAIC,QAAQ,CAAC,OAAA,CAAA,EAAU;QAC1B,OAAOF,IAAAA,EAAAA;AACT,IAAA;AACA,IAAA,MAAMG,YAAYC,MAAAA,CAAOC,IAAI,CAACN,OAAAA,CAAQO,MAAM,IAAI,EAAC,CAAA;AAEjD,IAAA,IAAI,CAACH,SAAAA,CAAUD,QAAQ,CAAC,YAAA,CAAA,EAAe;QACrC,OAAOF,IAAAA,EAAAA;AACT,IAAA;AACA,IAAA,MAAMO,aAAAA,GAAgBR,OAAAA,CAAQO,MAAM,CAAC,YAAA,CAAa;AAElD,IAAA,IAAI,CAACC,aAAAA,IAAiBA,aAAAA,KAAkB,KAAA,EAAO,OAAOP,IAAAA,EAAAA;IAEtD,MAAMQ,OAAAA,GAAU,MAAMC,MAAAA,CACnBC,MAAM,CAAC,6BACPC,OAAO,CAAC,QAAA,CAAA,CACRC,aAAa,CAACL,aAAAA,CAAAA;IACjB,IAAI,CAACC,OAAAA,EACH,MAAM,IAAIK,MAAAA,CAAOC,eAAe,CAAC,CAAC,gBAAgB,EAAEP,aAAAA,CAAAA,CAAe,CAAA;IAErE,MAAMQ,MAAAA,GAAS,MAAMN,MAAAA,CAClBC,MAAM,CAAC,6BACPC,OAAO,CAAC,QAAA,CAAA,CACRK,eAAe,CAACT,aAAAA,CAAAA;AACnB,IAAA,IAAI,CAACQ,MAAAA,EAAQ;AACX,QAAA,MAAM,IAAIF,MAAAA,CAAOC,eAAe,CAAC,CAAC,kBAAkB,EAAEP,aAAAA,CAAAA,CAAe,CAAA;AACvE,IAAA;IAEA,MAAMU,WAAAA,GAAc,MAAMR,MAAAA,CAAOS,EAAE,CAChCC,KAAK,CAAC,+CAAA,CAAA,CACNC,QAAQ,CAAC;QACRC,KAAAA,EAAO;YACLC,SAAAA,EAAWrB,GAAAA;AACXc,YAAAA,MAAAA,EAAQA,OAAOQ;AACjB,SAAA;QACAC,MAAAA,EAAQ;AAAC,YAAA;AAAmB;AAC9B,KAAA,CAAA;AAEF,IAAA,MAAMC,qBAAqBR,WAAAA,CAAYS,GAAG,CAAC,CAACC,IAAAA,GAASA,KAAKC,gBAAgB,CAAA;IAE1E7B,OAAAA,CAAQO,MAAM,CAAC,SAAA,CAAU,GAAG;QAC1B,GAAGP,OAAAA,CAAQO,MAAM,CAAC,SAAA,CAAU;QAC5BuB,UAAAA,EAAY;YAAEC,GAAAA,EAAKL;AAAmB;AACxC,KAAA;IAEA,OAAOzB,IAAAA,EAAAA;AACT,CAAA;;;;"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var filterPublished = (async (context, next)=>{
|
|
4
|
+
const uid = context.uid;
|
|
5
|
+
if (!uid.includes("api::")) {
|
|
6
|
+
return next();
|
|
7
|
+
}
|
|
8
|
+
const params = context.params;
|
|
9
|
+
if (!params && !params["status"] || params["statusName"]) return next();
|
|
10
|
+
const unpublishedStatusLinks = await strapi.db.query("plugin::primershop-status-manager.status-link").findMany({
|
|
11
|
+
populate: {
|
|
12
|
+
status: true
|
|
13
|
+
},
|
|
14
|
+
where: {
|
|
15
|
+
targetUid: uid,
|
|
16
|
+
status: {
|
|
17
|
+
published: false
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
select: [
|
|
21
|
+
"targetDocumentId"
|
|
22
|
+
]
|
|
23
|
+
});
|
|
24
|
+
const unpublishedDocumentIds = unpublishedStatusLinks.map((link)=>link.targetDocumentId);
|
|
25
|
+
context.params["filters"] = {
|
|
26
|
+
...context.params["filters"],
|
|
27
|
+
documentId: {
|
|
28
|
+
$notIn: unpublishedDocumentIds
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
return next();
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
module.exports = filterPublished;
|
|
35
|
+
//# sourceMappingURL=filter-published.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter-published.js","sources":["../../../server/src/middlewares/filter-published.ts"],"sourcesContent":["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"],"names":["context","next","uid","includes","params","unpublishedStatusLinks","strapi","db","query","findMany","populate","status","where","targetUid","published","select","unpublishedDocumentIds","map","link","targetDocumentId","documentId","$notIn"],"mappings":";;AAKA,sBAAe,CAAA,OACbA,OAAAA,EACAC,IAAAA,GAAAA;IAOA,MAAMC,GAAAA,GAAMF,QAAQE,GAAG;AACvB,IAAA,IAAI,CAACA,GAAAA,CAAIC,QAAQ,CAAC,OAAA,CAAA,EAAU;QAC1B,OAAOF,IAAAA,EAAAA;AACT,IAAA;IAEA,MAAMG,MAAAA,GAASJ,QAAQI,MAAM;AAC7B,IAAA,IAAI,CAAEA,MAAAA,IAAU,CAACA,MAAM,CAAC,QAAA,CAAS,IAAKA,MAAM,CAAC,YAAA,CAAa,EAAE,OAAOH,IAAAA,EAAAA;IAEnE,MAAMI,sBAAAA,GAAyB,MAAMC,MAAAA,CAAOC,EAAE,CAC3CC,KAAK,CAAC,+CAAA,CAAA,CACNC,QAAQ,CAAC;QACRC,QAAAA,EAAU;YACRC,MAAAA,EAAQ;AACV,SAAA;QACAC,KAAAA,EAAO;YACLC,SAAAA,EAAWX,GAAAA;YACXS,MAAAA,EAAQ;gBACNG,SAAAA,EAAW;AACb;AACF,SAAA;QACAC,MAAAA,EAAQ;AAAC,YAAA;AAAmB;AAC9B,KAAA,CAAA;AAEF,IAAA,MAAMC,yBAAyBX,sBAAAA,CAAuBY,GAAG,CACvD,CAACC,IAAAA,GAASA,KAAKC,gBAAgB,CAAA;IAGjCnB,OAAAA,CAAQI,MAAM,CAAC,SAAA,CAAU,GAAG;QAC1B,GAAGJ,OAAAA,CAAQI,MAAM,CAAC,SAAA,CAAU;QAC5BgB,UAAAA,EAAY;YAAEC,MAAAA,EAAQL;AAAuB;AAC/C,KAAA;IAEA,OAAOf,IAAAA,EAAAA;AACT,CAAA;;;;"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
var filterPublished = (async (context, next)=>{
|
|
2
|
+
const uid = context.uid;
|
|
3
|
+
if (!uid.includes("api::")) {
|
|
4
|
+
return next();
|
|
5
|
+
}
|
|
6
|
+
const params = context.params;
|
|
7
|
+
if (!params && !params["status"] || params["statusName"]) return next();
|
|
8
|
+
const unpublishedStatusLinks = await strapi.db.query("plugin::primershop-status-manager.status-link").findMany({
|
|
9
|
+
populate: {
|
|
10
|
+
status: true
|
|
11
|
+
},
|
|
12
|
+
where: {
|
|
13
|
+
targetUid: uid,
|
|
14
|
+
status: {
|
|
15
|
+
published: false
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
select: [
|
|
19
|
+
"targetDocumentId"
|
|
20
|
+
]
|
|
21
|
+
});
|
|
22
|
+
const unpublishedDocumentIds = unpublishedStatusLinks.map((link)=>link.targetDocumentId);
|
|
23
|
+
context.params["filters"] = {
|
|
24
|
+
...context.params["filters"],
|
|
25
|
+
documentId: {
|
|
26
|
+
$notIn: unpublishedDocumentIds
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
return next();
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
export { filterPublished as default };
|
|
33
|
+
//# sourceMappingURL=filter-published.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter-published.mjs","sources":["../../../server/src/middlewares/filter-published.ts"],"sourcesContent":["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"],"names":["context","next","uid","includes","params","unpublishedStatusLinks","strapi","db","query","findMany","populate","status","where","targetUid","published","select","unpublishedDocumentIds","map","link","targetDocumentId","documentId","$notIn"],"mappings":"AAKA,sBAAe,CAAA,OACbA,OAAAA,EACAC,IAAAA,GAAAA;IAOA,MAAMC,GAAAA,GAAMF,QAAQE,GAAG;AACvB,IAAA,IAAI,CAACA,GAAAA,CAAIC,QAAQ,CAAC,OAAA,CAAA,EAAU;QAC1B,OAAOF,IAAAA,EAAAA;AACT,IAAA;IAEA,MAAMG,MAAAA,GAASJ,QAAQI,MAAM;AAC7B,IAAA,IAAI,CAAEA,MAAAA,IAAU,CAACA,MAAM,CAAC,QAAA,CAAS,IAAKA,MAAM,CAAC,YAAA,CAAa,EAAE,OAAOH,IAAAA,EAAAA;IAEnE,MAAMI,sBAAAA,GAAyB,MAAMC,MAAAA,CAAOC,EAAE,CAC3CC,KAAK,CAAC,+CAAA,CAAA,CACNC,QAAQ,CAAC;QACRC,QAAAA,EAAU;YACRC,MAAAA,EAAQ;AACV,SAAA;QACAC,KAAAA,EAAO;YACLC,SAAAA,EAAWX,GAAAA;YACXS,MAAAA,EAAQ;gBACNG,SAAAA,EAAW;AACb;AACF,SAAA;QACAC,MAAAA,EAAQ;AAAC,YAAA;AAAmB;AAC9B,KAAA,CAAA;AAEF,IAAA,MAAMC,yBAAyBX,sBAAAA,CAAuBY,GAAG,CACvD,CAACC,IAAAA,GAASA,KAAKC,gBAAgB,CAAA;IAGjCnB,OAAAA,CAAQI,MAAM,CAAC,SAAA,CAAU,GAAG;QAC1B,GAAGJ,OAAAA,CAAQI,MAAM,CAAC,SAAA,CAAU;QAC5BgB,UAAAA,EAAY;YAAEC,MAAAA,EAAQL;AAAuB;AAC/C,KAAA;IAEA,OAAOf,IAAAA,EAAAA;AACT,CAAA;;;;"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var statusActions = {
|
|
4
|
+
actions: [
|
|
5
|
+
{
|
|
6
|
+
// Roles
|
|
7
|
+
section: "plugins",
|
|
8
|
+
displayName: "Create",
|
|
9
|
+
uid: "status.create",
|
|
10
|
+
subCategory: "status",
|
|
11
|
+
pluginName: "primershop-status-manager"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
section: "plugins",
|
|
15
|
+
displayName: "Read",
|
|
16
|
+
uid: "status.read",
|
|
17
|
+
subCategory: "status",
|
|
18
|
+
pluginName: "primershop-status-manager",
|
|
19
|
+
aliases: [
|
|
20
|
+
{
|
|
21
|
+
actionId: "plugin::content-manager.explorer.read",
|
|
22
|
+
subjects: [
|
|
23
|
+
"plugin::primershop-status-manager.status"
|
|
24
|
+
]
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
section: "plugins",
|
|
30
|
+
displayName: "Update",
|
|
31
|
+
uid: "status.update",
|
|
32
|
+
subCategory: "status",
|
|
33
|
+
pluginName: "primershop-status-manager"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
section: "plugins",
|
|
37
|
+
displayName: "Delete",
|
|
38
|
+
uid: "status.delete",
|
|
39
|
+
subCategory: "status",
|
|
40
|
+
pluginName: "primershop-status-manager"
|
|
41
|
+
}
|
|
42
|
+
]
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
module.exports = statusActions;
|
|
46
|
+
//# sourceMappingURL=permissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions.js","sources":["../../server/src/permissions.ts"],"sourcesContent":["export default {\r\n actions: [\r\n {\r\n // Roles\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};\r\n"],"names":["actions","section","displayName","uid","subCategory","pluginName","aliases","actionId","subjects"],"mappings":";;AAAA,oBAAe;IACbA,OAAAA,EAAS;AACP,QAAA;;YAEEC,OAAAA,EAAS,SAAA;YACTC,WAAAA,EAAa,QAAA;YACbC,GAAAA,EAAK,eAAA;YACLC,WAAAA,EAAa,QAAA;YACbC,UAAAA,EAAY;AACd,SAAA;AACA,QAAA;YACEJ,OAAAA,EAAS,SAAA;YACTC,WAAAA,EAAa,MAAA;YACbC,GAAAA,EAAK,aAAA;YACLC,WAAAA,EAAa,QAAA;YACbC,UAAAA,EAAY,2BAAA;YACZC,OAAAA,EAAS;AACP,gBAAA;oBACEC,QAAAA,EAAU,uCAAA;oBACVC,QAAAA,EAAU;AAAC,wBAAA;AAA2C;AACxD;AACD;AACH,SAAA;AACA,QAAA;YACEP,OAAAA,EAAS,SAAA;YACTC,WAAAA,EAAa,QAAA;YACbC,GAAAA,EAAK,eAAA;YACLC,WAAAA,EAAa,QAAA;YACbC,UAAAA,EAAY;AACd,SAAA;AACA,QAAA;YACEJ,OAAAA,EAAS,SAAA;YACTC,WAAAA,EAAa,QAAA;YACbC,GAAAA,EAAK,eAAA;YACLC,WAAAA,EAAa,QAAA;YACbC,UAAAA,EAAY;AACd;AACD;AACH,CAAA;;;;"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
var statusActions = {
|
|
2
|
+
actions: [
|
|
3
|
+
{
|
|
4
|
+
// Roles
|
|
5
|
+
section: "plugins",
|
|
6
|
+
displayName: "Create",
|
|
7
|
+
uid: "status.create",
|
|
8
|
+
subCategory: "status",
|
|
9
|
+
pluginName: "primershop-status-manager"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
section: "plugins",
|
|
13
|
+
displayName: "Read",
|
|
14
|
+
uid: "status.read",
|
|
15
|
+
subCategory: "status",
|
|
16
|
+
pluginName: "primershop-status-manager",
|
|
17
|
+
aliases: [
|
|
18
|
+
{
|
|
19
|
+
actionId: "plugin::content-manager.explorer.read",
|
|
20
|
+
subjects: [
|
|
21
|
+
"plugin::primershop-status-manager.status"
|
|
22
|
+
]
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
section: "plugins",
|
|
28
|
+
displayName: "Update",
|
|
29
|
+
uid: "status.update",
|
|
30
|
+
subCategory: "status",
|
|
31
|
+
pluginName: "primershop-status-manager"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
section: "plugins",
|
|
35
|
+
displayName: "Delete",
|
|
36
|
+
uid: "status.delete",
|
|
37
|
+
subCategory: "status",
|
|
38
|
+
pluginName: "primershop-status-manager"
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
export { statusActions as default };
|
|
44
|
+
//# sourceMappingURL=permissions.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions.mjs","sources":["../../server/src/permissions.ts"],"sourcesContent":["export default {\r\n actions: [\r\n {\r\n // Roles\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};\r\n"],"names":["actions","section","displayName","uid","subCategory","pluginName","aliases","actionId","subjects"],"mappings":"AAAA,oBAAe;IACbA,OAAAA,EAAS;AACP,QAAA;;YAEEC,OAAAA,EAAS,SAAA;YACTC,WAAAA,EAAa,QAAA;YACbC,GAAAA,EAAK,eAAA;YACLC,WAAAA,EAAa,QAAA;YACbC,UAAAA,EAAY;AACd,SAAA;AACA,QAAA;YACEJ,OAAAA,EAAS,SAAA;YACTC,WAAAA,EAAa,MAAA;YACbC,GAAAA,EAAK,aAAA;YACLC,WAAAA,EAAa,QAAA;YACbC,UAAAA,EAAY,2BAAA;YACZC,OAAAA,EAAS;AACP,gBAAA;oBACEC,QAAAA,EAAU,uCAAA;oBACVC,QAAAA,EAAU;AAAC,wBAAA;AAA2C;AACxD;AACD;AACH,SAAA;AACA,QAAA;YACEP,OAAAA,EAAS,SAAA;YACTC,WAAAA,EAAa,QAAA;YACbC,GAAAA,EAAK,eAAA;YACLC,WAAAA,EAAa,QAAA;YACbC,UAAAA,EAAY;AACd,SAAA;AACA,QAAA;YACEJ,OAAAA,EAAS,SAAA;YACTC,WAAAA,EAAa,QAAA;YACbC,GAAAA,EAAK,eAAA;YACLC,WAAAA,EAAa,QAAA;YACbC,UAAAA,EAAY;AACd;AACD;AACH,CAAA;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pluginId.js","sources":["../../server/src/pluginId.ts"],"sourcesContent":["export const PLUGIN_ID = \"primershop-status-manager\";\r\n"],"names":["PLUGIN_ID"],"mappings":";;AAAO,MAAMA,YAAY;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pluginId.mjs","sources":["../../server/src/pluginId.ts"],"sourcesContent":["export const PLUGIN_ID = \"primershop-status-manager\";\r\n"],"names":["PLUGIN_ID"],"mappings":"AAAO,MAAMA,YAAY;;;;"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var pluginId = require('./pluginId.js');
|
|
4
|
+
var addStatusField = require('./middlewares/add-status-field.js');
|
|
5
|
+
var filterByStatus = require('./middlewares/filter-by-status.js');
|
|
6
|
+
var filterPublished = require('./middlewares/filter-published.js');
|
|
7
|
+
|
|
8
|
+
const register = ({ strapi })=>{
|
|
9
|
+
strapi.customFields.register({
|
|
10
|
+
name: "statusName",
|
|
11
|
+
plugin: pluginId.PLUGIN_ID,
|
|
12
|
+
type: "string"
|
|
13
|
+
});
|
|
14
|
+
// Register permissions
|
|
15
|
+
strapi.admin.services.permission.actionProvider.register({
|
|
16
|
+
section: "plugins",
|
|
17
|
+
displayName: "Status Manager",
|
|
18
|
+
uid: pluginId.PLUGIN_ID,
|
|
19
|
+
pluginName: pluginId.PLUGIN_ID
|
|
20
|
+
});
|
|
21
|
+
strapi.documents.use(filterByStatus);
|
|
22
|
+
strapi.documents.use(addStatusField);
|
|
23
|
+
strapi.documents.use(filterPublished);
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
exports.register = register;
|
|
27
|
+
//# sourceMappingURL=register.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register.js","sources":["../../server/src/register.ts"],"sourcesContent":["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\n\r\n\r\nexport const 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 // Register permissions\r\n strapi.admin.services.permission.actionProvider.register({\r\n section: \"plugins\",\r\n displayName: \"Status Manager\",\r\n uid: PLUGIN_ID,\r\n pluginName: PLUGIN_ID,\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"],"names":["register","strapi","customFields","name","plugin","PLUGIN_ID","type","admin","services","permission","actionProvider","section","displayName","uid","pluginName","documents","use","filterByStatus","addStatusField","filterPublished"],"mappings":";;;;;;;AAQO,MAAMA,QAAAA,GAAW,CAAC,EAAEC,MAAM,EAA2B,GAAA;IAC1DA,MAAAA,CAAOC,YAAY,CAACF,QAAQ,CAAC;QAC3BG,IAAAA,EAAM,YAAA;QACNC,MAAAA,EAAQC,kBAAAA;QACRC,IAAAA,EAAM;AACR,KAAA,CAAA;;IAEAL,MAAAA,CAAOM,KAAK,CAACC,QAAQ,CAACC,UAAU,CAACC,cAAc,CAACV,QAAQ,CAAC;QACvDW,OAAAA,EAAS,SAAA;QACTC,WAAAA,EAAa,gBAAA;QACbC,GAAAA,EAAKR,kBAAAA;QACLS,UAAAA,EAAYT;AACd,KAAA,CAAA;IAEAJ,MAAAA,CAAOc,SAAS,CAACC,GAAG,CAACC,cAAAA,CAAAA;IACrBhB,MAAAA,CAAOc,SAAS,CAACC,GAAG,CAACE,cAAAA,CAAAA;IACrBjB,MAAAA,CAAOc,SAAS,CAACC,GAAG,CAACG,eAAAA,CAAAA;AACvB;;;;"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { PLUGIN_ID } from './pluginId.mjs';
|
|
2
|
+
import addStatusField from './middlewares/add-status-field.mjs';
|
|
3
|
+
import filterByStatus from './middlewares/filter-by-status.mjs';
|
|
4
|
+
import filterPublished from './middlewares/filter-published.mjs';
|
|
5
|
+
|
|
6
|
+
const register = ({ strapi })=>{
|
|
7
|
+
strapi.customFields.register({
|
|
8
|
+
name: "statusName",
|
|
9
|
+
plugin: PLUGIN_ID,
|
|
10
|
+
type: "string"
|
|
11
|
+
});
|
|
12
|
+
// Register permissions
|
|
13
|
+
strapi.admin.services.permission.actionProvider.register({
|
|
14
|
+
section: "plugins",
|
|
15
|
+
displayName: "Status Manager",
|
|
16
|
+
uid: PLUGIN_ID,
|
|
17
|
+
pluginName: PLUGIN_ID
|
|
18
|
+
});
|
|
19
|
+
strapi.documents.use(filterByStatus);
|
|
20
|
+
strapi.documents.use(addStatusField);
|
|
21
|
+
strapi.documents.use(filterPublished);
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export { register };
|
|
25
|
+
//# sourceMappingURL=register.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register.mjs","sources":["../../server/src/register.ts"],"sourcesContent":["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\n\r\n\r\nexport const 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 // Register permissions\r\n strapi.admin.services.permission.actionProvider.register({\r\n section: \"plugins\",\r\n displayName: \"Status Manager\",\r\n uid: PLUGIN_ID,\r\n pluginName: PLUGIN_ID,\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"],"names":["register","strapi","customFields","name","plugin","PLUGIN_ID","type","admin","services","permission","actionProvider","section","displayName","uid","pluginName","documents","use","filterByStatus","addStatusField","filterPublished"],"mappings":";;;;;AAQO,MAAMA,QAAAA,GAAW,CAAC,EAAEC,MAAM,EAA2B,GAAA;IAC1DA,MAAAA,CAAOC,YAAY,CAACF,QAAQ,CAAC;QAC3BG,IAAAA,EAAM,YAAA;QACNC,MAAAA,EAAQC,SAAAA;QACRC,IAAAA,EAAM;AACR,KAAA,CAAA;;IAEAL,MAAAA,CAAOM,KAAK,CAACC,QAAQ,CAACC,UAAU,CAACC,cAAc,CAACV,QAAQ,CAAC;QACvDW,OAAAA,EAAS,SAAA;QACTC,WAAAA,EAAa,gBAAA;QACbC,GAAAA,EAAKR,SAAAA;QACLS,UAAAA,EAAYT;AACd,KAAA,CAAA;IAEAJ,MAAAA,CAAOc,SAAS,CAACC,GAAG,CAACC,cAAAA,CAAAA;IACrBhB,MAAAA,CAAOc,SAAS,CAACC,GAAG,CAACE,cAAAA,CAAAA;IACrBjB,MAAAA,CAAOc,SAAS,CAACC,GAAG,CAACG,eAAAA,CAAAA;AACvB;;;;"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var contentManagement = [
|
|
4
|
+
{
|
|
5
|
+
method: "GET",
|
|
6
|
+
path: "/content-status",
|
|
7
|
+
handler: "content_controller.getStatusForTarget",
|
|
8
|
+
config: {
|
|
9
|
+
policies: [
|
|
10
|
+
{
|
|
11
|
+
name: "admin::hasPermissions",
|
|
12
|
+
config: {
|
|
13
|
+
actions: [
|
|
14
|
+
"plugin::primershop-status-manager.status.read"
|
|
15
|
+
]
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
]
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
method: "PUT",
|
|
23
|
+
path: "/content-status",
|
|
24
|
+
handler: "content_controller.setStatusForTarget",
|
|
25
|
+
config: {
|
|
26
|
+
policies: [
|
|
27
|
+
{
|
|
28
|
+
name: "admin::hasPermissions",
|
|
29
|
+
config: {
|
|
30
|
+
actions: [
|
|
31
|
+
"plugin::primershop-status-manager.status.update"
|
|
32
|
+
]
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
];
|
|
39
|
+
|
|
40
|
+
module.exports = contentManagement;
|
|
41
|
+
//# sourceMappingURL=content-management.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-management.js","sources":["../../../server/src/routes/content-management.ts"],"sourcesContent":["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"],"names":["method","path","handler","config","policies","name","actions"],"mappings":";;AAAA,wBAAe;AACb,IAAA;QACEA,MAAAA,EAAQ,KAAA;QACRC,IAAAA,EAAM,iBAAA;QACNC,OAAAA,EAAS,uCAAA;QACTC,MAAAA,EAAQ;YACNC,QAAAA,EAAU;AACR,gBAAA;oBACEC,IAAAA,EAAM,uBAAA;oBACNF,MAAAA,EAAQ;wBACNG,OAAAA,EAAS;AAAC,4BAAA;AAAgD;AAC5D;AACF;AACD;AACH;AACF,KAAA;AACA,IAAA;QACEN,MAAAA,EAAQ,KAAA;QACRC,IAAAA,EAAM,iBAAA;QACNC,OAAAA,EAAS,uCAAA;QACTC,MAAAA,EAAQ;YACNC,QAAAA,EAAU;AACR,gBAAA;oBACEC,IAAAA,EAAM,uBAAA;oBACNF,MAAAA,EAAQ;wBACNG,OAAAA,EAAS;AAAC,4BAAA;AAAkD;AAC9D;AACF;AACD;AACH;AACF;CACD;;;;"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
var contentManagement = [
|
|
2
|
+
{
|
|
3
|
+
method: "GET",
|
|
4
|
+
path: "/content-status",
|
|
5
|
+
handler: "content_controller.getStatusForTarget",
|
|
6
|
+
config: {
|
|
7
|
+
policies: [
|
|
8
|
+
{
|
|
9
|
+
name: "admin::hasPermissions",
|
|
10
|
+
config: {
|
|
11
|
+
actions: [
|
|
12
|
+
"plugin::primershop-status-manager.status.read"
|
|
13
|
+
]
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
method: "PUT",
|
|
21
|
+
path: "/content-status",
|
|
22
|
+
handler: "content_controller.setStatusForTarget",
|
|
23
|
+
config: {
|
|
24
|
+
policies: [
|
|
25
|
+
{
|
|
26
|
+
name: "admin::hasPermissions",
|
|
27
|
+
config: {
|
|
28
|
+
actions: [
|
|
29
|
+
"plugin::primershop-status-manager.status.update"
|
|
30
|
+
]
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
];
|
|
37
|
+
|
|
38
|
+
export { contentManagement as default };
|
|
39
|
+
//# sourceMappingURL=content-management.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-management.mjs","sources":["../../../server/src/routes/content-management.ts"],"sourcesContent":["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"],"names":["method","path","handler","config","policies","name","actions"],"mappings":"AAAA,wBAAe;AACb,IAAA;QACEA,MAAAA,EAAQ,KAAA;QACRC,IAAAA,EAAM,iBAAA;QACNC,OAAAA,EAAS,uCAAA;QACTC,MAAAA,EAAQ;YACNC,QAAAA,EAAU;AACR,gBAAA;oBACEC,IAAAA,EAAM,uBAAA;oBACNF,MAAAA,EAAQ;wBACNG,OAAAA,EAAS;AAAC,4BAAA;AAAgD;AAC5D;AACF;AACD;AACH;AACF,KAAA;AACA,IAAA;QACEN,MAAAA,EAAQ,KAAA;QACRC,IAAAA,EAAM,iBAAA;QACNC,OAAAA,EAAS,uCAAA;QACTC,MAAAA,EAAQ;YACNC,QAAAA,EAAU;AACR,gBAAA;oBACEC,IAAAA,EAAM,uBAAA;oBACNF,MAAAA,EAAQ;wBACNG,OAAAA,EAAS;AAAC,4BAAA;AAAkD;AAC9D;AACF;AACD;AACH;AACF;CACD;;;;"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var statusManagement = require('./status-management.js');
|
|
4
|
+
var contentManagement = require('./content-management.js');
|
|
5
|
+
|
|
6
|
+
const routes = {
|
|
7
|
+
admin: {
|
|
8
|
+
type: "admin",
|
|
9
|
+
routes: [
|
|
10
|
+
...statusManagement,
|
|
11
|
+
...contentManagement
|
|
12
|
+
]
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
exports.routes = routes;
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../server/src/routes/index.ts"],"sourcesContent":["import statusManagement from \"./status-management\";\r\nimport contentManagement from \"./content-management\";\r\n\r\nconst routes = {\r\n admin: {\r\n type: \"admin\",\r\n routes: [...statusManagement, ...contentManagement],\r\n },\r\n};\r\n\r\nexport { routes };\r\n"],"names":["routes","admin","type","statusManagement","contentManagement"],"mappings":";;;;;AAGA,MAAMA,MAAAA,GAAS;IACbC,KAAAA,EAAO;QACLC,IAAAA,EAAM,OAAA;QACNF,MAAAA,EAAQ;AAAIG,YAAAA,GAAAA,gBAAAA;AAAqBC,YAAAA,GAAAA;AAAkB;AACrD;AACF;;;;"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import statusManagement from './status-management.mjs';
|
|
2
|
+
import contentManagement from './content-management.mjs';
|
|
3
|
+
|
|
4
|
+
const routes = {
|
|
5
|
+
admin: {
|
|
6
|
+
type: "admin",
|
|
7
|
+
routes: [
|
|
8
|
+
...statusManagement,
|
|
9
|
+
...contentManagement
|
|
10
|
+
]
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export { routes };
|
|
15
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../server/src/routes/index.ts"],"sourcesContent":["import statusManagement from \"./status-management\";\r\nimport contentManagement from \"./content-management\";\r\n\r\nconst routes = {\r\n admin: {\r\n type: \"admin\",\r\n routes: [...statusManagement, ...contentManagement],\r\n },\r\n};\r\n\r\nexport { routes };\r\n"],"names":["routes","admin","type","statusManagement","contentManagement"],"mappings":";;;AAGA,MAAMA,MAAAA,GAAS;IACbC,KAAAA,EAAO;QACLC,IAAAA,EAAM,OAAA;QACNF,MAAAA,EAAQ;AAAIG,YAAAA,GAAAA,gBAAAA;AAAqBC,YAAAA,GAAAA;AAAkB;AACrD;AACF;;;;"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var statusManagement = [
|
|
4
|
+
{
|
|
5
|
+
method: "GET",
|
|
6
|
+
path: "/statuses",
|
|
7
|
+
handler: "status_controller.listStatuses",
|
|
8
|
+
config: {
|
|
9
|
+
policies: [
|
|
10
|
+
{
|
|
11
|
+
name: "admin::hasPermissions",
|
|
12
|
+
config: {
|
|
13
|
+
actions: [
|
|
14
|
+
"plugin::primershop-status-manager.status.read"
|
|
15
|
+
]
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
]
|
|
19
|
+
},
|
|
20
|
+
description: "Get all statuses",
|
|
21
|
+
tag: {
|
|
22
|
+
plugin: "primershop-status-manager",
|
|
23
|
+
name: "statuses",
|
|
24
|
+
actionType: "findMany"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
method: "POST",
|
|
29
|
+
path: "/status",
|
|
30
|
+
handler: "status_controller.create",
|
|
31
|
+
config: {
|
|
32
|
+
policies: [
|
|
33
|
+
{
|
|
34
|
+
name: "admin::hasPermissions",
|
|
35
|
+
config: {
|
|
36
|
+
actions: [
|
|
37
|
+
"plugin::primershop-status-manager.status.create"
|
|
38
|
+
]
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
description: "Create a new status",
|
|
44
|
+
tag: {
|
|
45
|
+
plugin: "primershop-status-manager",
|
|
46
|
+
name: "Status",
|
|
47
|
+
actionType: "create"
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
method: "PUT",
|
|
52
|
+
path: "/statuses/reorder",
|
|
53
|
+
handler: "status_controller.reorder",
|
|
54
|
+
config: {
|
|
55
|
+
policies: [
|
|
56
|
+
{
|
|
57
|
+
name: "admin::hasPermissions",
|
|
58
|
+
config: {
|
|
59
|
+
actions: [
|
|
60
|
+
"plugin::primershop-status-manager.status.update"
|
|
61
|
+
]
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
],
|
|
65
|
+
description: "Reorder statuses",
|
|
66
|
+
tag: {
|
|
67
|
+
plugin: "primershop-status-manager",
|
|
68
|
+
name: "Status",
|
|
69
|
+
actionType: "update"
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
method: "PUT",
|
|
75
|
+
path: "/statuses/delete",
|
|
76
|
+
handler: "status_controller.delete",
|
|
77
|
+
config: {
|
|
78
|
+
policies: [
|
|
79
|
+
{
|
|
80
|
+
name: "admin::hasPermissions",
|
|
81
|
+
config: {
|
|
82
|
+
actions: [
|
|
83
|
+
"plugin::primershop-status-manager.status.delete"
|
|
84
|
+
]
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
],
|
|
88
|
+
description: "Delete a status",
|
|
89
|
+
tag: {
|
|
90
|
+
plugin: "primershop-status-manager",
|
|
91
|
+
name: "Status",
|
|
92
|
+
actionType: "delete"
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
method: "PUT",
|
|
98
|
+
path: "/statuses/:id",
|
|
99
|
+
handler: "status_controller.publish",
|
|
100
|
+
config: {
|
|
101
|
+
policies: [
|
|
102
|
+
{
|
|
103
|
+
name: "admin::hasPermissions",
|
|
104
|
+
config: {
|
|
105
|
+
actions: [
|
|
106
|
+
"plugin::primershop-status-manager.status.update"
|
|
107
|
+
]
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
],
|
|
111
|
+
description: "Update status publish state",
|
|
112
|
+
tag: {
|
|
113
|
+
plugin: "primershop-status-manager",
|
|
114
|
+
name: "Status",
|
|
115
|
+
actionType: "update"
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
];
|
|
120
|
+
|
|
121
|
+
module.exports = statusManagement;
|
|
122
|
+
//# sourceMappingURL=status-management.js.map
|