3 Коміти

Автор SHA1 Повідомлення Дата
  poohr 55c8e48e20 Merge remote-tracking branch 'origin/master' 3 тижднів тому
  poohr 72b3f06044 Merge remote-tracking branch 'origin/master' 3 тижднів тому
  poohr 8c5b2e22e5 [update] 3 тижднів тому

+ 5
- 3
src/app/pages/dashboard/dashboard.html Переглянути файл

@@ -9,11 +9,11 @@
9 9
         <div>
10 10
           <h1>ホーム</h1>
11 11
         </div>
12
-        <div class="date-pill">2026年5月28日 木曜日</div>
12
+        <div class="date-pill">{{ todayLabel }}</div>
13 13
       </div>
14 14
 
15 15
       <section class="overview" aria-label="概要">
16
-        <a class="card primary" href="#">
16
+        <a class="card" href="#">
17 17
           <div class="card-label">今週の法要</div>
18 18
           <div class="metric"><strong>{{ weeklyMemorialCount }}</strong><span>件</span></div>
19 19
           <p class="card-text">
@@ -34,10 +34,12 @@
34 34
           <input
35 35
             class="search-input"
36 36
             type="search"
37
+            [(ngModel)]="searchKeyword"
37 38
             placeholder="氏名、ふりがな、住所、戒名で検索"
38 39
             aria-label="まとめて検索"
40
+            (keydown.enter)="searchAll()"
39 41
           />
40
-          <button class="search-button" type="button">検索</button>
42
+          <button class="search-button" type="button" (click)="searchAll()">検索</button>
41 43
         </div>
42 44
       </section>
43 45
 

+ 18
- 5
src/app/pages/dashboard/dashboard.ts Переглянути файл

@@ -25,11 +25,13 @@ interface RecentDanka {
25 25
 
26 26
 @Component({
27 27
   selector: 'app-dashboard',
28
-  imports: [AppHeader, AppSideMenu, RouterLink],
28
+  imports: [AppHeader, AppSideMenu, RouterLink, FormsModule],
29 29
   templateUrl: './dashboard.html',
30 30
   styleUrl: './dashboard.scss',
31 31
 })
32 32
 export class Dashboard {
33
+  searchKeyword = '';
34
+  todayLabel = this.formatTodayLabel(new Date());
33 35
   weeklyMemorialCount = 0;
34 36
   todayMemorialCount = 0;
35 37
   upcomingWeeklyMemorialCount = 0;
@@ -42,6 +44,7 @@ export class Dashboard {
42 44
   constructor(
43 45
     private kakochoService: KakochoService,
44 46
     private dankaService: DankaService,
47
+    private router: Router,
45 48
   ) {
46 49
     this.setWeeklyMemorialSummary();
47 50
     this.setMonthlyMemorialSummary();
@@ -49,6 +52,14 @@ export class Dashboard {
49 52
     this.setUpcomingMemorials();
50 53
   }
51 54
 
55
+  searchAll(): void {
56
+    const keyword = this.searchKeyword.trim();
57
+
58
+    this.router.navigate(['/search'], {
59
+      queryParams: keyword ? { keyword } : undefined,
60
+    });
61
+  }
62
+
52 63
   private async setRecentDankaList(): Promise<void> {
53 64
     const dankaList = await this.dankaService.getRecentDankaList(5);
54 65
 
@@ -136,10 +147,7 @@ export class Dashboard {
136 147
 
137 148
     this.upcomingMemorials = results
138 149
       .filter((memorial): memorial is UpcomingMemorial => memorial !== null)
139
-      .sort((a, b) =>
140
-        a.date.getTime() - b.date.getTime() ||
141
-        a.title.localeCompare(b.title, 'ja')
142
-      )
150
+      .sort((a, b) => a.date.getTime() - b.date.getTime() || a.title.localeCompare(b.title, 'ja'))
143 151
       .slice(0, 3);
144 152
   }
145 153
 
@@ -224,6 +232,11 @@ export class Dashboard {
224 232
     return `${updatedDate.getMonth() + 1}月${updatedDate.getDate()}日`;
225 233
   }
226 234
 
235
+  private formatTodayLabel(date: Date): string {
236
+    const weekdays = ['日曜日', '月曜日', '火曜日', '水曜日', '木曜日', '金曜日', '土曜日'];
237
+    return `${date.getFullYear()}年${date.getMonth() + 1}月${date.getDate()}日 ${weekdays[date.getDay()]}`;
238
+  }
239
+
227 240
   private getWeekStart(date: Date): Date {
228 241
     const day = date.getDay();
229 242
     const diff = day === 0 ? -6 : 1 - day;

+ 8
- 1
src/app/pages/search/search.ts Переглянути файл

@@ -1,6 +1,6 @@
1 1
 import { Component, OnInit } from '@angular/core';
2 2
 import { FormBuilder, FormsModule } from '@angular/forms';
3
-import { Router, RouterLink } from '@angular/router';
3
+import { ActivatedRoute, Router, RouterLink } from '@angular/router';
4 4
 import { Danka } from '../../models/danka';
5 5
 import { Family } from '../../models/family';
6 6
 import { Kakocho } from '../../models/kakocho';
@@ -34,9 +34,16 @@ export class Search implements OnInit{
34 34
     private dankaService: DankaService,
35 35
     private familyService: FamilyService,
36 36
     private kakochoService: KakochoService,
37
+    private route: ActivatedRoute,
37 38
   ) { }
38 39
 
39 40
   ngOnInit(): void {
41
+    const keyword = this.route.snapshot.queryParamMap.get('keyword');
42
+
43
+    if (keyword) {
44
+      this.searchKeyword = keyword;
45
+      this.searchAll();
46
+    }
40 47
   }
41 48
 
42 49
   // フィルタータブの選択処理

Завантаження…
Відмінити
Зберегти