diff --git a/src/Squidex/app/features/schemas/pages/schemas/schema-form.component.ts b/src/Squidex/app/features/schemas/pages/schemas/schema-form.component.ts index d4335701d..acc6a5297 100644 --- a/src/Squidex/app/features/schemas/pages/schemas/schema-form.component.ts +++ b/src/Squidex/app/features/schemas/pages/schemas/schema-form.component.ts @@ -67,8 +67,7 @@ export class SchemaFormComponent implements OnInit { const value = this.createForm.submit(); if (value) { - const schemaName = value.name; - const schemaDto = Object.assign(value.import || {}, { name: schemaName }); + const schemaDto = Object.assign(value.import || {}, { name: value.name }); this.schemasState.create(schemaDto) .subscribe(dto => { diff --git a/src/Squidex/app/features/settings/pages/backups/backups-page.component.html b/src/Squidex/app/features/settings/pages/backups/backups-page.component.html index 4b2f81ce8..82814a677 100644 --- a/src/Squidex/app/features/settings/pages/backups/backups-page.component.html +++ b/src/Squidex/app/features/settings/pages/backups/backups-page.component.html @@ -6,12 +6,6 @@ - - - - diff --git a/src/Squidex/app/features/settings/pages/clients/client.component.html b/src/Squidex/app/features/settings/pages/clients/client.component.html index 051a049b4..ac0955aa2 100644 --- a/src/Squidex/app/features/settings/pages/clients/client.component.html +++ b/src/Squidex/app/features/settings/pages/clients/client.component.html @@ -2,26 +2,26 @@
-
+
- + -

- {{client.name}} + {{client.name}}

- +
@@ -70,7 +70,7 @@ Permission:
-
diff --git a/src/Squidex/app/features/settings/pages/clients/client.component.ts b/src/Squidex/app/features/settings/pages/clients/client.component.ts index fb38a791b..5aa67914a 100644 --- a/src/Squidex/app/features/settings/pages/clients/client.component.ts +++ b/src/Squidex/app/features/settings/pages/clients/client.component.ts @@ -5,8 +5,8 @@ * Copyright (c) Squidex UG (haftungsbeschränkt). All rights reserved. */ -import { Component, Input } from '@angular/core'; -import { FormBuilder, Validators } from '@angular/forms'; +import { Component, Input, OnChanges } from '@angular/core'; +import { FormBuilder } from '@angular/forms'; import { AccessTokenDto, @@ -16,6 +16,7 @@ import { ClientsState, DialogService, ModalView, + RenameClientForm, UpdateAppClientDto } from '@app/shared'; @@ -26,7 +27,7 @@ const ESCAPE_KEY = 27; styleUrls: ['./client.component.scss'], templateUrl: './client.component.html' }) -export class ClientComponent { +export class ClientComponent implements OnChanges { @Input() public client: AppClientDto; @@ -37,18 +38,7 @@ export class ClientComponent { public token: AccessTokenDto; public tokenDialog = new ModalView(); - public renameForm = - this.formBuilder.group({ - name: ['', - [ - Validators.required - ] - ] - }); - - public get hasNewName() { - return this.renameForm.controls['name'].value !== this.client.name; - } + public renameForm = new RenameClientForm(this.formBuilder); constructor( public readonly appsState: AppsState, @@ -59,35 +49,43 @@ export class ClientComponent { ) { } + public ngOnChanges() { + this.renameForm.load(this.client); + } + public revoke() { this.clientsState.revoke(this.client).onErrorResumeNext().subscribe(); } - public updatePermission(permission: string) { + public update(permission: string) { this.clientsState.update(this.client, new UpdateAppClientDto(undefined, permission)).onErrorResumeNext().subscribe(); } - public cancelRename() { - this.isRenaming = false; - } - - public startRename() { - this.renameForm.controls['name'].setValue(this.client.name); - - this.isRenaming = true; + public toggleRename() { + this.isRenaming = !this.isRenaming; } public onKeyDown(keyCode: number) { if (keyCode === ESCAPE_KEY) { - this.cancelRename(); + this.toggleRename(); } } public rename() { - this.clientsState.update(this.client, new UpdateAppClientDto(this.renameForm.controls['name'].value)) - .subscribe(() => { - this.cancelRename(); - }); + const value = this.renameForm.submit(); + + if (value) { + const requestDto = new UpdateAppClientDto(value.name); + + this.clientsState.update(this.client, requestDto) + .subscribe(() => { + this.renameForm.submitCompleted(); + + this.toggleRename(); + }, error => { + this.renameForm.submitFailed(error); + }); + } } public createToken(client: AppClientDto) { diff --git a/src/Squidex/app/features/settings/pages/contributors/contributors-page.component.html b/src/Squidex/app/features/settings/pages/contributors/contributors-page.component.html index 82c28dc5d..8ab5a9814 100644 --- a/src/Squidex/app/features/settings/pages/contributors/contributors-page.component.html +++ b/src/Squidex/app/features/settings/pages/contributors/contributors-page.component.html @@ -29,7 +29,7 @@ - @@ -55,7 +55,7 @@
- +
diff --git a/src/Squidex/app/features/settings/pages/contributors/contributors-page.component.ts b/src/Squidex/app/features/settings/pages/contributors/contributors-page.component.ts index 1533e0077..92ded1e01 100644 --- a/src/Squidex/app/features/settings/pages/contributors/contributors-page.component.ts +++ b/src/Squidex/app/features/settings/pages/contributors/contributors-page.component.ts @@ -67,7 +67,7 @@ export class ContributorsPageComponent implements OnInit { this.contributorsState.load().onErrorResumeNext().subscribe(); } - public removeContributor(contributor: AppContributorDto) { + public remove(contributor: AppContributorDto) { this.contributorsState.revoke(contributor).onErrorResumeNext().subscribe(); } diff --git a/src/Squidex/app/shared/state/clients.state.ts b/src/Squidex/app/shared/state/clients.state.ts index d955eddf2..63e8239b6 100644 --- a/src/Squidex/app/shared/state/clients.state.ts +++ b/src/Squidex/app/shared/state/clients.state.ts @@ -29,6 +29,18 @@ import { UpdateAppClientDto } from './../services/app-clients.service'; +export class RenameClientForm extends Form { + constructor(formBuilder: FormBuilder) { + super(formBuilder.group({ + name: ['', + [ + Validators.required + ] + ] + })); + } +} + export class AttachClientForm extends Form { public hasNoName = this.form.controls['name'].valueChanges.startWith('').map(x => !x || x.length === 0);