mirror of
https://github.com/SuiteCRM/SuiteCRM-Core.git
synced 2025-09-02 08:09:19 +08:00
Fix field required not-updating on required logic
This commit is contained in:
parent
46b06deff2
commit
0424425848
5 changed files with 7 additions and 3 deletions
|
@ -184,6 +184,7 @@ export interface Field {
|
|||
items?: Record[];
|
||||
readonly?: boolean;
|
||||
display?: WritableSignal<DisplayType>;
|
||||
required?: WritableSignal<boolean>;
|
||||
defaultDisplay?: string;
|
||||
default?: string;
|
||||
defaultValueModes?: ViewMode[];
|
||||
|
@ -219,6 +220,7 @@ export class BaseField implements Field {
|
|||
dynamicLabelKey?: string;
|
||||
readonly?: boolean;
|
||||
display?: WritableSignal<DisplayType>;
|
||||
required?: WritableSignal<boolean>;
|
||||
defaultDisplay?: string;
|
||||
default?: string;
|
||||
defaultValueModes?: ViewMode[];
|
||||
|
@ -250,6 +252,7 @@ export class BaseField implements Field {
|
|||
this.valueSubject = new BehaviorSubject<FieldValue>({} as FieldValue);
|
||||
this.valueChanges$ = this.valueSubject.asObservable();
|
||||
this.display = signal('default');
|
||||
this.required = signal(false);
|
||||
}
|
||||
|
||||
get value(): string {
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
<div class="{{col?.headerColumnClass}} field-layout-field-label-wrapper col-form-label label-container">
|
||||
<strong>
|
||||
<ng-container
|
||||
*ngIf="col.field.definition.required && (['edit', 'create'].includes(config.mode))">
|
||||
*ngIf="col.field?.required() && (['edit', 'create'].includes(config.mode))">
|
||||
<span class="required">*</span>
|
||||
</ng-container>
|
||||
<label [ngClass]="labelClass">{{col.field.label | uppercase}}</label>
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
<span class="field-group-label pr-1">
|
||||
<label *ngIf="attribute.labelKey && showLabel(attribute)">
|
||||
<scrm-label [labelKey]="attribute.labelKey" [module]="getModule()"></scrm-label>
|
||||
<ng-container *ngIf="attribute.definition.required && (['edit', 'create'].includes(mode))">
|
||||
<ng-container *ngIf="attribute?.required() && (['edit', 'create'].includes(mode))">
|
||||
<span class="required">*</span>
|
||||
</ng-container>
|
||||
</label>
|
||||
|
|
|
@ -84,7 +84,7 @@ export class RequiredAction extends FieldLogicActionHandler {
|
|||
|
||||
data.field.formControl.updateValueAndValidity({onlySelf: true, emitEvent: true});
|
||||
record.formGroup.updateValueAndValidity({onlySelf: true, emitEvent: true});
|
||||
data.field.definition.required = required;
|
||||
data.field.required.set(required);
|
||||
data.field.formControl.setValidators(validators);
|
||||
data.field.formControl.updateValueAndValidity({onlySelf: true, emitEvent: true});
|
||||
record.formGroup.updateValueAndValidity({onlySelf: true, emitEvent: true});
|
||||
|
|
|
@ -186,6 +186,7 @@ export class FieldBuilder {
|
|||
field.vardefBased = viewField?.vardefBased ?? definition?.vardefBased ?? false;
|
||||
field.readonly = isTrue(viewField.readonly) || isTrue(definition.readonly) || false;
|
||||
field.display = signal((viewField.display || definition.display || 'default') as DisplayType);
|
||||
field.required = signal(isTrue(definition?.required) ?? isTrue(viewField?.fieldDefinition?.required) ?? false);
|
||||
field.defaultDisplay = field?.display();
|
||||
if (field.defaultDisplay === 'default') {
|
||||
field.defaultDisplay = 'show';
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue