Skip to content

Commit ee06bf3

Browse files
authored
Bugfix/table cell date and address fix (#3930)
1 parent ca1c37e commit ee06bf3

20 files changed

+503
-188
lines changed

src/app/shared/services/mat-snack-bar/mat-snack-bar.service.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ export class MatSnackBarService {
3838
successConfirmEmail: { classname: SnackbarClassName.success, key: 'snack-bar.success.confirm-email' },
3939
successConfirmSaveOrder: { classname: SnackbarClassName.successUbs, key: 'snack-bar.saved-order' },
4040
successConfirmUpdateOrder: { classname: SnackbarClassName.successUbs, key: 'snack-bar.update-order' },
41+
errorOrderUnauthorized: { classname: SnackbarClassName.error, key: 'snack-bar.error.order-not-authorized' },
4142
successUpdateUbsData: { classname: SnackbarClassName.successUbs, key: 'snack-bar.save-employee-permissons' },
4243
cafeNotificationsExists: { classname: SnackbarClassName.error, key: 'update-cafe.notifications.exists' },
4344
cafeNotificationsCloseTime: { classname: SnackbarClassName.error, key: 'update-cafe.notifications.closeTime' },
@@ -50,7 +51,7 @@ export class MatSnackBarService {
5051
habitDidNotGiveUp: { classname: SnackbarClassName.success, key: 'user.habit.all-habits.habit-did-not-give-up' },
5152
habitUpdated: { classname: SnackbarClassName.success, key: 'user.habit.all-habits.new-habit-updated' },
5253
habitAcquired: { classname: SnackbarClassName.success, key: 'user.habit.all-habits.habit-acquired' },
53-
errorMessage: { classname: SnackbarClassName.error },
54+
errorMessage: { classname: SnackbarClassName.error, key: 'snack-bar.error.error' },
5455
sendNewLetter: { classname: SnackbarClassName.error, key: 'snack-bar.error.restore-password-again' },
5556
sendNewUnblockLetter: { classname: SnackbarClassName.error, key: 'snack-bar.error.unblock-account-again' },
5657
changesSaved: { classname: SnackbarClassName.success, key: 'user.edit-profile.profile-changes-saved' },

src/app/store/actions/order.actions.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { createAction, props } from '@ngrx/store';
22
import { IUserOrderInfo } from '@ubs/ubs-user/components/ubs-user-orders-list/models/UserOrder.interface';
33
import { ActiveTariffInfo, Address, AddressData, CourierLocations, OrderDetails, PersonalData } from 'src/app/ubs/ubs/models/ubs.interface';
44
import { CCertificate } from 'src/app/ubs/ubs/models/ubs.model';
5+
import { HttpErrorResponse } from '@angular/common/http';
56

67
export enum OrderActions {
78
SetCurrentStep = '[Order] Set Current Step',
@@ -37,6 +38,7 @@ export enum OrderActions {
3738

3839
GetExistingOrderDetails = '[Order] Get Existing Order Details',
3940
GetExistingOrderDetailsSuccess = '[Order] Get Existing Order Details Success',
41+
GetExistingOrderDetailsFail = '[Order] Get Existing Order Details Fail',
4042

4143
GetExistingOrderTariff = '[Order] Get Existing Order Tariff',
4244
GetExistingOrderTariffSuccess = '[Order] Get Existing Order Tariff Success',
@@ -109,6 +111,7 @@ export const GetExistingOrderDetailsSuccess = createAction(
109111
OrderActions.GetExistingOrderDetailsSuccess,
110112
props<{ orderDetails: OrderDetails }>()
111113
);
114+
export const GetExistingOrderDetailsFail = createAction(OrderActions.GetExistingOrderDetailsFail, props<{ error: HttpErrorResponse }>());
112115

113116
export const GetExistingOrderTariff = createAction(OrderActions.GetExistingOrderTariff, props<{ orderId: number }>());
114117
export const GetExistingOrderTariffSuccess = createAction(

src/app/store/effects/order.effects.ts

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Injectable } from '@angular/core';
22
import { Actions, createEffect, ofType } from '@ngrx/effects';
33
import { catchError, map, mergeMap, tap } from 'rxjs/operators';
4-
import { EMPTY, of } from 'rxjs';
4+
import { EMPTY, filter, of } from 'rxjs';
55
import {
66
CreateAddress,
77
CreateAddressFail,
@@ -14,6 +14,7 @@ import {
1414
GetCourierLocationsSuccess,
1515
GetExistingOrderDetails,
1616
GetExistingOrderDetailsSuccess,
17+
GetExistingOrderDetailsFail,
1718
GetExistingOrderInfo,
1819
GetExistingOrderInfoSuccess,
1920
GetExistingOrderTariff,
@@ -35,14 +36,17 @@ import { OrderService } from 'src/app/ubs/ubs/services/order.service';
3536
import { LocalStorageService } from 'src/app/shared/services/localstorage/local-storage.service';
3637
import { Address, AddressData } from 'src/app/ubs/ubs/models/ubs.interface';
3738
import { MatSnackBarService } from '@global-service/mat-snack-bar/mat-snack-bar.service';
39+
import { HttpErrorResponse } from '@angular/common/http';
40+
import { Router } from '@angular/router';
3841

3942
@Injectable()
4043
export class OrderEffects {
4144
constructor(
4245
private readonly actions: Actions,
4346
private readonly orderService: OrderService,
4447
private readonly localStorageService: LocalStorageService,
45-
private readonly snackBar: MatSnackBarService
48+
private readonly snackBar: MatSnackBarService,
49+
private readonly router: Router
4650
) {}
4751

4852
getOrderDetails = createEffect(() =>
@@ -64,12 +68,25 @@ export class OrderEffects {
6468
mergeMap((action: { orderId: number }) =>
6569
this.orderService.getExistingOrderDetails(action.orderId).pipe(
6670
map((orderDetails) => GetExistingOrderDetailsSuccess({ orderDetails })),
67-
catchError(() => EMPTY)
71+
catchError((error: HttpErrorResponse) => of(GetExistingOrderDetailsFail({ error })))
6872
)
6973
)
7074
)
7175
);
7276

77+
getExistingOrderDetailsFail = createEffect(
78+
() =>
79+
this.actions.pipe(
80+
ofType(GetExistingOrderDetailsFail),
81+
filter(({ error }) => error.status === 403),
82+
tap(() => {
83+
this.snackBar.openSnackBar('errorOrderUnauthorized');
84+
this.router.navigate(['/ubs/user/orders']);
85+
})
86+
),
87+
{ dispatch: false }
88+
);
89+
7390
getExistingOrderTariff = createEffect(() =>
7491
this.actions.pipe(
7592
ofType(GetExistingOrderTariff),

src/app/store/functions.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
export function transformAddress(input: any) {
22
return {
3-
region: { uk: input.region, en: input.regionEn },
4-
city: { uk: input.city, en: input.cityEn },
5-
district: { uk: input.district, en: input.districtEn },
3+
region: { uk: input.regionUk, en: input.regionEn },
4+
city: { uk: input.cityUk, en: input.cityEn },
5+
district: { uk: input.districtUk, en: input.districtEn },
66
address: {
7-
uk: `${input.street} ${input.houseNumber}, корп.- ${input.houseCorpus || ''}, п.${input.entranceNumber}`,
7+
uk: `${input.streetUk} ${input.houseNumber}, корп.- ${input.houseCorpus || ''}, п.${input.entranceNumber}`,
88
en: `${input.streetEn} ${input.houseNumber}, b.- ${input.houseCorpus || ''}, e.${input.entranceNumber}`
99
},
1010
commentToAddressForClient: input.addressComment || ''
Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,18 @@
1-
<div *ngIf="!isEditable || uneditableStatus" class="date_to_show">
2-
<!-- Clear when back send normal value -->
3-
<span *ngIf="date === '-'">{{ date }}</span>
4-
<span *ngIf="date !== '-'">{{ date | date: 'dd.MM.y' }}</span>
5-
<button *ngIf="!isEditable && !uneditableStatus" class="pencil" (click)="edit()" (keydown)="edit($event)"></button>
6-
</div>
7-
8-
<div class="editable-date" *ngIf="isEditable && !uneditableStatus">
9-
<mat-form-field appearance="fill" class="date-form-field">
10-
<input matInput [matDatepicker]="picker1" [min]="current" [value]="date" (dateChange)="changeData($event)" id="date-input" />
11-
<mat-datepicker-toggle matSuffix [for]="picker1" color="accent"></mat-datepicker-toggle>
12-
<mat-datepicker #picker1></mat-datepicker>
13-
</mat-form-field>
14-
</div>
1+
<mat-form-field appearance="fill" class="date-form-field">
2+
<input
3+
matInput
4+
[matDatepicker]="picker1"
5+
[min]="current"
6+
[value]="date"
7+
[disabled]="uneditableStatus"
8+
(dateChange)="changeData($event)"
9+
id="date-input"
10+
/>
11+
<mat-datepicker-toggle
12+
matSuffix
13+
(keydown)="edit(picker1, $event)"
14+
[disabled]="uneditableStatus"
15+
(click)="edit(picker1)"
16+
></mat-datepicker-toggle>
17+
<mat-datepicker #picker1></mat-datepicker>
18+
</mat-form-field>

src/app/ubs/ubs-admin/components/ubs-admin-table/table-cell-date/table-cell-date.component.scss

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,25 +16,51 @@
1616
top: -10px;
1717
}
1818

19-
::ng-deep .mat-datepicker-content.mat-accent .mat-calendar-body-selected {
19+
:host ::ng-deep .mat-mdc-form-field {
20+
height: 100%;
21+
22+
.mat-mdc-text-field-wrapper {
23+
background-color: transparent;
24+
border-radius: 0;
25+
26+
.mat-mdc-form-field-flex {
27+
height: 100%;
28+
align-items: center;
29+
30+
.mat-mdc-form-field-infix {
31+
min-height: unset;
32+
}
33+
}
34+
35+
.mdc-line-ripple {
36+
display: none;
37+
}
38+
}
39+
40+
.mat-mdc-form-field-subscript-wrapper {
41+
display: none;
42+
}
43+
}
44+
45+
:host ::ng-deep .mat-datepicker-content.mat-accent .mat-calendar-body-selected {
2046
background-color: var(--ubs-button-light-green);
2147
}
2248

23-
::ng-deep .mat-datepicker-toggle-active.mat-accent {
49+
:host ::ng-deep .mat-datepicker-toggle-active.mat-accent {
2450
color: var(--ubs-button-light-green);
2551
}
2652

27-
::ng-deep .mat-form-field-appearance-fill .mat-form-field-flex {
53+
:host ::ng-deep .mat-form-field-appearance-fill .mat-form-field-flex {
2854
background-color: white;
2955
}
3056

31-
::ng-deep .mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input {
57+
:host ::ng-deep .mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-text-field__input {
3258
font-size: 12px;
3359
font-weight: 500;
3460
padding-left: 5px;
3561
}
3662

37-
::ng-deep .mdc-text-field--no-label:not(.mdc-text-field--outlined, .mdc-text-field--textarea) .mat-mdc-form-field-infix {
63+
:host ::ng-deep .mdc-text-field--no-label:not(.mdc-text-field--outlined, .mdc-text-field--textarea) .mat-mdc-form-field-infix {
3864
padding-top: 8px;
3965
}
4066

0 commit comments

Comments
 (0)