@solidstarters/solid-core 1.2.93 → 1.2.96

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.
Files changed (164) hide show
  1. package/dist/controllers/action-metadata.controller.d.ts +3 -1
  2. package/dist/controllers/action-metadata.controller.d.ts.map +1 -1
  3. package/dist/controllers/chatter-message-details.controller.d.ts +3 -1
  4. package/dist/controllers/chatter-message-details.controller.d.ts.map +1 -1
  5. package/dist/controllers/chatter-message.controller.d.ts +3 -1
  6. package/dist/controllers/chatter-message.controller.d.ts.map +1 -1
  7. package/dist/controllers/email-template.controller.d.ts +3 -1
  8. package/dist/controllers/email-template.controller.d.ts.map +1 -1
  9. package/dist/controllers/export-template.controller.d.ts +3 -1
  10. package/dist/controllers/export-template.controller.d.ts.map +1 -1
  11. package/dist/controllers/export-transaction.controller.d.ts +3 -1
  12. package/dist/controllers/export-transaction.controller.d.ts.map +1 -1
  13. package/dist/controllers/import-transaction-error-log.controller.d.ts +3 -1
  14. package/dist/controllers/import-transaction-error-log.controller.d.ts.map +1 -1
  15. package/dist/controllers/import-transaction.controller.d.ts +3 -1
  16. package/dist/controllers/import-transaction.controller.d.ts.map +1 -1
  17. package/dist/controllers/list-of-values.controller.d.ts +3 -1
  18. package/dist/controllers/list-of-values.controller.d.ts.map +1 -1
  19. package/dist/controllers/locale.controller.d.ts +43 -0
  20. package/dist/controllers/locale.controller.d.ts.map +1 -0
  21. package/dist/controllers/locale.controller.js +179 -0
  22. package/dist/controllers/locale.controller.js.map +1 -0
  23. package/dist/controllers/media.controller.d.ts +3 -1
  24. package/dist/controllers/media.controller.d.ts.map +1 -1
  25. package/dist/controllers/menu-item-metadata.controller.d.ts +3 -1
  26. package/dist/controllers/menu-item-metadata.controller.d.ts.map +1 -1
  27. package/dist/controllers/mq-message-queue.controller.d.ts +3 -1
  28. package/dist/controllers/mq-message-queue.controller.d.ts.map +1 -1
  29. package/dist/controllers/mq-message.controller.d.ts +3 -1
  30. package/dist/controllers/mq-message.controller.d.ts.map +1 -1
  31. package/dist/controllers/permission-metadata.controller.d.ts +3 -1
  32. package/dist/controllers/permission-metadata.controller.d.ts.map +1 -1
  33. package/dist/controllers/role-metadata.controller.d.ts +3 -1
  34. package/dist/controllers/role-metadata.controller.d.ts.map +1 -1
  35. package/dist/controllers/saved-filters.controller.d.ts +3 -1
  36. package/dist/controllers/saved-filters.controller.d.ts.map +1 -1
  37. package/dist/controllers/security-rule.controller.d.ts +3 -1
  38. package/dist/controllers/security-rule.controller.d.ts.map +1 -1
  39. package/dist/controllers/setting.controller.d.ts +3 -1
  40. package/dist/controllers/setting.controller.d.ts.map +1 -1
  41. package/dist/controllers/sms-template.controller.d.ts +3 -1
  42. package/dist/controllers/sms-template.controller.d.ts.map +1 -1
  43. package/dist/controllers/user-view-metadata.controller.d.ts +3 -1
  44. package/dist/controllers/user-view-metadata.controller.d.ts.map +1 -1
  45. package/dist/controllers/user.controller.d.ts +3 -1
  46. package/dist/controllers/user.controller.d.ts.map +1 -1
  47. package/dist/controllers/view-metadata.controller.d.ts +4 -1
  48. package/dist/controllers/view-metadata.controller.d.ts.map +1 -1
  49. package/dist/dtos/basic-filters.dto.d.ts +2 -0
  50. package/dist/dtos/basic-filters.dto.d.ts.map +1 -1
  51. package/dist/dtos/basic-filters.dto.js +11 -1
  52. package/dist/dtos/basic-filters.dto.js.map +1 -1
  53. package/dist/dtos/create-locale.dto.d.ts +6 -0
  54. package/dist/dtos/create-locale.dto.d.ts.map +1 -0
  55. package/dist/dtos/create-locale.dto.js +43 -0
  56. package/dist/dtos/create-locale.dto.js.map +1 -0
  57. package/dist/dtos/create-model-metadata.dto.d.ts +1 -0
  58. package/dist/dtos/create-model-metadata.dto.d.ts.map +1 -1
  59. package/dist/dtos/create-model-metadata.dto.js +7 -2
  60. package/dist/dtos/create-model-metadata.dto.js.map +1 -1
  61. package/dist/dtos/create-saved-filters.dto.d.ts +1 -1
  62. package/dist/dtos/create-saved-filters.dto.d.ts.map +1 -1
  63. package/dist/dtos/create-saved-filters.dto.js +3 -3
  64. package/dist/dtos/create-saved-filters.dto.js.map +1 -1
  65. package/dist/dtos/update-locale.dto.d.ts +7 -0
  66. package/dist/dtos/update-locale.dto.d.ts.map +1 -0
  67. package/dist/dtos/update-locale.dto.js +48 -0
  68. package/dist/dtos/update-locale.dto.js.map +1 -0
  69. package/dist/dtos/update-saved-filters.dto.d.ts +1 -1
  70. package/dist/dtos/update-saved-filters.dto.d.ts.map +1 -1
  71. package/dist/dtos/update-saved-filters.dto.js +3 -3
  72. package/dist/dtos/update-saved-filters.dto.js.map +1 -1
  73. package/dist/entities/common.entity.d.ts +3 -0
  74. package/dist/entities/common.entity.d.ts.map +1 -1
  75. package/dist/entities/common.entity.js +13 -1
  76. package/dist/entities/common.entity.js.map +1 -1
  77. package/dist/entities/locale.entity.d.ts +7 -0
  78. package/dist/entities/locale.entity.d.ts.map +1 -0
  79. package/dist/entities/locale.entity.js +43 -0
  80. package/dist/entities/locale.entity.js.map +1 -0
  81. package/dist/entities/model-metadata.entity.d.ts +1 -0
  82. package/dist/entities/model-metadata.entity.d.ts.map +1 -1
  83. package/dist/entities/model-metadata.entity.js +5 -1
  84. package/dist/entities/model-metadata.entity.js.map +1 -1
  85. package/dist/entities/saved-filters.entity.d.ts +1 -1
  86. package/dist/entities/saved-filters.entity.d.ts.map +1 -1
  87. package/dist/entities/saved-filters.entity.js +2 -2
  88. package/dist/entities/saved-filters.entity.js.map +1 -1
  89. package/dist/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.d.ts.map +1 -1
  90. package/dist/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.js.map +1 -1
  91. package/dist/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.d.ts.map +1 -1
  92. package/dist/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.js.map +1 -1
  93. package/dist/helpers/module-metadata-helper.service.d.ts.map +1 -1
  94. package/dist/helpers/module-metadata-helper.service.js.map +1 -1
  95. package/dist/helpers/solid-registry.d.ts +2 -0
  96. package/dist/helpers/solid-registry.d.ts.map +1 -1
  97. package/dist/helpers/solid-registry.js +5 -0
  98. package/dist/helpers/solid-registry.js.map +1 -1
  99. package/dist/index.d.ts +5 -0
  100. package/dist/index.d.ts.map +1 -1
  101. package/dist/index.js +5 -0
  102. package/dist/index.js.map +1 -1
  103. package/dist/seeders/seed-data/solid-core-metadata.json +204 -8
  104. package/dist/services/crud-helper.service.d.ts +2 -1
  105. package/dist/services/crud-helper.service.d.ts.map +1 -1
  106. package/dist/services/crud-helper.service.js +35 -2
  107. package/dist/services/crud-helper.service.js.map +1 -1
  108. package/dist/services/crud.service.d.ts +3 -1
  109. package/dist/services/crud.service.d.ts.map +1 -1
  110. package/dist/services/crud.service.js +22 -4
  111. package/dist/services/crud.service.js.map +1 -1
  112. package/dist/services/locale.service.d.ts +26 -0
  113. package/dist/services/locale.service.d.ts.map +1 -0
  114. package/dist/services/locale.service.js +64 -0
  115. package/dist/services/locale.service.js.map +1 -0
  116. package/dist/services/media.service.d.ts +3 -1
  117. package/dist/services/media.service.d.ts.map +1 -1
  118. package/dist/services/mediaStorageProviders/file-storage-provider.js.map +1 -1
  119. package/dist/services/selection-providers/locale-list-selection-provider.service.d.ts +9 -0
  120. package/dist/services/selection-providers/locale-list-selection-provider.service.d.ts.map +1 -0
  121. package/dist/services/selection-providers/locale-list-selection-provider.service.js +87 -0
  122. package/dist/services/selection-providers/locale-list-selection-provider.service.js.map +1 -0
  123. package/dist/services/view-metadata.service.d.ts +3 -0
  124. package/dist/services/view-metadata.service.d.ts.map +1 -1
  125. package/dist/services/view-metadata.service.js +73 -7
  126. package/dist/services/view-metadata.service.js.map +1 -1
  127. package/dist/solid-core.module.d.ts.map +1 -1
  128. package/dist/solid-core.module.js +8 -0
  129. package/dist/solid-core.module.js.map +1 -1
  130. package/dist/subscribers/model.subscriber.d.ts.map +1 -1
  131. package/dist/subscribers/model.subscriber.js +24 -0
  132. package/dist/subscribers/model.subscriber.js.map +1 -1
  133. package/dist/transformers/datetime-transformer.d.ts +4 -0
  134. package/dist/transformers/datetime-transformer.d.ts.map +1 -0
  135. package/dist/transformers/datetime-transformer.js +11 -0
  136. package/dist/transformers/datetime-transformer.js.map +1 -0
  137. package/dist/tsconfig.tsbuildinfo +1 -1
  138. package/package.json +2 -1
  139. package/src/controllers/locale.controller.ts +94 -0
  140. package/src/dtos/basic-filters.dto.ts +13 -1
  141. package/src/dtos/create-locale.dto.ts +17 -0
  142. package/src/dtos/create-model-metadata.dto.ts +5 -1
  143. package/src/dtos/create-saved-filters.dto.ts +3 -3
  144. package/src/dtos/update-locale.dto.ts +23 -0
  145. package/src/dtos/update-saved-filters.dto.ts +3 -3
  146. package/src/entities/common.entity.ts +11 -1
  147. package/src/entities/locale.entity.ts +14 -0
  148. package/src/entities/model-metadata.entity.ts +3 -0
  149. package/src/entities/saved-filters.entity.ts +1 -1
  150. package/src/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.ts +2 -1
  151. package/src/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.ts +1 -0
  152. package/src/helpers/module-metadata-helper.service.ts +0 -1
  153. package/src/helpers/solid-registry.ts +11 -2
  154. package/src/index.ts +6 -3
  155. package/src/seeders/seed-data/solid-core-metadata.json +204 -8
  156. package/src/services/crud-helper.service.ts +57 -14
  157. package/src/services/crud.service.ts +56 -33
  158. package/src/services/locale.service.ts +37 -0
  159. package/src/services/mediaStorageProviders/file-storage-provider.ts +1 -1
  160. package/src/services/selection-providers/locale-list-selection-provider.service.ts +58 -0
  161. package/src/services/view-metadata.service.ts +179 -14
  162. package/src/solid-core.module.ts +8 -0
  163. package/src/subscribers/model.subscriber.ts +24 -0
  164. 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.93",
3
+ "version": "1.2.96",
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: "Enable Soft Delete" })
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()
@@ -1,12 +1,12 @@
1
1
  import { ApiProperty } from '@nestjs/swagger';
2
2
  import { IsString } from 'class-validator';
3
- import { IsOptional, IsNotEmpty, IsBoolean, IsInt } from 'class-validator';
3
+ import { IsOptional, IsNotEmpty, IsBoolean, IsInt, IsJSON } from 'class-validator';
4
4
 
5
5
  export class CreateSavedFiltersDto {
6
6
  @IsOptional()
7
- @IsString()
7
+ @IsJSON()
8
8
  @ApiProperty()
9
- filterQueryJson: string;
9
+ filterQueryJson: any;
10
10
  @IsNotEmpty()
11
11
  @IsString()
12
12
  @ApiProperty()
@@ -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,4 @@
1
- import { IsInt,IsOptional, IsString, IsNotEmpty, IsBoolean } from 'class-validator';
1
+ import { IsInt,IsOptional, IsString, IsNotEmpty, IsBoolean, IsJSON } from 'class-validator';
2
2
  import { ApiProperty } from '@nestjs/swagger';
3
3
 
4
4
  export class UpdateSavedFiltersDto {
@@ -6,9 +6,9 @@ export class UpdateSavedFiltersDto {
6
6
  @IsInt()
7
7
  id: number;
8
8
  @IsOptional()
9
- @IsString()
9
+ @IsJSON()
10
10
  @ApiProperty()
11
- filterQueryJson: string;
11
+ filterQueryJson: any;
12
12
  @IsNotEmpty()
13
13
  @IsOptional()
14
14
  @IsString()
@@ -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
 
@@ -7,7 +7,7 @@ import { ViewMetadata } from 'src/entities/view-metadata.entity'
7
7
  @Entity("ss_saved_fitlers")
8
8
  export class SavedFilters extends CommonEntity {
9
9
  @Column({ type: "text", nullable: true })
10
- filterQueryJson: string;
10
+ filterQueryJson: any;
11
11
  @Column({ type: "varchar" })
12
12
  name: string;
13
13
  @Column({ type: "boolean", nullable: true, default: false })
@@ -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;
@@ -35,5 +35,4 @@ export class ModuleMetadataHelperService {
35
35
  }
36
36
  return filePath;
37
37
  }
38
-
39
38
  }
@@ -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 : Set<InstanceWrapper> = new Set();
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
- export * from './winston.logger'
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",
@@ -2522,7 +2536,7 @@
2522
2536
  {
2523
2537
  "name": "filterQueryJson",
2524
2538
  "displayName": "Filter Query Json",
2525
- "type": "longText",
2539
+ "type": "json",
2526
2540
  "ormType": "text",
2527
2541
  "required": false,
2528
2542
  "unique": false,
@@ -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": [
@@ -4786,13 +4886,6 @@
4786
4886
  "name": "view",
4787
4887
  "isSearchable": true
4788
4888
  }
4789
- },
4790
- {
4791
- "type": "field",
4792
- "attrs": {
4793
- "name": "filterQueryJson",
4794
- "isSearchable": true
4795
- }
4796
4889
  }
4797
4890
  ]
4798
4891
  }
@@ -5772,6 +5865,109 @@
5772
5865
  ]
5773
5866
  }
5774
5867
  },
5868
+ {
5869
+ "name": "locale-list-view",
5870
+ "displayName": "Locale Model",
5871
+ "type": "list",
5872
+ "context": "{}",
5873
+ "moduleUserKey": "solid-core",
5874
+ "modelUserKey": "locale",
5875
+ "layout": {
5876
+ "type": "list",
5877
+ "attrs": {
5878
+ "pagination": true,
5879
+ "pageSizeOptions": [
5880
+ 10,
5881
+ 25,
5882
+ 50
5883
+ ],
5884
+ "enableGlobalSearch": true,
5885
+ "create": true,
5886
+ "edit": true,
5887
+ "delete": true
5888
+ },
5889
+ "children": [
5890
+ {
5891
+ "type": "field",
5892
+ "attrs": {
5893
+ "name": "locale",
5894
+ "isSearchable": true
5895
+ }
5896
+ },
5897
+ {
5898
+ "type": "field",
5899
+ "attrs": {
5900
+ "name": "displayName",
5901
+ "isSearchable": true
5902
+ }
5903
+ },
5904
+ {
5905
+ "type": "field",
5906
+ "attrs": {
5907
+ "name": "isDefault",
5908
+ "isSearchable": false
5909
+ }
5910
+ }
5911
+ ]
5912
+ }
5913
+ },
5914
+ {
5915
+ "name": "locale-form-view",
5916
+ "displayName": "locale Model",
5917
+ "type": "form",
5918
+ "context": "{}",
5919
+ "moduleUserKey": "solid-core",
5920
+ "modelUserKey": "locale",
5921
+ "layout": {
5922
+ "type": "form",
5923
+ "attrs": {
5924
+ "name": "form-1",
5925
+ "label": "locale model",
5926
+ "className": "grid"
5927
+ },
5928
+ "children": [
5929
+ {
5930
+ "type": "sheet",
5931
+ "attrs": {
5932
+ "name": "sheet-1"
5933
+ },
5934
+ "children": [
5935
+ {
5936
+ "type": "group",
5937
+ "attrs": {
5938
+ "name": "group-1",
5939
+ "label": "",
5940
+ "className": "col-6"
5941
+ },
5942
+ "children": [
5943
+ {
5944
+ "type": "field",
5945
+ "attrs": {
5946
+ "name": "locale",
5947
+ "isSearchable": true
5948
+ }
5949
+ },
5950
+ {
5951
+ "type": "field",
5952
+ "attrs": {
5953
+ "name": "displayName",
5954
+ "isSearchable": true
5955
+ }
5956
+ },
5957
+ {
5958
+ "type": "field",
5959
+ "attrs": {
5960
+ "name": "isDefault",
5961
+ "isSearchable": true
5962
+ }
5963
+ }
5964
+ ]
5965
+ }
5966
+ ]
5967
+ }
5968
+ ]
5969
+ }
5970
+ },
5775
5971
  {
5776
5972
  "name": "viewMetadata-list-view",
5777
5973
  "displayName": "View Metadata list view",