@solidstarters/solid-core 1.2.93 → 1.2.95
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/controllers/locale.controller.d.ts +41 -0
- package/dist/controllers/locale.controller.d.ts.map +1 -0
- package/dist/controllers/locale.controller.js +179 -0
- package/dist/controllers/locale.controller.js.map +1 -0
- package/dist/controllers/view-metadata.controller.d.ts +1 -0
- package/dist/controllers/view-metadata.controller.d.ts.map +1 -1
- package/dist/dtos/basic-filters.dto.d.ts +2 -0
- package/dist/dtos/basic-filters.dto.d.ts.map +1 -1
- package/dist/dtos/basic-filters.dto.js +11 -1
- package/dist/dtos/basic-filters.dto.js.map +1 -1
- package/dist/dtos/create-locale.dto.d.ts +6 -0
- package/dist/dtos/create-locale.dto.d.ts.map +1 -0
- package/dist/dtos/create-locale.dto.js +43 -0
- package/dist/dtos/create-locale.dto.js.map +1 -0
- package/dist/dtos/create-model-metadata.dto.d.ts +1 -0
- package/dist/dtos/create-model-metadata.dto.d.ts.map +1 -1
- package/dist/dtos/create-model-metadata.dto.js +7 -2
- package/dist/dtos/create-model-metadata.dto.js.map +1 -1
- package/dist/dtos/update-locale.dto.d.ts +7 -0
- package/dist/dtos/update-locale.dto.d.ts.map +1 -0
- package/dist/dtos/update-locale.dto.js +48 -0
- package/dist/dtos/update-locale.dto.js.map +1 -0
- package/dist/entities/common.entity.d.ts +3 -0
- package/dist/entities/common.entity.d.ts.map +1 -1
- package/dist/entities/common.entity.js +13 -1
- package/dist/entities/common.entity.js.map +1 -1
- package/dist/entities/locale.entity.d.ts +7 -0
- package/dist/entities/locale.entity.d.ts.map +1 -0
- package/dist/entities/locale.entity.js +43 -0
- package/dist/entities/locale.entity.js.map +1 -0
- package/dist/entities/model-metadata.entity.d.ts +1 -0
- package/dist/entities/model-metadata.entity.d.ts.map +1 -1
- package/dist/entities/model-metadata.entity.js +5 -1
- package/dist/entities/model-metadata.entity.js.map +1 -1
- package/dist/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.d.ts.map +1 -1
- package/dist/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.js.map +1 -1
- package/dist/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.d.ts.map +1 -1
- package/dist/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.js.map +1 -1
- package/dist/helpers/module-metadata-helper.service.d.ts.map +1 -1
- package/dist/helpers/module-metadata-helper.service.js.map +1 -1
- package/dist/helpers/solid-registry.d.ts +2 -0
- package/dist/helpers/solid-registry.d.ts.map +1 -1
- package/dist/helpers/solid-registry.js +5 -0
- package/dist/helpers/solid-registry.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +203 -0
- package/dist/services/crud-helper.service.d.ts +1 -1
- package/dist/services/crud-helper.service.d.ts.map +1 -1
- package/dist/services/crud-helper.service.js +17 -2
- package/dist/services/crud-helper.service.js.map +1 -1
- package/dist/services/crud.service.d.ts.map +1 -1
- package/dist/services/crud.service.js +18 -5
- package/dist/services/crud.service.js.map +1 -1
- package/dist/services/locale.service.d.ts +26 -0
- package/dist/services/locale.service.d.ts.map +1 -0
- package/dist/services/locale.service.js +64 -0
- package/dist/services/locale.service.js.map +1 -0
- package/dist/services/mediaStorageProviders/file-storage-provider.js.map +1 -1
- package/dist/services/selection-providers/locale-list-selection-provider.service.d.ts +9 -0
- package/dist/services/selection-providers/locale-list-selection-provider.service.d.ts.map +1 -0
- package/dist/services/selection-providers/locale-list-selection-provider.service.js +87 -0
- package/dist/services/selection-providers/locale-list-selection-provider.service.js.map +1 -0
- package/dist/services/view-metadata.service.d.ts +3 -0
- package/dist/services/view-metadata.service.d.ts.map +1 -1
- package/dist/services/view-metadata.service.js +73 -7
- package/dist/services/view-metadata.service.js.map +1 -1
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +8 -0
- package/dist/solid-core.module.js.map +1 -1
- package/dist/subscribers/model.subscriber.d.ts.map +1 -1
- package/dist/subscribers/model.subscriber.js +24 -0
- package/dist/subscribers/model.subscriber.js.map +1 -1
- package/dist/transformers/datetime-transformer.d.ts +4 -0
- package/dist/transformers/datetime-transformer.d.ts.map +1 -0
- package/dist/transformers/datetime-transformer.js +11 -0
- package/dist/transformers/datetime-transformer.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -1
- package/src/controllers/locale.controller.ts +94 -0
- package/src/dtos/basic-filters.dto.ts +13 -1
- package/src/dtos/create-locale.dto.ts +17 -0
- package/src/dtos/create-model-metadata.dto.ts +5 -1
- package/src/dtos/update-locale.dto.ts +23 -0
- package/src/entities/common.entity.ts +11 -1
- package/src/entities/locale.entity.ts +14 -0
- package/src/entities/model-metadata.entity.ts +3 -0
- package/src/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.ts +2 -1
- package/src/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.ts +1 -0
- package/src/helpers/module-metadata-helper.service.ts +0 -1
- package/src/helpers/solid-registry.ts +11 -2
- package/src/index.ts +6 -3
- package/src/seeders/seed-data/solid-core-metadata.json +203 -0
- package/src/services/crud-helper.service.ts +30 -12
- package/src/services/crud.service.ts +50 -34
- package/src/services/locale.service.ts +37 -0
- package/src/services/mediaStorageProviders/file-storage-provider.ts +1 -1
- package/src/services/selection-providers/locale-list-selection-provider.service.ts +58 -0
- package/src/services/view-metadata.service.ts +179 -14
- package/src/solid-core.module.ts +8 -0
- package/src/subscribers/model.subscriber.ts +24 -0
- package/src/transformers/datetime-transformer.ts +12 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@solidstarters/solid-core",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.95",
|
|
4
4
|
"description": "This module is a NestJS module containing all the required core providers required by a Solid application",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -48,6 +48,7 @@
|
|
|
48
48
|
"fast-csv": "^5.0.2",
|
|
49
49
|
"handlebars": "^4.7.8",
|
|
50
50
|
"ioredis": "^5.4.1",
|
|
51
|
+
"locale-codes": "^1.3.1",
|
|
51
52
|
"lodash": "^4.17.21",
|
|
52
53
|
"luxon": "^3.4.4",
|
|
53
54
|
"mailgen": "^2.0.28",
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { Controller, Post, Body, Param, UploadedFiles, UseInterceptors, Put, Get, Query, Delete, Patch } from '@nestjs/common';
|
|
2
|
+
import { AnyFilesInterceptor } from "@nestjs/platform-express";
|
|
3
|
+
import { ApiBearerAuth, ApiQuery, ApiTags } from '@nestjs/swagger';
|
|
4
|
+
import { SolidRequestContextDecorator } from 'src/decorators/solid-request-context.decorator';
|
|
5
|
+
import { SolidRequestContextDto } from 'src/dtos/solid-request-context.dto';
|
|
6
|
+
import { LocaleService } from 'src/services/locale.service';
|
|
7
|
+
import { CreateLocaleDto } from 'src/dtos/create-locale.dto';
|
|
8
|
+
import { UpdateLocaleDto } from 'src/dtos/update-locale.dto';
|
|
9
|
+
|
|
10
|
+
enum ShowSoftDeleted {
|
|
11
|
+
INCLUSIVE = "inclusive",
|
|
12
|
+
EXCLUSIVE = "exclusive",
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@ApiTags('Solid Core')
|
|
16
|
+
@Controller('locale')
|
|
17
|
+
export class LocaleController {
|
|
18
|
+
constructor(private readonly service: LocaleService) { }
|
|
19
|
+
|
|
20
|
+
@ApiBearerAuth("jwt")
|
|
21
|
+
@Post()
|
|
22
|
+
@UseInterceptors(AnyFilesInterceptor())
|
|
23
|
+
create(@Body() createDto: CreateLocaleDto, @UploadedFiles() files: Array<Express.Multer.File>) {
|
|
24
|
+
return this.service.create(createDto, files);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
@ApiBearerAuth("jwt")
|
|
28
|
+
@Post('/bulk')
|
|
29
|
+
@UseInterceptors(AnyFilesInterceptor())
|
|
30
|
+
insertMany(@Body() createDtos: CreateLocaleDto[], @UploadedFiles() filesArray: Express.Multer.File[][] = []) {
|
|
31
|
+
return this.service.insertMany(createDtos, filesArray);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
@ApiBearerAuth("jwt")
|
|
36
|
+
@Put(':id')
|
|
37
|
+
@UseInterceptors(AnyFilesInterceptor())
|
|
38
|
+
update(@Param('id') id: number, @Body() updateDto: UpdateLocaleDto, @UploadedFiles() files: Array<Express.Multer.File>) {
|
|
39
|
+
return this.service.update(id, updateDto, files);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
@ApiBearerAuth("jwt")
|
|
43
|
+
@Patch(':id')
|
|
44
|
+
@UseInterceptors(AnyFilesInterceptor())
|
|
45
|
+
partialUpdate(@Param('id') id: number, @Body() updateDto: UpdateLocaleDto, @UploadedFiles() files: Array<Express.Multer.File>) {
|
|
46
|
+
return this.service.update(id, updateDto, files, true);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
@ApiBearerAuth("jwt")
|
|
50
|
+
@Post('/bulk-recover')
|
|
51
|
+
async recoverMany(@Body() ids: number[]) {
|
|
52
|
+
return this.service.recoverMany(ids);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
@ApiBearerAuth("jwt")
|
|
56
|
+
@Get('/recover/:id')
|
|
57
|
+
async recover(@Param('id') id: number) {
|
|
58
|
+
return this.service.recover(id);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
@ApiBearerAuth("jwt")
|
|
62
|
+
@ApiQuery({ name: 'showSoftDeleted', required: false, enum: ShowSoftDeleted })
|
|
63
|
+
@ApiQuery({ name: 'limit', required: false, type: Number })
|
|
64
|
+
@ApiQuery({ name: 'offset', required: false, type: Number })
|
|
65
|
+
@ApiQuery({ name: 'fields', required: false, type: Array })
|
|
66
|
+
@ApiQuery({ name: 'sort', required: false, type: Array })
|
|
67
|
+
@ApiQuery({ name: 'groupBy', required: false, type: Array })
|
|
68
|
+
@ApiQuery({ name: 'populate', required: false, type: Array })
|
|
69
|
+
@ApiQuery({ name: 'populateMedia', required: false, type: Array })
|
|
70
|
+
@ApiQuery({ name: 'filters', required: false, type: Array })
|
|
71
|
+
@Get()
|
|
72
|
+
async findMany(@Query() query: any) {
|
|
73
|
+
return this.service.find(query);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
@ApiBearerAuth("jwt")
|
|
77
|
+
@Get(':id')
|
|
78
|
+
async findOne(@Param('id') id: string, @Query() query: any) {
|
|
79
|
+
return this.service.findOne(+id, query);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
@ApiBearerAuth("jwt")
|
|
83
|
+
@Delete('/bulk')
|
|
84
|
+
async deleteMany(@Body() ids: number[]) {
|
|
85
|
+
return this.service.deleteMany(ids);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
@ApiBearerAuth("jwt")
|
|
89
|
+
@Delete(':id')
|
|
90
|
+
async delete(@Param('id') id: number) {
|
|
91
|
+
return this.service.delete(id);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { ApiProperty } from "@nestjs/swagger";
|
|
3
3
|
import { IsEnum, IsOptional } from "class-validator";
|
|
4
4
|
import { PaginationQueryDto } from "./pagination-query.dto";
|
|
5
|
+
import { Timestamp } from "typeorm";
|
|
5
6
|
|
|
6
7
|
export enum SoftDeleteFilter {
|
|
7
8
|
INCLUSIVE = "inclusive",
|
|
@@ -32,7 +33,6 @@ export class BasicFilterDto extends PaginationQueryDto {
|
|
|
32
33
|
@ApiProperty({ description: "populateMedia" })
|
|
33
34
|
readonly populateMedia?: string[];
|
|
34
35
|
|
|
35
|
-
|
|
36
36
|
// @IsOptional()
|
|
37
37
|
// @ApiProperty({ description: "filters" })
|
|
38
38
|
// readonly filters: any[];
|
|
@@ -52,4 +52,16 @@ export class BasicFilterDto extends PaginationQueryDto {
|
|
|
52
52
|
@IsOptional()
|
|
53
53
|
@ApiProperty({ description: "groupFilter" })
|
|
54
54
|
groupFilter?: BasicFilterDto
|
|
55
|
+
|
|
56
|
+
@IsOptional()
|
|
57
|
+
@ApiProperty({ description: "locale" })
|
|
58
|
+
readonly locale?: string;
|
|
59
|
+
|
|
60
|
+
@IsOptional()
|
|
61
|
+
@ApiProperty({ description: "status publish draft" })
|
|
62
|
+
readonly status?: string;
|
|
63
|
+
|
|
64
|
+
// @IsOptional()
|
|
65
|
+
// @ApiProperty({ description: "default locale id" })
|
|
66
|
+
// readonly defaultEntityLocaleId?: number;
|
|
55
67
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { IsString, IsBoolean, IsOptional, IsNotEmpty } from 'class-validator';
|
|
2
|
+
import { ApiProperty } from '@nestjs/swagger';
|
|
3
|
+
|
|
4
|
+
export class CreateLocaleDto {
|
|
5
|
+
@IsNotEmpty()
|
|
6
|
+
@IsString()
|
|
7
|
+
@ApiProperty()
|
|
8
|
+
locale: string;
|
|
9
|
+
@IsNotEmpty()
|
|
10
|
+
@IsString()
|
|
11
|
+
@ApiProperty()
|
|
12
|
+
displayName: string;
|
|
13
|
+
@IsNotEmpty()
|
|
14
|
+
@IsBoolean()
|
|
15
|
+
@ApiProperty()
|
|
16
|
+
isDefault: boolean = true;
|
|
17
|
+
}
|
|
@@ -63,10 +63,14 @@ export class CreateModelMetadataDto {
|
|
|
63
63
|
@IsBoolean()
|
|
64
64
|
readonly enableAuditTracking: boolean
|
|
65
65
|
|
|
66
|
-
@ApiProperty({ description: "
|
|
66
|
+
@ApiProperty({ description: "Internationalisation" })
|
|
67
67
|
@IsBoolean()
|
|
68
68
|
readonly internationalisation: boolean
|
|
69
69
|
|
|
70
|
+
@ApiProperty({ description: "Draft publish workflow" })
|
|
71
|
+
@IsBoolean()
|
|
72
|
+
readonly draftPublishWorkflow: boolean
|
|
73
|
+
|
|
70
74
|
@ApiProperty({ description: "Related module id" })
|
|
71
75
|
@IsInt()
|
|
72
76
|
@IsOptional()
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { IsString, IsBoolean, IsOptional, IsInt, IsNotEmpty } from 'class-validator';
|
|
2
|
+
import { ApiProperty } from '@nestjs/swagger';
|
|
3
|
+
|
|
4
|
+
export class UpdateLocaleDto {
|
|
5
|
+
@IsOptional()
|
|
6
|
+
@IsInt()
|
|
7
|
+
id: number;
|
|
8
|
+
@IsNotEmpty()
|
|
9
|
+
@IsOptional()
|
|
10
|
+
@IsString()
|
|
11
|
+
@ApiProperty()
|
|
12
|
+
locale: string;
|
|
13
|
+
@IsNotEmpty()
|
|
14
|
+
@IsOptional()
|
|
15
|
+
@IsString()
|
|
16
|
+
@ApiProperty()
|
|
17
|
+
displayName: string;
|
|
18
|
+
@IsNotEmpty()
|
|
19
|
+
@IsOptional()
|
|
20
|
+
@IsBoolean()
|
|
21
|
+
@ApiProperty()
|
|
22
|
+
isDefault: boolean;
|
|
23
|
+
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn } from "typeorm"
|
|
1
|
+
import { PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Index, ManyToOne, JoinColumn } from "typeorm"
|
|
2
|
+
import { Locale } from "./locale.entity";
|
|
2
3
|
|
|
3
4
|
export abstract class CommonEntity {
|
|
4
5
|
@PrimaryGeneratedColumn({ type: 'integer' })
|
|
@@ -15,4 +16,13 @@ export abstract class CommonEntity {
|
|
|
15
16
|
|
|
16
17
|
@Column({ name: "deletedTracker", default: "not-deleted" })
|
|
17
18
|
deletedTracker: string;
|
|
19
|
+
|
|
20
|
+
@Column({ type: "timestamp", name: 'published_at', default: null ,nullable: true})
|
|
21
|
+
publishedAt: Date;
|
|
22
|
+
|
|
23
|
+
@Column({ type: "varchar", name: 'locale_name', default: null })
|
|
24
|
+
localeName: string;
|
|
25
|
+
|
|
26
|
+
@Column({ type: "int", name: 'default_entity_locale_id', default: null })
|
|
27
|
+
defaultEntityLocaleId: number;
|
|
18
28
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { CommonEntity } from 'src/entities/common.entity'
|
|
2
|
+
import { Entity, Column, Index, ManyToOne } from 'typeorm';
|
|
3
|
+
|
|
4
|
+
@Entity("ss_locale")
|
|
5
|
+
export class Locale extends CommonEntity {
|
|
6
|
+
@Index({ unique: true })
|
|
7
|
+
@Column({ type: "varchar" })
|
|
8
|
+
locale: string;
|
|
9
|
+
@Column({ type: "varchar" })
|
|
10
|
+
displayName: string;
|
|
11
|
+
@Index()
|
|
12
|
+
@Column({ type: "boolean", default: true })
|
|
13
|
+
isDefault: boolean = true;
|
|
14
|
+
}
|
|
@@ -39,6 +39,9 @@ export class ModelMetadata extends CommonEntity {
|
|
|
39
39
|
@Column({ name: "internationalisation", default: false })
|
|
40
40
|
internationalisation: boolean;
|
|
41
41
|
|
|
42
|
+
@Column({ name: "draftPublishWorkflow", default: false })
|
|
43
|
+
draftPublishWorkflow: boolean;
|
|
44
|
+
|
|
42
45
|
@OneToMany(() => FieldMetadata, (field) => field.model)
|
|
43
46
|
fields: FieldMetadata[];
|
|
44
47
|
|
|
@@ -190,10 +190,11 @@ export class ManyToManyRelationFieldCrudManager implements FieldCrudManager {
|
|
|
190
190
|
return this.options.required;
|
|
191
191
|
}
|
|
192
192
|
|
|
193
|
+
// TODO: We have moved this to SolidRegistry service, refactor to use that service.
|
|
193
194
|
// Returns the entity target class from the entity name
|
|
194
195
|
private getEntityTarget(entityName: string): any { //TODO Can be refactored to use this function from crud helper service
|
|
195
196
|
const entityMetadatas = this.options.entityManager.connection.entityMetadatas;
|
|
196
197
|
const entityMetadata = entityMetadatas.find(em => em.name === entityName);
|
|
197
198
|
return entityMetadata.target;
|
|
198
199
|
}
|
|
199
|
-
}
|
|
200
|
+
}
|
|
@@ -195,6 +195,7 @@ export class OneToManyRelationFieldCrudManager implements FieldCrudManager {
|
|
|
195
195
|
return this.options.required;
|
|
196
196
|
}
|
|
197
197
|
|
|
198
|
+
// TODO: We have moved this to SolidRegistry service, refactor to use that service.
|
|
198
199
|
// Returns the entity target class from the entity name
|
|
199
200
|
private getEntityTarget(entityName: string): any { //TODO Can be refactored to use this function from crud helper service
|
|
200
201
|
const entityMetadatas = this.options.entityManager.connection.entityMetadatas;
|
|
@@ -2,6 +2,7 @@ import { Injectable } from '@nestjs/common';
|
|
|
2
2
|
import { InstanceWrapper } from '@nestjs/core/injector/instance-wrapper';
|
|
3
3
|
import { ISelectionProvider, ISelectionProviderContext } from "../interfaces";
|
|
4
4
|
import { SecurityRule } from 'src/entities/security-rule.entity';
|
|
5
|
+
import { EntityManager } from 'typeorm';
|
|
5
6
|
|
|
6
7
|
type ControllerMetadata = {
|
|
7
8
|
name: string;
|
|
@@ -41,7 +42,7 @@ export class SolidRegistry {
|
|
|
41
42
|
private computedFieldProviders: Set<InstanceWrapper> = new Set();
|
|
42
43
|
private solidDatabaseModules: Set<InstanceWrapper> = new Set();
|
|
43
44
|
private controllers: Set<ControllerMetadata> = new Set();
|
|
44
|
-
private modules
|
|
45
|
+
private modules: Set<InstanceWrapper> = new Set();
|
|
45
46
|
private securityRules: SecurityRule[] = [];
|
|
46
47
|
|
|
47
48
|
registerController(name: string, methodNames: string[]): void {
|
|
@@ -116,7 +117,7 @@ export class SolidRegistry {
|
|
|
116
117
|
this.securityRules = securityRules;
|
|
117
118
|
}
|
|
118
119
|
|
|
119
|
-
getSecurityRules(modelSingularName:string, roleNames: string[] = []): SecurityRule[] {
|
|
120
|
+
getSecurityRules(modelSingularName: string, roleNames: string[] = []): SecurityRule[] {
|
|
120
121
|
// If no role is provided, return all security rules for the model
|
|
121
122
|
if (roleNames.length === 0) {
|
|
122
123
|
return this.securityRules.filter((rule) => rule.modelMetadata.singularName === modelSingularName);
|
|
@@ -126,4 +127,12 @@ export class SolidRegistry {
|
|
|
126
127
|
return rule.modelMetadata.singularName === modelSingularName && roleNames.includes(rule.role.name);
|
|
127
128
|
});
|
|
128
129
|
}
|
|
130
|
+
|
|
131
|
+
// Returns the entity target class from the entity name
|
|
132
|
+
getEntityTarget(entityManager: EntityManager, entityName: string): any { //TODO Can be refactored to use this function from crud helper service
|
|
133
|
+
const entityMetadatas = entityManager.connection.entityMetadatas;
|
|
134
|
+
const entityMetadata = entityMetadatas.find(em => em.name === entityName);
|
|
135
|
+
return entityMetadata.target;
|
|
136
|
+
}
|
|
137
|
+
|
|
129
138
|
}
|
package/src/index.ts
CHANGED
|
@@ -45,6 +45,7 @@ export * from './dtos/create-user.dto'
|
|
|
45
45
|
export * from './dtos/create-view-metadata.dto'
|
|
46
46
|
export * from './dtos/create-chatter-message.dto'
|
|
47
47
|
export * from './dtos/create-chatter-message-details.dto'
|
|
48
|
+
export * from './dtos/create-locale.dto'
|
|
48
49
|
export * from './dtos/fetch-roles.dto'
|
|
49
50
|
export * from './dtos/initiate-forgot-password.dto'
|
|
50
51
|
export * from './dtos/mutate-role-permissions.dto'
|
|
@@ -84,7 +85,7 @@ export * from './dtos/create-security-rule.dto'
|
|
|
84
85
|
export * from './dtos/update-security-rule.dto'
|
|
85
86
|
export * from './dtos/update-chatter-message.dto'
|
|
86
87
|
export * from './dtos/update-chatter-message-details.dto'
|
|
87
|
-
|
|
88
|
+
export * from './dtos/update-locale.dto'
|
|
88
89
|
export * from './entities/action-metadata.entity'
|
|
89
90
|
export * from './entities/common.entity'
|
|
90
91
|
export * from './entities/email-attachment.entity'
|
|
@@ -115,7 +116,7 @@ export * from './entities/export-template.entity'
|
|
|
115
116
|
export * from './entities/export-transaction.entity'
|
|
116
117
|
export * from './entities/import-transaction.entity'
|
|
117
118
|
export * from './entities/import-transaction-error-log.entity'
|
|
118
|
-
|
|
119
|
+
export * from './entities/locale.entity'
|
|
119
120
|
export * from './enums/auth-type.enum'
|
|
120
121
|
|
|
121
122
|
export * from './filters/http-exception.filter'
|
|
@@ -232,6 +233,7 @@ export * from './services/security-rule.service'
|
|
|
232
233
|
export * from './services/request-context.service'
|
|
233
234
|
export * from './services/chatter-message.service'
|
|
234
235
|
export * from './services/chatter-message-details.service'
|
|
236
|
+
export * from './services/locale.service'
|
|
235
237
|
// Repositories
|
|
236
238
|
export * from './repository/solid-base.repository'
|
|
237
239
|
export * from './repository/security-rule.repository'
|
|
@@ -256,4 +258,5 @@ export * from './constants'
|
|
|
256
258
|
export * from './interfaces'
|
|
257
259
|
export * from './solid-core.module'
|
|
258
260
|
|
|
259
|
-
|
|
261
|
+
export * from './winston.logger'
|
|
262
|
+
export * from './transformers/datetime-transformer'
|
|
@@ -263,6 +263,20 @@
|
|
|
263
263
|
"columnName": "internationalisation",
|
|
264
264
|
"isSystem": true
|
|
265
265
|
},
|
|
266
|
+
{
|
|
267
|
+
"name": "draftPublishWorkflow",
|
|
268
|
+
"displayName": "Draft Publish Workflow",
|
|
269
|
+
"type": "boolean",
|
|
270
|
+
"ormType": "boolean",
|
|
271
|
+
"defaultValue": "false",
|
|
272
|
+
"required": false,
|
|
273
|
+
"unique": false,
|
|
274
|
+
"index": false,
|
|
275
|
+
"private": false,
|
|
276
|
+
"encrypt": false,
|
|
277
|
+
"columnName": "draftPublishWorkflow",
|
|
278
|
+
"isSystem": true
|
|
279
|
+
},
|
|
266
280
|
{
|
|
267
281
|
"name": "module",
|
|
268
282
|
"displayName": "Module",
|
|
@@ -3785,6 +3799,58 @@
|
|
|
3785
3799
|
"isSystem": true
|
|
3786
3800
|
}
|
|
3787
3801
|
]
|
|
3802
|
+
},
|
|
3803
|
+
{
|
|
3804
|
+
"singularName": "locale",
|
|
3805
|
+
"pluralName": "locales",
|
|
3806
|
+
"displayName": "locale",
|
|
3807
|
+
"description": "This is used to maintain model locales",
|
|
3808
|
+
"dataSource": "default",
|
|
3809
|
+
"dataSourceType": "postgres",
|
|
3810
|
+
"tableName": "ss_locale",
|
|
3811
|
+
"fields": [
|
|
3812
|
+
{
|
|
3813
|
+
"name": "locale",
|
|
3814
|
+
"displayName": "Locale",
|
|
3815
|
+
"type": "selectionDynamic",
|
|
3816
|
+
"ormType": "varchar",
|
|
3817
|
+
"length": 256,
|
|
3818
|
+
"required": true,
|
|
3819
|
+
"index": true,
|
|
3820
|
+
"isSystem": true,
|
|
3821
|
+
"selectionValueType": "string",
|
|
3822
|
+
"selectionDynamicProvider": "LocaleListSelectionProvider",
|
|
3823
|
+
"selectionDynamicProviderCtxt": "{}",
|
|
3824
|
+
"isUserKey": true
|
|
3825
|
+
},
|
|
3826
|
+
{
|
|
3827
|
+
"name": "displayName",
|
|
3828
|
+
"displayName": "Display Name",
|
|
3829
|
+
"type": "shortText",
|
|
3830
|
+
"ormType": "varchar",
|
|
3831
|
+
"length": 512,
|
|
3832
|
+
"required": true,
|
|
3833
|
+
"unique": true,
|
|
3834
|
+
"index": true,
|
|
3835
|
+
"private": false,
|
|
3836
|
+
"encrypt": false,
|
|
3837
|
+
"isSystem": true,
|
|
3838
|
+
"isUserKey": false
|
|
3839
|
+
},
|
|
3840
|
+
{
|
|
3841
|
+
"name": "isDefault",
|
|
3842
|
+
"displayName": "Is Default",
|
|
3843
|
+
"type": "boolean",
|
|
3844
|
+
"ormType": "boolean",
|
|
3845
|
+
"defaultValue": "false",
|
|
3846
|
+
"required": true,
|
|
3847
|
+
"unique": false,
|
|
3848
|
+
"index": true,
|
|
3849
|
+
"private": false,
|
|
3850
|
+
"encrypt": false,
|
|
3851
|
+
"isSystem": true
|
|
3852
|
+
}
|
|
3853
|
+
]
|
|
3788
3854
|
}
|
|
3789
3855
|
]
|
|
3790
3856
|
},
|
|
@@ -3968,6 +4034,19 @@
|
|
|
3968
4034
|
"moduleUserKey": "solid-core",
|
|
3969
4035
|
"modelUserKey": "chatterMessageDetails"
|
|
3970
4036
|
},
|
|
4037
|
+
{
|
|
4038
|
+
"displayName": "locale list action",
|
|
4039
|
+
"name": "locale-list-action",
|
|
4040
|
+
"type": "solid",
|
|
4041
|
+
"domain": "",
|
|
4042
|
+
"context": "",
|
|
4043
|
+
"customComponent": "",
|
|
4044
|
+
"customIsModal": false,
|
|
4045
|
+
"serverEndpoint": "",
|
|
4046
|
+
"viewUserKey": "locale-list-view",
|
|
4047
|
+
"moduleUserKey": "solid-core",
|
|
4048
|
+
"modelUserKey": "locale"
|
|
4049
|
+
},
|
|
3971
4050
|
{
|
|
3972
4051
|
"displayName": "User list action",
|
|
3973
4052
|
"name": "user-list-action",
|
|
@@ -4136,6 +4215,19 @@
|
|
|
4136
4215
|
"viewUserKey": "importTransaction-list-view",
|
|
4137
4216
|
"moduleUserKey": "solid-core",
|
|
4138
4217
|
"modelUserKey": "importTransaction"
|
|
4218
|
+
},
|
|
4219
|
+
{
|
|
4220
|
+
"displayName": "locale List View",
|
|
4221
|
+
"name": "locale-list-view",
|
|
4222
|
+
"type": "solid",
|
|
4223
|
+
"domain": "",
|
|
4224
|
+
"context": "",
|
|
4225
|
+
"customComponent": "/admin/address-master/locale/all",
|
|
4226
|
+
"customIsModal": true,
|
|
4227
|
+
"serverEndpoint": "",
|
|
4228
|
+
"viewUserKey": "locale-list-view",
|
|
4229
|
+
"moduleUserKey": "solid-core",
|
|
4230
|
+
"modelUserKey": "locale"
|
|
4139
4231
|
}
|
|
4140
4232
|
],
|
|
4141
4233
|
"menus": [
|
|
@@ -4378,6 +4470,14 @@
|
|
|
4378
4470
|
"actionUserKey": "importTransaction-list-view",
|
|
4379
4471
|
"moduleUserKey": "solid-core",
|
|
4380
4472
|
"parentMenuItemUserKey": ""
|
|
4473
|
+
},
|
|
4474
|
+
{
|
|
4475
|
+
"displayName": "Locale",
|
|
4476
|
+
"name": "locale",
|
|
4477
|
+
"sequenceNumber": 10,
|
|
4478
|
+
"actionUserKey": "locale-list-action",
|
|
4479
|
+
"moduleUserKey": "solid-core",
|
|
4480
|
+
"parentMenuItemUserKey": "other-menu-item"
|
|
4381
4481
|
}
|
|
4382
4482
|
],
|
|
4383
4483
|
"views": [
|
|
@@ -5772,6 +5872,109 @@
|
|
|
5772
5872
|
]
|
|
5773
5873
|
}
|
|
5774
5874
|
},
|
|
5875
|
+
{
|
|
5876
|
+
"name": "locale-list-view",
|
|
5877
|
+
"displayName": "Locale Model",
|
|
5878
|
+
"type": "list",
|
|
5879
|
+
"context": "{}",
|
|
5880
|
+
"moduleUserKey": "solid-core",
|
|
5881
|
+
"modelUserKey": "locale",
|
|
5882
|
+
"layout": {
|
|
5883
|
+
"type": "list",
|
|
5884
|
+
"attrs": {
|
|
5885
|
+
"pagination": true,
|
|
5886
|
+
"pageSizeOptions": [
|
|
5887
|
+
10,
|
|
5888
|
+
25,
|
|
5889
|
+
50
|
|
5890
|
+
],
|
|
5891
|
+
"enableGlobalSearch": true,
|
|
5892
|
+
"create": true,
|
|
5893
|
+
"edit": true,
|
|
5894
|
+
"delete": true
|
|
5895
|
+
},
|
|
5896
|
+
"children": [
|
|
5897
|
+
{
|
|
5898
|
+
"type": "field",
|
|
5899
|
+
"attrs": {
|
|
5900
|
+
"name": "locale",
|
|
5901
|
+
"isSearchable": true
|
|
5902
|
+
}
|
|
5903
|
+
},
|
|
5904
|
+
{
|
|
5905
|
+
"type": "field",
|
|
5906
|
+
"attrs": {
|
|
5907
|
+
"name": "displayName",
|
|
5908
|
+
"isSearchable": true
|
|
5909
|
+
}
|
|
5910
|
+
},
|
|
5911
|
+
{
|
|
5912
|
+
"type": "field",
|
|
5913
|
+
"attrs": {
|
|
5914
|
+
"name": "isDefault",
|
|
5915
|
+
"isSearchable": false
|
|
5916
|
+
}
|
|
5917
|
+
}
|
|
5918
|
+
]
|
|
5919
|
+
}
|
|
5920
|
+
},
|
|
5921
|
+
{
|
|
5922
|
+
"name": "locale-form-view",
|
|
5923
|
+
"displayName": "locale Model",
|
|
5924
|
+
"type": "form",
|
|
5925
|
+
"context": "{}",
|
|
5926
|
+
"moduleUserKey": "solid-core",
|
|
5927
|
+
"modelUserKey": "locale",
|
|
5928
|
+
"layout": {
|
|
5929
|
+
"type": "form",
|
|
5930
|
+
"attrs": {
|
|
5931
|
+
"name": "form-1",
|
|
5932
|
+
"label": "locale model",
|
|
5933
|
+
"className": "grid"
|
|
5934
|
+
},
|
|
5935
|
+
"children": [
|
|
5936
|
+
{
|
|
5937
|
+
"type": "sheet",
|
|
5938
|
+
"attrs": {
|
|
5939
|
+
"name": "sheet-1"
|
|
5940
|
+
},
|
|
5941
|
+
"children": [
|
|
5942
|
+
{
|
|
5943
|
+
"type": "group",
|
|
5944
|
+
"attrs": {
|
|
5945
|
+
"name": "group-1",
|
|
5946
|
+
"label": "",
|
|
5947
|
+
"className": "col-6"
|
|
5948
|
+
},
|
|
5949
|
+
"children": [
|
|
5950
|
+
{
|
|
5951
|
+
"type": "field",
|
|
5952
|
+
"attrs": {
|
|
5953
|
+
"name": "locale",
|
|
5954
|
+
"isSearchable": true
|
|
5955
|
+
}
|
|
5956
|
+
},
|
|
5957
|
+
{
|
|
5958
|
+
"type": "field",
|
|
5959
|
+
"attrs": {
|
|
5960
|
+
"name": "displayName",
|
|
5961
|
+
"isSearchable": true
|
|
5962
|
+
}
|
|
5963
|
+
},
|
|
5964
|
+
{
|
|
5965
|
+
"type": "field",
|
|
5966
|
+
"attrs": {
|
|
5967
|
+
"name": "isDefault",
|
|
5968
|
+
"isSearchable": true
|
|
5969
|
+
}
|
|
5970
|
+
}
|
|
5971
|
+
]
|
|
5972
|
+
}
|
|
5973
|
+
]
|
|
5974
|
+
}
|
|
5975
|
+
]
|
|
5976
|
+
}
|
|
5977
|
+
},
|
|
5775
5978
|
{
|
|
5776
5979
|
"name": "viewMetadata-list-view",
|
|
5777
5980
|
"displayName": "View Metadata list view",
|