Skip to content

Commit ec52c3a

Browse files
authored
Merge pull request #149 from CapstoneProjectCMC/feature/sap-service-and-payment
fix build dist
2 parents 787838a + 51be03d commit ec52c3a

File tree

12 files changed

+276
-160
lines changed

12 files changed

+276
-160
lines changed

angular.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,13 @@
3636
"budgets": [
3737
{
3838
"type": "initial",
39-
"maximumWarning": "500kB",
40-
"maximumError": "1MB"
39+
"maximumWarning": "1000kB",
40+
"maximumError": "5MB"
4141
},
4242
{
4343
"type": "anyComponentStyle",
44-
"maximumWarning": "4kB",
45-
"maximumError": "8kB"
44+
"maximumWarning": "400kB",
45+
"maximumError": "800kB"
4646
}
4747
],
4848
"outputHashing": "all"

src/app/core/services/api-service/organization.service.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,4 +110,10 @@ export class OrganizationService {
110110
data
111111
);
112112
}
113+
114+
removeMemberFromBlock(blockId: string, memberId: string) {
115+
return this.api.delete<ApiResponse<null>>(
116+
API_CONFIG.ENDPOINTS.DELETE.REMOVE_MEMBER_FROM_BLOCK(blockId, memberId)
117+
);
118+
}
113119
}

src/app/core/services/config-service/api.enpoints.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,8 @@ export const API_CONFIG = {
313313
`/profile/exercise/${exerciseId}/save`,
314314
DELETE_ORG: (orgId: string) => `/org/organization/${orgId}`,
315315
DELETE_BLOCK: (blockId: string) => `/org/block/${blockId}`,
316+
REMOVE_MEMBER_FROM_BLOCK: (blockId: string, memberId: string) =>
317+
`/org/block/${blockId}/member/${memberId}`,
316318
},
317319
},
318320
HEADERS: {

src/app/features/excercise/exercise-pages/list-exercise/list-exercise.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<div class="exercise-main-container">
22
<div class="main-content">
3-
<app-breadcrumb></app-breadcrumb>
3+
<!-- <app-breadcrumb></app-breadcrumb> -->
44
<div class="filter-container">
55
<app-input
66
label=""

src/app/features/excercise/exercise-pages/list-exercise/list-exercise.component.scss

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
.exercise-main-container {
22
display: flex;
33
width: 100%;
4-
height: calc(100vh - 130px);
4+
height: calc(100vh - 150px);
55
overflow: hidden;
6+
padding-top: 12px;
67

78
.main-content {
89
display: flex;

src/app/features/excercise/exercise-pages/list-exercise/list-exercise.component.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import {
2121
clearLoading,
2222
setLoading,
2323
} from '../../../../shared/store/loading-state/loading.action';
24-
import { decodeJWT } from '../../../../shared/utils/stringProcess';
2524
import { ScrollEndDirective } from '../../../../shared/directives/scroll-end.directive';
2625
import { BtnType1Component } from '../../../../shared/components/fxdonad-shared/ui-verser-io/btn-type1/btn-type1.component';
2726
import { GenerateExerciseModalComponent } from '../../exercise-modal/generate-exercise/generate-exercise.component';
@@ -36,7 +35,6 @@ import { activeForAdminAndTeacher } from '../../../../shared/utils/authenRoleAct
3635
selector: 'app-list-exercise',
3736
imports: [
3837
CommonModule,
39-
BreadcrumbComponent,
4038
CardExcerciseComponent,
4139
InputComponent,
4240
DropdownButtonComponent,

src/app/features/organization/organization-component/modal-add-user-to-block/modal-add-user-to-block.component.html

Lines changed: 53 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -3,54 +3,69 @@
33
<div class="modal-wrapper" [class.show]="isOpen">
44
<div class="modal-content" (click)="$event.stopPropagation()">
55
<header class="modal-header">
6-
<h2>Thêm người dùng vào Block</h2>
7-
<button class="close-btn" (click)="close()">&times;</button>
6+
<h2 class="modal-title">Thêm người dùng vào Block</h2>
7+
<button class="close-btn" (click)="close()">
8+
<i class="fas fa-times"></i>
9+
</button>
810
</header>
911

10-
<!-- Search box -->
11-
<div class="search-box">
12-
<input
13-
type="text"
14-
[(ngModel)]="searchQuery"
15-
(ngModelChange)="onSearchChange($event)"
16-
placeholder="Tìm kiếm tên hoặc email..."
17-
/>
18-
</div>
19-
20-
<!-- Search results -->
21-
<div class="results">
22-
<div
23-
class="user-item"
24-
*ngFor="let user of searchResults"
25-
(click)="addUser(user)"
26-
>
27-
<img
28-
[src]="user.avatarUrl || '/assets/avatar-default.png'"
29-
alt="avatar"
12+
<div class="modal-body">
13+
<div class="search-box">
14+
<input
15+
type="text"
16+
[(ngModel)]="searchQuery"
17+
(ngModelChange)="onSearchChange($event)"
18+
placeholder="Tìm kiếm tên hoặc email..."
3019
/>
31-
<div>
32-
<strong>{{ user.displayName }}</strong>
33-
<span>{{ user.email }}</span>
20+
<i class="fas fa-search search-icon"></i>
21+
</div>
22+
23+
<div class="selected-users-section" *ngIf="selectedUsers.length">
24+
<h3>Đã chọn ({{ selectedUsers.length }})</h3>
25+
<div class="chips-container">
26+
<div class="chip" *ngFor="let u of selectedUsers">
27+
{{ u.userId }}
28+
<button class="remove-chip-btn" (click)="removeUser(u.userId)">
29+
<i class="fas fa-times"></i>
30+
</button>
31+
</div>
3432
</div>
3533
</div>
36-
<p *ngIf="!searchResults.length && searchQuery">
37-
Không tìm thấy kết quả.
38-
</p>
39-
</div>
4034

41-
<!-- Selected users -->
42-
<div class="selected">
43-
<h3>Đã chọn</h3>
44-
<div class="chip" *ngFor="let u of selectedUsers">
45-
{{ u.userId }}
46-
<button (click)="removeUser(u.userId)">×</button>
35+
<div class="search-results-section">
36+
<div class="results-list">
37+
<div
38+
class="user-item"
39+
*ngFor="let user of searchResults"
40+
(click)="addUser(user)"
41+
>
42+
<img
43+
[src]="user.avatarUrl || '/assets/avatar-default.png'"
44+
alt="avatar"
45+
class="user-avatar"
46+
/>
47+
<div class="user-info">
48+
<span class="user-name">{{ user.displayName }}</span>
49+
<span class="user-email">{{ user.email }}</span>
50+
</div>
51+
</div>
52+
<p
53+
*ngIf="!searchResults.length && searchQuery"
54+
class="no-results-text"
55+
>
56+
Không tìm thấy kết quả.
57+
</p>
58+
</div>
4759
</div>
4860
</div>
4961

50-
<!-- Actions -->
5162
<footer class="modal-footer">
52-
<button class="btn-cancel" (click)="close()">Hủy</button>
53-
<button class="btn-save" [disabled]="submitting" (click)="submit()">
63+
<button class="btn btn-cancel" (click)="close()">Hủy</button>
64+
<button
65+
class="btn btn-save"
66+
[disabled]="submitting || !selectedUsers.length"
67+
(click)="submit()"
68+
>
5469
{{ submitting ? "Đang lưu..." : "Xác nhận thêm" }}
5570
</button>
5671
</footer>

0 commit comments

Comments
 (0)