From d36dd47ba1c3c13a430ae90d76f81434b20aab12 Mon Sep 17 00:00:00 2001 From: Sebastian Stehle Date: Tue, 25 Oct 2022 16:45:23 +0200 Subject: [PATCH] Help (#931) * Fix timeouts. * Correctly save the Validate flag of workflows. * New bulk endpoint. * Update packages. * Fix tests * Fix SDK version. * Add some docs. * Improve help screens and history. --- backend/i18n/source/backend_en.json | 15 ++- .../Apps/AppHistoryEventsCreator.cs | 74 +++++++---- .../Teams/TeamHistoryEventsCreator.cs | 11 +- backend/src/Squidex.Shared/Texts.it.resx | 25 +++- backend/src/Squidex.Shared/Texts.nl.resx | 25 +++- backend/src/Squidex.Shared/Texts.resx | 25 +++- backend/src/Squidex.Shared/Texts.zh.resx | 25 +++- frontend/src/app/app.module.ts | 2 +- .../src/app/features/administration/module.ts | 53 +++++--- .../event-consumers-page.component.html | 12 +- .../pages/restore/restore-page.component.html | 116 ++++++++++-------- .../pages/users/users-page.component.html | 10 +- frontend/src/app/features/schemas/module.ts | 9 +- .../pages/schema/schema-page.component.html | 4 + frontend/src/app/features/settings/module.ts | 62 ++++++++++ .../asset-scripts-page.component.html | 4 + .../pages/more/more-page.component.html | 20 ++- .../pages/plans/plans-page.component.html | 6 +- .../settings/settings-page.component.html | 16 ++- .../templates/templates-page.component.html | 10 +- .../workflows/workflows-page.component.html | 4 + frontend/src/app/features/teams/module.ts | 25 +++- .../teams/pages/more/more-page.component.html | 18 ++- .../pages/plans/plans-page.component.html | 7 +- .../assets/asset-history.component.scss | 14 ++- .../history/history-list.component.scss | 12 +- .../components/history/history.component.ts | 5 +- .../pages/internal/apps-menu.component.html | 4 +- frontend/src/app/theme/_common.scss | 4 + 29 files changed, 473 insertions(+), 144 deletions(-) diff --git a/backend/i18n/source/backend_en.json b/backend/i18n/source/backend_en.json index 74d071178..3f302b4dd 100644 --- a/backend/i18n/source/backend_en.json +++ b/backend/i18n/source/backend_en.json @@ -217,6 +217,7 @@ "history.apps.clientUpdated": "updated client {[Id]}", "history.apps.contributoreAssigned": "assigned {user:[Contributor]} as {[Role]}", "history.apps.contributoreRemoved": "removed {user:[Contributor]} from app", + "history.apps.created": "created the app.", "history.apps.imageRemoved": "removed app image", "history.apps.imageUploaded": "uploaded a new app image", "history.apps.languagedAdded": "added language {[Language]}", @@ -231,6 +232,9 @@ "history.apps.settingsUpdated": "updated UI settings", "history.apps.transfered": "updated app to client", "history.apps.updated": "updated general settings", + "history.apps.workflowAdded": "added workflow {[Name]}.", + "history.apps.workflowDeleted": "deleted a workflow.", + "history.apps.workflowUpdated": "updated a workflow.", "history.assets.replaced": "replaced asset.", "history.assets.updated": "updated asset.", "history.assets.uploaded": "uploaded asset.", @@ -256,11 +260,12 @@ "history.schemas.unpublished": "unpublished schema {[Name]}.", "history.schemas.updated": "updated schema {[Name]}.", "history.statusChanged": "changed status of {[Schema]} content to {[Status]}.", - "history.teams.contributoreAssigned": "assigned {user:[Contributor]} as {[Role]}", - "history.teams.contributoreRemoved": "removed {user:[Contributor]} from team", - "history.teams.planChanged": "changed plan to {[Plan]}", - "history.teams.planReset": "resetted plan", - "history.teams.updated": "updated general settings", + "history.teams.contributoreAssigned": "assigned {user:[Contributor]} as {[Role]}.", + "history.teams.contributoreRemoved": "removed {user:[Contributor]} from team.", + "history.teams.created": "has created team {[Name]}.", + "history.teams.planChanged": "changed plan to {[Plan]}.", + "history.teams.planReset": "resetted plan.", + "history.teams.updated": "updated general settings and renamed name to {[Name]}.", "login.githubPrivateEmail": "Your email address is set to private in Github. Please set it to public to use Github login.", "rules.ruleAlreadyRunning": "Another rule is already running.", "schemas.dateTimeCalculatedDefaultAndDefaultError": "Calculated default value and default value cannot be used together.", diff --git a/backend/src/Squidex.Domain.Apps.Entities/Apps/AppHistoryEventsCreator.cs b/backend/src/Squidex.Domain.Apps.Entities/Apps/AppHistoryEventsCreator.cs index 8654976a4..dd931913f 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Apps/AppHistoryEventsCreator.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Apps/AppHistoryEventsCreator.cs @@ -18,11 +18,11 @@ namespace Squidex.Domain.Apps.Entities.Apps public AppHistoryEventsCreator(TypeNameRegistry typeNameRegistry) : base(typeNameRegistry) { - AddEventMessage( - "history.apps.contributoreAssigned"); + AddEventMessage( + "history.apps.created"); - AddEventMessage( - "history.apps.contributoreRemoved"); + AddEventMessage( + "history.apps.assetScriptsConfigured"); AddEventMessage( "history.apps.clientAdded"); @@ -33,11 +33,17 @@ namespace Squidex.Domain.Apps.Entities.Apps AddEventMessage( "history.apps.clientUpdated"); - AddEventMessage( - "history.apps.planChanged"); + AddEventMessage( + "history.apps.contributoreAssigned"); - AddEventMessage( - "history.apps.planReset"); + AddEventMessage( + "history.apps.contributoreRemoved"); + + AddEventMessage( + "history.apps.imageRemoved"); + + AddEventMessage( + "history.apps.imageUploaded"); AddEventMessage( "history.apps.languagedAdded"); @@ -51,8 +57,11 @@ namespace Squidex.Domain.Apps.Entities.Apps AddEventMessage( "history.apps.languagedSetToMaster"); - AddEventMessage( - "history.apps.settingsUpdated"); + AddEventMessage( + "history.apps.planChanged"); + + AddEventMessage( + "history.apps.planReset"); AddEventMessage( "history.apps.roleAdded"); @@ -63,26 +72,31 @@ namespace Squidex.Domain.Apps.Entities.Apps AddEventMessage( "history.apps.roleUpdated"); - AddEventMessage( - "history.apps.assetScriptsConfigured"); - - AddEventMessage( - "history.apps.updated"); + AddEventMessage( + "history.apps.settingsUpdated"); AddEventMessage( "history.apps.transfered"); - AddEventMessage( - "history.apps.imageUploaded"); + AddEventMessage( + "history.apps.common.updated"); - AddEventMessage( - "history.apps.imageRemoved"); + AddEventMessage( + "history.apps.workflowAdded"); + + AddEventMessage( + "history.apps.workflowDeleted"); + + AddEventMessage( + "history.apps.workflowUpdated"); } private HistoryEvent? CreateEvent(IEvent @event) { switch (@event) { + case AppCreated e: + return CreateGeneralEvent(e); case AppContributorAssigned e: return CreateContributorsEvent(e, e.ContributorId, e.Role); case AppContributorRemoved e: @@ -112,9 +126,9 @@ namespace Squidex.Domain.Apps.Entities.Apps case AppPlanReset e: return CreatePlansEvent(e); case AppSettingsUpdated e: - return CreateAssetScriptsEvent(e); + return CreateUIEvent(e); case AppAssetsScriptsConfigured e: - return CreateGeneralEvent(e); + return CreateAssetScriptsEvent(e); case AppUpdated e: return CreateGeneralEvent(e); case AppTransfered e: @@ -123,6 +137,12 @@ namespace Squidex.Domain.Apps.Entities.Apps return CreateGeneralEvent(e); case AppImageRemoved e: return CreateGeneralEvent(e); + case AppWorkflowAdded e: + return CreateWorkflowEvent(e, e.Name); + case AppWorkflowUpdated e: + return CreateWorkflowEvent(e); + case AppWorkflowDeleted e: + return CreateWorkflowEvent(e); } return null; @@ -130,7 +150,7 @@ namespace Squidex.Domain.Apps.Entities.Apps private HistoryEvent CreateGeneralEvent(IEvent e) { - return ForEvent(e, "general"); + return ForEvent(e, "settings.general"); } private HistoryEvent CreateContributorsEvent(IEvent e, string contributor, string? role = null) @@ -163,6 +183,16 @@ namespace Squidex.Domain.Apps.Entities.Apps return ForEvent(e, "settings.assetScripts"); } + private HistoryEvent CreateWorkflowEvent(IEvent e, string? name = null) + { + return ForEvent(e, "settings.workflows").Param("Name", name); + } + + private HistoryEvent CreateUIEvent(IEvent e) + { + return ForEvent(e, "settings.ui"); + } + protected override Task CreateEventCoreAsync(Envelope @event) { return Task.FromResult(CreateEvent(@event.Payload)); diff --git a/backend/src/Squidex.Domain.Apps.Entities/Teams/TeamHistoryEventsCreator.cs b/backend/src/Squidex.Domain.Apps.Entities/Teams/TeamHistoryEventsCreator.cs index 760e759e5..e5f4d06b2 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/Teams/TeamHistoryEventsCreator.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/Teams/TeamHistoryEventsCreator.cs @@ -17,6 +17,9 @@ namespace Squidex.Domain.Teams.Entities.Teams public TeamHistoryEventsCreator(TypeNameRegistry typeNameRegistry) : base(typeNameRegistry) { + AddEventMessage( + "history.teams.created"); + AddEventMessage( "history.teams.contributoreAssigned"); @@ -37,6 +40,8 @@ namespace Squidex.Domain.Teams.Entities.Teams { switch (@event) { + case TeamCreated e: + return CreateGeneralEvent(e, e.Name); case TeamContributorAssigned e: return CreateContributorsEvent(e, e.ContributorId, e.Role); case TeamContributorRemoved e: @@ -46,15 +51,15 @@ namespace Squidex.Domain.Teams.Entities.Teams case TeamPlanReset e: return CreatePlansEvent(e); case TeamUpdated e: - return CreateGeneralEvent(e); + return CreateGeneralEvent(e, e.Name); } return null; } - private HistoryEvent CreateGeneralEvent(IEvent e) + private HistoryEvent CreateGeneralEvent(IEvent e, string? name = null) { - return ForEvent(e, "settings.general"); + return ForEvent(e, "settings.general").Param("Name", name); } private HistoryEvent CreateContributorsEvent(IEvent e, string contributor, string? role = null) diff --git a/backend/src/Squidex.Shared/Texts.it.resx b/backend/src/Squidex.Shared/Texts.it.resx index 483f3acd1..61a98269c 100644 --- a/backend/src/Squidex.Shared/Texts.it.resx +++ b/backend/src/Squidex.Shared/Texts.it.resx @@ -736,6 +736,9 @@ Rimosso {user:[Contributor]} dall'app + + created the app. + removed app image @@ -778,6 +781,15 @@ updated general settings + + added workflow {[Name]}. + + + deleted a workflow. + + + updated a workflow. + ha sostituito la risorsa. @@ -854,19 +866,22 @@ ha cambiato lo stato del contenuto {[Schema]} in {[Status]}. - assigned {user:[Contributor]} as {[Role]} + assigned {user:[Contributor]} as {[Role]}. - removed {user:[Contributor]} from team + removed {user:[Contributor]} from team. + + + has created team {[Name]}. - changed plan to {[Plan]} + changed plan to {[Plan]}. - resetted plan + resetted plan. - updated general settings + updated general settings and renamed name to {[Name]}. Il tuo indirizzo email è impostato su privato in Github. Impostalo come pubblico per poter utilizzare il login Github. diff --git a/backend/src/Squidex.Shared/Texts.nl.resx b/backend/src/Squidex.Shared/Texts.nl.resx index 9db1e3e7d..0a686470c 100644 --- a/backend/src/Squidex.Shared/Texts.nl.resx +++ b/backend/src/Squidex.Shared/Texts.nl.resx @@ -736,6 +736,9 @@ heeft {user:[Contributor]} verwijderd uit app + + created the app. + removed app image @@ -778,6 +781,15 @@ updated general settings + + added workflow {[Name]}. + + + deleted a workflow. + + + updated a workflow. + item vervangen. @@ -854,19 +866,22 @@ veranderde status van {[Schema]} inhoud in {[Status]}. - assigned {user:[Contributor]} as {[Role]} + assigned {user:[Contributor]} as {[Role]}. - removed {user:[Contributor]} from team + removed {user:[Contributor]} from team. + + + has created team {[Name]}. - changed plan to {[Plan]} + changed plan to {[Plan]}. - resetted plan + resetted plan. - updated general settings + updated general settings and renamed name to {[Name]}. Jouw e-mailadres is ingesteld op privé in Github. Stel het in op openbaar om Github-login te gebruiken. diff --git a/backend/src/Squidex.Shared/Texts.resx b/backend/src/Squidex.Shared/Texts.resx index d171ce3d7..257f258ac 100644 --- a/backend/src/Squidex.Shared/Texts.resx +++ b/backend/src/Squidex.Shared/Texts.resx @@ -736,6 +736,9 @@ removed {user:[Contributor]} from app + + created the app. + removed app image @@ -778,6 +781,15 @@ updated general settings + + added workflow {[Name]}. + + + deleted a workflow. + + + updated a workflow. + replaced asset. @@ -854,19 +866,22 @@ changed status of {[Schema]} content to {[Status]}. - assigned {user:[Contributor]} as {[Role]} + assigned {user:[Contributor]} as {[Role]}. - removed {user:[Contributor]} from team + removed {user:[Contributor]} from team. + + + has created team {[Name]}. - changed plan to {[Plan]} + changed plan to {[Plan]}. - resetted plan + resetted plan. - updated general settings + updated general settings and renamed name to {[Name]}. Your email address is set to private in Github. Please set it to public to use Github login. diff --git a/backend/src/Squidex.Shared/Texts.zh.resx b/backend/src/Squidex.Shared/Texts.zh.resx index 0a17914ef..9c84b1442 100644 --- a/backend/src/Squidex.Shared/Texts.zh.resx +++ b/backend/src/Squidex.Shared/Texts.zh.resx @@ -736,6 +736,9 @@ 从应用中删除了 {user:[Contributor]} + + created the app. + removed app image @@ -778,6 +781,15 @@ updated general settings + + added workflow {[Name]}. + + + deleted a workflow. + + + updated a workflow. + 替换的资源。 @@ -854,19 +866,22 @@ 已将 {[Schema]} 内容的状态更改为 {[Status]}。 - assigned {user:[Contributor]} as {[Role]} + assigned {user:[Contributor]} as {[Role]}. - removed {user:[Contributor]} from team + removed {user:[Contributor]} from team. + + + has created team {[Name]}. - changed plan to {[Plan]} + changed plan to {[Plan]}. - resetted plan + resetted plan. - updated general settings + updated general settings and renamed name to {[Name]}. 您的邮箱在 Github 中设置为私有。请设置为公开以使用 Github 登录。 diff --git a/frontend/src/app/app.module.ts b/frontend/src/app/app.module.ts index cb12e1954..9385cf45c 100644 --- a/frontend/src/app/app.module.ts +++ b/frontend/src/app/app.module.ts @@ -121,7 +121,7 @@ export class AppModule { appRef.bootstrap(AppComponent); } catch (e) { // eslint-disable-next-line no-console - console.log('Application element not found'); + console.log('Application element not found.'); } } } diff --git a/frontend/src/app/features/administration/module.ts b/frontend/src/app/features/administration/module.ts index e6d9b2d55..7b185e889 100644 --- a/frontend/src/app/features/administration/module.ts +++ b/frontend/src/app/features/administration/module.ts @@ -7,7 +7,7 @@ import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; -import { SqxFrameworkModule, SqxSharedModule } from '@app/shared'; +import { HelpComponent, SqxFrameworkModule, SqxSharedModule } from '@app/shared'; import { AdministrationAreaComponent, EventConsumerComponent, EventConsumersPageComponent, EventConsumersService, EventConsumersState, RestorePageComponent, UserComponent, UserMustExistGuard, UserPageComponent, UsersPageComponent, UsersService, UsersState } from './declarations'; const routes: Routes = [ @@ -17,29 +17,50 @@ const routes: Routes = [ children: [ { path: '', + pathMatch: 'full', + redirectTo: 'users', + }, + { + path: 'event-consumers', + component: EventConsumersPageComponent, children: [ { - path: 'event-consumers', - component: EventConsumersPageComponent, + path: 'help', + component: HelpComponent, + data: { + helpPage: '05-integrated/admin-consumers', + }, }, + ], + }, + { + path: 'restore', + component: RestorePageComponent, + children: [ { - path: 'restore', - component: RestorePageComponent, + path: 'help', + component: HelpComponent, + data: { + helpPage: '05-integrated/admin-restore', + }, }, + ], + }, + { + path: 'users', + component: UsersPageComponent, + children: [ { - path: 'users', - component: UsersPageComponent, - children: [ - { - path: ':userId', - component: UserPageComponent, - canActivate: [UserMustExistGuard], - }, - ], + path: 'help', + component: HelpComponent, + data: { + helpPage: '05-integrated/admin-users', + }, }, { - path: '', - redirectTo: 'users', + path: ':userId', + component: UserPageComponent, + canActivate: [UserMustExistGuard], }, ], }, diff --git a/frontend/src/app/features/administration/pages/event-consumers/event-consumers-page.component.html b/frontend/src/app/features/administration/pages/event-consumers/event-consumers-page.component.html index f211f5103..0c9302479 100644 --- a/frontend/src/app/features/administration/pages/event-consumers/event-consumers-page.component.html +++ b/frontend/src/app/features/administration/pages/event-consumers/event-consumers-page.component.html @@ -1,6 +1,6 @@ - + + + +
+ +
- - + + + +
+ + + - -
\ No newline at end of file + +
+ + \ No newline at end of file diff --git a/frontend/src/app/features/administration/pages/users/users-page.component.html b/frontend/src/app/features/administration/pages/users/users-page.component.html index 2dc01a0c3..2eb83addd 100644 --- a/frontend/src/app/features/administration/pages/users/users-page.component.html +++ b/frontend/src/app/features/administration/pages/users/users-page.component.html @@ -55,6 +55,14 @@ + + +
+ + + +
+
- + \ No newline at end of file diff --git a/frontend/src/app/features/schemas/module.ts b/frontend/src/app/features/schemas/module.ts index a73ff8d57..82cf69bc5 100644 --- a/frontend/src/app/features/schemas/module.ts +++ b/frontend/src/app/features/schemas/module.ts @@ -7,7 +7,7 @@ import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; -import { HelpComponent, LoadSchemasGuard, SchemaMustExistGuard, SqxFrameworkModule, SqxSharedModule } from '@app/shared'; +import { HelpComponent, HistoryComponent, LoadSchemasGuard, SchemaMustExistGuard, SqxFrameworkModule, SqxSharedModule } from '@app/shared'; import { ArrayValidationComponent, AssetsUIComponent, AssetsValidationComponent, BooleanUIComponent, BooleanValidationComponent, ComponentsUIComponent, ComponentsValidationComponent, DateTimeUIComponent, DateTimeValidationComponent, FieldComponent, FieldFormCommonComponent, FieldFormComponent, FieldFormUIComponent, FieldFormValidationComponent, FieldListComponent, FieldWizardComponent, GeolocationUIComponent, GeolocationValidationComponent, JsonMoreComponent, JsonUIComponent, JsonValidationComponent, NumberUIComponent, NumberValidationComponent, ReferencesUIComponent, ReferencesValidationComponent, SchemaEditFormComponent, SchemaExportFormComponent, SchemaFieldRulesFormComponent, SchemaFieldsComponent, SchemaFormComponent, SchemaPageComponent, SchemaPreviewUrlsFormComponent, SchemaScriptNamePipe, SchemaScriptsFormComponent, SchemasPageComponent, SchemaUIFormComponent, StringUIComponent, StringValidationComponent, TagsUIComponent, TagsValidationComponent } from './declarations'; import { ComponentUIComponent } from './pages/schema/fields/types/component-ui.component'; import { ComponentValidationComponent } from './pages/schema/fields/types/component-validation.component'; @@ -30,6 +30,13 @@ const routes: Routes = [ helpPage: '05-integrated/schemas', }, }, + { + path: 'history', + component: HistoryComponent, + data: { + channel: 'schemas.{schemaId}', + }, + }, ], }, ], diff --git a/frontend/src/app/features/schemas/pages/schema/schema-page.component.html b/frontend/src/app/features/schemas/pages/schema/schema-page.component.html index d5246dd6d..a7379ddb5 100644 --- a/frontend/src/app/features/schemas/pages/schema/schema-page.component.html +++ b/frontend/src/app/features/schemas/pages/schema/schema-page.component.html @@ -118,6 +118,10 @@
+ + + + diff --git a/frontend/src/app/features/settings/module.ts b/frontend/src/app/features/settings/module.ts index 67530d757..dd8c416f8 100644 --- a/frontend/src/app/features/settings/module.ts +++ b/frontend/src/app/features/settings/module.ts @@ -18,6 +18,22 @@ const routes: Routes = [ { path: 'more', component: MorePageComponent, + children: [ + { + path: 'history', + component: HistoryComponent, + data: { + channel: 'settings.general', + }, + }, + { + path: 'help', + component: HelpComponent, + data: { + helpPage: '05-integrated/more', + }, + }, + ], }, { path: 'backups', @@ -95,10 +111,35 @@ const routes: Routes = [ { path: 'settings', component: SettingsPageComponent, + children: [ + { + path: 'history', + component: HistoryComponent, + data: { + channel: 'settings.ui', + }, + }, + { + path: 'help', + component: HelpComponent, + data: { + helpPage: '05-integrated/settings', + }, + }, + ], }, { path: 'templates', component: TemplatesPageComponent, + children: [ + { + path: 'help', + component: HelpComponent, + data: { + helpPage: '05-integrated/templates', + }, + }, + ], }, { path: 'plans', @@ -111,6 +152,13 @@ const routes: Routes = [ channel: 'settings.plan', }, }, + { + path: 'help', + component: HelpComponent, + data: { + helpPage: '05-integrated/plans', + }, + }, ], }, { @@ -137,6 +185,13 @@ const routes: Routes = [ path: 'workflows', component: WorkflowsPageComponent, children: [ + { + path: 'history', + component: HistoryComponent, + data: { + channel: 'settings.workflows', + }, + }, { path: 'help', component: HelpComponent, @@ -150,6 +205,13 @@ const routes: Routes = [ path: 'asset-scripts', component: AssetScriptsPageComponent, children: [ + { + path: 'history', + component: HistoryComponent, + data: { + channel: 'settings.assetScripts', + }, + }, { path: 'help', component: HelpComponent, diff --git a/frontend/src/app/features/settings/pages/asset-scripts/asset-scripts-page.component.html b/frontend/src/app/features/settings/pages/asset-scripts/asset-scripts-page.component.html index a60803542..f153dd7c5 100644 --- a/frontend/src/app/features/settings/pages/asset-scripts/asset-scripts-page.component.html +++ b/frontend/src/app/features/settings/pages/asset-scripts/asset-scripts-page.component.html @@ -37,6 +37,10 @@
+ + + + diff --git a/frontend/src/app/features/settings/pages/more/more-page.component.html b/frontend/src/app/features/settings/pages/more/more-page.component.html index 23c41800d..fe332c27a 100644 --- a/frontend/src/app/features/settings/pages/more/more-page.component.html +++ b/frontend/src/app/features/settings/pages/more/more-page.component.html @@ -1,4 +1,4 @@ - + @@ -12,7 +12,7 @@
- +
@@ -127,4 +127,18 @@ - \ No newline at end of file + + +
+ + + + + + + +
+
+ + + \ No newline at end of file diff --git a/frontend/src/app/features/settings/pages/plans/plans-page.component.html b/frontend/src/app/features/settings/pages/plans/plans-page.component.html index 81757d590..b82c46d48 100644 --- a/frontend/src/app/features/settings/pages/plans/plans-page.component.html +++ b/frontend/src/app/features/settings/pages/plans/plans-page.component.html @@ -40,10 +40,14 @@ -
+ diff --git a/frontend/src/app/features/settings/pages/settings/settings-page.component.html b/frontend/src/app/features/settings/pages/settings/settings-page.component.html index 9160f7be2..7bc234a56 100644 --- a/frontend/src/app/features/settings/pages/settings/settings-page.component.html +++ b/frontend/src/app/features/settings/pages/settings/settings-page.component.html @@ -146,4 +146,18 @@
- \ No newline at end of file + + +
+ + + + + + + +
+
+ + + \ No newline at end of file diff --git a/frontend/src/app/features/settings/pages/templates/templates-page.component.html b/frontend/src/app/features/settings/pages/templates/templates-page.component.html index 54f724cd8..aa11f766d 100644 --- a/frontend/src/app/features/settings/pages/templates/templates-page.component.html +++ b/frontend/src/app/features/settings/pages/templates/templates-page.component.html @@ -1,6 +1,6 @@ - +
diff --git a/frontend/src/app/theme/_common.scss b/frontend/src/app/theme/_common.scss index c15c4129b..6c7e77883 100644 --- a/frontend/src/app/theme/_common.scss +++ b/frontend/src/app/theme/_common.scss @@ -128,6 +128,10 @@ hr { padding-right: 3rem; } + a { + white-space: nowrap; + } + table { width: 100%;