diff --git a/frontend/app/features/schemas/declarations.ts b/frontend/app/features/schemas/declarations.ts
index cf20ea5a8..a7edb1979 100644
--- a/frontend/app/features/schemas/declarations.ts
+++ b/frontend/app/features/schemas/declarations.ts
@@ -34,6 +34,7 @@ export * from './pages/schema/field-wizard.component';
export * from './pages/schema/field.component';
export * from './pages/schema/schema-edit-form.component';
export * from './pages/schema/schema-export-form.component';
+export * from './pages/schema/schema-fields.component';
export * from './pages/schema/schema-page.component';
export * from './pages/schema/schema-preview-urls-form.component';
export * from './pages/schema/schema-scripts-form.component';
diff --git a/frontend/app/features/schemas/module.ts b/frontend/app/features/schemas/module.ts
index cb332a012..827398242 100644
--- a/frontend/app/features/schemas/module.ts
+++ b/frontend/app/features/schemas/module.ts
@@ -39,6 +39,7 @@ import {
ReferencesValidationComponent,
SchemaEditFormComponent,
SchemaExportFormComponent,
+ SchemaFieldsComponent,
SchemaFormComponent,
SchemaPageComponent,
SchemaPreviewUrlsFormComponent,
@@ -57,18 +58,64 @@ const routes: Routes = [
children: [
{
path: ':schemaName',
- component: SchemaPageComponent,
canActivate: [SchemaMustExistGuard],
+ component: SchemaPageComponent,
children: [
{
- path: 'help',
- component: HelpComponent,
- data: {
- helpPage: '05-integrated/schemas'
- }
+ path: '',
+ redirectTo: 'fields'
+ },
+ {
+ path: 'fields',
+ children: [
+ {
+ path: 'help',
+ component: HelpComponent,
+ data: {
+ helpPage: '05-integrated/schemas'
+ }
+ }
+ ]
+ },
+ {
+ path: 'scripts',
+ children: [
+ {
+ path: 'help',
+ component: HelpComponent,
+ data: {
+ helpPage: '05-integrated/scripts'
+ }
+ }
+ ]
+ },
+ {
+ path: 'json',
+ children: [
+ {
+ path: 'help',
+ component: HelpComponent,
+ data: {
+ helpPage: '05-integrated/schema-json'
+ }
+ }
+ ]
+ },
+ {
+ path: 'more',
+ children: [
+ {
+ path: 'help',
+ component: HelpComponent,
+ data: {
+ helpPage: '05-integrated/preview'
+ }
+ }
+ ]
}
]
- }]
+ }
+ ]
}
];
@@ -90,8 +137,8 @@ const routes: Routes = [
DateTimeUIComponent,
DateTimeValidationComponent,
FieldComponent,
- FieldFormComponent,
FieldFormCommonComponent,
+ FieldFormComponent,
FieldFormUIComponent,
FieldFormValidationComponent,
FieldWizardComponent,
@@ -105,6 +152,7 @@ const routes: Routes = [
ReferencesValidationComponent,
SchemaEditFormComponent,
SchemaExportFormComponent,
+ SchemaFieldsComponent,
SchemaFormComponent,
SchemaPageComponent,
SchemaPreviewUrlsFormComponent,
diff --git a/frontend/app/features/schemas/pages/schema/schema-edit-form.component.html b/frontend/app/features/schemas/pages/schema/schema-edit-form.component.html
index 7150a23bf..b57572a8d 100644
--- a/frontend/app/features/schemas/pages/schema/schema-edit-form.component.html
+++ b/frontend/app/features/schemas/pages/schema/schema-edit-form.component.html
@@ -1,46 +1,45 @@
+
\ No newline at end of file
diff --git a/frontend/app/features/schemas/pages/schema/schema-edit-form.component.scss b/frontend/app/features/schemas/pages/schema/schema-edit-form.component.scss
index eae569083..71c028eac 100644
--- a/frontend/app/features/schemas/pages/schema/schema-edit-form.component.scss
+++ b/frontend/app/features/schemas/pages/schema/schema-edit-form.component.scss
@@ -1,6 +1,11 @@
@import '_vars';
@import '_mixins';
+.card-header,
+.card-footer {
+ padding: 1.25rem;
+}
+
textarea {
resize: none;
}
\ No newline at end of file
diff --git a/frontend/app/features/schemas/pages/schema/schema-edit-form.component.ts b/frontend/app/features/schemas/pages/schema/schema-edit-form.component.ts
index ffa2d165b..65bdfa976 100644
--- a/frontend/app/features/schemas/pages/schema/schema-edit-form.component.ts
+++ b/frontend/app/features/schemas/pages/schema/schema-edit-form.component.ts
@@ -5,10 +5,11 @@
* Copyright (c) Squidex UG (haftungsbeschränkt). All rights reserved.
*/
-import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
+import { Component, Input, OnInit } from '@angular/core';
import { FormBuilder } from '@angular/forms';
import {
+ DialogService,
EditSchemaForm,
SchemaDetailsDto,
SchemasState
@@ -22,9 +23,6 @@ import {
export class SchemaEditFormComponent implements OnInit {
public readonly standalone = { standalone: true };
- @Output()
- public complete = new EventEmitter();
-
@Input()
public schema: SchemaDetailsDto;
@@ -33,6 +31,7 @@ export class SchemaEditFormComponent implements OnInit {
public isEditable = false;
constructor(
+ private readonly dialogs: DialogService,
private readonly formBuilder: FormBuilder,
private readonly schemasState: SchemasState
) {
@@ -45,10 +44,6 @@ export class SchemaEditFormComponent implements OnInit {
this.editForm.setEnabled(this.isEditable);
}
- public emitComplete() {
- this.complete.emit();
- }
-
public saveSchema() {
if (!this.isEditable) {
return;
@@ -59,7 +54,9 @@ export class SchemaEditFormComponent implements OnInit {
if (value) {
this.schemasState.update(this.schema, value)
.subscribe(() => {
- this.emitComplete();
+ this.dialogs.notifyInfo('Schema saved successfully.');
+
+ this.editForm.submitCompleted({ noReset: true });
}, error => {
this.editForm.submitFailed(error);
});
diff --git a/frontend/app/features/schemas/pages/schema/schema-export-form.component.html b/frontend/app/features/schemas/pages/schema/schema-export-form.component.html
index 8d05eb575..0284bd357 100644
--- a/frontend/app/features/schemas/pages/schema/schema-export-form.component.html
+++ b/frontend/app/features/schemas/pages/schema/schema-export-form.component.html
@@ -1,36 +1,31 @@
-