Browse Source

Some validation fixed

pull/1/head
Sebastian 9 years ago
parent
commit
dfc31e7f97
  1. 2
      src/Squidex/Docs/schemaquery.md
  2. 2
      src/Squidex/app/features/schemas/module.ts
  3. 2
      src/Squidex/app/features/schemas/pages/schema/schema-page.component.html
  4. 5
      src/Squidex/app/features/schemas/pages/schema/schema-page.component.ts
  5. 6
      src/Squidex/app/features/settings/module.ts
  6. 2
      src/Squidex/app/features/settings/pages/clients/clients-page.component.html
  7. 5
      src/Squidex/app/features/settings/pages/clients/clients-page.component.ts
  8. 5
      src/Squidex/app/framework/angular/control-errors.component.ts
  9. 1
      src/Squidex/app/theme/_forms.scss

2
src/Squidex/Docs/schemaquery.md

@ -8,4 +8,4 @@ We support the following query options.
* **$filter**: The $filter query option allows clients to filter a collection of resources that are addressed by a request URL. * **$filter**: The $filter query option allows clients to filter a collection of resources that are addressed by a request URL.
* **$orderby**: The $orderby query option allows clients to request resources in a particular order. * **$orderby**: The $orderby query option allows clients to request resources in a particular order.
Read more about it at: https://docs.squidex.io/04-guides/api.html Read more about it at: https://docs.squidex.io/04-guides/01-api.html

2
src/Squidex/app/features/schemas/module.ts

@ -60,7 +60,7 @@ const routes: Routes = [
path: 'help', path: 'help',
component: HelpComponent, component: HelpComponent,
data: { data: {
helpPage: '04-guides/schemas' helpPage: '05-integrated/schemas'
} }
} }
] ]

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

@ -61,7 +61,7 @@
<input type="text" class="form-control" formControlName="name" maxlength="40" placeholder="Enter field name" /> <input type="text" class="form-control" formControlName="name" maxlength="40" placeholder="Enter field name" />
</div> </div>
<button type="submit" class="btn btn-success" [disabled]="addFieldForm.invalid">Add Field</button> <button type="submit" class="btn btn-success" [disabled]="!hasName">Add Field</button>
<button type="reset" class="btn btn-link" (click)="resetFieldForm()">Cancel</button> <button type="reset" class="btn btn-link" (click)="resetFieldForm()">Cancel</button>
</form> </form>
</div> </div>

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

@ -71,12 +71,15 @@ export class SchemaPageComponent extends AppComponentBase implements OnInit {
]], ]],
name: ['', name: ['',
[ [
Validators.required,
Validators.maxLength(40), Validators.maxLength(40),
ValidatorsEx.pattern('[a-zA-Z0-9]+(\\-[a-zA-Z0-9]+)*', 'Name must be a valid javascript name in camel case.') ValidatorsEx.pattern('[a-zA-Z0-9]+(\\-[a-zA-Z0-9]+)*', 'Name must be a valid javascript name in camel case.')
]] ]]
}); });
public get hasName() {
return this.addFieldForm.controls['name'].value && this.addFieldForm.controls['name'].value.length > 0;
}
constructor(apps: AppsStoreService, notifications: NotificationService, users: UsersProviderService, constructor(apps: AppsStoreService, notifications: NotificationService, users: UsersProviderService,
private readonly schemasService: SchemasService, private readonly schemasService: SchemasService,
private readonly messageBus: MessageBus, private readonly messageBus: MessageBus,

6
src/Squidex/app/features/settings/module.ts

@ -46,7 +46,7 @@ const routes: Routes = [
path: 'help', path: 'help',
component: HelpComponent, component: HelpComponent,
data: { data: {
helpPage: '04-guides/clients' helpPage: '05-integrated/clients'
} }
} }
] ]
@ -65,7 +65,7 @@ const routes: Routes = [
path: 'help', path: 'help',
component: HelpComponent, component: HelpComponent,
data: { data: {
helpPage: '04-guides/contributors' helpPage: '05-integrated/contributors'
} }
} }
] ]
@ -84,7 +84,7 @@ const routes: Routes = [
path: 'help', path: 'help',
component: HelpComponent, component: HelpComponent,
data: { data: {
helpPage: '04-guides/languages' helpPage: '05-integrated/languages'
} }
} }
] ]

2
src/Squidex/app/features/settings/pages/clients/clients-page.component.html

@ -31,7 +31,7 @@
<input type="text" class="form-control" formControlName="name" maxlength="40" placeholder="Enter client name" /> <input type="text" class="form-control" formControlName="name" maxlength="40" placeholder="Enter client name" />
</div> </div>
<button type="submit" class="btn btn-success" [disabled]="addClientForm.invalid">Add Client</button> <button type="submit" class="btn btn-success" [disabled]="!hasName">Add Client</button>
<button type="reset" class="btn btn-link" (click)="resetClientForm()">Cancel</button> <button type="reset" class="btn btn-link" (click)="resetClientForm()">Cancel</button>
</form> </form>
</div> </div>

5
src/Squidex/app/features/settings/pages/clients/clients-page.component.ts

@ -38,12 +38,15 @@ export class ClientsPageComponent extends AppComponentBase implements OnInit {
this.formBuilder.group({ this.formBuilder.group({
name: ['', name: ['',
[ [
Validators.required,
Validators.maxLength(40), Validators.maxLength(40),
ValidatorsEx.pattern('[a-z0-9]+(\-[a-z0-9]+)*', 'Name can contain lower case letters (a-z), numbers and dashes (not at the end).') ValidatorsEx.pattern('[a-z0-9]+(\-[a-z0-9]+)*', 'Name can contain lower case letters (a-z), numbers and dashes (not at the end).')
]] ]]
}); });
public get hasName() {
return this.addClientForm.controls['name'].value && this.addClientForm.controls['name'].value.length > 0;
}
constructor(apps: AppsStoreService, notifications: NotificationService, users: UsersProviderService, constructor(apps: AppsStoreService, notifications: NotificationService, users: UsersProviderService,
private readonly appClientsService: AppClientsService, private readonly appClientsService: AppClientsService,
private readonly messageBus: MessageBus, private readonly messageBus: MessageBus,

5
src/Squidex/app/framework/angular/control-errors.component.ts

@ -47,12 +47,15 @@ export class ControlErrorsComponent implements OnChanges {
@Input() @Input()
public submitted: boolean; public submitted: boolean;
@Input()
public submitOnly = false;
public get errorMessages(): string[] | null { public get errorMessages(): string[] | null {
if (!this.control) { if (!this.control) {
return null; return null;
} }
if (this.control.invalid && (this.control.touched || this.submitted)) { if (this.control.invalid && ((this.control.touched && !this.submitOnly) || this.submitted)) {
const errors: string[] = []; const errors: string[] = [];
for (let key in <any>this.control.errors) { for (let key in <any>this.control.errors) {

1
src/Squidex/app/theme/_forms.scss

@ -39,6 +39,7 @@
font-weight: normal; font-weight: normal;
line-height: 1.1rem; line-height: 1.1rem;
padding: .3rem .4rem; padding: .3rem .4rem;
padding-bottom: .5rem;
background: $color-theme-error; background: $color-theme-error;
} }
} }

Loading…
Cancel
Save