From 29fe4712cffdffae5f55d0e78ef4aa552d66814a Mon Sep 17 00:00:00 2001 From: Florent Poittevin <florent.poittevin@unige.ch> Date: Fri, 25 Oct 2019 11:12:38 +0200 Subject: [PATCH] style: put big form in two column - 833 Admin User : Missing roles in detail mode --- .../admin-license-form.presentational.html | 160 ++++++++------- ...min-oauth2-client-form.presentational.html | 188 +++++++++-------- .../admin-orgunit-form.presentational.html | 192 +++++++++--------- .../admin-user-form.presentational.html | 188 +++++++++-------- .../deposit-form.presentational.html | 3 +- .../deposit-form.presentational.scss | 53 ----- .../shared-abstract-form.presentational.scss | 53 +++++ src/sass/main.scss | 4 + 8 files changed, 438 insertions(+), 403 deletions(-) diff --git a/src/app/features/admin/license/components/presentationals/admin-license-form/admin-license-form.presentational.html b/src/app/features/admin/license/components/presentationals/admin-license-form/admin-license-form.presentational.html index 0bf285060..295216345 100644 --- a/src/app/features/admin/license/components/presentationals/admin-license-form/admin-license-form.presentational.html +++ b/src/app/features/admin/license/components/presentationals/admin-license-form/admin-license-form.presentational.html @@ -1,93 +1,99 @@ <form [formGroup]="form" + class="form-two-columns" (ngSubmit)="onSubmit()" > - <mat-form-field> - <mat-label>{{'admin.license.form.title' | translate}}</mat-label> - <input matInput - [formControlName]="formDefinition.title" - [required]="isRequired(formDefinition.title)" - > - <mat-error *ngIf="getFormControl(formDefinition.title).invalid">{{'required' | translate}}</mat-error> - <mat-error *ngFor="let error of getFormControl(formDefinition.title).errors?.errorsFromBackend">{{error}}</mat-error> - </mat-form-field> + <div class="two-columns-wrapper"> + <div class="left-part"> + <mat-form-field> + <mat-label>{{'admin.license.form.title' | translate}}</mat-label> + <input matInput + [formControlName]="formDefinition.title" + [required]="isRequired(formDefinition.title)" + > + <mat-error *ngIf="getFormControl(formDefinition.title).invalid">{{'required' | translate}}</mat-error> + <mat-error *ngFor="let error of getFormControl(formDefinition.title).errors?.errorsFromBackend">{{error}}</mat-error> + </mat-form-field> - <mat-form-field> - <mat-label>{{'admin.license.form.openLicenseId' | translate}}</mat-label> - <input matInput - [formControlName]="formDefinition.openLicenseId" - [required]="isRequired(formDefinition.openLicenseId)" - > - <mat-error *ngIf="getFormControl(formDefinition.openLicenseId).invalid">{{'required' | translate}}</mat-error> - <mat-error *ngFor="let error of getFormControl(formDefinition.openLicenseId).errors?.errorsFromBackend">{{error}}</mat-error> - </mat-form-field> + <mat-form-field> + <mat-label>{{'admin.license.form.openLicenseId' | translate}}</mat-label> + <input matInput + [formControlName]="formDefinition.openLicenseId" + [required]="isRequired(formDefinition.openLicenseId)" + > + <mat-error *ngIf="getFormControl(formDefinition.openLicenseId).invalid">{{'required' | translate}}</mat-error> + <mat-error *ngFor="let error of getFormControl(formDefinition.openLicenseId).errors?.errorsFromBackend">{{error}}</mat-error> + </mat-form-field> - <mat-form-field> - <mat-label>{{'admin.license.form.url' | translate}}</mat-label> - <input matInput - [formControlName]="formDefinition.url" - > - <mat-error *ngFor="let error of getFormControl(formDefinition.url).errors?.errorsFromBackend">{{error}}</mat-error> - </mat-form-field> + <mat-form-field> + <mat-label>{{'admin.license.form.url' | translate}}</mat-label> + <input matInput + [formControlName]="formDefinition.url" + > + <mat-error *ngFor="let error of getFormControl(formDefinition.url).errors?.errorsFromBackend">{{error}}</mat-error> + </mat-form-field> - <mat-form-field> - <mat-label>{{'admin.license.form.maintainer' | translate}}</mat-label> - <input matInput - [formControlName]="formDefinition.maintainer" - > - <mat-error *ngFor="let error of getFormControl(formDefinition.maintainer).errors?.errorsFromBackend">{{error}}</mat-error> - </mat-form-field> + <mat-form-field> + <mat-label>{{'admin.license.form.odConformance' | translate}}</mat-label> + <mat-select [formControlName]="formDefinition.odConformance"> + <mat-option *ngFor="let odConformance of licenseOdConformanceEnum" + [value]="odConformance" + > + {{odConformance}} + </mat-option> + </mat-select> + <mat-error *ngFor="let error of getFormControl(formDefinition.odConformance).errors?.errorsFromBackend">{{error}}</mat-error> + </mat-form-field> - <mat-form-field> - <mat-label>{{'admin.license.form.odConformance' | translate}}</mat-label> - <mat-select [formControlName]="formDefinition.odConformance"> - <mat-option *ngFor="let odConformance of licenseOdConformanceEnum" - [value]="odConformance" - > - {{odConformance}} - </mat-option> - </mat-select> - <mat-error *ngFor="let error of getFormControl(formDefinition.odConformance).errors?.errorsFromBackend">{{error}}</mat-error> - </mat-form-field> + <mat-form-field> + <mat-label>{{'admin.license.form.osdConformance' | translate}}</mat-label> + <mat-select [formControlName]="formDefinition.osdConformance"> + <mat-option *ngFor="let osdConformance of licenseOsdConformanceEnum" + [value]="osdConformance" + > + {{osdConformance}} + </mat-option> + </mat-select> + <mat-error *ngFor="let error of getFormControl(formDefinition.osdConformance).errors?.errorsFromBackend">{{error}}</mat-error> + </mat-form-field> + </div> + <div class="right-part"> + <mat-form-field> + <mat-label>{{'admin.license.form.maintainer' | translate}}</mat-label> + <input matInput + [formControlName]="formDefinition.maintainer" + > + <mat-error *ngFor="let error of getFormControl(formDefinition.maintainer).errors?.errorsFromBackend">{{error}}</mat-error> + </mat-form-field> - <mat-form-field> - <mat-label>{{'admin.license.form.osdConformance' | translate}}</mat-label> - <mat-select [formControlName]="formDefinition.osdConformance"> - <mat-option *ngFor="let osdConformance of licenseOsdConformanceEnum" - [value]="osdConformance" - > - {{osdConformance}} - </mat-option> - </mat-select> - <mat-error *ngFor="let error of getFormControl(formDefinition.osdConformance).errors?.errorsFromBackend">{{error}}</mat-error> - </mat-form-field> + <mat-form-field> + <mat-label>{{'admin.license.form.status' | translate}}</mat-label> + <mat-select [formControlName]="formDefinition.status"> + <mat-option *ngFor="let status of licensesStatusEnum" + [value]="status" + > + {{status}} + </mat-option> + </mat-select> + <mat-error *ngFor="let error of getFormControl(formDefinition.status).errors?.errorsFromBackend">{{error}}</mat-error> + </mat-form-field> - <mat-form-field> - <mat-label>{{'admin.license.form.status' | translate}}</mat-label> - <mat-select [formControlName]="formDefinition.status"> - <mat-option *ngFor="let status of licensesStatusEnum" - [value]="status" - > - {{status}} - </mat-option> - </mat-select> - <mat-error *ngFor="let error of getFormControl(formDefinition.status).errors?.errorsFromBackend">{{error}}</mat-error> - </mat-form-field> + <mat-checkbox [formControlName]="formDefinition.isGeneric">{{'admin.license.form.isGeneric' | translate }}</mat-checkbox> - <mat-checkbox [formControlName]="formDefinition.isGeneric">{{'admin.license.form.isGeneric' | translate }}</mat-checkbox> + <mat-form-field> + <mat-label>{{'admin.license.form.family' | translate}}</mat-label> + <input matInput + [formControlName]="formDefinition.family" + > + <mat-error *ngFor="let error of getFormControl(formDefinition.family).errors?.errorsFromBackend">{{error}}</mat-error> + </mat-form-field> - <mat-form-field> - <mat-label>{{'admin.license.form.family' | translate}}</mat-label> - <input matInput - [formControlName]="formDefinition.family" - > - <mat-error *ngFor="let error of getFormControl(formDefinition.family).errors?.errorsFromBackend">{{error}}</mat-error> - </mat-form-field> - - <mat-checkbox [formControlName]="formDefinition.domainContent">{{'admin.license.form.domainContent' | translate }}</mat-checkbox> + <mat-checkbox [formControlName]="formDefinition.domainContent">{{'admin.license.form.domainContent' | translate }}</mat-checkbox> - <mat-checkbox [formControlName]="formDefinition.domainData">{{'admin.license.form.domainData' | translate }}</mat-checkbox> + <mat-checkbox [formControlName]="formDefinition.domainData">{{'admin.license.form.domainData' | translate }}</mat-checkbox> - <mat-checkbox [formControlName]="formDefinition.domainSoftware">{{'admin.license.form.domainSoftware' | translate }}</mat-checkbox> + <mat-checkbox [formControlName]="formDefinition.domainSoftware">{{'admin.license.form.domainSoftware' | translate }}</mat-checkbox> + </div> + </div> <div class="submit-button"> <button *ngIf="!readonly" diff --git a/src/app/features/admin/oauth2-client/components/presentationals/admin-oauth2-client-form/admin-oauth2-client-form.presentational.html b/src/app/features/admin/oauth2-client/components/presentationals/admin-oauth2-client-form/admin-oauth2-client-form.presentational.html index a35d65885..ea541b01d 100644 --- a/src/app/features/admin/oauth2-client/components/presentationals/admin-oauth2-client-form/admin-oauth2-client-form.presentational.html +++ b/src/app/features/admin/oauth2-client/components/presentationals/admin-oauth2-client-form/admin-oauth2-client-form.presentational.html @@ -1,105 +1,113 @@ <form [formGroup]="form" + class="form-two-columns" (ngSubmit)="onSubmit()" > + <div class="two-columns-wrapper"> + <div class="left-part"> + <mat-form-field> + <mat-label>{{'admin.oauth2.form.name' | translate }}</mat-label> + <input matInput + [formControlName]="formDefinition.name" + [required]="isRequired(formDefinition.name)" + > + <mat-error *ngIf="getFormControl(formDefinition.name).invalid">{{'required' | translate}}</mat-error> + <mat-error *ngFor="let error of getFormControl(formDefinition.name).errors?.errorsFromBackend">{{error}}</mat-error> + </mat-form-field> - <mat-form-field> - <mat-label>{{'admin.oauth2.form.name' | translate }}</mat-label> - <input matInput - [formControlName]="formDefinition.name" - [required]="isRequired(formDefinition.name)" - > - <mat-error *ngIf="getFormControl(formDefinition.name).invalid">{{'required' | translate}}</mat-error> - <mat-error *ngFor="let error of getFormControl(formDefinition.name).errors?.errorsFromBackend">{{error}}</mat-error> - </mat-form-field> + <mat-form-field> + <mat-label>{{'admin.oauth2.form.clientId' | translate }}</mat-label> + <input matInput + [formControlName]="formDefinition.clientId" + [required]="isRequired(formDefinition.clientId)" + > + <mat-error *ngIf="getFormControl(formDefinition.clientId).invalid">{{'required' | translate}}</mat-error> + <mat-error + *ngFor="let error of getFormControl(formDefinition.clientId).errors?.errorsFromBackend" + >{{error}}</mat-error> + </mat-form-field> - <mat-form-field> - <mat-label>{{'admin.oauth2.form.clientId' | translate }}</mat-label> - <input matInput - [formControlName]="formDefinition.clientId" - [required]="isRequired(formDefinition.clientId)" - > - <mat-error *ngIf="getFormControl(formDefinition.clientId).invalid">{{'required' | translate}}</mat-error> - <mat-error - *ngFor="let error of getFormControl(formDefinition.clientId).errors?.errorsFromBackend" - >{{error}}</mat-error> - </mat-form-field> + <mat-form-field> + <input matInput + [formControlName]="formDefinition.secret" + [required]="isRequired(formDefinition.secret)" + [type]="hide ? 'password' : 'text'" + > + <button mat-icon-button + matSuffix + [attr.aria-label]="'Hide password'" + [attr.aria-pressed]="hide" + (click)="hide = !hide" + > + <fa-icon matSuffix + icon="{{hide ? 'eye-slash' : 'eye'}}" + ></fa-icon> + </button> + </mat-form-field> - <mat-form-field> - <input matInput - [formControlName]="formDefinition.secret" - [required]="isRequired(formDefinition.secret)" - [type]="hide ? 'password' : 'text'" - > - <button mat-icon-button - matSuffix - [attr.aria-label]="'Hide password'" - [attr.aria-pressed]="hide" - (click)="hide = !hide" - > - <fa-icon matSuffix - icon="{{hide ? 'eye-slash' : 'eye'}}" - ></fa-icon> - </button> - </mat-form-field> + <mat-form-field> + <mat-label>{{'admin.oauth2.form.redirectUri' | translate }}</mat-label> + <input matInput + [formControlName]="formDefinition.redirectUri" + [required]="isRequired(formDefinition.redirectUri)" + > + <mat-error *ngIf="getFormControl(formDefinition.redirectUri).invalid">{{'required' | translate}}</mat-error> + <mat-error + *ngFor="let error of getFormControl(formDefinition.redirectUri).errors?.errorsFromBackend" + >{{error}}</mat-error> + </mat-form-field> - <mat-form-field> - <mat-label>{{'admin.oauth2.form.redirectUri' | translate }}</mat-label> - <input matInput - [formControlName]="formDefinition.redirectUri" - [required]="isRequired(formDefinition.redirectUri)" - > - <mat-error *ngIf="getFormControl(formDefinition.redirectUri).invalid">{{'required' | translate}}</mat-error> - <mat-error - *ngFor="let error of getFormControl(formDefinition.redirectUri).errors?.errorsFromBackend" - >{{error}}</mat-error> - </mat-form-field> + <mat-form-field> + <mat-label>{{'admin.oauth2.form.scope' | translate }}</mat-label> + <input matInput + [formControlName]="formDefinition.scope" + [required]="isRequired(formDefinition.scope)" + > + <mat-error *ngIf="getFormControl(formDefinition.scope).invalid">{{'required' | translate}}</mat-error> + <mat-error *ngFor="let error of getFormControl(formDefinition.name).errors?.errorsFromBackend">{{error}}</mat-error> + </mat-form-field> + </div> - <mat-form-field> - <mat-label>{{'admin.oauth2.form.scope' | translate }}</mat-label> - <input matInput - [formControlName]="formDefinition.scope" - [required]="isRequired(formDefinition.scope)" - > - <mat-error *ngIf="getFormControl(formDefinition.scope).invalid">{{'required' | translate}}</mat-error> - <mat-error *ngFor="let error of getFormControl(formDefinition.name).errors?.errorsFromBackend">{{error}}</mat-error> - </mat-form-field> + <div class="right-part"> + <mat-form-field> + <mat-label>{{'admin.oauth2.form.accessTokenValiditySeconds' | translate }}</mat-label> + <input matInput + type="number" + [formControlName]="formDefinition.accessTokenValiditySeconds" + [required]="isRequired(formDefinition.accessTokenValiditySeconds)" + > + <mat-error + *ngFor="let error of getFormControl(formDefinition.accessTokenValiditySeconds).errors?.errorsFromBackend" + >{{error}}</mat-error> + </mat-form-field> + + <mat-form-field> + <mat-label>{{'admin.oauth2.form.refreshTokenValiditySeconds' | translate }}</mat-label> + <input matInput + type="number" + [formControlName]="formDefinition.refreshTokenValiditySeconds" + [required]="isRequired(formDefinition.refreshTokenValiditySeconds)" + > + <mat-error + *ngFor="let error of getFormControl(formDefinition.refreshTokenValiditySeconds).errors?.errorsFromBackend" + >{{error}}</mat-error> + </mat-form-field> - <div> - <mat-label>{{'admin.oauth2.form.grantTypes' | translate }}</mat-label> - <div *ngFor="let grant of grantTypesArray.controls"> - <mat-checkbox [formControl]="grant.get('selected')"> - {{grant.value.name}} - </mat-checkbox> + <div> + <mat-label [class.disabled]="readonly">{{'admin.oauth2.form.grantTypes' | translate }}</mat-label> + <div *ngFor="let grant of grantTypesArray.controls"> + <mat-checkbox [formControl]="grant.get('selected')" + [disabled]="readonly" + > + {{grant.value.name}} + </mat-checkbox> + </div> + <mat-error + *ngFor="let error of getFormControl(formDefinition.grantTypes).errors?.errorsFromBackend" + >{{error}}</mat-error> + </div> </div> - <mat-error - *ngFor="let error of getFormControl(formDefinition.grantTypes).errors?.errorsFromBackend" - >{{error}}</mat-error> </div> - <mat-form-field> - <mat-label>{{'admin.oauth2.form.accessTokenValiditySeconds' | translate }}</mat-label> - <input matInput - type="number" - [formControlName]="formDefinition.accessTokenValiditySeconds" - [required]="isRequired(formDefinition.accessTokenValiditySeconds)" - > - <mat-error - *ngFor="let error of getFormControl(formDefinition.accessTokenValiditySeconds).errors?.errorsFromBackend" - >{{error}}</mat-error> - </mat-form-field> - - <mat-form-field> - <mat-label>{{'admin.oauth2.form.refreshTokenValiditySeconds' | translate }}</mat-label> - <input matInput - type="number" - [formControlName]="formDefinition.refreshTokenValiditySeconds" - [required]="isRequired(formDefinition.refreshTokenValiditySeconds)" - > - <mat-error - *ngFor="let error of getFormControl(formDefinition.refreshTokenValiditySeconds).errors?.errorsFromBackend" - >{{error}}</mat-error> - </mat-form-field> - <div class="submit-button"> <button *ngIf="!readonly" mat-raised-button diff --git a/src/app/features/admin/orgunit/components/presentationals/admin-orgunit-form/admin-orgunit-form.presentational.html b/src/app/features/admin/orgunit/components/presentationals/admin-orgunit-form/admin-orgunit-form.presentational.html index e7b90ebb1..6755e7f67 100644 --- a/src/app/features/admin/orgunit/components/presentationals/admin-orgunit-form/admin-orgunit-form.presentational.html +++ b/src/app/features/admin/orgunit/components/presentationals/admin-orgunit-form/admin-orgunit-form.presentational.html @@ -1,107 +1,115 @@ <form [formGroup]="form" + class="form-two-columns" (ngSubmit)="onSubmit()" > - <mat-form-field *ngIf="getFormControl(formDefinition.name) as fd"> - <input [formControl]="fd" - solidifyValidation - matInput - [placeholder]="'admin.organizationalUnit.form.name' | translate" - [required]="formValidationHelper.hasRequiredField(fd)" - > - <mat-error>{{formValidationHelper.getFormError(fd)}}</mat-error> - </mat-form-field> + <div class="two-columns-wrapper"> + <div class="left-part"> - <dlcm-shared-multi-select-default-value [list]="listSubmissionPolicies" - [formControl]="form.get(formDefinition.submissionPolicies)" - [formControlDefault]="form.get(formDefinition.defaultSubmissionPolicy)" - [required]="isRequired(formDefinition.submissionPolicies)" - [labelKey]="'name'" - [valueKey]="'resId'" - [placeholder]="'admin.organizationalUnit.form.submissionPolicy' | translate" - > - </dlcm-shared-multi-select-default-value> + <mat-form-field *ngIf="getFormControl(formDefinition.name) as fd"> + <input [formControl]="fd" + solidifyValidation + matInput + [placeholder]="'admin.organizationalUnit.form.name' | translate" + [required]="formValidationHelper.hasRequiredField(fd)" + > + <mat-error>{{formValidationHelper.getFormError(fd)}}</mat-error> + </mat-form-field> - <dlcm-shared-multi-select-default-value [list]="listPreservationPolicies" - [formControl]="form.get(formDefinition.preservationPolicies)" - [formControlDefault]="form.get(formDefinition.defaultPreservationPolicy)" - [required]="isRequired(formDefinition.preservationPolicies)" - [labelKey]="'name'" - [valueKey]="'resId'" - [placeholder]="'admin.organizationalUnit.form.preservationPolicy' | translate" - > - </dlcm-shared-multi-select-default-value> + <dlcm-shared-multi-select-default-value [list]="listSubmissionPolicies" + [formControl]="form.get(formDefinition.submissionPolicies)" + [formControlDefault]="form.get(formDefinition.defaultSubmissionPolicy)" + [required]="isRequired(formDefinition.submissionPolicies)" + [labelKey]="'name'" + [valueKey]="'resId'" + [placeholder]="'admin.organizationalUnit.form.submissionPolicy' | translate" + > + </dlcm-shared-multi-select-default-value> - <mat-form-field *ngIf="getFormControl(formDefinition.description) as fd"> - <input [formControl]="fd" - solidifyValidation - matInput - [placeholder]="'admin.organizationalUnit.form.description' | translate" - [required]="formValidationHelper.hasRequiredField(fd)" - > - <mat-error>{{formValidationHelper.getFormError(fd)}}</mat-error> - </mat-form-field> + <dlcm-shared-multi-select-default-value [list]="listPreservationPolicies" + [formControl]="form.get(formDefinition.preservationPolicies)" + [formControlDefault]="form.get(formDefinition.defaultPreservationPolicy)" + [required]="isRequired(formDefinition.preservationPolicies)" + [labelKey]="'name'" + [valueKey]="'resId'" + [placeholder]="'admin.organizationalUnit.form.preservationPolicy' | translate" + > + </dlcm-shared-multi-select-default-value> - <mat-form-field *ngIf="getFormControl(formDefinition.url) as fd"> - <input [formControl]="fd" - solidifyValidation - matInput - [placeholder]="'admin.organizationalUnit.form.url' | translate" - > - <mat-error>{{formValidationHelper.getFormError(fd)}}</mat-error> - </mat-form-field> + <mat-form-field *ngIf="getFormControl(formDefinition.description) as fd"> + <input [formControl]="fd" + solidifyValidation + matInput + [placeholder]="'admin.organizationalUnit.form.description' | translate" + [required]="formValidationHelper.hasRequiredField(fd)" + > + <mat-error>{{formValidationHelper.getFormError(fd)}}</mat-error> + </mat-form-field> - <mat-form-field> - <input [formControlName]="formDefinition.openingDate" - matInput - [matDatepicker]="openingDateDatepicker" - [placeholder]="'admin.organizationalUnit.form.openingDate' | translate" - > - <mat-datepicker-toggle matSuffix - [for]="openingDateDatepicker" - ></mat-datepicker-toggle> - <mat-datepicker [touchUi]="breakpointService.isSmallerThanMd()" - #openingDateDatepicker - ></mat-datepicker> - </mat-form-field> + <mat-form-field *ngIf="getFormControl(formDefinition.url) as fd"> + <input [formControl]="fd" + solidifyValidation + matInput + [placeholder]="'admin.organizationalUnit.form.url' | translate" + > + <mat-error>{{formValidationHelper.getFormError(fd)}}</mat-error> + </mat-form-field> - <mat-form-field> - <input [formControlName]="formDefinition.closingDate" - matInput - [matDatepicker]="closingDateDatepicker" - [placeholder]="'admin.organizationalUnit.form.closingDate' | translate" - > - <mat-datepicker-toggle matSuffix - [for]="closingDateDatepicker" - ></mat-datepicker-toggle> - <mat-datepicker [touchUi]="breakpointService.isSmallerThanMd()" - #closingDateDatepicker - ></mat-datepicker> - </mat-form-field> + <mat-form-field> + <input [formControlName]="formDefinition.openingDate" + matInput + [matDatepicker]="openingDateDatepicker" + [placeholder]="'admin.organizationalUnit.form.openingDate' | translate" + > + <mat-datepicker-toggle matSuffix + [for]="openingDateDatepicker" + ></mat-datepicker-toggle> + <mat-datepicker [touchUi]="breakpointService.isSmallerThanMd()" + #openingDateDatepicker + ></mat-datepicker> + </mat-form-field> + + <mat-form-field> + <input [formControlName]="formDefinition.closingDate" + matInput + [matDatepicker]="closingDateDatepicker" + [placeholder]="'admin.organizationalUnit.form.closingDate' | translate" + > + <mat-datepicker-toggle matSuffix + [for]="closingDateDatepicker" + ></mat-datepicker-toggle> + <mat-datepicker [touchUi]="breakpointService.isSmallerThanMd()" + #closingDateDatepicker + ></mat-datepicker> + </mat-form-field> + </div> - <dlcm-shared-person-orgunit-role [formControl]="form.get(formDefinition.personRole)" - [mode]="personOrgUnitRoleMode.person" - [selectedPersonOrOrgUnitRole]="selectedPersonRole" - [listPerson]="listPerson" - [listRole]="listRole" - ></dlcm-shared-person-orgunit-role> + <div class="right-part"> + <dlcm-shared-person-orgunit-role [formControl]="form.get(formDefinition.personRole)" + [mode]="personOrgUnitRoleMode.person" + [selectedPersonOrOrgUnitRole]="selectedPersonRole" + [listPerson]="listPerson" + [listRole]="listRole" + ></dlcm-shared-person-orgunit-role> - <dlcm-shared-multi-select [list]="listFundingAgencies" - [formControl]="form.get(formDefinition.fundingAgencies)" - [required]="isRequired(formDefinition.fundingAgencies)" - [labelKey]="'name'" - [valueKey]="'resId'" - [placeholder]="'admin.organizationalUnit.form.fundingAgency' | translate" - > - </dlcm-shared-multi-select> + <dlcm-shared-multi-select [list]="listFundingAgencies" + [formControl]="form.get(formDefinition.fundingAgencies)" + [required]="isRequired(formDefinition.fundingAgencies)" + [labelKey]="'name'" + [valueKey]="'resId'" + [placeholder]="'admin.organizationalUnit.form.fundingAgency' | translate" + > + </dlcm-shared-multi-select> - <dlcm-shared-multi-select [list]="listInstitutions" - [formControl]="form.get(formDefinition.institutions)" - [required]="isRequired(formDefinition.institutions)" - [labelKey]="'name'" - [valueKey]="'resId'" - [placeholder]="'admin.organizationalUnit.form.institutions' | translate" - > - </dlcm-shared-multi-select> + <dlcm-shared-multi-select [list]="listInstitutions" + [formControl]="form.get(formDefinition.institutions)" + [required]="isRequired(formDefinition.institutions)" + [labelKey]="'name'" + [valueKey]="'resId'" + [placeholder]="'admin.organizationalUnit.form.institutions' | translate" + > + </dlcm-shared-multi-select> + </div> + </div> <div class="submit-button"> <button *ngIf="!readonly" diff --git a/src/app/features/admin/user/components/presentationals/admin-user-form/admin-user-form.presentational.html b/src/app/features/admin/user/components/presentationals/admin-user-form/admin-user-form.presentational.html index 25ad39fdc..de8d9463b 100644 --- a/src/app/features/admin/user/components/presentationals/admin-user-form/admin-user-form.presentational.html +++ b/src/app/features/admin/user/components/presentationals/admin-user-form/admin-user-form.presentational.html @@ -1,105 +1,113 @@ <form [formGroup]="form" + class="form-two-columns" (ngSubmit)="onSubmit()" > - <mat-form-field> - <mat-label>{{'admin.user.form.externalUid' | translate }}</mat-label> - <input matInput - [formControlName]="formDefinition.externalUid" - [required]="isRequired(formDefinition.externalUid)" - > - <mat-error *ngIf="getFormControl(formDefinition.externalUid).invalid">{{'required' | translate}}</mat-error> - <mat-error *ngFor="let error of getFormControl(formDefinition.externalUid).errors?.errorsFromBackend">{{error}}</mat-error> - </mat-form-field> + <div class="two-columns-wrapper"> + <div class="left-part"> + <mat-form-field> + <mat-label>{{'admin.user.form.externalUid' | translate }}</mat-label> + <input matInput + [formControlName]="formDefinition.externalUid" + [required]="isRequired(formDefinition.externalUid)" + > + <mat-error *ngIf="getFormControl(formDefinition.externalUid).invalid">{{'required' | translate}}</mat-error> + <mat-error *ngFor="let error of getFormControl(formDefinition.externalUid).errors?.errorsFromBackend">{{error}}</mat-error> + </mat-form-field> - <mat-form-field> - <mat-label>{{'admin.user.form.targetedUid' | translate }}</mat-label> - <input matInput - [formControlName]="formDefinition.targetedUid" - > - <mat-error *ngFor="let error of getFormControl(formDefinition.targetedUid).errors?.errorsFromBackend">{{error}}</mat-error> - </mat-form-field> + <mat-form-field> + <mat-label>{{'admin.user.form.targetedUid' | translate }}</mat-label> + <input matInput + [formControlName]="formDefinition.targetedUid" + > + <mat-error *ngFor="let error of getFormControl(formDefinition.targetedUid).errors?.errorsFromBackend">{{error}}</mat-error> + </mat-form-field> - <mat-form-field> - <mat-label>{{'admin.user.form.firstName' | translate }}</mat-label> - <input matInput - [formControlName]="formDefinition.firstName" - [required]="isRequired(formDefinition.firstName)" - > - <mat-error *ngIf="getFormControl(formDefinition.firstName).invalid">{{'required' | translate}}</mat-error> - <mat-error *ngFor="let error of getFormControl(formDefinition.firstName).errors?.errorsFromBackend">{{error}}</mat-error> - </mat-form-field> - - <mat-form-field> - <mat-label>{{'admin.user.form.lastName' | translate }}</mat-label> - <input matInput - [formControlName]="formDefinition.lastName" - [required]="isRequired(formDefinition.lastName)" - > - <mat-error *ngIf="getFormControl(formDefinition.lastName).invalid">{{'required' | translate}}</mat-error> - <mat-error *ngFor="let error of getFormControl(formDefinition.lastName).errors?.errorsFromBackend">{{error}}</mat-error> - </mat-form-field> + <mat-form-field> + <mat-label>{{'admin.user.form.firstName' | translate }}</mat-label> + <input matInput + [formControlName]="formDefinition.firstName" + [required]="isRequired(formDefinition.firstName)" + > + <mat-error *ngIf="getFormControl(formDefinition.firstName).invalid">{{'required' | translate}}</mat-error> + <mat-error *ngFor="let error of getFormControl(formDefinition.firstName).errors?.errorsFromBackend">{{error}}</mat-error> + </mat-form-field> - <mat-form-field> - <mat-label>{{'admin.user.form.homeOrganization' | translate }}</mat-label> - <input matInput - [formControlName]="formDefinition.homeOrganization" - [readonly]="true" - > - </mat-form-field> + <mat-form-field> + <mat-label>{{'admin.user.form.lastName' | translate }}</mat-label> + <input matInput + [formControlName]="formDefinition.lastName" + [required]="isRequired(formDefinition.lastName)" + > + <mat-error *ngIf="getFormControl(formDefinition.lastName).invalid">{{'required' | translate}}</mat-error> + <mat-error *ngFor="let error of getFormControl(formDefinition.lastName).errors?.errorsFromBackend">{{error}}</mat-error> + </mat-form-field> - <mat-form-field> - <mat-label>{{'admin.user.form.email' | translate }}</mat-label> - <input matInput - [formControlName]="formDefinition.email" - [required]="isRequired(formDefinition.email)" - > - <mat-error *ngIf="getFormControl(formDefinition.email).invalid">{{'required' | translate}}</mat-error> - <mat-error *ngFor="let error of getFormControl(formDefinition.email).errors?.errorsFromBackend">{{error}}</mat-error> - </mat-form-field> + <mat-form-field> + <mat-label>{{'admin.user.form.homeOrganization' | translate }}</mat-label> + <input matInput + [formControlName]="formDefinition.homeOrganization" + [readonly]="true" + > + </mat-form-field> - <mat-form-field> - <mat-label>{{'admin.user.form.person' | translate }}</mat-label> - <mat-select [formControlName]="formDefinition.person"> - <mat-option [value]="null"></mat-option> - <mat-option *ngFor="let person of listPersons" - [value]="person.resId" - > - {{person.fullName}} - </mat-option> - </mat-select> - </mat-form-field> + <mat-form-field> + <mat-label>{{'admin.user.form.email' | translate }}</mat-label> + <input matInput + [formControlName]="formDefinition.email" + [required]="isRequired(formDefinition.email)" + > + <mat-error *ngIf="getFormControl(formDefinition.email).invalid">{{'required' | translate}}</mat-error> + <mat-error *ngFor="let error of getFormControl(formDefinition.email).errors?.errorsFromBackend">{{error}}</mat-error> + </mat-form-field> + </div> + <div class="right-part"> + <mat-form-field> + <mat-label>{{'admin.user.form.person' | translate }}</mat-label> + <mat-select [formControlName]="formDefinition.person"> + <mat-option [value]="null"></mat-option> + <mat-option *ngFor="let person of listPersons" + [value]="person.resId" + > + {{person.fullName}} + </mat-option> + </mat-select> + </mat-form-field> - <mat-form-field> - <mat-label>{{'admin.user.form.accessToken' | translate }}</mat-label> - <input matInput - [formControlName]="formDefinition.accessToken" - [required]="isRequired(formDefinition.accessToken)" - > - <mat-error *ngIf="getFormControl(formDefinition.accessToken).invalid">{{'required' | translate}}</mat-error> - <mat-error *ngFor="let error of getFormControl(formDefinition.accessToken).errors?.errorsFromBackend">{{error}}</mat-error> - </mat-form-field> + <mat-form-field> + <mat-label>{{'admin.user.form.accessToken' | translate }}</mat-label> + <input matInput + [formControlName]="formDefinition.accessToken" + [required]="isRequired(formDefinition.accessToken)" + > + <mat-error *ngIf="getFormControl(formDefinition.accessToken).invalid">{{'required' | translate}}</mat-error> + <mat-error *ngFor="let error of getFormControl(formDefinition.accessToken).errors?.errorsFromBackend">{{error}}</mat-error> + </mat-form-field> - <mat-form-field> - <mat-label>{{'admin.user.form.refreshToken' | translate }}</mat-label> - <input matInput - [formControlName]="formDefinition.refreshToken" - [required]="isRequired(formDefinition.refreshToken)" - > - <mat-error *ngIf="getFormControl(formDefinition.refreshToken).invalid">{{'required' | translate}}</mat-error> - <mat-error *ngFor="let error of getFormControl(formDefinition.refreshToken).errors?.errorsFromBackend">{{error}}</mat-error> - </mat-form-field> + <mat-form-field> + <mat-label>{{'admin.user.form.refreshToken' | translate }}</mat-label> + <input matInput + [formControlName]="formDefinition.refreshToken" + [required]="isRequired(formDefinition.refreshToken)" + > + <mat-error *ngIf="getFormControl(formDefinition.refreshToken).invalid">{{'required' | translate}}</mat-error> + <mat-error *ngFor="let error of getFormControl(formDefinition.refreshToken).errors?.errorsFromBackend">{{error}}</mat-error> + </mat-form-field> - <div *ngIf="!readonly"> - <mat-label>{{'admin.user.form.roles' | translate }}</mat-label> - <div *ngFor="let role of getApplicationRolesNamesArray.controls"> - <mat-checkbox [formControl]="role.get('selected')"> - {{role.value.name}} - </mat-checkbox> + <div> + <mat-label [class.disabled]="readonly">{{'admin.user.form.roles' | translate }}</mat-label> + <div *ngFor="let role of getApplicationRolesNamesArray.controls"> + <mat-checkbox [formControl]="role.get('selected')" + [disabled]="readonly" + > + {{role.value.name}} + </mat-checkbox> + </div> + <mat-error *ngIf="getFormControl(formDefinition.applicationRoles).invalid">{{'required' | translate}}</mat-error> + <mat-error + *ngFor="let error of getFormControl(formDefinition.applicationRoles).errors?.errorsFromBackend" + >{{error}}</mat-error> + </div> </div> - <mat-error *ngIf="getFormControl(formDefinition.applicationRoles).invalid">{{'required' | translate}}</mat-error> - <mat-error - *ngFor="let error of getFormControl(formDefinition.applicationRoles).errors?.errorsFromBackend" - >{{error}}</mat-error> </div> <div class="submit-button"> diff --git a/src/app/features/deposit/components/presentationals/deposit-form/deposit-form.presentational.html b/src/app/features/deposit/components/presentationals/deposit-form/deposit-form.presentational.html index 3eed85800..db9371c78 100644 --- a/src/app/features/deposit/components/presentationals/deposit-form/deposit-form.presentational.html +++ b/src/app/features/deposit/components/presentationals/deposit-form/deposit-form.presentational.html @@ -1,7 +1,8 @@ <form [formGroup]="form" + class="form-two-columns" (ngSubmit)="onSubmit()" > - <div class="input-part"> + <div class="two-columns-wrapper"> <div class="left-part"> <mat-form-field *ngIf="getFormControl(formDefinition.organizationalUnitId) as fd"> <mat-label>{{'deposit.organizationUnit' | translate }}</mat-label> diff --git a/src/app/features/deposit/components/presentationals/deposit-form/deposit-form.presentational.scss b/src/app/features/deposit/components/presentationals/deposit-form/deposit-form.presentational.scss index d91f6f857..23ff15c1c 100644 --- a/src/app/features/deposit/components/presentationals/deposit-form/deposit-form.presentational.scss +++ b/src/app/features/deposit/components/presentationals/deposit-form/deposit-form.presentational.scss @@ -2,59 +2,6 @@ @import "../../src/app/shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational.scss"; :host { - form { - > * { - width: 60%; - - @include respond-to-breakpoint('xs') { - width: 100%; - } - - @include respond-to-breakpoint('sm') { - width: 50%; - } - - @include respond-to-breakpoint('md') { - width: 80%; - } - } - } - - .input-part { - display: flex; - - .left-part { - width: 50%; - display: flex; - flex-direction: column; - padding-right: 20px; - - > * { - width: 100%; - } - } - - .right-part { - width: 50%; - display: flex; - flex-direction: column; - padding-left: 20px; - - > * { - width: 100%; - } - } - - @include respond-to-smaller-than-breakpoint('md') { - flex-direction: column; - .left-part, - .right-part { - padding: 0; - width: 100%; - } - } - } - .author-wrapper { display: flex; flex-direction: column; diff --git a/src/app/shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational.scss b/src/app/shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational.scss index 53f7c9d4f..89561727b 100644 --- a/src/app/shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational.scss +++ b/src/app/shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational.scss @@ -23,6 +23,59 @@ form { width: 40%; } } + + &.form-two-columns { + > * { + width: 60%; + + @include respond-to-breakpoint('xs') { + width: 100%; + } + + @include respond-to-breakpoint('sm') { + width: 50%; + } + + @include respond-to-breakpoint('md') { + width: 80%; + } + } + + .two-columns-wrapper { + display: flex; + + .left-part { + width: 50%; + display: flex; + flex-direction: column; + padding-right: 20px; + + > * { + width: 100%; + } + } + + .right-part { + width: 50%; + display: flex; + flex-direction: column; + padding-left: 20px; + + > * { + width: 100%; + } + } + + @include respond-to-smaller-than-breakpoint('md') { + flex-direction: column; + .left-part, + .right-part { + padding: 0; + width: 100%; + } + } + } + } } .submit-button { diff --git a/src/sass/main.scss b/src/sass/main.scss index b03097f75..bb903af60 100644 --- a/src/sass/main.scss +++ b/src/sass/main.scss @@ -144,3 +144,7 @@ button { } } } + +mat-label.disabled { + color: rgba(0, 0, 0, 0.54); +} -- GitLab