Added hint message to form fields

This commit is contained in:
Giuseppe Digilio
2019-05-15 17:58:37 +02:00
parent 016afd84e4
commit 7667cab772
5 changed files with 19 additions and 7 deletions

View File

@@ -28,6 +28,7 @@ export class DsDynamicInputModel extends DynamicInputModel {
constructor(config: DsDynamicInputModelConfig, layout?: DynamicFormControlLayout) { constructor(config: DsDynamicInputModelConfig, layout?: DynamicFormControlLayout) {
super(config, layout); super(config, layout);
this.hint = config.hint;
this.readOnly = config.readOnly; this.readOnly = config.readOnly;
this.value = config.value; this.value = config.value;
this.language = config.language; this.language = config.language;
@@ -57,11 +58,7 @@ export class DsDynamicInputModel extends DynamicInputModel {
} }
get hasLanguages(): boolean { get hasLanguages(): boolean {
if (this.languageCodes && this.languageCodes.length > 1) { return this.languageCodes && this.languageCodes.length > 1;
return true;
} else {
return false;
}
} }
get language(): string { get language(): string {

View File

@@ -1,5 +1,5 @@
import { DynamicFormControlLayout, DynamicFormGroupModel, DynamicInputModelConfig, serializable } from '@ng-dynamic-forms/core'; import { DynamicFormControlLayout, DynamicFormGroupModel, serializable } from '@ng-dynamic-forms/core';
import { DsDynamicInputModel, DsDynamicInputModelConfig } from './ds-dynamic-input.model'; import { DsDynamicInputModel } from './ds-dynamic-input.model';
import { Subject } from 'rxjs'; import { Subject } from 'rxjs';
import { DynamicFormGroupModelConfig } from '@ng-dynamic-forms/core/src/model/form-group/dynamic-form-group.model'; import { DynamicFormGroupModelConfig } from '@ng-dynamic-forms/core/src/model/form-group/dynamic-form-group.model';
import { LanguageCode } from '../../models/form-field-language-value.model'; import { LanguageCode } from '../../models/form-field-language-value.model';
@@ -12,6 +12,7 @@ export interface DsDynamicQualdropModelConfig extends DynamicFormGroupModelConfi
languageCodes?: LanguageCode[]; languageCodes?: LanguageCode[];
language?: string; language?: string;
readOnly: boolean; readOnly: boolean;
hint?: string;
} }
export class DynamicQualdropModel extends DynamicFormGroupModel { export class DynamicQualdropModel extends DynamicFormGroupModel {
@@ -20,6 +21,7 @@ export class DynamicQualdropModel extends DynamicFormGroupModel {
@serializable() languageUpdates: Subject<string>; @serializable() languageUpdates: Subject<string>;
@serializable() hasLanguages = false; @serializable() hasLanguages = false;
@serializable() readOnly: boolean; @serializable() readOnly: boolean;
@serializable() hint: string;
isCustomGroup = true; isCustomGroup = true;
constructor(config: DsDynamicQualdropModelConfig, layout?: DynamicFormControlLayout) { constructor(config: DsDynamicQualdropModelConfig, layout?: DynamicFormControlLayout) {
@@ -33,6 +35,8 @@ export class DynamicQualdropModel extends DynamicFormGroupModel {
this.languageUpdates.subscribe((lang: string) => { this.languageUpdates.subscribe((lang: string) => {
this.language = lang; this.language = lang;
}); });
this.hint = config.hint;
} }
get value() { get value() {

View File

@@ -190,6 +190,8 @@ export abstract class FieldParser {
controlModel.placeholder = this.configData.label; controlModel.placeholder = this.configData.label;
controlModel.hint = this.configData.hints;
if (this.configData.mandatory && setErrors) { if (this.configData.mandatory && setErrors) {
this.markAsRequired(controlModel); this.markAsRequired(controlModel);
} }

View File

@@ -24,6 +24,7 @@ export class OneboxFieldParser extends FieldParser {
const clsGroup = { const clsGroup = {
element: { element: {
control: 'form-row', control: 'form-row',
hint: 'ds-form-qualdrop-hint'
} }
}; };
@@ -54,8 +55,10 @@ export class OneboxFieldParser extends FieldParser {
inputSelectGroup.id = newId.replace(/\./g, '_') + QUALDROP_GROUP_SUFFIX; inputSelectGroup.id = newId.replace(/\./g, '_') + QUALDROP_GROUP_SUFFIX;
inputSelectGroup.group = []; inputSelectGroup.group = [];
inputSelectGroup.legend = this.configData.label; inputSelectGroup.legend = this.configData.label;
inputSelectGroup.hint = this.configData.hints;
const selectModelConfig: DynamicSelectModelConfig<any> = this.initModel(newId + QUALDROP_METADATA_SUFFIX, label); const selectModelConfig: DynamicSelectModelConfig<any> = this.initModel(newId + QUALDROP_METADATA_SUFFIX, label);
selectModelConfig.hint = null;
this.setOptions(selectModelConfig); this.setOptions(selectModelConfig);
if (isNotEmpty(fieldValue)) { if (isNotEmpty(fieldValue)) {
selectModelConfig.value = fieldValue.metadata; selectModelConfig.value = fieldValue.metadata;
@@ -63,6 +66,7 @@ export class OneboxFieldParser extends FieldParser {
inputSelectGroup.group.push(new DynamicSelectModel(selectModelConfig, clsSelect)); inputSelectGroup.group.push(new DynamicSelectModel(selectModelConfig, clsSelect));
const inputModelConfig: DsDynamicInputModelConfig = this.initModel(newId + QUALDROP_VALUE_SUFFIX, label, true); const inputModelConfig: DsDynamicInputModelConfig = this.initModel(newId + QUALDROP_VALUE_SUFFIX, label, true);
inputModelConfig.hint = null;
this.setValues(inputModelConfig, fieldValue); this.setValues(inputModelConfig, fieldValue);
inputSelectGroup.readOnly = selectModelConfig.disabled && inputModelConfig.readOnly; inputSelectGroup.readOnly = selectModelConfig.disabled && inputModelConfig.readOnly;

View File

@@ -44,3 +44,8 @@
.right-addon input { .right-addon input {
padding-right: $spacer * 2.25; padding-right: $spacer * 2.25;
} }
.ds-form-qualdrop-hint {
top: -$spacer;
position: relative;
}