Browse Source

Schema fixes

pull/271/head
Sebastian Stehle 8 years ago
parent
commit
c13ff83461
  1. 2
      src/Squidex/app/features/schemas/pages/schema/field.component.html
  2. 4
      src/Squidex/app/features/schemas/pages/schema/field.component.ts
  3. 5
      src/Squidex/app/features/schemas/pages/schema/forms/field-form-validation.component.ts
  4. 2
      src/Squidex/app/features/schemas/pages/schema/schema-page.component.html
  5. 10
      src/Squidex/app/features/schemas/pages/schema/schema-page.component.ts
  6. 10
      src/Squidex/app/features/schemas/pages/schema/types/string-validation.component.html
  7. 7
      src/Squidex/app/features/schemas/pages/schema/types/string-validation.component.ts

2
src/Squidex/app/features/schemas/pages/schema/field.component.html

@ -84,7 +84,7 @@
</div>
<div class="table-items-row-details-tab" [class.hidden]="selectedTab !== 1">
<sqx-field-form-validation [editForm]="editForm.form" [field]="field"></sqx-field-form-validation>
<sqx-field-form-validation [patterns]="patterns" [editForm]="editForm.form" [field]="field"></sqx-field-form-validation>
</div>
<div class="table-items-row-details-tab" [class.hidden]="selectedTab !== 2">

4
src/Squidex/app/features/schemas/pages/schema/field.component.ts

@ -9,6 +9,7 @@ import { Component, Input, OnInit } from '@angular/core';
import { FormBuilder } from '@angular/forms';
import {
AppPatternDto,
createProperties,
fadeAnimation,
FieldDto,
@ -31,6 +32,9 @@ export class FieldComponent implements OnInit {
@Input()
public field: FieldDto;
@Input()
public patters: AppPatternDto;
@Input()
public schema: SchemaDetailsDto;

5
src/Squidex/app/features/schemas/pages/schema/forms/field-form-validation.component.ts

@ -8,7 +8,7 @@
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { FieldDto } from '@app/shared';
import { AppPatternDto, FieldDto } from '@app/shared';
@Component({
selector: 'sqx-field-form-validation',
@ -22,4 +22,7 @@ export class FieldFormValidationComponent {
@Input()
public field: FieldDto;
@Input()
public patterns: AppPatternDto[];
}

2
src/Squidex/app/features/schemas/pages/schema/schema-page.component.html

@ -53,7 +53,7 @@
<ng-container content>
<div dnd-sortable-container [sortableData]="schema.fields">
<div *ngFor="let field of schema.fields; let i = index;" dnd-sortable [sortableIndex]="i" (sqxSorted)="sortFields($event)">
<sqx-field [field]="field" [schema]="schema"></sqx-field>
<sqx-field [field]="field" [schema]="schema" [patterns]="patterns"></sqx-field>
</div>
<button class="btn btn-success field-button" (click)="addFieldDialog.show()">

10
src/Squidex/app/features/schemas/pages/schema/schema-page.component.ts

@ -10,6 +10,8 @@ import { ActivatedRoute, Router } from '@angular/router';
import { Subscription } from 'rxjs';
import {
AppPatternDto,
AppPatternsService,
AppsState,
fadeAnimation,
FieldDto,
@ -38,6 +40,8 @@ export class SchemaPageComponent implements OnDestroy, OnInit {
public fieldTypes = fieldTypes;
public patterns: AppPatternDto[] = [];
public schemaExport: any;
public schema: SchemaDetailsDto;
@ -53,6 +57,7 @@ export class SchemaPageComponent implements OnDestroy, OnInit {
constructor(
public readonly appsState: AppsState,
public readonly schemasState: SchemasState,
private readonly patternsService: AppPatternsService,
private readonly route: ActivatedRoute,
private readonly router: Router,
private readonly messageBus: MessageBus
@ -64,6 +69,11 @@ export class SchemaPageComponent implements OnDestroy, OnInit {
}
public ngOnInit() {
this.patternsService.getPatterns(this.appsState.appName)
.subscribe(dtos => {
this.patterns = dtos.patterns;
});
this.selectedSchemaSubscription =
this.schemasState.selectedSchema
.subscribe(schema => {

10
src/Squidex/app/features/schemas/pages/schema/types/string-validation.component.html

@ -31,14 +31,14 @@
autocomplete="off"
autocorrect="off"
autocapitalize="off"
(focus)="regexSuggestionsModal.show()" (blur)="regexSuggestionsModal.hide()" />
(focus)="patternsModal.show()" (blur)="patternsModal.hide()" />
<div *ngIf="regexSuggestions.length > 0 && (regexSuggestionsModal.isOpen | async) && (showPatternSuggestions | async)" [sqxModalTarget]="patternInput" class="control-dropdown">
<div *ngIf="patterns.length > 0 && (patternsModal.isOpen | async) && (showPatternSuggestions | async)" [sqxModalTarget]="patternInput" class="control-dropdown">
<h4>Suggestions</h4>
<div *ngFor="let suggestion of regexSuggestions" class="control-dropdown-item control-dropdown-item-selectable" (mousedown)="setPattern(suggestion)">
<div class="truncate">{{suggestion.name}}</div>
<div class="truncate text-muted">{{suggestion.pattern}}</div>
<div *ngFor="let pattern of pattern" class="control-dropdown-item control-dropdown-item-selectable" (mousedown)="setPattern(suggestion)">
<div class="truncate">{{pattern.name}}</div>
<div class="truncate text-muted">{{pattern.pattern}}</div>
</div>
</div>
</div>

7
src/Squidex/app/features/schemas/pages/schema/types/string-validation.component.ts

@ -30,14 +30,13 @@ export class StringValidationComponent implements OnDestroy, OnInit {
public properties: StringFieldPropertiesDto;
@Input()
public regexSuggestions: AppPatternDto[] = [];
public patterns: AppPatternDto[] = [];
public showDefaultValue: Observable<boolean>;
public showPatternMessage: boolean;
public showPatternSuggestions: Observable<boolean>;
public patternName: string;
public regexSuggestionsModal = new ModalView(false, false);
public patternsModal = new ModalView(false, false);
public ngOnDestroy() {
this.patternSubscription.unsubscribe();
@ -92,7 +91,7 @@ export class StringValidationComponent implements OnDestroy, OnInit {
}
private setPatternName() {
const matchingPattern = this.regexSuggestions.find(x => x.pattern === this.editForm.controls['pattern'].value);
const matchingPattern = this.patterns.find(x => x.pattern === this.editForm.controls['pattern'].value);
if (matchingPattern) {
this.patternName = matchingPattern.name;

Loading…
Cancel
Save