Skip to content

Commit

Permalink
feat: add cache for worker
Browse files Browse the repository at this point in the history
  • Loading branch information
ngosangns committed Dec 21, 2024
1 parent 4883390 commit e4713a7
Show file tree
Hide file tree
Showing 6 changed files with 222 additions and 202 deletions.
9 changes: 5 additions & 4 deletions src/app/app-calendar/calendar/calendar.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,11 @@
<div
*ngFor="let num of [].constructor(16); let i = index"
class="text-center flex items-center justify-center sticky top-0 text-sm"
[ngClass]="[
calendarBackgroundClass(i + 1) + '-content',
calendarBackgroundClass(i + 1)
]"
[ngClass]="{
'text-accent-content bg-accent': START_MORNING_SESSION <= i + 1 && i + 1 <= END_MORNING_SESSION,
'text-secondary-content bg-secondary': START_AFTERNOON_SESSION <= i + 1 && i + 1 <= END_AFTERNOON_SESSION,
'text-neutral-content bg-neutral': START_EVENING_SESSION <= i + 1 && i + 1 <= END_EVENING_SESSION,
}"
>
{{ i + 1 }}
</div>
Expand Down
26 changes: 15 additions & 11 deletions src/app/app-calendar/calendar/calendar.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,14 @@ import { CommonModule } from '@angular/common';
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
import { BehaviorSubject } from 'rxjs';
import { CalendarData, CalendarTableContent } from '../../../types/calendar';
import {
END_AFTERNOON_SESSION,
END_EVENING_SESSION,
END_MORNING_SESSION,
START_AFTERNOON_SESSION,
START_EVENING_SESSION,
START_MORNING_SESSION,
} from '../../../constants/calendar';

@Component({
selector: 'app-calendar',
Expand All @@ -12,6 +20,13 @@ import { CalendarData, CalendarTableContent } from '../../../types/calendar';
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class CalendarComponent {
START_MORNING_SESSION = START_MORNING_SESSION;
END_MORNING_SESSION = END_MORNING_SESSION;
START_AFTERNOON_SESSION = START_AFTERNOON_SESSION;
END_AFTERNOON_SESSION = END_AFTERNOON_SESSION;
START_EVENING_SESSION = START_EVENING_SESSION;
END_EVENING_SESSION = END_EVENING_SESSION;

@Input('calendar$') calendar$: BehaviorSubject<CalendarData | undefined>;
@Input('calendarTableContent$')
calendarTableContent$: BehaviorSubject<CalendarTableContent>;
Expand Down Expand Up @@ -46,17 +61,6 @@ export class CalendarComponent {
return 'evening';
}

calendarBackgroundClass(session: number): string {
switch (this.checkSession(session)) {
case 'afternoon':
return 'bg-secondary';
case 'evening':
return 'bg-neutral';
default:
return 'bg-accent';
}
}

processCalendarInDate(
date: number
): { start: number; end: number; defaultName: string }[][] {
Expand Down
106 changes: 53 additions & 53 deletions src/app/app-calendar/class-info/class-info.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,59 @@
id="class-info"
class="overflow-scroll overflow-x-hidden overflow-y-overlay max-h-[calc(100vh-18rem)]"
>
<div
class="sticky top-0 py-3 mb-3 rounded-b-md z-10 flex gap-3 flex-wrap max-w-full bg-base-100"
>
<button
class="btn btn-sm btn-outline text-sm"
(click)="auto('refer-non-overlap')"
>
Tự động xếp lịch
<span
class="btn btn-active btn-xs"
*ngIf="oldAuto === 'refer-non-overlap' && autoTh > -1"
>
{{ autoTh + 1 }}
</span>
</button>
<button
class="btn btn-sm btn-outline text-sm"
(click)="auto('refer-non-overlap-morning')"
>
Tự động xếp lịch (ưu tiên buổi sáng)
<span
class="btn btn-active btn-xs"
*ngIf="oldAuto === 'refer-non-overlap-morning' && autoTh > -1"
>
{{ autoTh + 1 }}
</span>
</button>
<button
class="btn btn-sm btn-outline text-sm"
(click)="auto('refer-non-overlap-afternoon')"
>
Tự động xếp lịch (ưu tiên buổi chiều)
<span
class="btn btn-active btn-xs"
*ngIf="oldAuto === 'refer-non-overlap-afternoon' && autoTh > -1"
>
{{ autoTh + 1 }}
</span>
</button>
<button
class="btn btn-sm btn-outline text-sm"
(click)="auto('refer-non-overlap-evening')"
>
Tự động xếp lịch (ưu tiên buổi tối)
<span
class="btn btn-active btn-xs"
*ngIf="oldAuto === 'refer-non-overlap-evening' && autoTh > -1"
>
{{ autoTh + 1 }}
</span>
</button>
</div>

<div
*ngFor="let item of calendarGroupByMajor"
class="collapse collapse-plus border border-base-content bg-base-100 w-full mx-auto mb-4"
Expand Down Expand Up @@ -78,57 +131,4 @@
</table>
</div>
</div>

<div
class="sticky bottom-0 p-3 z-10 flex gap-3 flex-wrap max-w-full bg-neutral-content"
>
<button
class="btn btn-sm btn-outline text-sm border-neutral text-neutral"
(click)="auto('refer-non-overlap')"
>
Tự động xếp lịch
<span
class="btn btn-active btn-xs"
*ngIf="oldAuto === 'refer-non-overlap' && autoTh > -1"
>
{{ autoTh + 1 }}
</span>
</button>
<button
class="btn btn-sm btn-outline text-sm border-neutral text-neutral"
(click)="auto('refer-non-overlap-morning')"
>
Tự động xếp lịch (ưu tiên buổi sáng)
<span
class="btn btn-active btn-xs"
*ngIf="oldAuto === 'refer-non-overlap-morning' && autoTh > -1"
>
{{ autoTh + 1 }}
</span>
</button>
<button
class="btn btn-sm btn-outline text-sm border-neutral text-neutral"
(click)="auto('refer-non-overlap-afternoon')"
>
Tự động xếp lịch (ưu tiên buổi chiều)
<span
class="btn btn-active btn-xs"
*ngIf="oldAuto === 'refer-non-overlap-afternoon' && autoTh > -1"
>
{{ autoTh + 1 }}
</span>
</button>
<button
class="btn btn-sm btn-outline text-sm border-neutral text-neutral"
(click)="auto('refer-non-overlap-evening')"
>
Tự động xếp lịch (ưu tiên buổi tối)
<span
class="btn btn-active btn-xs"
*ngIf="oldAuto === 'refer-non-overlap-evening' && autoTh > -1"
>
{{ autoTh + 1 }}
</span>
</button>
</div>
</div>
4 changes: 0 additions & 4 deletions src/types/calendar.ts
Original file line number Diff line number Diff line change
Expand Up @@ -94,8 +94,4 @@ export type AutoMode =
| 'refer-non-overlap-afternoon'
| 'refer-non-overlap-evening';

export type CombinationCache = {
[key: string]: ClassCombination[];
};

export type ClassCombination = CalendarGroupByClassDetail[];
Loading

0 comments on commit e4713a7

Please sign in to comment.