Browse Source

Minor improvements.

pull/282/head
Sebastian Stehle 9 years ago
parent
commit
bfa115b2c8
  1. 3
      src/Squidex/app/features/schemas/pages/schemas/schema-form.component.ts
  2. 6
      src/Squidex/app/features/settings/pages/backups/backups-page.component.html
  3. 12
      src/Squidex/app/features/settings/pages/clients/client.component.html
  4. 56
      src/Squidex/app/features/settings/pages/clients/client.component.ts
  5. 4
      src/Squidex/app/features/settings/pages/contributors/contributors-page.component.html
  6. 2
      src/Squidex/app/features/settings/pages/contributors/contributors-page.component.ts
  7. 12
      src/Squidex/app/shared/state/clients.state.ts

3
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(); const value = this.createForm.submit();
if (value) { if (value) {
const schemaName = value.name; const schemaDto = Object.assign(value.import || {}, { name: value.name });
const schemaDto = Object.assign(value.import || {}, { name: schemaName });
this.schemasState.create(schemaDto) this.schemasState.create(schemaDto)
.subscribe(dto => { .subscribe(dto => {

6
src/Squidex/app/features/settings/pages/backups/backups-page.component.html

@ -6,12 +6,6 @@
</ng-container> </ng-container>
<ng-container menu> <ng-container menu>
<button class="btn btn-link btn-secondary" (click)="reload()" title="Refresh backups (CTRL + SHIFT + R)">
<i class="icon-reset"></i> Refresh
</button>
<sqx-shortcut keys="ctrl+shift+r" (trigger)="reload()"></sqx-shortcut>
<button class="btn btn-success" [disabled]="backupsState.maxBackupsReached | async" (click)="start()"> <button class="btn btn-success" [disabled]="backupsState.maxBackupsReached | async" (click)="start()">
Start Backup Start Backup
</button> </button>

12
src/Squidex/app/features/settings/pages/clients/client.component.html

@ -2,26 +2,26 @@
<div class="row no-gutters"> <div class="row no-gutters">
<div class="col"> <div class="col">
<div class="client-header"> <div class="client-header">
<form *ngIf="isRenaming" class="form-inline" [formGroup]="renameForm" (ngSubmit)="rename()"> <form *ngIf="isRenaming" class="form-inline" [formGroup]="renameForm.form" (ngSubmit)="rename()">
<div class="form-group mr-1"> <div class="form-group mr-1">
<sqx-control-errors for="name"></sqx-control-errors> <sqx-control-errors for="name"></sqx-control-errors>
<input type="text" class="form-control client-name enabled" formControlName="name" maxlength="20" sqxFocusOnInit (keydown)="onKeyDown($event.keyCode)" /> <input type="text" class="form-control client-name enabled" formControlName="name" maxlength="20" sqxFocusOnInit (keydown)="onKeyDown($event.keyCode)" />
</div> </div>
<button type="submit" class="btn btn-primary" [disabled]="!renameForm.valid || !hasNewName">Save</button> <button type="submit" class="btn btn-primary" [disabled]="!renameForm.form.valid || !renameForm.form.dirty">Save</button>
<button class="btn btn-link btn-secondary btn-cancel" (click)="cancelRename()"> <button class="btn btn-link btn-secondary btn-cancel" (click)="toggleRename()">
<i class="icon-close"></i> <i class="icon-close"></i>
</button> </button>
</form> </form>
<ng-container *ngIf="!isRenaming"> <ng-container *ngIf="!isRenaming">
<h3 class="client-name"> <h3 class="client-name">
<span (dblclick)="startRename()">{{client.name}}</span> <span (dblclick)="toggleRename()">{{client.name}}</span>
</h3> </h3>
<i class="client-edit icon-pencil" (click)="startRename()"></i> <i class="client-edit icon-pencil" (click)="toggleRename()"></i>
</ng-container> </ng-container>
</div> </div>
@ -70,7 +70,7 @@
Permission: Permission:
</div> </div>
<div class="col"> <div class="col">
<select class="form-control" [ngModel]="client.permission" (ngModelChange)="updatePermission($event)"> <select class="form-control" [ngModel]="client.permission" (ngModelChange)="update($event)">
<option *ngFor="let permission of clientPermissions" [ngValue]="permission">{{permission}}</option> <option *ngFor="let permission of clientPermissions" [ngValue]="permission">{{permission}}</option>
</select> </select>
</div> </div>

56
src/Squidex/app/features/settings/pages/clients/client.component.ts

@ -5,8 +5,8 @@
* Copyright (c) Squidex UG (haftungsbeschränkt). All rights reserved. * Copyright (c) Squidex UG (haftungsbeschränkt). All rights reserved.
*/ */
import { Component, Input } from '@angular/core'; import { Component, Input, OnChanges } from '@angular/core';
import { FormBuilder, Validators } from '@angular/forms'; import { FormBuilder } from '@angular/forms';
import { import {
AccessTokenDto, AccessTokenDto,
@ -16,6 +16,7 @@ import {
ClientsState, ClientsState,
DialogService, DialogService,
ModalView, ModalView,
RenameClientForm,
UpdateAppClientDto UpdateAppClientDto
} from '@app/shared'; } from '@app/shared';
@ -26,7 +27,7 @@ const ESCAPE_KEY = 27;
styleUrls: ['./client.component.scss'], styleUrls: ['./client.component.scss'],
templateUrl: './client.component.html' templateUrl: './client.component.html'
}) })
export class ClientComponent { export class ClientComponent implements OnChanges {
@Input() @Input()
public client: AppClientDto; public client: AppClientDto;
@ -37,18 +38,7 @@ export class ClientComponent {
public token: AccessTokenDto; public token: AccessTokenDto;
public tokenDialog = new ModalView(); public tokenDialog = new ModalView();
public renameForm = public renameForm = new RenameClientForm(this.formBuilder);
this.formBuilder.group({
name: ['',
[
Validators.required
]
]
});
public get hasNewName() {
return this.renameForm.controls['name'].value !== this.client.name;
}
constructor( constructor(
public readonly appsState: AppsState, public readonly appsState: AppsState,
@ -59,35 +49,43 @@ export class ClientComponent {
) { ) {
} }
public ngOnChanges() {
this.renameForm.load(this.client);
}
public revoke() { public revoke() {
this.clientsState.revoke(this.client).onErrorResumeNext().subscribe(); 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(); this.clientsState.update(this.client, new UpdateAppClientDto(undefined, permission)).onErrorResumeNext().subscribe();
} }
public cancelRename() { public toggleRename() {
this.isRenaming = false; this.isRenaming = !this.isRenaming;
}
public startRename() {
this.renameForm.controls['name'].setValue(this.client.name);
this.isRenaming = true;
} }
public onKeyDown(keyCode: number) { public onKeyDown(keyCode: number) {
if (keyCode === ESCAPE_KEY) { if (keyCode === ESCAPE_KEY) {
this.cancelRename(); this.toggleRename();
} }
} }
public rename() { public rename() {
this.clientsState.update(this.client, new UpdateAppClientDto(this.renameForm.controls['name'].value)) const value = this.renameForm.submit();
.subscribe(() => {
this.cancelRename(); 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) { public createToken(client: AppClientDto) {

4
src/Squidex/app/features/settings/pages/contributors/contributors-page.component.html

@ -29,7 +29,7 @@
</select> </select>
</td> </td>
<td class="cell-actions"> <td class="cell-actions">
<button *ngIf="!contributorInfo.isCurrentUser" type="button" class="btn btn-link btn-danger" (click)="removeContributor(contributorInfo.contributor)"> <button *ngIf="!contributorInfo.isCurrentUser" type="button" class="btn btn-link btn-danger" (click)="remove(contributorInfo.contributor)">
<i class="icon-bin2"></i> <i class="icon-bin2"></i>
</button> </button>
</td> </td>
@ -55,7 +55,7 @@
</sqx-autocomplete> </sqx-autocomplete>
</div> </div>
<div class="col col-auto pl-1"> <div class="col col-auto pl-1">
<button type="submit" class="btn btn-success" [disabled]="assignContributorForm.noUser | async">Add Contributor</button> <button type="submit" class="btn btn-success" [disabled]="assignContributorForm.hasNoUser | async">Add Contributor</button>
</div> </div>
</div> </div>
</form> </form>

2
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(); this.contributorsState.load().onErrorResumeNext().subscribe();
} }
public removeContributor(contributor: AppContributorDto) { public remove(contributor: AppContributorDto) {
this.contributorsState.revoke(contributor).onErrorResumeNext().subscribe(); this.contributorsState.revoke(contributor).onErrorResumeNext().subscribe();
} }

12
src/Squidex/app/shared/state/clients.state.ts

@ -29,6 +29,18 @@ import {
UpdateAppClientDto UpdateAppClientDto
} from './../services/app-clients.service'; } from './../services/app-clients.service';
export class RenameClientForm extends Form<FormGroup> {
constructor(formBuilder: FormBuilder) {
super(formBuilder.group({
name: ['',
[
Validators.required
]
]
}));
}
}
export class AttachClientForm extends Form<FormGroup> { export class AttachClientForm extends Form<FormGroup> {
public hasNoName = public hasNoName =
this.form.controls['name'].valueChanges.startWith('').map(x => !x || x.length === 0); this.form.controls['name'].valueChanges.startWith('').map(x => !x || x.length === 0);

Loading…
Cancel
Save