Skip to content

Commit 552d7ea

Browse files
committed
feat(ongeki): Set deck and user skin
1 parent ab26d7f commit 552d7ea

22 files changed

+2074
-1510
lines changed

src/app/dashboard/dashboard.component.html

Lines changed: 34 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -49,17 +49,31 @@ <h4 class="mb-1">{{announcement.title}}</h4>
4949
<h4 class="placeholder mb-1" style="width: 12em"></h4>
5050
</li>
5151
</ng-template>
52+
<ng-template #announcementError>
53+
<li class="list-group-item">
54+
<div class="d-flex align-items-center gap-1 mb-1">
55+
<div class="fw-light small text-secondary" style="width: 8em"></div>
56+
</div>
57+
<h4 class="my-2">{{'App.Messages.LoadingFailed' | translate}}</h4>
58+
</li>
59+
</ng-template>
5260
<div class="card user-select-none mb-2">
5361
<ul class="list-group list-group-flush">
5462
<ng-container *ngIf="loadingAnnouncement">
5563
<ng-container *ngTemplateOutlet="announcementPlaceholder"/>
5664
</ng-container>
65+
<ng-container *ngIf="!loadingAnnouncement && !announcement">
66+
<ng-container *ngTemplateOutlet="announcementError"/>
67+
</ng-container>
5768
<ng-container *ngIf="!loadingAnnouncement && announcement">
5869
<ng-container *ngTemplateOutlet="announcementItem; context: {announcement: announcement}"/>
5970
</ng-container>
6071
<ng-container *ngIf="loadingUpdate">
6172
<ng-container *ngTemplateOutlet="announcementPlaceholder"/>
6273
</ng-container>
74+
<ng-container *ngIf="!loadingUpdate && !recentUpdate">
75+
<ng-container *ngTemplateOutlet="announcementError"/>
76+
</ng-container>
6377
<ng-container *ngIf="!loadingUpdate && recentUpdate">
6478
<ng-container *ngTemplateOutlet="announcementItem; context: {announcement: recentUpdate}"/>
6579
</ng-container>
@@ -84,11 +98,11 @@ <h4 class="placeholder mb-1" style="width: 12em"></h4>
8498
<h3 class="m-0">
8599
{{'DashboardPage.Profiles' | translate}}
86100
</h3>
87-
<code *ngIf="!loadingProfile" class="small">({{ currentCard || ('DashboardPage.NoBind' | translate) }})</code>
101+
<code *ngIf="!loadingProfiles && !profilesError" class="small">({{ currentCard || ('DashboardPage.NoBind' | translate) }})</code>
88102
</div>
89-
<a *ngIf="!loadingProfile" class="more-announcements" routerLink="/cards">{{'DashboardPage.Switch' | translate}}</a>
103+
<a *ngIf="!loadingProfiles && !profilesError" class="more-announcements" routerLink="/cards">{{'DashboardPage.Switch' | translate}}</a>
90104
</div>
91-
<ng-container *ngIf="loadingProfile">
105+
<ng-container *ngIf="loadingProfiles">
92106
<div class="card mb-3 placeholder-wave">
93107
<div class="card-header">
94108
<span class="placeholder" style="width: 6em;"></span>
@@ -139,11 +153,14 @@ <h3 class="m-0">
139153
<div>{{'DashboardPage.NoCardMessage' | translate}}<a routerLink="/cards">{{'DashboardPage.GoToCardPage' | translate}}</a></div>
140154
</div>
141155
</ng-container>
142-
<ng-container *ngIf="!loadingProfile && !noCard && !ongekiProfile && !chusanProfile && !mai2Profile">
143-
<div class="card mb-3 placeholder-glow">
144-
<div class="card-body">
145-
{{'DashboardPage.NoProfileMessage' | translate}}
146-
</div>
156+
<ng-container *ngIf="!loadingProfiles && !profilesError && !noCard && !ongekiProfile && !chusanProfile && !mai2Profile">
157+
<div class="alert alert-warning" role="alert">
158+
{{'DashboardPage.NoProfileMessage' | translate}}
159+
</div>
160+
</ng-container>
161+
<ng-container *ngIf="!loadingProfiles && profilesError">
162+
<div class="alert alert-danger" role="alert">
163+
{{'App.Messages.LoadingFailed' | translate}}
147164
</div>
148165
</ng-container>
149166
<ng-container *ngIf="ongekiProfile">
@@ -262,27 +279,31 @@ <h3 class="mb-3">
262279
</h3>
263280
<div class="card mb-3">
264281
<div class="card-body">
265-
<div *ngIf="checkingUpdate || (loadingDatabase && downloadingPreloadTaskCount == 0)" class="mb-2">
282+
<div *ngIf="checkingUpdateState == 'checking' || (loadingDatabase && downloadingPreloadTaskCount == 0)" class="mb-2">
266283
<span class="pe-2">{{'DashboardPage.CheckingUpdate' | translate}}</span>
267284
<span class="spinner-border spinner-border-sm" role="status">
268285
<span class="visually-hidden">Loading...</span>
269286
</span>
270287
</div>
271-
<div *ngIf="!checkingUpdate && loadingDatabase && downloadingPreloadTaskCount > 0" class="d-flex align-items-center mb-2">
288+
<div *ngIf="checkingUpdateState != 'checking' && loadingDatabase && downloadingPreloadTaskCount > 0" class="d-flex align-items-center mb-2">
272289
<span class="pe-2">{{'DashboardPage.Downloading' | translate}}{{'Common.Colon' | translate}}{{completedPreloadTaskCount}}/{{totalPreloadTaskCount}}</span>
273290
<span class="spinner-border spinner-border-sm" role="status">
274291
<span class="visually-hidden">Loading...</span>
275292
</span>
276293
</div>
277-
<div *ngIf="!checkingUpdate && !loadingDatabase && errorPreloadTaskCount == 0" class="d-flex align-items-center mb-2">
294+
<div *ngIf="checkingUpdateState == 'completed' && !loadingDatabase && errorPreloadTaskCount == 0" class="d-flex align-items-center mb-2">
278295
<ng-icon name="bootstrap-check-lg" class="d-flex align-items-center me-2 text-success"></ng-icon>
279296
<span class="pe-2">{{'DashboardPage.Version' | translate}}{{'Common.Colon' | translate}}{{dbVersion}}</span>
280297
</div>
281-
<div *ngIf="!checkingUpdate && !loadingDatabase && errorPreloadTaskCount > 0" class="d-flex align-items-center mb-2">
298+
<div *ngIf="checkingUpdateState == 'error' && !loadingDatabase && errorPreloadTaskCount == 0" class="d-flex align-items-center mb-2">
299+
<ng-icon name="bootstrap-question-lg" class="d-flex align-items-center me-2 text-warning"></ng-icon>
300+
<span class="pe-2">{{'DashboardPage.Version' | translate}}{{'Common.Colon' | translate}}{{dbVersion}}</span>
301+
</div>
302+
<div *ngIf="checkingUpdateState != 'checking' && !loadingDatabase && errorPreloadTaskCount > 0" class="d-flex align-items-center mb-2">
282303
<ng-icon name="bootstrap-x-lg" class="d-flex align-items-center me-2 text-danger"></ng-icon>
283304
<span class="pe-2">{{'DashboardPage.DownloadFailed' | translate}}{{'Common.Colon' | translate}}{{completedPreloadTaskCount}}/{{totalPreloadTaskCount}}</span>
284305
</div>
285-
<button [class.disabled]="checkingUpdate || loadingDatabase" class="btn btn-danger btn-sm mt-1" (click)="reload()">{{'DashboardPage.Reload' | translate}}</button>
306+
<button [class.disabled]="checkingUpdateState == 'checking' || loadingDatabase" class="btn btn-danger btn-sm mt-1" (click)="reload()">{{'DashboardPage.Reload' | translate}}</button>
286307
</div>
287308
</div>
288309
</div>

src/app/dashboard/dashboard.component.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,11 @@ export class DashboardComponent implements OnInit {
3232
recentUpdate: Announcement;
3333
loadingUpdate = true;
3434
loadingDatabase = true;
35-
loadingProfile = true;
35+
loadingProfiles = true;
36+
profilesError = false;
3637
loadingKeychip = true;
3738
loadingTrustedKeychip = true;
38-
checkingUpdate = true;
39+
checkingUpdateState = 'checking';
3940
dbVersion = 0;
4041
currentCard = undefined;
4142
noCard = false;
@@ -76,7 +77,7 @@ export class DashboardComponent implements OnInit {
7677
this.addStatusSubscribe(this.preload.chusanSymbolChatState);
7778
this.addStatusSubscribe(this.preload.maimai2MusicState);
7879
this.preload.checkingUpdateObservable.subscribe(checkingUpdate => {
79-
this.checkingUpdate = checkingUpdate;
80+
this.checkingUpdateState = checkingUpdate;
8081
});
8182
this.preload.dbVersionObservable.subscribe(dbVersion => {
8283
this.dbVersion = dbVersion;
@@ -111,13 +112,15 @@ export class DashboardComponent implements OnInit {
111112
}
112113
else{
113114
this.messageService.notice(resp.status.message);
115+
this.profilesError = true;
114116
}
115-
this.loadingProfile = false;
116117
}
118+
this.loadingProfiles = false;
117119
},
118120
error => {
119121
this.messageService.notice(error);
120-
this.loadingProfile = false;
122+
this.loadingProfiles = false;
123+
this.profilesError = true;
121124
});
122125
}
123126

src/app/dashboard/dashboard.module.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ import {NgIconsModule} from '@ng-icons/core';
1111
import {
1212
bootstrapBell,
1313
bootstrapCheckLg,
14-
bootstrapXLg
14+
bootstrapXLg,
15+
bootstrapQuestionLg
1516
} from '@ng-icons/bootstrap-icons';
1617
import { AppRoutingModule } from '../app-routing.module';
1718
import { AnnouncementComponent } from '../announcements/announcement/announcement.component';
@@ -42,7 +43,8 @@ export function HttpLoaderFactory(http: HttpClient) {
4243
NgIconsModule.withIcons({
4344
bootstrapBell,
4445
bootstrapCheckLg,
45-
bootstrapXLg
46+
bootstrapXLg,
47+
bootstrapQuestionLg
4648
}),
4749
ToolsModule,
4850
V2Module

src/app/database/preload.service.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ export class PreloadService {
6060
private dbVersion = new ReplaySubject<number>();
6161
dbVersionObservable = this.dbVersion.asObservable();
6262

63-
private checkingUpdate = new ReplaySubject<boolean>();
63+
private checkingUpdate = new ReplaySubject<'checking'|'completed'|'error'>();
6464
checkingUpdateObservable = this.checkingUpdate.asObservable();
6565

6666
constructor(
@@ -120,7 +120,7 @@ export class PreloadService {
120120
}
121121

122122
checkDbUpdate() {
123-
this.checkingUpdate.next(true);
123+
this.checkingUpdate.next('checking');
124124
this.api.get('api/static/dbVersion').subscribe(
125125
resp => {
126126
if (resp?.state.toLowerCase().includes('success')) {
@@ -133,14 +133,14 @@ export class PreloadService {
133133
});
134134
} else {
135135
this.load();
136-
this.checkingUpdate.next(false);
136+
this.checkingUpdate.next('completed');
137137
}
138138
});
139139
}
140140
},
141141
error => {
142142
this.load();
143-
this.checkingUpdate.next(false);
143+
this.checkingUpdate.next('error');
144144
this.messageService.notice(error);
145145
});
146146
}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
.btn-top {
2+
width: 5em;
3+
}
4+
5+
.cards-col {
6+
width: 100%;
7+
perspective: 1500px;
8+
transform-style: preserve-3d;
9+
--rotator-transition: all .6s ease-out;
10+
11+
--rotator-global-rotate-y: 0deg;
12+
--rotator-rotate-x: 0deg;
13+
--rotator-rotate-y: 0deg;
14+
--pseudo-opacity: 0;
15+
--pseudo-left: 50%;
16+
--pseudo-top: 50%;
17+
18+
--holo-sheet-bottom: none;
19+
--holo-sheet-middle: none;
20+
--holo-sheet-top: none;
21+
}
22+
23+
.card-picking {
24+
--rotator-global-rotate-y: 360deg;
25+
}
26+
27+
.card-backdrop {
28+
position: fixed;
29+
width: 100%;
30+
height: 100%;
31+
background: black;
32+
opacity: .8;
33+
top: 0;
34+
left: 0;
35+
z-index: 1099;
36+
transition: opacity 1s linear;
37+
visibility: visible;
38+
}
39+
40+
.card-backdrop-hidden {
41+
visibility: hidden;
42+
opacity: .0;
43+
transition: opacity 1s linear, visibility 0s linear 1s;
44+
}
45+
46+
.card-details-table{
47+
48+
}
49+
50+
.card-details-table td{
51+
width: 50%;
52+
}

0 commit comments

Comments
 (0)