adminizer 4.2.0-build.49 → 4.2.0-build.51
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/assets/{VanillaJSONEditor-XGIlS4LL.js → VanillaJSONEditor-BsNSMuiI.js} +1 -1
- package/assets/add-BOrwsLPk.js +1 -0
- package/assets/{add-form-BLdLojfl.js → add-form-GQVVok4z.js} +1 -1
- package/assets/add-group-ClEk5H3m.js +1 -0
- package/assets/{add-group-form-_VEBFz_S.js → add-group-form-9dIdiUu3.js} +1 -1
- package/assets/add-user-BCfcjTsJ.js +1 -0
- package/assets/{add-user-form-BFAFyXuz.js → add-user-form-CKEPuXAX.js} +1 -1
- package/assets/{app-CXlohNEv.css → app-DcyaNUqI.css} +1 -1
- package/assets/{app-layout-NMKA6xAa.js → app-layout-MF9D28sb.js} +1 -1
- package/assets/{app-sidebar-C4Y6TSY3.js → app-sidebar-CBCrH_5b.js} +1 -1
- package/assets/app-sidebar-header-CT58bBx6.js +1 -0
- package/assets/app.js +2 -2
- package/assets/{breadcrumbs-D0gGjNVI.js → breadcrumbs-DXFXn-ln.js} +1 -1
- package/assets/{catalog-CEVSwmj8.js → catalog-h5-oFEgK.js} +2 -2
- package/assets/{dashboard-jLbWzL7K.js → dashboard-Ca0PxrpJ.js} +2 -2
- package/assets/{date-picker-SAfAWPoh.js → date-picker-lh34xHZl.js} +1 -1
- package/assets/{del-modal-Dj3n8iVJ.js → del-modal-CwKNFb9U.js} +1 -1
- package/assets/{field-renderer-BlBZuSiD.css → field-renderer-BkNaSbkZ.css} +1 -1
- package/assets/field-renderer-C-zyBIEM.js +411 -0
- package/assets/{form-CYsLdORv.js → form-B30gc4iL.js} +1 -1
- package/assets/form-xJzl5esP.js +1 -0
- package/assets/{handsontable-Dxb-hF7-.js → handsontable-CpTuVOqA.js} +1 -1
- package/assets/home-BrMSrnA_.js +2 -0
- package/assets/{icon-DQL8h8HI.js → icon-CS1X91Nz.js} +1 -1
- package/assets/{init-user-DZtnQ7VL.js → init-user--38KZHls.js} +1 -1
- package/assets/{input-error-BztTAmHq.js → input-error-BkhNs96U.js} +1 -1
- package/assets/list-Da5LZQoi.js +1 -0
- package/assets/{list-table-Du8TTXit.js → list-table-CSB-cBZ7.js} +1 -1
- package/assets/{login-2THGmUHc.js → login-BsyYLvZs.js} +1 -1
- package/assets/manifest.json +102 -80
- package/assets/{material-icon-CPvFwV5P.js → material-icon-08xik4mg.js} +1 -1
- package/assets/module-DF806s6D.js +1 -0
- package/assets/{monaco-editor-9fDiyfuW.js → monaco-editor-Cp_1Q01C.js} +1 -1
- package/assets/{multi-select-e4PqgWYn.js → multi-select-Dd_ADH13.js} +1 -1
- package/assets/nav-footer-CiLx5SB9.js +1 -0
- package/assets/nav-main-DgWcOcOI.js +1 -0
- package/assets/{nav-user-BWl2j-y-.js → nav-user-Cud95A62.js} +1 -1
- package/assets/{pagination-render-D6MBqi0B.js → pagination-render-CsKj8TwQ.js} +1 -1
- package/assets/{register-Dks3YdiZ.js → register-CQhM1bKw.js} +1 -1
- package/assets/theme-switcher-BJSJk_M4.js +1 -0
- package/assets/{toast-editor-1Pul3oMs.js → toast-editor-B9DGyj0_.js} +1 -1
- package/assets/use-appearance-CXP5cHaQ.js +1 -0
- package/assets/{user-info-DTsggabP.js → user-info-BSOJr6JQ.js} +1 -1
- package/assets/{user-menu-content-Dnh2qpwQ.js → user-menu-content-BcKOjCpg.js} +1 -1
- package/assets/welcome-Dq1qVeCh.js +1 -0
- package/helpers/inertiaAddHelper.d.ts +1 -1
- package/helpers/inertiaAddHelper.js +4 -0
- package/lib/Adminizer.js +2 -2
- package/lib/media-manager/DefaultMediaManager.d.ts +18 -0
- package/lib/media-manager/DefaultMediaManager.js +96 -125
- package/lib/media-manager/Items.d.ts +45 -0
- package/lib/media-manager/Items.js +273 -334
- package/lib/v4/DataAccessor.d.ts +1 -0
- package/lib/v4/DataAccessor.js +15 -8
- package/lib/v4/inertia/inertiaAdapter.js +1 -1
- package/lib/v4/model/adapter/sequelize.js +28 -19
- package/lib/v4/model/adapter/waterline.js +12 -4
- package/lib/v4/widgets/abstractCustom.d.ts +1 -1
- package/models/MediaManagerAP.d.ts +62 -0
- package/models/MediaManagerAP.js +45 -0
- package/models/MediaManagerAssociationsAP.d.ts +38 -0
- package/models/MediaManagerAssociationsAP.js +27 -0
- package/models/MediaManagerMetaAP.d.ts +30 -0
- package/models/MediaManagerMetaAP.js +21 -0
- package/package.json +10 -5
- package/system/bindMediaManager.d.ts +2 -0
- package/system/bindMediaManager.js +14 -20
- package/system/bindModels.js +3 -3
- package/assets/add-BzeOQ-DB.js +0 -1
- package/assets/add-group-Bx2s4UXM.js +0 -1
- package/assets/add-user-C3BY-sey.js +0 -1
- package/assets/app-sidebar-header-DQnbMxfM.js +0 -1
- package/assets/field-renderer-C7qCVvAC.js +0 -407
- package/assets/form-DjAQC5zI.js +0 -1
- package/assets/home-DfUM0yKC.js +0 -2
- package/assets/list-B1FodBkq.js +0 -1
- package/assets/module-D55s6p7N.js +0 -1
- package/assets/nav-footer-B7wjmsPb.js +0 -1
- package/assets/nav-main-Cx1BkIzi.js +0 -1
- package/assets/use-appearance-J8J2w43p.js +0 -1
- package/assets/welcome-HFROxPwP.js +0 -1
|
@@ -1,125 +1,96 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
//
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
//
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
//
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
//
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
//
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
//
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
//
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
// await this.adminizer.modelHandler.model.get(this.modelAssoc)["_create"]({
|
|
98
|
-
// mediaManagerId: this.id,
|
|
99
|
-
// model: model,
|
|
100
|
-
// modelId: modelId,
|
|
101
|
-
// file: widgetItem.id,
|
|
102
|
-
// widgetName: widgetName,
|
|
103
|
-
// sortOrder: key + 1,
|
|
104
|
-
// });
|
|
105
|
-
// }
|
|
106
|
-
// }
|
|
107
|
-
//
|
|
108
|
-
// public async getRelations(items: MediaManagerWidgetItem[],): Promise<MediaManagerWidgetClientItem[]> {
|
|
109
|
-
// let widgetItems: MediaManagerWidgetClientItem[] = [];
|
|
110
|
-
// for (const item of items) {
|
|
111
|
-
// // TODO refactor CRUD functions for DataAccessor usage
|
|
112
|
-
// let file: MediaManagerItem = (await this.adminizer.modelHandler.model.get(this.model)["_find"]({
|
|
113
|
-
// where: {id: item.id}
|
|
114
|
-
// }, {populate: [["variants", {sort: "createdAt DESC"}]]}))[0]
|
|
115
|
-
//
|
|
116
|
-
// widgetItems.push({
|
|
117
|
-
// id: file.id,
|
|
118
|
-
// mimeType: file.mimeType,
|
|
119
|
-
// url: file.url,
|
|
120
|
-
// variants: file.variants,
|
|
121
|
-
// });
|
|
122
|
-
// }
|
|
123
|
-
// return widgetItems;
|
|
124
|
-
// }
|
|
125
|
-
// }
|
|
1
|
+
import { AbstractMediaManager, } from "./AbstractMediaManager";
|
|
2
|
+
import { populateVariants } from "./helpers/MediaManagerHelper";
|
|
3
|
+
import { ApplicationItem, ImageItem, TextItem, VideoItem } from "./Items";
|
|
4
|
+
export class DefaultMediaManager extends AbstractMediaManager {
|
|
5
|
+
itemTypes = [];
|
|
6
|
+
model = "mediamanagerap";
|
|
7
|
+
modelAssoc = "mediamanagerassociationsap";
|
|
8
|
+
id;
|
|
9
|
+
path;
|
|
10
|
+
adminizer;
|
|
11
|
+
constructor(adminizer, id, urlPathPrefix, fileStoragePath) {
|
|
12
|
+
super(adminizer);
|
|
13
|
+
this.id = id;
|
|
14
|
+
this.path = urlPathPrefix;
|
|
15
|
+
this.dir = fileStoragePath;
|
|
16
|
+
this.itemTypes.push(new ImageItem(adminizer, urlPathPrefix, fileStoragePath));
|
|
17
|
+
this.itemTypes.push(new TextItem(adminizer, urlPathPrefix, fileStoragePath));
|
|
18
|
+
this.itemTypes.push(new ApplicationItem(adminizer, urlPathPrefix, fileStoragePath));
|
|
19
|
+
this.itemTypes.push(new VideoItem(adminizer, urlPathPrefix, fileStoragePath));
|
|
20
|
+
this.adminizer = adminizer;
|
|
21
|
+
}
|
|
22
|
+
async getAll(limit, skip, sort, group) {
|
|
23
|
+
// TODO refactor CRUD functions for DataAccessor usage
|
|
24
|
+
let data = await this.adminizer.modelHandler.model.get(this.model)["_find"]({
|
|
25
|
+
where: { parent: null, group: group },
|
|
26
|
+
limit: limit,
|
|
27
|
+
skip: skip,
|
|
28
|
+
sort: sort,
|
|
29
|
+
}, { populate: [["variants", { sort: sort }], ["meta", {}]] });
|
|
30
|
+
let next = await this.adminizer.modelHandler.model.get(this.model)["_count"]({
|
|
31
|
+
where: { parent: null, group: group },
|
|
32
|
+
limit: limit,
|
|
33
|
+
skip: skip === 0 ? limit : skip + limit,
|
|
34
|
+
sort: sort,
|
|
35
|
+
});
|
|
36
|
+
for (let elem of data) {
|
|
37
|
+
elem.variants = await populateVariants(this.adminizer, elem.variants, this.model);
|
|
38
|
+
}
|
|
39
|
+
return {
|
|
40
|
+
data: data,
|
|
41
|
+
next: !!next,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
async searchAll(s, group) {
|
|
45
|
+
// TODO refactor CRUD functions for DataAccessor usage
|
|
46
|
+
let data = await this.adminizer.modelHandler.model.get(this.model)["_find"]({
|
|
47
|
+
where: { filename: { contains: s }, parent: null, group: group },
|
|
48
|
+
sort: "createdAt DESC",
|
|
49
|
+
}, {
|
|
50
|
+
populate: [["variants", { sort: "createdAt DESC" }], ["meta", {}]],
|
|
51
|
+
// This limitation is made strictly, if your code solves this please make a PR
|
|
52
|
+
limit: 1000
|
|
53
|
+
});
|
|
54
|
+
for (let elem of data) {
|
|
55
|
+
elem.variants = await populateVariants(this.adminizer, elem.variants, this.model);
|
|
56
|
+
}
|
|
57
|
+
return data;
|
|
58
|
+
}
|
|
59
|
+
async setRelations(data, model, modelId, widgetName) {
|
|
60
|
+
// TODO refactor CRUD functions for DataAccessor usage
|
|
61
|
+
let modelAssociations = await this.adminizer.modelHandler.model.get(this.modelAssoc)["_find"]({
|
|
62
|
+
where: { modelId: modelId, model: model, widgetName: widgetName },
|
|
63
|
+
});
|
|
64
|
+
for (const modelAssociation of modelAssociations) {
|
|
65
|
+
// TODO refactor CRUD functions for DataAccessor usage
|
|
66
|
+
await this.adminizer.modelHandler.model.get(this.modelAssoc)["_destroy"](modelAssociation.id);
|
|
67
|
+
}
|
|
68
|
+
for (const [key, widgetItem] of data.list.entries()) {
|
|
69
|
+
// TODO refactor CRUD functions for DataAccessor usage
|
|
70
|
+
await this.adminizer.modelHandler.model.get(this.modelAssoc)["_create"]({
|
|
71
|
+
mediaManagerId: this.id,
|
|
72
|
+
model: model,
|
|
73
|
+
modelId: modelId,
|
|
74
|
+
file: widgetItem.id,
|
|
75
|
+
widgetName: widgetName,
|
|
76
|
+
sortOrder: key + 1,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
async getRelations(items) {
|
|
81
|
+
let widgetItems = [];
|
|
82
|
+
for (const item of items) {
|
|
83
|
+
// TODO refactor CRUD functions for DataAccessor usage
|
|
84
|
+
let file = (await this.adminizer.modelHandler.model.get(this.model)["_find"]({
|
|
85
|
+
where: { id: item.id }
|
|
86
|
+
}, { populate: [["variants", { sort: "createdAt DESC" }]] }))[0];
|
|
87
|
+
widgetItems.push({
|
|
88
|
+
id: file.id,
|
|
89
|
+
mimeType: file.mimeType,
|
|
90
|
+
url: file.url,
|
|
91
|
+
variants: file.variants,
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
return widgetItems;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { File, MediaFileType, MediaManagerItem, SortCriteria, UploaderFile } from "./AbstractMediaManager";
|
|
2
|
+
import sharp from "sharp";
|
|
3
|
+
import { Adminizer } from "../Adminizer";
|
|
4
|
+
export declare class ImageItem extends File<MediaManagerItem> {
|
|
5
|
+
type: MediaFileType;
|
|
6
|
+
model: string;
|
|
7
|
+
metaModel: string;
|
|
8
|
+
imageSizes: any;
|
|
9
|
+
protected readonly adminizer: Adminizer;
|
|
10
|
+
constructor(adminizer: Adminizer, urlPathPrefix: string, fileStoragePath: string);
|
|
11
|
+
getItems(limit: number, skip: number, sort: SortCriteria, group: string): Promise<{
|
|
12
|
+
data: MediaManagerItem[];
|
|
13
|
+
next: boolean;
|
|
14
|
+
}>;
|
|
15
|
+
search(s: string, group: string): Promise<MediaManagerItem[]>;
|
|
16
|
+
upload(file: UploaderFile, filename: string, origFileName: string, group: string): Promise<MediaManagerItem[]>;
|
|
17
|
+
getVariants(id: string): Promise<MediaManagerItem[]>;
|
|
18
|
+
protected createVariants(file: UploaderFile, parent: MediaManagerItem, filename: string, group: string): Promise<void>;
|
|
19
|
+
getOrigin(id: string): Promise<string>;
|
|
20
|
+
protected createMeta(id: string): Promise<void>;
|
|
21
|
+
protected addFileMeta(file: string, id: string): Promise<void>;
|
|
22
|
+
getMeta(id: string): Promise<{
|
|
23
|
+
key: string;
|
|
24
|
+
value: string;
|
|
25
|
+
}[]>;
|
|
26
|
+
setMeta(id: string, data: {
|
|
27
|
+
[p: string]: string;
|
|
28
|
+
}): Promise<void>;
|
|
29
|
+
protected resizeImage(input: string, output: string, width: number, height: number): Promise<sharp.OutputInfo>;
|
|
30
|
+
uploadVariant(parent: MediaManagerItem, file: UploaderFile, filename: string, group: string, localeId: string): Promise<MediaManagerItem>;
|
|
31
|
+
delete(id: string): Promise<void>;
|
|
32
|
+
}
|
|
33
|
+
export declare class TextItem extends ImageItem {
|
|
34
|
+
type: MediaFileType;
|
|
35
|
+
upload(file: UploaderFile, filename: string, origFileName: string, group: string): Promise<MediaManagerItem[]>;
|
|
36
|
+
getvariants(): Promise<MediaManagerItem[]>;
|
|
37
|
+
uploadVariant(parent: MediaManagerItem, file: UploaderFile, filename: string, group: string, localeId: string): Promise<MediaManagerItem>;
|
|
38
|
+
getVariants(id: string): Promise<MediaManagerItem[]>;
|
|
39
|
+
}
|
|
40
|
+
export declare class ApplicationItem extends TextItem {
|
|
41
|
+
type: MediaFileType;
|
|
42
|
+
}
|
|
43
|
+
export declare class VideoItem extends TextItem {
|
|
44
|
+
type: MediaFileType;
|
|
45
|
+
}
|