-
-
Notifications
You must be signed in to change notification settings - Fork 331
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
ea49d67
commit 8fcab22
Showing
7 changed files
with
109 additions
and
82 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
44 changes: 23 additions & 21 deletions
44
...k-reader/_components/personal-table-of-contents/personal-table-of-contents.component.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,22 +1,24 @@ | ||
<div class="table-of-contents"> | ||
<div *ngIf="Pages.length === 0"> | ||
<em>Nothing Bookmarked yet</em> | ||
<ng-container *transloco="let t; read: 'personal-table-of-contents'"> | ||
<div class="table-of-contents"> | ||
<div *ngIf="Pages.length === 0"> | ||
<em>{{t('no-data')}}}</em> | ||
</div> | ||
<ul> | ||
<li *ngFor="let page of Pages"> | ||
<span (click)="loadChapterPage(page, '')">{{t('page', {value: page})}}</span> | ||
<ul class="chapter-title"> | ||
<li class="ellipsis" | ||
[ngbTooltip]="bookmark.title" | ||
placement="right" | ||
*ngFor="let bookmark of bookmarks[page]" (click)="loadChapterPage(bookmark.pageNumber, bookmark.bookScrollId); $event.stopPropagation();"> | ||
{{bookmark.title}} | ||
<button class="btn btn-icon ms-1" (click)="removeBookmark(bookmark); $event.stopPropagation();"> | ||
<i class="fa-solid fa-trash" aria-hidden="true"></i> | ||
<span class="visually-hidden">{{t('delete', {bookmarkName: bookmark.title})}}</span> | ||
</button> | ||
</li> | ||
</ul> | ||
</li> | ||
</ul> | ||
</div> | ||
<ul> | ||
<li *ngFor="let page of Pages"> | ||
<span (click)="loadChapterPage(page, '')">Page {{page}}</span> | ||
<ul class="chapter-title"> | ||
<li class="ellipsis" | ||
[ngbTooltip]="bookmark.title" | ||
placement="right" | ||
*ngFor="let bookmark of bookmarks[page]" (click)="loadChapterPage(bookmark.pageNumber, bookmark.bookScrollId); $event.stopPropagation();"> | ||
{{bookmark.title}} | ||
<button class="btn btn-icon ms-1" (click)="removeBookmark(bookmark); $event.stopPropagation();"> | ||
<i class="fa-solid fa-trash" aria-hidden="true"></i> | ||
<span class="visually-hidden">Delete {{bookmark.title}}</span> | ||
</button> | ||
</li> | ||
</ul> | ||
</li> | ||
</ul> | ||
</div> | ||
</ng-container> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
106 changes: 54 additions & 52 deletions
106
UI/Web/src/app/registration/_components/confirm-email/confirm-email.component.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,60 +1,62 @@ | ||
|
||
<app-splash-container> | ||
<ng-container *transloco="let t; read: 'confirm-email'"> | ||
<app-splash-container> | ||
<ng-container title><h2>Register</h2></ng-container> | ||
<ng-container body> | ||
<p>Complete the form to complete your registration</p> | ||
<div class="text-danger" *ngIf="errors.length > 0"> | ||
<p>Errors:</p> | ||
<ul> | ||
<li *ngFor="let error of errors">{{error}}</li> | ||
</ul> | ||
</div> | ||
<form [formGroup]="registerForm" (ngSubmit)="submit()"> | ||
<div class="mb-3"> | ||
<label for="username" class="form-label">Username</label> | ||
<input id="username" class="form-control" formControlName="username" type="text" | ||
[class.is-invalid]="registerForm.get('username')?.invalid && registerForm.get('username')?.touched"> | ||
<div id="inviteForm-validations" class="invalid-feedback" *ngIf="registerForm.dirty || registerForm.touched"> | ||
<div *ngIf="registerForm.get('username')?.errors?.required"> | ||
This field is required | ||
</div> | ||
</div> | ||
<p>Complete the form to complete your registration</p> | ||
<div class="text-danger" *ngIf="errors.length > 0"> | ||
<p>Errors:</p> | ||
<ul> | ||
<li *ngFor="let error of errors">{{error}}</li> | ||
</ul> | ||
</div> | ||
<form [formGroup]="registerForm" (ngSubmit)="submit()"> | ||
<div class="mb-3"> | ||
<label for="username" class="form-label">{{t('username-label')}}</label> | ||
<input id="username" class="form-control" formControlName="username" type="text" | ||
aria-describeby="inviteForm-username-validations" | ||
[class.is-invalid]="registerForm.get('username')?.invalid && registerForm.get('username')?.touched"> | ||
<div id="inviteForm-username-validations" class="invalid-feedback" *ngIf="registerForm.dirty || registerForm.touched"> | ||
<div *ngIf="registerForm.get('username')?.errors?.required"> | ||
{{t('required-field')}} | ||
</div> | ||
</div> | ||
</div> | ||
|
||
<div class="mb-3" style="width:100%"> | ||
<label for="email" class="form-label">Email</label> | ||
<input class="form-control" type="email" inputmode="email" id="email" formControlName="email" required readonly | ||
[class.is-invalid]="registerForm.get('email')?.invalid && registerForm.get('email')?.touched"> | ||
<div id="inviteForm-validations" class="invalid-feedback" *ngIf="registerForm.dirty || registerForm.touched"> | ||
<div *ngIf="registerForm.get('email')?.errors?.required"> | ||
This field is required | ||
</div> | ||
<div *ngIf="registerForm.get('email')?.errors?.email"> | ||
This must be a valid email address | ||
</div> | ||
</div> | ||
<div class="mb-3" style="width:100%"> | ||
<label for="email" class="form-label">{{t('email-label')}}</label> | ||
<input class="form-control" type="email" inputmode="email" id="email" formControlName="email" required readonly | ||
[class.is-invalid]="registerForm.get('email')?.invalid && registerForm.get('email')?.touched"> | ||
<div id="inviteForm-email-validations" class="invalid-feedback" *ngIf="registerForm.dirty || registerForm.touched"> | ||
<div *ngIf="registerForm.get('email')?.errors?.required"> | ||
{{t('required-field')}} | ||
</div> | ||
|
||
<div class="mb-3"> | ||
<label for="password" class="form-label">Password</label> <i class="fa fa-info-circle" placement="right" [ngbTooltip]="passwordTooltip" role="button" tabindex="0"></i> | ||
<ng-template #passwordTooltip> | ||
Password must be between 6 and 32 characters in length | ||
</ng-template> | ||
<span class="visually-hidden" id="password-help"><ng-container [ngTemplateOutlet]="passwordTooltip"></ng-container></span> | ||
<input id="password" class="form-control" maxlength="32" minlength="6" pattern="^.{6,32}$" formControlName="password" type="password" aria-describedby="password-help"> | ||
<div id="inviteForm-validations" class="invalid-feedback" *ngIf="registerForm.dirty || registerForm.touched"> | ||
<div *ngIf="registerForm.get('password')?.errors?.required"> | ||
This field is required | ||
</div> | ||
<div *ngIf="registerForm.get('password')?.errors?.minlength || registerForm.get('password')?.errors?.maxLength || registerForm.get('password')?.errors?.pattern"> | ||
Password must be between 6 and 32 characters in length | ||
</div> | ||
</div> | ||
<div *ngIf="registerForm.get('email')?.errors?.email"> | ||
{{t('valid-email')}} | ||
</div> | ||
|
||
<div class="float-end"> | ||
<button class="btn btn-secondary alt" type="submit">Register</button> | ||
</div> | ||
</div> | ||
|
||
<div class="mb-3"> | ||
<label for="password" class="form-label">{{t('password-label')}}</label> <i class="fa fa-info-circle" placement="right" [ngbTooltip]="passwordTooltip" role="button" tabindex="0"></i> | ||
<ng-template #passwordTooltip> | ||
{{t('password-validation')}} | ||
</ng-template> | ||
<span class="visually-hidden" id="password-help"><ng-container [ngTemplateOutlet]="passwordTooltip"></ng-container></span> | ||
<input id="password" class="form-control" maxlength="32" minlength="6" pattern="^.{6,32}$" formControlName="password" type="password" aria-describedby="password-help"> | ||
<div id="inviteForm-password-validations" class="invalid-feedback" *ngIf="registerForm.dirty || registerForm.touched"> | ||
<div *ngIf="registerForm.get('password')?.errors?.required"> | ||
{{t('required-field')}} | ||
</div> | ||
</form> | ||
<div *ngIf="registerForm.get('password')?.errors?.minlength || registerForm.get('password')?.errors?.maxLength || registerForm.get('password')?.errors?.pattern"> | ||
{{t('password-validation')}} | ||
</div> | ||
</div> | ||
</div> | ||
|
||
<div class="float-end"> | ||
<button class="btn btn-secondary alt" type="submit">{{t('register')}}</button> | ||
</div> | ||
</form> | ||
</ng-container> | ||
</app-splash-container> | ||
</app-splash-container> | ||
</ng-container> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters