mobile friendly UI for dashboard, plan, description, dialogs, user profile, add "refresh tenant" tooltip to user profile refresh

This commit is contained in:
mchouliara 2024-09-30 14:50:48 +03:00
parent b6368cdd9b
commit f9a21c6faa
39 changed files with 193 additions and 75 deletions

View File

@ -23,6 +23,12 @@
opacity: 1; opacity: 1;
} }
@media (max-width: 500px) {
.sidenav {
width: 100% !important;
}
}
.sidenav-content { .sidenav-content {
background-color: whitesmoke; background-color: whitesmoke;
} }

View File

@ -54,7 +54,7 @@
</div> </div>
</div> </div>
<span class="col-auto ml-auto"> <span class="col-auto ml-auto">
<img class="laptop-img\6" alt="{{('ALT-TEXT.DASHBOARD-POPUP-IMAGE' | translate) ?? 'dashboard popup image' }}" src="../../../assets/images/dashboard-popup.png"> <img class="laptop-img" alt="{{('ALT-TEXT.DASHBOARD-POPUP-IMAGE' | translate) ?? 'dashboard popup image' }}" src="../../../assets/images/dashboard-popup.png">
</span> </span>
</div> </div>
</div> </div>

View File

@ -121,7 +121,7 @@
.plan-card, .plan-card,
.description-card { .description-card {
min-width: 712px; min-width: min(100%, 712px);
background: #ffffff 0% 0% no-repeat padding-box; background: #ffffff 0% 0% no-repeat padding-box;
box-shadow: 0px 3px 6px #0000001a; box-shadow: 0px 3px 6px #0000001a;
border-radius: 4px; border-radius: 4px;

View File

@ -112,7 +112,8 @@ export class DashboardComponent extends BaseComponent implements OnInit {
disableClose: false, disableClose: false,
data: { data: {
isDialog: true isDialog: true
} },
maxWidth: '600px'
}); });
} }
} }
@ -140,7 +141,8 @@ export class DashboardComponent extends BaseComponent implements OnInit {
data: { data: {
startNewPlan: false, startNewPlan: false,
formGroup: formGroup formGroup: formGroup
} },
maxWidth: '600px'
}); });
dialogRef.afterClosed().pipe(takeUntil(this._destroyed)).subscribe(result => { dialogRef.afterClosed().pipe(takeUntil(this._destroyed)).subscribe(result => {
if (result) { if (result) {

View File

@ -21,7 +21,7 @@
<!-- End of Sort by --> <!-- End of Sort by -->
<!-- Search Filter--> <!-- Search Filter-->
<div class="col-12 col-xl-auto ml-auto"> <div class="col-12 col-xl-auto ml-auto">
<mat-form-field appearance="outline" class="search-form pr-0" floatLabel="never"> <mat-form-field appearance="outline" class="search-form pr-0" floatLabel="never" style="max-width: 100%;">
<mat-icon matSuffix>search</mat-icon> <mat-icon matSuffix>search</mat-icon>
<input matInput placeholder="{{'GENERAL.CRITERIA.LIKE'| translate}}" name="likeCriteria" [formControl]="formGroup.get('like')"> <input matInput placeholder="{{'GENERAL.CRITERIA.LIKE'| translate}}" name="likeCriteria" [formControl]="formGroup.get('like')">
<mat-error *ngIf="formGroup.get('like').hasError('backendError')">{{formGroup.get('like').getError('backendError').message}}</mat-error> <mat-error *ngIf="formGroup.get('like').hasError('backendError')">{{formGroup.get('like').getError('backendError').message}}</mat-error>

View File

@ -6,7 +6,7 @@
<div class="card description-editor-header"> <div class="card description-editor-header">
<div class="col-12"> <div class="col-12">
<div class="row"> <div class="row">
<div class="col info"> <div class="col info pb-2">
@if(!viewOnly){ @if(!viewOnly){
<div *ngIf="isNew" class="description-title">{{'DESCRIPTION-EDITOR.TITLE-ADD-DESCRIPTION' | translate}}</div> <div *ngIf="isNew" class="description-title">{{'DESCRIPTION-EDITOR.TITLE-ADD-DESCRIPTION' | translate}}</div>
<div *ngIf="!isNew" class="description-title">{{'DESCRIPTION-EDITOR.TITLE-EDIT-DESCRIPTION' | translate}}</div> <div *ngIf="!isNew" class="description-title">{{'DESCRIPTION-EDITOR.TITLE-EDIT-DESCRIPTION' | translate}}</div>
@ -16,7 +16,7 @@
}@else { }@else {
<div class="description-title">{{'DESCRIPTION-EDITOR.TITLE-PREVIEW-DESCRIPTION' | translate}}</div> <div class="description-title">{{'DESCRIPTION-EDITOR.TITLE-PREVIEW-DESCRIPTION' | translate}}</div>
} }
<div *ngIf="item?.plan?.id" class=" d-flex flex-direction-row plan-info"> <div *ngIf="item?.plan?.id" class=" d-flex flex-direction-row flex-wrap plan-info">
<div class="col-auto description-to-plan">{{'DESCRIPTION-EDITOR.TO-PLAN' | translate}}</div> <div class="col-auto description-to-plan">{{'DESCRIPTION-EDITOR.TO-PLAN' | translate}}</div>
<div class="plan-title p-0">:&nbsp;{{ item?.plan?.label }}</div> <div class="plan-title p-0">:&nbsp;{{ item?.plan?.label }}</div>
<div class="col-auto d-flex align-items-center"> <div class="col-auto d-flex align-items-center">

View File

@ -93,7 +93,7 @@
.description-editor-header { .description-editor-header {
height: 113px; height: 113px;
background: var(--unnamed-color-var(--primary-color)) 0% 0% no-repeat padding-box; min-height: fit-content;
background: var(--secondary-color) 0% 0% no-repeat padding-box; background: var(--secondary-color) 0% 0% no-repeat padding-box;
box-shadow: 0px 3px 6px #00000029; box-shadow: 0px 3px 6px #00000029;
padding: 0.6rem; padding: 0.6rem;
@ -106,6 +106,7 @@
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; white-space: nowrap;
min-width: min(100%, 13rem);
} }
} }
@ -377,3 +378,12 @@ mat-icon.size-18 {
::ng-deep label { ::ng-deep label {
margin: 0; margin: 0;
} }
@media screen and (max-width: 430px){
form{
margin-top: 9rem;
}
.description-editor-form {
height: fit-content;
}
}

View File

@ -329,7 +329,8 @@ export class DescriptionListingComponent extends BaseListingComponent<BaseDescri
disableClose: false, disableClose: false,
data: { data: {
isDialog: true isDialog: true
} },
maxWidth: '600px'
}); });
} }
} }
@ -345,7 +346,8 @@ export class DescriptionListingComponent extends BaseListingComponent<BaseDescri
data: { data: {
startNewPlan: false, startNewPlan: false,
formGroup: formGroup, formGroup: formGroup,
} },
maxWidth: '600px'
}); });
dialogRef.afterClosed().pipe(takeUntil(this._destroyed)).subscribe(result => { dialogRef.afterClosed().pipe(takeUntil(this._destroyed)).subscribe(result => {
if (result) { if (result) {

View File

@ -1,6 +1,6 @@
<div class="description-card"> <div class="description-card">
<a [routerLink]="getItemLink()" class="pointer" [attr.aria-label]="'ALT-TEXT.OPEN-DESCRIPTION-OVERVIEW' | translate"> <a [routerLink]="getItemLink()" class="pointer" [attr.aria-label]="'ALT-TEXT.OPEN-DESCRIPTION-OVERVIEW' | translate">
<div class="d-flex flex-direction-row"> <div class="d-flex flex-direction-row flex-wrap">
<div class="col-auto description-label">{{'DESCRIPTION-LISTING.DESCRIPTION' | translate}}</div> <div class="col-auto description-label">{{'DESCRIPTION-LISTING.DESCRIPTION' | translate}}</div>
<div class="col-auto ml-auto"> <div class="col-auto ml-auto">
<div class="row align-items-center"> <div class="row align-items-center">
@ -25,7 +25,7 @@
<span>.</span> <span>.</span>
<span class="col">{{'DESCRIPTION-LISTING.GRANT' | translate}}: {{referenceService.getReferencesForTypesFirstSafe(description?.plan?.planReferences, [this.referenceTypeService.getGrantReferenceType()])?.reference?.label}}</span> <span class="col">{{'DESCRIPTION-LISTING.GRANT' | translate}}: {{referenceService.getReferencesForTypesFirstSafe(description?.plan?.planReferences, [this.referenceTypeService.getGrantReferenceType()])?.reference?.label}}</span>
</div> </div>
<div class="d-flex flex-direction-row pt-3 pb-3"> <div class="d-flex flex-direction-row flex-wrap pt-3 pb-3">
<div class="col-auto description-subtitle pr-0">{{'DESCRIPTION-LISTING.PART-OF' | translate}} <div class="col-auto description-subtitle pr-0">{{'DESCRIPTION-LISTING.PART-OF' | translate}}
<div class="col-auto plan-label ml-3">{{'DESCRIPTION-LISTING.PLAN' | translate}}</div> <div class="col-auto plan-label ml-3">{{'DESCRIPTION-LISTING.PLAN' | translate}}</div>
</div> </div>
@ -34,7 +34,7 @@
</a> </a>
<div class="description-card-actions"> <div class="description-card-actions">
<div role="button" <div role="button"
class="col-auto border-right pointer d-flex align-items-center gap-quarter-rem" class="col-auto description-action pointer d-flex align-items-center gap-quarter-rem"
*ngIf="fileTransformerService.availableFormatsFor(fileTransformerEntityTypeEnum.Description) && fileTransformerService.availableFormatsFor(fileTransformerEntityTypeEnum.Description).length > 0" *ngIf="fileTransformerService.availableFormatsFor(fileTransformerEntityTypeEnum.Description) && fileTransformerService.availableFormatsFor(fileTransformerEntityTypeEnum.Description).length > 0"
[matMenuTriggerFor]="exportMenu" [matMenuTriggerFor]="exportMenu"
> >
@ -42,23 +42,26 @@
{{'DESCRIPTION-LISTING.ACTIONS.EXPORT' | translate}} {{'DESCRIPTION-LISTING.ACTIONS.EXPORT' | translate}}
</div> </div>
<div role="button" <div role="button"
class="col-auto border-right pointer d-flex align-items-center gap-quarter-rem" class="col-auto description-action pointer d-flex align-items-center gap-quarter-rem"
*ngIf="canInvitePlanUsers" *ngIf="canInvitePlanUsers"
(click)="openShareDialog()" (click)="openShareDialog()"
> >
<mat-icon class="material-icons icon-align pr-2" aria-hidden>group_add</mat-icon>{{'DESCRIPTION-LISTING.ACTIONS.INVITE-SHORT' | translate}}</div> <mat-icon class="material-icons icon-align pr-2" aria-hidden>group_add</mat-icon>{{'DESCRIPTION-LISTING.ACTIONS.INVITE-SHORT' | translate}}
</div>
<div role="button" <div role="button"
class="col-auto border-right pointer d-flex align-items-center gap-quarter-rem" class="col-auto description-action pointer d-flex align-items-center gap-quarter-rem"
*ngIf="isAuthenticated()" *ngIf="isAuthenticated()"
(click)="copyToPlan(description)" (click)="copyToPlan(description)"
> >
<mat-icon class="material-icons icon-align pr-2" aria-hidden>file_copy</mat-icon>{{'DESCRIPTION-LISTING.ACTIONS.COPY-DESCRIPTION' | translate}}</div> <mat-icon class="material-icons icon-align pr-2" aria-hidden>file_copy</mat-icon>{{'DESCRIPTION-LISTING.ACTIONS.COPY-DESCRIPTION' | translate}}
</div>
<div role="button" <div role="button"
class="col-auto border-right pointer d-flex align-items-center gap-quarter-rem" class="col-auto pointer d-flex align-items-center gap-quarter-rem"
*ngIf="canDelete" *ngIf="canDelete"
(click)="deleteClicked(description.id)" (click)="deleteClicked(description.id)"
> >
<mat-icon class="material-icons icon-align pr-2" aria-hidden>delete</mat-icon>{{ 'DESCRIPTION-LISTING.ACTIONS.DELETE' | translate }}</div> <mat-icon class="material-icons icon-align pr-2" aria-hidden>delete</mat-icon>{{ 'DESCRIPTION-LISTING.ACTIONS.DELETE' | translate }}
</div>
</div> </div>
<mat-menu #actionsMenu="matMenu"> <mat-menu #actionsMenu="matMenu">
<button *ngIf="isAuthenticated()" mat-menu-item (click)="copyToPlan(description)" class="menu-item"> <button *ngIf="isAuthenticated()" mat-menu-item (click)="copyToPlan(description)" class="menu-item">

View File

@ -39,7 +39,7 @@ p {
.plan-card, .plan-card,
.description-card { .description-card {
min-width: 712px; min-width: min(100%, 712px);
background: #ffffff 0% 0% no-repeat padding-box; background: #ffffff 0% 0% no-repeat padding-box;
box-shadow: 0px 3px 6px #0000001a; box-shadow: 0px 3px 6px #0000001a;
border-radius: 4px; border-radius: 4px;
@ -107,6 +107,7 @@ input[type="text"] {
.description-subtitle { .description-subtitle {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
flex-wrap: wrap;
text-align: left; text-align: left;
font-weight: 400; font-weight: 400;
font-size: 0.875rem; font-size: 0.875rem;
@ -142,11 +143,23 @@ input[type="text"] {
.description-card-actions, .description-card-actions,
.plan-card-actions { .plan-card-actions {
container-name: description-card-actions;
container-type: inline-size;
display: flex; display: flex;
flex-direction: row; flex-direction: row;
flex-wrap: wrap;
border-top: 1px solid #dbdbdb; border-top: 1px solid #dbdbdb;
line-height: 4; line-height: 4;
color: var(--gray); color: var(--gray);
.description-action {
border-right: 1px solid #dee2e6;
}
}
@container description-card-actions (inline-size < 30rem){
.description-action{
border-right: none !important;
}
} }
.description-card-actions div, .description-card-actions div,

View File

@ -1,4 +1,4 @@
<div class="main-content pl-5 pr-5"> <div class="main-content description-overview">
<div class="container-fluid pl-0 pr-0"> <div class="container-fluid pl-0 pr-0">
<div *ngIf="description"> <div *ngIf="description">
<div class="row"> <div class="row">

View File

@ -274,5 +274,15 @@
justify-content: center; justify-content: center;
} }
.deleted-item { .deleted-item {
color: #cf1407; color: var(--warning-color);
}
.description-overview {
padding: 0 3rem;
}
@media (max-width: 500px) {
.description-overview{
padding: 0;
}
} }

View File

@ -3,7 +3,7 @@
} }
.form-container { .form-container {
width: 33rem; width: min(100%, 33rem);
min-height: 14rem; min-height: 14rem;
padding: 2.0rem; padding: 2.0rem;
} }

View File

@ -37,6 +37,7 @@ $mat-card-header-size: 40px !default;
position: fixed; position: fixed;
z-index: 1000; z-index: 1000;
height: 80px; height: 80px;
min-height: fit-content; //for mobile
display: flex; display: flex;
background: #ffffff 0% 0% no-repeat padding-box; background: #ffffff 0% 0% no-repeat padding-box;
@ -188,3 +189,7 @@ $mat-card-header-size: 40px !default;
padding: 0 !important; padding: 0 !important;
} }
} }
.container-fluid {
min-height: fit-content;
}

View File

@ -300,7 +300,8 @@ export class NavbarComponent extends BaseComponent implements OnInit {
disableClose: false, disableClose: false,
data: { data: {
isDialog: true isDialog: true
} },
maxWidth: '600px'
}); });
} }
} }

View File

@ -1,6 +1,6 @@
<div class="plan-card"> <div class="plan-card">
<a [routerLink]="isPublic ? this.routerUtils.generateUrl(['/explore-plans/overview/public/', plan.id]) : this.routerUtils.generateUrl(['/plans/overview/', plan.id])" class="pointer" [attr.aria-label]="'ALT-TEXT.OPEN-PLAN-OVERVIEW' | translate"> <a [routerLink]="isPublic ? this.routerUtils.generateUrl(['/explore-plans/overview/public/', plan.id]) : this.routerUtils.generateUrl(['/plans/overview/', plan.id])" class="pointer" [attr.aria-label]="'ALT-TEXT.OPEN-PLAN-OVERVIEW' | translate">
<div class="d-flex flex-direction-row"> <div class="d-flex flex-direction-row flex-wrap">
<div class="col-auto plan-label">{{ 'PLAN-LISTING.PLAN' | translate }}</div> <div class="col-auto plan-label">{{ 'PLAN-LISTING.PLAN' | translate }}</div>
<div class="col-auto ml-auto"> <div class="col-auto ml-auto">
<div class="row align-items-center"> <div class="row align-items-center">
@ -41,26 +41,26 @@
<a class="d-flex justify-content-center pb-3 show-more" *ngIf="plan.descriptions?.length > 3" [routerLink]="isPublic ? this.routerUtils.generateUrl(['/explore-plans/overview/public/', plan.id]) : this.routerUtils.generateUrl(['/plans/overview/', plan.id])"><u>{{'GENERAL.ACTIONS.SHOW-MORE' | translate}}</u></a> <a class="d-flex justify-content-center pb-3 show-more" *ngIf="plan.descriptions?.length > 3" [routerLink]="isPublic ? this.routerUtils.generateUrl(['/explore-plans/overview/public/', plan.id]) : this.routerUtils.generateUrl(['/plans/overview/', plan.id])"><u>{{'GENERAL.ACTIONS.SHOW-MORE' | translate}}</u></a>
</a> </a>
<div class="plan-card-actions"> <div class="plan-card-actions">
<div role="button" class="col-auto border-right pointer d-flex align-items-center gap-quarter-rem" *ngIf="canExportPlan && fileTransformerService.availableFormatsFor(fileTransformerEntityTypeEnum.Plan).length > 0" [matMenuTriggerFor]="exportMenu"> <div role="button" class="col-auto plan-action pointer d-flex align-items-center gap-quarter-rem" *ngIf="canExportPlan && fileTransformerService.availableFormatsFor(fileTransformerEntityTypeEnum.Plan).length > 0" [matMenuTriggerFor]="exportMenu">
<mat-icon class="material-icons icon-align pr-2" aria-hidden>open_in_new</mat-icon>{{'PLAN-LISTING.ACTIONS.EXPORT' | translate}} <mat-icon class="material-icons icon-align pr-2" aria-hidden>open_in_new</mat-icon>{{'PLAN-LISTING.ACTIONS.EXPORT' | translate}}
</div> </div>
<div role="button" class="col-auto border-right pointer d-flex align-items-center gap-quarter-rem" *ngIf="canEditPlan" [routerLink]="this.routerUtils.generateUrl(['/plans/edit/', plan.id])" target="_blank"> <div role="button" class="col-auto plan-action pointer d-flex align-items-center gap-quarter-rem" *ngIf="canEditPlan" [routerLink]="this.routerUtils.generateUrl(['/plans/edit/', plan.id])" target="_blank">
<mat-icon class="material-icons icon-align">add</mat-icon>{{'PLAN-LISTING.ACTIONS.ADD-DESCRIPTION-SHORT' | translate}} <mat-icon class="material-icons icon-align">add</mat-icon>{{'PLAN-LISTING.ACTIONS.ADD-DESCRIPTION-SHORT' | translate}}
</div> </div>
<div role="button" class="col-auto border-right pointer d-flex align-items-center gap-quarter-rem" *ngIf="canInvitePlanUsers" (click)="inviteToPlan()"> <div role="button" class="col-auto plan-action pointer d-flex align-items-center gap-quarter-rem" *ngIf="canInvitePlanUsers" (click)="inviteToPlan()">
<mat-icon class="material-icons icon-align pr-2" aria-hidden>group_add</mat-icon>{{'PLAN-LISTING.ACTIONS.INVITE-SHORT' | translate}} <mat-icon class="material-icons icon-align pr-2" aria-hidden>group_add</mat-icon>{{'PLAN-LISTING.ACTIONS.INVITE-SHORT' | translate}}
</div> </div>
<div role="button" class="col-auto border-right pointer d-flex align-items-center gap-quarter-rem" *ngIf="canClonePlan" (click)="cloneClicked()"> <div role="button" class="col-auto plan-action pointer d-flex align-items-center gap-quarter-rem" *ngIf="canClonePlan" (click)="cloneClicked()">
<mat-icon class="material-icons icon-align pr-2" aria-hidden>filter_none</mat-icon>{{'PLAN-LISTING.ACTIONS.CLONE' | translate}} <mat-icon class="material-icons icon-align pr-2" aria-hidden>filter_none</mat-icon>{{'PLAN-LISTING.ACTIONS.CLONE' | translate}}
</div> </div>
<div role="button" class="col-auto border-right pointer d-flex align-items-center gap-quarter-rem" *ngIf="!isAuthenticated() && showAllVersionsAction" (click)="viewVersions(plan)"> <div role="button" class="col-auto plan-action pointer d-flex align-items-center gap-quarter-rem" *ngIf="!isAuthenticated() && showAllVersionsAction" (click)="viewVersions(plan)">
<mat-icon class="material-icons icon-align pr-2" aria-hidden>library_books</mat-icon>{{'PLAN-LISTING.ACTIONS.VIEW-VERSION' | translate}} <mat-icon class="material-icons icon-align pr-2" aria-hidden>library_books</mat-icon>{{'PLAN-LISTING.ACTIONS.VIEW-VERSION' | translate}}
</div> </div>
<div role="button" class="col-auto border-right pointer d-flex align-items-center gap-quarter-rem" *ngIf="canDeletePlan" (click)="deleteClicked(plan.id)"> <div role="button" class="col-auto plan-action pointer d-flex align-items-center gap-quarter-rem" *ngIf="canDeletePlan" (click)="deleteClicked(plan.id)">
<mat-icon class="material-icons icon-align pr-2" aria-hidden>delete</mat-icon>{{ 'PLAN-LISTING.ACTIONS.DELETE' | translate }} <mat-icon class="material-icons icon-align pr-2" aria-hidden>delete</mat-icon>{{ 'PLAN-LISTING.ACTIONS.DELETE' | translate }}
</div> </div>
<div role="button" class="col-auto pointer" *ngIf="showActionsMenu" [matMenuTriggerFor]="actionsMenu" [attr.aria-label]="'ALT-TEXT.MORE-ACTIONS' | translate"> <div role="button" class="col-auto pointer d-flex align-items-center" *ngIf="showActionsMenu" [matMenuTriggerFor]="actionsMenu" [attr.aria-label]="'ALT-TEXT.MORE-ACTIONS' | translate">
<mat-icon>more_horiz</mat-icon> <mat-icon>more_horiz</mat-icon>
</div> </div>
</div> </div>

View File

@ -83,7 +83,7 @@ p {
.plan-card, .plan-card,
.description-card { .description-card {
min-width: 712px; min-width: min(100%, 712px);
background: #ffffff 0% 0% no-repeat padding-box; background: #ffffff 0% 0% no-repeat padding-box;
box-shadow: 0px 3px 6px #0000001a; box-shadow: 0px 3px 6px #0000001a;
border-radius: 4px; border-radius: 4px;
@ -140,6 +140,7 @@ input[type="text"] {
.plan-subtitle { .plan-subtitle {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
flex-wrap: wrap;
text-align: left; text-align: left;
font-weight: 400; font-weight: 400;
font-size: 0.875rem; font-size: 0.875rem;
@ -176,11 +177,24 @@ input[type="text"] {
.description-card-actions, .description-card-actions,
.plan-card-actions { .plan-card-actions {
container-name: plan-card-actions;
container-type: inline-size;
display: flex; display: flex;
flex-wrap: wrap;
flex-direction: row; flex-direction: row;
border-top: 1px solid #dbdbdb; border-top: 1px solid #dbdbdb;
line-height: 4; line-height: 4;
color: var(--gray); color: var(--gray);
.plan-action {
border-right: 1px solid #dee2e6;
}
}
@container plan-card-actions (inline-size < 35rem){
.plan-action {
border-right: none !important;
}
} }
.description-card-actions div, .description-card-actions div,

View File

@ -14,20 +14,17 @@
<p class="text">{{'START-NEW-PLAN-DIALOG.MESSAGE' | translate}}</p> <p class="text">{{'START-NEW-PLAN-DIALOG.MESSAGE' | translate}}</p>
</div> </div>
<div class="col-12"> <div class="col-12">
<div class="d-flex justify-content-between align-items-center"> <div class="d-flex flex-wrap gap-half-rem justify-content-between align-items-center">
<div class="import-file col-auto p-0"> <div class="import-file">
<div class="pr-2">
<button mat-button type="button" class="rounded-btn upload-btn d-flex flex-row align-items-center" (click)="uploadFile($event)"> <button mat-button type="button" class="rounded-btn upload-btn d-flex flex-row align-items-center" (click)="uploadFile($event)">
<mat-icon class="pr-2">file_upload</mat-icon> <mat-icon class="pr-2">file_upload</mat-icon>
{{ 'START-NEW-PLAN-DIALOG.IMPORT-FROM-FILE' | translate }} {{ 'START-NEW-PLAN-DIALOG.IMPORT-FROM-FILE' | translate }}
</button> </button>
</div> </div>
<div class="pt-1 pb-1">
{{ 'START-NEW-PLAN-DIALOG.OR' | translate }}
</div> </div>
<div class="col-auto"> <div class="start-wizard">
<p class="m-0">{{ 'START-NEW-PLAN-DIALOG.OR' | translate }}</p>
</div>
<div class="start-wizard col-auto p-0">
<div class="pr-2">
<button mat-button class="rounded-btn primary font-weight-bold d-flex flex-row align-items-center" (click)="startWizard()"> <button mat-button class="rounded-btn primary font-weight-bold d-flex flex-row align-items-center" (click)="startWizard()">
<mat-icon>chevron_right</mat-icon> <mat-icon>chevron_right</mat-icon>
{{ 'START-NEW-PLAN-DIALOG.START-NEW-PLAN' | translate }} {{ 'START-NEW-PLAN-DIALOG.START-NEW-PLAN' | translate }}
@ -36,7 +33,6 @@
</div> </div>
</div> </div>
</div> </div>
</div>
<div class="d-flex justify-content-between pt-4"> <div class="d-flex justify-content-between pt-4">
<div class="pr-2"> <div class="pr-2">

View File

@ -4,14 +4,14 @@
} }
.start-new-plan-dialog-wrapper { .start-new-plan-dialog-wrapper {
width: 33.0rem; width: min(100%, 33rem);
min-height: 14rem; min-height: 14rem;
padding: 0.28rem 0.34rem 0.875rem 0.625rem; padding: 0.28rem 0.34rem 0.875rem 0.625rem;
} }
.form-container { .form-container {
width: 33rem; width: min(100%, 33rem);
min-height: 14rem; min-height: min(100%, 14rem);
padding: 0.28rem 0.34rem 0.875rem 0.625rem; padding: 0.28rem 0.34rem 0.875rem 0.625rem;
} }
@ -50,7 +50,7 @@
} }
.actions { .actions {
width: 26.667rem; width: min(100%, 26.667rem);
display: flex; display: flex;
flex-direction: row; flex-direction: row;
justify-content: space-between; justify-content: space-between;

View File

@ -64,7 +64,7 @@ export class StartNewPlanDialogComponent extends BaseComponent {
uploadFile(event) { uploadFile(event) {
const dialogRef = this.dialog.open(PlanUploadDialogComponent, { const dialogRef = this.dialog.open(PlanUploadDialogComponent, {
width: '528px', maxWidth: '528px',
data: { data: {
fileList: FileList, fileList: FileList,
success: Boolean, success: Boolean,

View File

@ -1,4 +1,4 @@
<div class="main-content plan-overview pl-5 pr-5"> <div class="main-content plan-overview">
<div class="container-fluid pl-0 pr-0"> <div class="container-fluid pl-0 pr-0">
<div *ngIf="plan"> <div *ngIf="plan">
<div class="row"> <div class="row">

View File

@ -301,5 +301,15 @@
} }
.deleted-item { .deleted-item {
color: #cf1407; color: var(--warning-color);
}
.plan-overview {
padding: 0 3rem;
}
@media (max-width: 500px) {
.plan-overview{
padding: 0;
}
} }

View File

@ -9,7 +9,7 @@
<div class="title">{{(canEdit ? 'PLAN-EDITOR.TITLE-EDIT' : 'PLAN-EDITOR.TITLE-PREVIEW') | translate}}</div> <div class="title">{{(canEdit ? 'PLAN-EDITOR.TITLE-EDIT' : 'PLAN-EDITOR.TITLE-PREVIEW') | translate}}</div>
<div class="subtitle">{{ formGroup.get('label').value }} <span *ngIf="isDirty()" class="changes">({{'PLAN-EDITOR.UNSAVED-CHANGES' | translate}})</span></div> <div class="subtitle">{{ formGroup.get('label').value }} <span *ngIf="isDirty()" class="changes">({{'PLAN-EDITOR.UNSAVED-CHANGES' | translate}})</span></div>
</div> </div>
<div *ngIf="step > 0" class="ml-auto d-flex flex-row"> <div *ngIf="step > 0" class="ml-auto d-flex flex-row flex-wrap">
<div *ngIf="formGroup.get('id').value" class="col-auto d-flex align-items-center"> <div *ngIf="formGroup.get('id').value" class="col-auto d-flex align-items-center">
<button [disabled]="isDirty()" [matTooltipDisabled]="!isDirty()" mat-button class="rounded-btn primary-inverted" type="button" [matMenuTriggerFor]="exportMenu" (click)="$event.stopPropagation();" [matTooltip]="'PLAN-EDITOR.ACTIONS.EXPORT.CAN-NOT-EXPORT' | translate"> <button [disabled]="isDirty()" [matTooltipDisabled]="!isDirty()" mat-button class="rounded-btn primary-inverted" type="button" [matMenuTriggerFor]="exportMenu" (click)="$event.stopPropagation();" [matTooltip]="'PLAN-EDITOR.ACTIONS.EXPORT.CAN-NOT-EXPORT' | translate">

View File

@ -20,7 +20,7 @@
.editor-header { .editor-header {
height: 64px; height: 64px;
background: var(--unnamed-color-var(--primary-color)) 0% 0% no-repeat padding-box; min-height: fit-content;
background: var(--primary-color) 0% 0% no-repeat padding-box; background: var(--primary-color) 0% 0% no-repeat padding-box;
box-shadow: 0px 3px 6px #00000029; box-shadow: 0px 3px 6px #00000029;
padding: 0.6rem; padding: 0.6rem;
@ -364,3 +364,11 @@ a:hover {
color: rgba(0, 0, 0, 0.38);; color: rgba(0, 0, 0, 0.38);;
} }
@media screen and (max-width: 430px){
.form-container{
margin-top: 9rem;
}
.form {
height: fit-content !important;
}
}

View File

@ -13,3 +13,9 @@
cursor: auto; cursor: auto;
color: rgba(0, 0, 0, 0.38);; color: rgba(0, 0, 0, 0.38);;
} }
@media (max-width: 400px){
::ng-deep .mat-button-toggle-group{
flex-direction: column;
}
}

View File

@ -6,7 +6,7 @@
{{'USER-DIALOG.USER-PROFILE' | translate}} {{'USER-DIALOG.USER-PROFILE' | translate}}
</div> </div>
<div *ngIf="tenantFormGroup" class="col-auto mr-5"> <div *ngIf="tenantFormGroup" class="col-auto tenant-selection">
<div class="row"> <div class="row">
<div class="col"> <div class="col">
<mat-form-field class="w-100"> <mat-form-field class="w-100">
@ -18,8 +18,8 @@
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
</div> </div>
<div class="col-12 col-lg-auto mt-1"> <div class="col mt-1">
<button mat-mini-fab (click)="switchTenant()"> <button mat-mini-fab (click)="switchTenant()" [matTooltip]="'USER-PROFILE.ACTIONS.REFRESH-TENANT' | translate" [attr.aria-label]="'USER-PROFILE.ACTIONS.REFRESH-TENANT' | translate">
<mat-icon class="mat-mini-fab-icon">refresh</mat-icon> <mat-icon class="mat-mini-fab-icon">refresh</mat-icon>
</button> </button>
</div> </div>

View File

@ -207,6 +207,10 @@
} }
} }
.tenant-selection {
margin-right: 3rem;
}
::ng-deep .name-form .mat-form-field-appearance-outline .mat-form-field-outline { ::ng-deep .name-form .mat-form-field-appearance-outline .mat-form-field-outline {
background: #fafafa !important; background: #fafafa !important;
} }
@ -260,3 +264,17 @@
font-size: 1rem; font-size: 1rem;
padding: 0.6em 0 1em 0 !important; padding: 0.6em 0 1em 0 !important;
} }
@media screen and (max-width: 430px){
.user-profile-title {
padding-left: 0 !important;
}
.profile-content {
margin-left: 0 !important;
margin-right: 0 !important;
}
.tenant-selection{
margin-right: 0 !important;
}
}

View File

@ -2506,7 +2506,8 @@
"UNLINK-ACCOUNT": "Deslotu", "UNLINK-ACCOUNT": "Deslotu",
"UNLINK-ACCOUNT-DISABLED": "Ezin duzu e-maila zure kontu nagusitik bereizi", "UNLINK-ACCOUNT-DISABLED": "Ezin duzu e-maila zure kontu nagusitik bereizi",
"ADD": "Gehitu", "ADD": "Gehitu",
"CANCEL": "Ezeztatu" "CANCEL": "Ezeztatu",
"REFRESH-TENANT": "Refresh tenant"
} }
}, },
"PLAN-FINALISE-DIALOG": { "PLAN-FINALISE-DIALOG": {

View File

@ -2509,7 +2509,8 @@
"UNLINK-ACCOUNT": "Unlink", "UNLINK-ACCOUNT": "Unlink",
"UNLINK-ACCOUNT-DISABLED": "You can't unlink your main profile's email", "UNLINK-ACCOUNT-DISABLED": "You can't unlink your main profile's email",
"ADD": "Add", "ADD": "Add",
"CANCEL": "Cancel" "CANCEL": "Cancel",
"REFRESH-TENANT": "Refresh tenant"
} }
}, },
"PLAN-FINALISE-DIALOG": { "PLAN-FINALISE-DIALOG": {

View File

@ -2509,7 +2509,8 @@
"UNLINK-ACCOUNT": "Unlink", "UNLINK-ACCOUNT": "Unlink",
"UNLINK-ACCOUNT-DISABLED": "You can't unlink your main profile's email", "UNLINK-ACCOUNT-DISABLED": "You can't unlink your main profile's email",
"ADD": "Add", "ADD": "Add",
"CANCEL": "Cancel" "CANCEL": "Cancel",
"REFRESH-TENANT": "Refresh tenant"
} }
}, },
"PLAN-FINALISE-DIALOG": { "PLAN-FINALISE-DIALOG": {

View File

@ -2509,7 +2509,8 @@
"UNLINK-ACCOUNT": "Unlink", "UNLINK-ACCOUNT": "Unlink",
"UNLINK-ACCOUNT-DISABLED": "You can't unlink your main profile's email", "UNLINK-ACCOUNT-DISABLED": "You can't unlink your main profile's email",
"ADD": "Añadir", "ADD": "Añadir",
"CANCEL": "Cancelar" "CANCEL": "Cancelar",
"REFRESH-TENANT": "Refresh tenant"
} }
}, },
"PLAN-FINALISE-DIALOG": { "PLAN-FINALISE-DIALOG": {

View File

@ -2509,7 +2509,8 @@
"UNLINK-ACCOUNT": "Unlink", "UNLINK-ACCOUNT": "Unlink",
"UNLINK-ACCOUNT-DISABLED": "You can't unlink your main profile's email", "UNLINK-ACCOUNT-DISABLED": "You can't unlink your main profile's email",
"ADD": "Add", "ADD": "Add",
"CANCEL": "Cancel" "CANCEL": "Cancel",
"REFRESH-TENANT": "Refresh tenant"
} }
}, },
"PLAN-FINALISE-DIALOG": { "PLAN-FINALISE-DIALOG": {

View File

@ -2508,7 +2508,8 @@
"UNLINK-ACCOUNT": "Unlink", "UNLINK-ACCOUNT": "Unlink",
"UNLINK-ACCOUNT-DISABLED": "You can't unlink your main profile's email", "UNLINK-ACCOUNT-DISABLED": "You can't unlink your main profile's email",
"ADD": "Unesi", "ADD": "Unesi",
"CANCEL": "Poništi" "CANCEL": "Poništi",
"REFRESH-TENANT": "Refresh tenant"
} }
}, },
"PLAN-FINALISE-DIALOG": { "PLAN-FINALISE-DIALOG": {

View File

@ -2509,7 +2509,8 @@
"UNLINK-ACCOUNT": "Unlink", "UNLINK-ACCOUNT": "Unlink",
"UNLINK-ACCOUNT-DISABLED": "You can't unlink your main profile's email", "UNLINK-ACCOUNT-DISABLED": "You can't unlink your main profile's email",
"ADD": "Dodaj", "ADD": "Dodaj",
"CANCEL": "Anuluj" "CANCEL": "Anuluj",
"REFRESH-TENANT": "Refresh tenant"
} }
}, },
"PLAN-FINALISE-DIALOG": { "PLAN-FINALISE-DIALOG": {

View File

@ -2508,7 +2508,8 @@
"UNLINK-ACCOUNT": "Unlink", "UNLINK-ACCOUNT": "Unlink",
"UNLINK-ACCOUNT-DISABLED": "You can't unlink your main profile's email", "UNLINK-ACCOUNT-DISABLED": "You can't unlink your main profile's email",
"ADD": "Adicionar", "ADD": "Adicionar",
"CANCEL": "Cancelar" "CANCEL": "Cancelar",
"REFRESH-TENANT": "Refresh tenant"
} }
}, },
"PLAN-FINALISE-DIALOG": { "PLAN-FINALISE-DIALOG": {

View File

@ -2509,7 +2509,8 @@
"UNLINK-ACCOUNT": "Unlink", "UNLINK-ACCOUNT": "Unlink",
"UNLINK-ACCOUNT-DISABLED": "You can't unlink your main profile's email", "UNLINK-ACCOUNT-DISABLED": "You can't unlink your main profile's email",
"ADD": "Add", "ADD": "Add",
"CANCEL": "Cancel" "CANCEL": "Cancel",
"REFRESH-TENANT": "Refresh tenant"
} }
}, },
"PLAN-FINALISE-DIALOG": { "PLAN-FINALISE-DIALOG": {

View File

@ -2509,7 +2509,8 @@
"UNLINK-ACCOUNT": "Unlink", "UNLINK-ACCOUNT": "Unlink",
"UNLINK-ACCOUNT-DISABLED": "You can't unlink your main profile's email", "UNLINK-ACCOUNT-DISABLED": "You can't unlink your main profile's email",
"ADD": "Add", "ADD": "Add",
"CANCEL": "Cancel" "CANCEL": "Cancel",
"REFRESH-TENANT": "Refresh tenant"
} }
}, },
"PLAN-FINALISE-DIALOG": { "PLAN-FINALISE-DIALOG": {

View File

@ -2509,7 +2509,8 @@
"UNLINK-ACCOUNT": "Unlink", "UNLINK-ACCOUNT": "Unlink",
"UNLINK-ACCOUNT-DISABLED": "You can't unlink your main profile's email", "UNLINK-ACCOUNT-DISABLED": "You can't unlink your main profile's email",
"ADD": "Ekle", "ADD": "Ekle",
"CANCEL": "İptal" "CANCEL": "İptal",
"REFRESH-TENANT": "Refresh tenant"
} }
}, },
"PLAN-FINALISE-DIALOG": { "PLAN-FINALISE-DIALOG": {

View File

@ -223,7 +223,7 @@ a {
} }
.snackbar-error { .snackbar-error {
background-color: #cf1407; background-color:var(--warning-color);
color: #111010; color: #111010;
} }
@ -705,6 +705,9 @@ ul.unstyled-list {
border: none; border: none;
} }
.laptop-img {
max-width: 100%;
}
// .mat-checkbox-checked.mat-accent .mat-checkbox-background, .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background { // .mat-checkbox-checked.mat-accent .mat-checkbox-background, .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background {