Skip to content

Instantly share code, notes, and snippets.

sudo apt-get update
sudo apt-get install nginx
# default website
@dancornilov
dancornilov / form.component.html
Last active March 27, 2019 11:26
User validator
<form [formGroup]="form">
<div class="field">
<input type="text" formControlName="name" />
<app-validator [control]="form.get('name')"></app-validator>
</div>
<div class="field">
<input type="text" formControlName="age" />
@dancornilov
dancornilov / validator.component.ts
Created March 26, 2019 10:44
Generate validator message
/**
* Check if the validator has a custom validation message
*
* @param errors
*
* @return string
*/
public message(errors: ValidationErrors | null): string {
const properties = Object.keys(errors);
let customMessage: boolean;
import { Component, Input, OnInit } from '@angular/core';
import { FormControl, FormGroup, ValidationErrors } from '@angular/forms';
import { TranslateService } from '@ngx-translate/core';
@Component({
selector: 'app-validator',
templateUrl: './validator.component.html',
styleUrls: ['./validator.component.scss']
})
export class ValidatorComponent implements OnInit {
@dancornilov
dancornilov / validator.component.ts
Created March 26, 2019 10:20
Get FormControl name
/**
* Extract control name from formGroup
*
* @return string
*/
public getControlName(): string {
let controlName = null;
const parent = this.control['parent'];
if (parent instanceof FormGroup) {
"fields": {
"id": "ID",
"name": "Name",
"type": "Type",
"age": "Age",
"street_name": "Street name"
}
import { Component, Input, OnInit } from '@angular/core';
import { FormControl } from '@angular/forms';
@Component({
selector: 'app-validator',
templateUrl: './validator.component.html',
styleUrls: ['./validator.component.scss']
})
export class ValidatorComponent implements OnInit {
@Input() public control: FormControl;
@dancornilov
dancornilov / validator.component.ts
Last active March 26, 2019 08:39
Validator with Inputs
import { Component, Input, OnInit } from '@angular/core';
import { FormControl, FormGroup, ValidationErrors } from '@angular/forms';
import { TranslateService } from '@ngx-translate/core';
@Component({
selector: 'app-validator',
templateUrl: './validator.component.html',
styleUrls: ['./validator.component.scss']
})
export class ValidatorComponent implements OnInit {
div.validator {
visibility: hidden;
margin-top: 5px;
min-height: 20px;
&.show {
visibility: visible;
}
p {
<div [ngClass]="{show: control?.dirty || control?.touched}" class="validator">
<ng-container *ngIf="control?.errors?.required">
<p>{{ message(control?.errors) | translate: {field: name} }}</p>
</ng-container>
<ng-container *ngIf="control?.errors?.email">
<p>{{ message(control?.errors) | translate: {field: name} }}</p>
</ng-container>
<ng-container *ngIf="control?.errors?.min">