adminizer 4.3.2 → 4.3.4

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.
@@ -424,8 +424,9 @@ export interface CreateUpdateConfig {
424
424
  entityModifier?: <T>(fieldData: T) => T;
425
425
  /**
426
426
  * You can change standard controller for any entity by this property
427
+ * Can be either a string path (for dynamic import) or a controller function
427
428
  * */
428
- controller?: string;
429
+ controller?: string | ((req: ReqType, res: ResType) => Promise<any>);
429
430
  }
430
431
  export interface HrefConfig {
431
432
  id: string;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "adminizer",
3
3
  "type": "module",
4
- "version": "4.3.2",
4
+ "version": "4.3.4",
5
5
  "main": "index.js",
6
6
  "exports": {
7
7
  ".": "./index.js",
package/system/Router.js CHANGED
@@ -126,8 +126,15 @@ export default class Router {
126
126
  if (modelConfig.add) {
127
127
  let addHandler = modelConfig.add;
128
128
  if (addHandler.controller) {
129
- let controller = await import(addHandler.controller);
130
- adminizer.app.all(`${adminizer.config.routePrefix}/model/${model}/add`, adminizer.policyManager.bindPolicies(policies, controller.default));
129
+ if (typeof addHandler.controller === 'string') {
130
+ // Dynamic import for string paths
131
+ let controller = await import(addHandler.controller);
132
+ adminizer.app.all(`${adminizer.config.routePrefix}/model/${model}/add`, adminizer.policyManager.bindPolicies(policies, controller.default));
133
+ }
134
+ else {
135
+ // Direct function reference
136
+ adminizer.app.all(`${adminizer.config.routePrefix}/model/${model}/add`, adminizer.policyManager.bindPolicies(policies, addHandler.controller));
137
+ }
131
138
  }
132
139
  else {
133
140
  adminizer.app.all(`${adminizer.config.routePrefix}/model/${model}/add`, adminizer.policyManager.bindPolicies(policies, _add));
@@ -142,8 +149,15 @@ export default class Router {
142
149
  if (modelConfig.edit) {
143
150
  let editHandler = modelConfig.edit;
144
151
  if (editHandler.controller) {
145
- let controller = await import(editHandler.controller);
146
- adminizer.app.all(`${adminizer.config.routePrefix}/model/${model}/edit/:id`, adminizer.policyManager.bindPolicies(policies, controller.default));
152
+ if (typeof editHandler.controller === 'string') {
153
+ // Dynamic import for string paths
154
+ let controller = await import(editHandler.controller);
155
+ adminizer.app.all(`${adminizer.config.routePrefix}/model/${model}/edit/:id`, adminizer.policyManager.bindPolicies(policies, controller.default));
156
+ }
157
+ else {
158
+ // Direct function reference
159
+ adminizer.app.all(`${adminizer.config.routePrefix}/model/${model}/edit/:id`, adminizer.policyManager.bindPolicies(policies, editHandler.controller));
160
+ }
147
161
  }
148
162
  else {
149
163
  adminizer.app.all(`${adminizer.config.routePrefix}/model/${model}/edit/:id`, adminizer.policyManager.bindPolicies(policies, _edit));
@@ -1,6 +1,10 @@
1
1
  'use strict';
2
2
  import { FileStorageHelper } from "../helpers/fileStorageHelper.js";
3
3
  import timezones from "../lib/timezones.js";
4
+ import addUser from "../controllers/addUser.js";
5
+ import editUser from "../controllers/editUser.js";
6
+ import addGroup from "../controllers/addGroup.js";
7
+ import editGroup from "../controllers/editGroup.js";
4
8
  /**
5
9
  * Default admin config
6
10
  */
@@ -37,10 +41,10 @@ let adminpanelConfig = {
37
41
  section: "System"
38
42
  },
39
43
  add: {
40
- controller: "../controllers/addUser"
44
+ controller: addUser
41
45
  },
42
46
  edit: {
43
- controller: "../controllers/editUser"
47
+ controller: editUser
44
48
  },
45
49
  fields: {
46
50
  login: {
@@ -82,10 +86,10 @@ let adminpanelConfig = {
82
86
  section: "System"
83
87
  },
84
88
  add: {
85
- controller: "../controllers/addGroup"
89
+ controller: addGroup
86
90
  },
87
91
  edit: {
88
- controller: "../controllers/editGroup"
92
+ controller: editGroup
89
93
  },
90
94
  list: {
91
95
  fields: {