@hedhog/admin 0.48.9 → 0.48.11
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/admin.module.d.ts.map +1 -1
- package/dist/admin.module.js +3 -1
- package/dist/admin.module.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/menu/menu.controller.d.ts +3 -3
- package/dist/menu/menu.service.d.ts +3 -3
- package/dist/setting/dto/create.dto.d.ts +9 -0
- package/dist/setting/dto/create.dto.d.ts.map +1 -0
- package/dist/setting/dto/create.dto.js +40 -0
- package/dist/setting/dto/create.dto.js.map +1 -0
- package/dist/setting/dto/delete.dto.d.ts +4 -0
- package/dist/setting/dto/delete.dto.d.ts.map +1 -0
- package/dist/setting/dto/delete.dto.js +23 -0
- package/dist/setting/dto/delete.dto.js.map +1 -0
- package/dist/setting/dto/setting-user.dto.d.ts +4 -0
- package/dist/setting/dto/setting-user.dto.d.ts.map +1 -0
- package/dist/setting/dto/setting-user.dto.js +21 -0
- package/dist/setting/dto/setting-user.dto.js.map +1 -0
- package/dist/setting/dto/setting.dto.d.ts +9 -0
- package/dist/setting/dto/setting.dto.d.ts.map +1 -0
- package/dist/setting/dto/setting.dto.js +34 -0
- package/dist/setting/dto/setting.dto.js.map +1 -0
- package/dist/setting/dto/update.dto.d.ts +6 -0
- package/dist/setting/dto/update.dto.d.ts.map +1 -0
- package/dist/setting/dto/update.dto.js +9 -0
- package/dist/setting/dto/update.dto.js.map +1 -0
- package/dist/setting/setting.controller.d.ts +102 -0
- package/dist/setting/setting.controller.d.ts.map +1 -0
- package/dist/setting/setting.controller.js +160 -0
- package/dist/setting/setting.controller.js.map +1 -0
- package/dist/setting/setting.module.d.ts +3 -0
- package/dist/setting/setting.module.d.ts.map +1 -0
- package/dist/setting/setting.module.js +24 -0
- package/dist/setting/setting.module.js.map +1 -0
- package/dist/setting/setting.service.d.ts +103 -0
- package/dist/setting/setting.service.d.ts.map +1 -0
- package/dist/setting/setting.service.js +333 -0
- package/dist/setting/setting.service.js.map +1 -0
- package/hedhog.yaml +244 -0
- package/package.json +2 -1
- package/src/admin.module.ts +3 -1
- package/src/index.ts +2 -0
- package/src/setting/dto/create.dto.ts +21 -0
- package/src/setting/dto/delete.dto.ts +8 -0
- package/src/setting/dto/setting-user.dto.ts +6 -0
- package/src/setting/dto/setting.dto.ts +17 -0
- package/src/setting/dto/update.dto.ts +4 -0
- package/src/setting/setting.controller.ts +105 -0
- package/src/setting/setting.module.ts +11 -0
- package/src/setting/setting.service.ts +400 -0
package/hedhog.yaml
CHANGED
@@ -343,7 +343,101 @@ data:
|
|
343
343
|
role:
|
344
344
|
- where:
|
345
345
|
slug: admin
|
346
|
+
setting_group:
|
347
|
+
- slug: general
|
348
|
+
icon: settings
|
349
|
+
name:
|
350
|
+
en: General
|
351
|
+
pt: Geral
|
352
|
+
description:
|
353
|
+
en: General settings and configurations.
|
354
|
+
pt: Configurações e definições gerais.
|
355
|
+
relations:
|
356
|
+
setting:
|
357
|
+
- slug: url
|
358
|
+
type: string
|
359
|
+
name:
|
360
|
+
en: Base URL
|
361
|
+
pt: URL Base
|
362
|
+
description:
|
363
|
+
en: The base URL of the system
|
364
|
+
pt: A URL base do sistema
|
365
|
+
value: http://localhost:3200
|
366
|
+
user_override: false
|
367
|
+
- slug: localization
|
368
|
+
icon: world
|
369
|
+
name:
|
370
|
+
en: Localization
|
371
|
+
pt: Localização
|
372
|
+
description:
|
373
|
+
en: Configure the localization setting.
|
374
|
+
pt: Configurar as definições de localização.
|
375
|
+
relations:
|
376
|
+
setting:
|
377
|
+
- slug: language
|
378
|
+
type: string
|
379
|
+
name:
|
380
|
+
en: Default Language
|
381
|
+
pt: Idioma Padrão
|
382
|
+
description:
|
383
|
+
en: The system default language, each user can have their own preferred language
|
384
|
+
pt:
|
385
|
+
O idioma padrão do sistema, cada usuário pode ter o seu próprio idioma
|
386
|
+
preferido
|
387
|
+
value: en
|
388
|
+
user_override: true
|
389
|
+
- slug: timezone
|
390
|
+
type: string
|
391
|
+
name:
|
392
|
+
en: Timezone
|
393
|
+
pt: Fuso Horário
|
394
|
+
description:
|
395
|
+
en: The timezone to use
|
396
|
+
pt: O fuso horário a utilizar
|
397
|
+
value: UTC
|
398
|
+
user_override: true
|
346
399
|
menu:
|
400
|
+
- url: /management/setting
|
401
|
+
icon: settings
|
402
|
+
name:
|
403
|
+
en: Setting
|
404
|
+
pt: Configurações
|
405
|
+
slug: /management/setting
|
406
|
+
- menu_id:
|
407
|
+
where:
|
408
|
+
slug: /management
|
409
|
+
slug: /settings
|
410
|
+
icon: settings
|
411
|
+
name:
|
412
|
+
en: Settings
|
413
|
+
pt: Configurações
|
414
|
+
- menu_id:
|
415
|
+
where:
|
416
|
+
slug: /settings
|
417
|
+
name:
|
418
|
+
en: Setting Group
|
419
|
+
pt: Grupo de Configuração
|
420
|
+
icon: settings
|
421
|
+
url: /settings/setting-group
|
422
|
+
slug: /settings/setting-group
|
423
|
+
- menu_id:
|
424
|
+
where:
|
425
|
+
slug: /settings
|
426
|
+
name:
|
427
|
+
en: Setting User
|
428
|
+
pt: Configuração de Usuário
|
429
|
+
icon: user-cog
|
430
|
+
url: /settings/setting-user
|
431
|
+
slug: /settings/setting-user
|
432
|
+
- menu_id:
|
433
|
+
where:
|
434
|
+
slug: /settings
|
435
|
+
name:
|
436
|
+
en: Locale
|
437
|
+
pt: Locale
|
438
|
+
icon: world
|
439
|
+
url: /settings/locale
|
440
|
+
slug: /settings/locale
|
347
441
|
- url: /
|
348
442
|
icon: dashboard
|
349
443
|
name:
|
@@ -454,6 +548,48 @@ data:
|
|
454
548
|
- where:
|
455
549
|
slug: admin
|
456
550
|
screen:
|
551
|
+
- slug: /management/setting
|
552
|
+
icon: settings
|
553
|
+
name:
|
554
|
+
en: Setting
|
555
|
+
pt: Configurações
|
556
|
+
description:
|
557
|
+
en: Manage system setting and configurations.
|
558
|
+
pt: Gerenciar configurações e definições do sistema.
|
559
|
+
relations:
|
560
|
+
route:
|
561
|
+
- where:
|
562
|
+
url:
|
563
|
+
like: /setting%
|
564
|
+
- name:
|
565
|
+
en: Setting Group
|
566
|
+
pt: Grupo de Configuração
|
567
|
+
slug: /settings/setting-group
|
568
|
+
description:
|
569
|
+
en: Screen to manage a group of settings
|
570
|
+
pt: Tela para gerenciar grupo de configurações
|
571
|
+
icon: settings
|
572
|
+
- name:
|
573
|
+
en: Setting User
|
574
|
+
pt: Configuração de Usuário
|
575
|
+
slug: /settings/setting-user
|
576
|
+
description:
|
577
|
+
en: Screen to manage user settings
|
578
|
+
pt: Tela para gerenciar configurações de usuário
|
579
|
+
icon: user-cog
|
580
|
+
- name:
|
581
|
+
en: Locale
|
582
|
+
pt: Locale
|
583
|
+
slug: /settings/locale
|
584
|
+
description:
|
585
|
+
en: Screen to manage locale
|
586
|
+
pt: Tela para gerenciar localização/tradução
|
587
|
+
icon: world
|
588
|
+
relations:
|
589
|
+
route:
|
590
|
+
- where:
|
591
|
+
url:
|
592
|
+
like: /locale%
|
457
593
|
- slug: /management/user
|
458
594
|
icon: user
|
459
595
|
name:
|
@@ -673,6 +809,114 @@ data:
|
|
673
809
|
name: pt
|
674
810
|
value: Português
|
675
811
|
tables:
|
812
|
+
setting_group:
|
813
|
+
columns:
|
814
|
+
- type: pk
|
815
|
+
- name: icon
|
816
|
+
length: 31
|
817
|
+
- type: slug
|
818
|
+
- type: created_at
|
819
|
+
- type: updated_at
|
820
|
+
ifNotExists: true
|
821
|
+
setting_group_locale:
|
822
|
+
columns:
|
823
|
+
- name: locale_id
|
824
|
+
type: fk
|
825
|
+
isPrimary: true
|
826
|
+
references:
|
827
|
+
table: locale
|
828
|
+
column: id
|
829
|
+
onDelete: CASCADE
|
830
|
+
- name: group_id
|
831
|
+
type: fk
|
832
|
+
isPrimary: true
|
833
|
+
references:
|
834
|
+
table: setting_group
|
835
|
+
column: id
|
836
|
+
onDelete: CASCADE
|
837
|
+
- name: name
|
838
|
+
length: 63
|
839
|
+
- name: description
|
840
|
+
length: 255
|
841
|
+
isNullable: true
|
842
|
+
- type: created_at
|
843
|
+
- type: updated_at
|
844
|
+
ifNotExists: true
|
845
|
+
setting:
|
846
|
+
columns:
|
847
|
+
- type: pk
|
848
|
+
- name: group_id
|
849
|
+
type: fk
|
850
|
+
references:
|
851
|
+
table: setting_group
|
852
|
+
column: id
|
853
|
+
onDelete: CASCADE
|
854
|
+
- type: slug
|
855
|
+
- name: type
|
856
|
+
type: enum
|
857
|
+
enum:
|
858
|
+
- string
|
859
|
+
- array
|
860
|
+
- number
|
861
|
+
- boolean
|
862
|
+
- json
|
863
|
+
default: string
|
864
|
+
- name: value
|
865
|
+
length: 1023
|
866
|
+
isNullable: true
|
867
|
+
- name: user_override
|
868
|
+
type: boolean
|
869
|
+
default: false
|
870
|
+
- type: created_at
|
871
|
+
- type: updated_at
|
872
|
+
ifNotExists: true
|
873
|
+
setting_locale:
|
874
|
+
columns:
|
875
|
+
- name: locale_id
|
876
|
+
type: fk
|
877
|
+
isPrimary: true
|
878
|
+
references:
|
879
|
+
table: locale
|
880
|
+
column: id
|
881
|
+
onDelete: CASCADE
|
882
|
+
- name: setting_id
|
883
|
+
type: fk
|
884
|
+
isPrimary: true
|
885
|
+
references:
|
886
|
+
table: setting
|
887
|
+
column: id
|
888
|
+
onDelete: CASCADE
|
889
|
+
- name: description
|
890
|
+
length: 255
|
891
|
+
isNullable: true
|
892
|
+
- name: name
|
893
|
+
length: 63
|
894
|
+
isNullable: true
|
895
|
+
- type: created_at
|
896
|
+
- type: updated_at
|
897
|
+
ifNotExists: true
|
898
|
+
setting_user:
|
899
|
+
columns:
|
900
|
+
- name: user_id
|
901
|
+
type: fk
|
902
|
+
isPrimary: true
|
903
|
+
references:
|
904
|
+
table: user
|
905
|
+
column: id
|
906
|
+
onDelete: CASCADE
|
907
|
+
- name: setting_id
|
908
|
+
type: fk
|
909
|
+
isPrimary: true
|
910
|
+
references:
|
911
|
+
table: setting
|
912
|
+
column: id
|
913
|
+
onDelete: CASCADE
|
914
|
+
- name: value
|
915
|
+
length: 1023
|
916
|
+
isNullable: true
|
917
|
+
- type: created_at
|
918
|
+
- type: updated_at
|
919
|
+
ifNotExists: true
|
676
920
|
translation_namespace:
|
677
921
|
columns:
|
678
922
|
- type: pk
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@hedhog/admin",
|
3
|
-
"version": "0.48.
|
3
|
+
"version": "0.48.11",
|
4
4
|
"private": false,
|
5
5
|
"main": "dist/index.js",
|
6
6
|
"scripts": {
|
@@ -38,6 +38,7 @@
|
|
38
38
|
},
|
39
39
|
"peerDependencies": {
|
40
40
|
"@hedhog/locale": "latest",
|
41
|
+
"@hedhog/mail": "latest",
|
41
42
|
"@hedhog/pagination": "latest",
|
42
43
|
"@hedhog/prisma": "latest",
|
43
44
|
"@hedhog/utils": "latest",
|
package/src/admin.module.ts
CHANGED
@@ -5,12 +5,13 @@ import { PrismaModule } from '@hedhog/prisma';
|
|
5
5
|
import { forwardRef, Module } from '@nestjs/common';
|
6
6
|
import { ConfigModule } from '@nestjs/config';
|
7
7
|
import { AuthModule } from './auth/auth.module';
|
8
|
-
import { DashboardModule } from './dashboard/dashboard.module';
|
9
8
|
import { CoreModule } from './core/core.module';
|
9
|
+
import { DashboardModule } from './dashboard/dashboard.module';
|
10
10
|
import { MenuModule } from './menu/menu.module';
|
11
11
|
import { RoleModule } from './role/role.module';
|
12
12
|
import { RouteModule } from './route/route.module';
|
13
13
|
import { ScreenModule } from './screen/screen.module';
|
14
|
+
import { SettingModule } from './setting/setting.module';
|
14
15
|
import { UserModule } from './user/user.module';
|
15
16
|
|
16
17
|
@Module({
|
@@ -28,6 +29,7 @@ import { UserModule } from './user/user.module';
|
|
28
29
|
forwardRef(() => LocaleModule),
|
29
30
|
forwardRef(() => UserModule),
|
30
31
|
forwardRef(() => CoreModule),
|
32
|
+
forwardRef(() => SettingModule),
|
31
33
|
],
|
32
34
|
exports: [
|
33
35
|
UserModule,
|
package/src/index.ts
CHANGED
@@ -0,0 +1,21 @@
|
|
1
|
+
import { IsString, IsInt, Length, IsBoolean } from 'class-validator';
|
2
|
+
import { WithLocaleDTO } from '@hedhog/locale';
|
3
|
+
|
4
|
+
export class CreateDTO extends WithLocaleDTO {
|
5
|
+
@IsString()
|
6
|
+
@Length(0, 255)
|
7
|
+
slug: string;
|
8
|
+
|
9
|
+
@IsString()
|
10
|
+
type: string;
|
11
|
+
|
12
|
+
@IsString()
|
13
|
+
@Length(0, 1023)
|
14
|
+
value: string;
|
15
|
+
|
16
|
+
@IsBoolean()
|
17
|
+
user_override: boolean;
|
18
|
+
|
19
|
+
@IsInt()
|
20
|
+
group_id: number;
|
21
|
+
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import { Type } from 'class-transformer';
|
2
|
+
import { IsArray, IsString, ValidateNested } from 'class-validator';
|
3
|
+
|
4
|
+
class Setting {
|
5
|
+
@IsString()
|
6
|
+
slug: string;
|
7
|
+
|
8
|
+
@IsString()
|
9
|
+
value: string;
|
10
|
+
}
|
11
|
+
|
12
|
+
export class SettingDTO {
|
13
|
+
@IsArray()
|
14
|
+
@ValidateNested({ each: true })
|
15
|
+
@Type(() => Setting)
|
16
|
+
setting: Setting[];
|
17
|
+
}
|
@@ -0,0 +1,105 @@
|
|
1
|
+
import { Public, Role, User } from '@hedhog/core';
|
2
|
+
import { Locale } from '@hedhog/locale';
|
3
|
+
import { Pagination } from '@hedhog/pagination';
|
4
|
+
import {
|
5
|
+
Body,
|
6
|
+
Controller,
|
7
|
+
Delete,
|
8
|
+
forwardRef,
|
9
|
+
Get,
|
10
|
+
Inject,
|
11
|
+
Param,
|
12
|
+
ParseIntPipe,
|
13
|
+
Patch,
|
14
|
+
Post,
|
15
|
+
Put,
|
16
|
+
} from '@nestjs/common';
|
17
|
+
import { CreateDTO } from './dto/create.dto';
|
18
|
+
import { DeleteDTO } from './dto/delete.dto';
|
19
|
+
import { SettingUserDTO } from './dto/setting-user.dto';
|
20
|
+
import { SettingDTO } from './dto/setting.dto';
|
21
|
+
import { UpdateDTO } from './dto/update.dto';
|
22
|
+
import { SettingService } from './setting.service';
|
23
|
+
|
24
|
+
@Role()
|
25
|
+
@Controller('setting')
|
26
|
+
export class SettingsController {
|
27
|
+
constructor(
|
28
|
+
@Inject(forwardRef(() => SettingService))
|
29
|
+
private readonly settingService: SettingService,
|
30
|
+
) {}
|
31
|
+
|
32
|
+
@Get('group/:slug')
|
33
|
+
async getSettingFromGroup(
|
34
|
+
@Pagination() paginationParams,
|
35
|
+
@Locale() locale,
|
36
|
+
@Param('slug') slug: string,
|
37
|
+
) {
|
38
|
+
return this.settingService.getSettingFromGroup(
|
39
|
+
locale,
|
40
|
+
paginationParams,
|
41
|
+
slug,
|
42
|
+
);
|
43
|
+
}
|
44
|
+
|
45
|
+
@Public()
|
46
|
+
@Get('group')
|
47
|
+
async listSettingGroups(@Pagination() paginationParams, @Locale() locale) {
|
48
|
+
return this.settingService.listSettingGroups(locale, paginationParams);
|
49
|
+
}
|
50
|
+
|
51
|
+
@Get('/user')
|
52
|
+
async getUserSettings(@User() { id }) {
|
53
|
+
return this.settingService.getUserSettings(id);
|
54
|
+
}
|
55
|
+
|
56
|
+
@Get()
|
57
|
+
async listSettings(@Pagination() paginationParams, @Locale() locale) {
|
58
|
+
return this.settingService.listSettings(locale, paginationParams);
|
59
|
+
}
|
60
|
+
|
61
|
+
@Get(':settingId')
|
62
|
+
async get(@Param('settingId', ParseIntPipe) settingId: number) {
|
63
|
+
return this.settingService.get(settingId);
|
64
|
+
}
|
65
|
+
|
66
|
+
@Post()
|
67
|
+
async create(@Body() data: CreateDTO) {
|
68
|
+
return this.settingService.create(data);
|
69
|
+
}
|
70
|
+
|
71
|
+
@Put('user/:slug')
|
72
|
+
async updateUserFromSlug(
|
73
|
+
@Param('slug') slug: string,
|
74
|
+
@Body() { value }: SettingUserDTO,
|
75
|
+
@User() { id },
|
76
|
+
) {
|
77
|
+
return this.settingService.setSettingUserValue(id, slug, value);
|
78
|
+
}
|
79
|
+
|
80
|
+
@Put(':slug')
|
81
|
+
async updateFromSlug(@Param('slug') slug: string, @Body() data: UpdateDTO) {
|
82
|
+
return this.settingService.updateFromSlug(slug, data);
|
83
|
+
}
|
84
|
+
|
85
|
+
@Put()
|
86
|
+
async setManySettings(@Body() data: SettingDTO) {
|
87
|
+
return this.settingService.setManySettings(data);
|
88
|
+
}
|
89
|
+
|
90
|
+
@Patch(':settingId')
|
91
|
+
async update(
|
92
|
+
@Param('settingId', ParseIntPipe) settingId: number,
|
93
|
+
@Body() data: UpdateDTO,
|
94
|
+
) {
|
95
|
+
return this.settingService.update({
|
96
|
+
id: settingId,
|
97
|
+
data,
|
98
|
+
});
|
99
|
+
}
|
100
|
+
|
101
|
+
@Delete()
|
102
|
+
async delete(@Body() data: DeleteDTO) {
|
103
|
+
return this.settingService.delete(data);
|
104
|
+
}
|
105
|
+
}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import { Module } from '@nestjs/common';
|
2
|
+
import { SettingsController } from './setting.controller';
|
3
|
+
import { SettingService } from './setting.service';
|
4
|
+
|
5
|
+
@Module({
|
6
|
+
imports: [],
|
7
|
+
controllers: [SettingsController],
|
8
|
+
providers: [SettingService],
|
9
|
+
exports: [SettingService],
|
10
|
+
})
|
11
|
+
export class SettingModule {}
|