diff options
author | Chocobozzz <me@florianbigard.com> | 2023-05-24 15:27:15 +0200 |
---|---|---|
committer | Chocobozzz <me@florianbigard.com> | 2023-05-24 15:27:15 +0200 |
commit | d0fbc9fd0a29c37f3ff9b99030351e90b276fe7d (patch) | |
tree | fa29fcfd704cbc56c7bc3e3e1c15d84ea0f4dc61 /client/src/app/shared | |
parent | 25ea1d85e155382367d11036617848fe69a1e6a4 (diff) | |
download | PeerTube-d0fbc9fd0a29c37f3ff9b99030351e90b276fe7d.tar.gz PeerTube-d0fbc9fd0a29c37f3ff9b99030351e90b276fe7d.tar.zst PeerTube-d0fbc9fd0a29c37f3ff9b99030351e90b276fe7d.zip |
Fix lint
Diffstat (limited to 'client/src/app/shared')
34 files changed, 142 insertions, 133 deletions
diff --git a/client/src/app/shared/form-validators/video-validators.ts b/client/src/app/shared/form-validators/video-validators.ts index ab6f21a35..a4bda8f16 100644 --- a/client/src/app/shared/form-validators/video-validators.ts +++ b/client/src/app/shared/form-validators/video-validators.ts | |||
@@ -99,7 +99,7 @@ export const VIDEO_ORIGINALLY_PUBLISHED_AT_VALIDATOR: BuildFormValidator = { | |||
99 | 99 | ||
100 | function arrayTagLengthValidator (min = 2, max = 30): ValidatorFn { | 100 | function arrayTagLengthValidator (min = 2, max = 30): ValidatorFn { |
101 | return (control: AbstractControl): ValidationErrors => { | 101 | return (control: AbstractControl): ValidationErrors => { |
102 | const array = control.value as Array<string> | 102 | const array = control.value as string[] |
103 | 103 | ||
104 | if (array.every(e => e.length >= min && e.length <= max)) { | 104 | if (array.every(e => e.length >= min && e.length <= max)) { |
105 | return null | 105 | return null |
diff --git a/client/src/app/shared/shared-abuse-list/abuse-list-table.component.html b/client/src/app/shared/shared-abuse-list/abuse-list-table.component.html index ef96f8f05..2571cc952 100644 --- a/client/src/app/shared/shared-abuse-list/abuse-list-table.component.html +++ b/client/src/app/shared/shared-abuse-list/abuse-list-table.component.html | |||
@@ -120,12 +120,12 @@ | |||
120 | <my-global-icon *ngIf="isAbuseRejected(abuse)" [title]="abuse.state.label" iconName="cross"></my-global-icon> | 120 | <my-global-icon *ngIf="isAbuseRejected(abuse)" [title]="abuse.state.label" iconName="cross"></my-global-icon> |
121 | </td> | 121 | </td> |
122 | 122 | ||
123 | <td class="c-hand abuse-messages" (click)="openAbuseMessagesModal(abuse)"> | 123 | <td class="abuse-messages"> |
124 | <ng-container *ngIf="isLocalAbuse(abuse)"> | 124 | <button class="button-unstyle" *ngIf="isLocalAbuse(abuse)" (click)="openAbuseMessagesModal(abuse)"> |
125 | {{ abuse.countMessages }} | 125 | {{ abuse.countMessages }} |
126 | 126 | ||
127 | <my-global-icon iconName="message-circle"></my-global-icon> | 127 | <my-global-icon iconName="message-circle"></my-global-icon> |
128 | </ng-container> | 128 | </button> |
129 | </td> | 129 | </td> |
130 | 130 | ||
131 | <td *ngIf="isAdminView()" class="internal-note" container="body" placement="left auto" [ngbTooltip]="abuse.moderationComment"> | 131 | <td *ngIf="isAdminView()" class="internal-note" container="body" placement="left auto" [ngbTooltip]="abuse.moderationComment"> |
diff --git a/client/src/app/shared/shared-actor-image-edit/actor-avatar-edit.component.html b/client/src/app/shared/shared-actor-image-edit/actor-avatar-edit.component.html index a0f65a3d9..c63b5b361 100644 --- a/client/src/app/shared/shared-actor-image-edit/actor-avatar-edit.component.html +++ b/client/src/app/shared/shared-actor-image-edit/actor-avatar-edit.component.html | |||
@@ -2,29 +2,29 @@ | |||
2 | <div class="position-relative me-3"> | 2 | <div class="position-relative me-3"> |
3 | <my-actor-avatar [actor]="actor" [actorType]="getActorType()" [previewImage]="preview" size="100"></my-actor-avatar> | 3 | <my-actor-avatar [actor]="actor" [actorType]="getActorType()" [previewImage]="preview" size="100"></my-actor-avatar> |
4 | 4 | ||
5 | <div *ngIf="editable && !hasAvatar()" class="actor-img-edit-button" [ngbTooltip]="avatarFormat" placement="right" container="body"> | 5 | <div *ngIf="editable && !hasAvatar()" class="actor-img-edit-button button-focus-within" [ngbTooltip]="avatarFormat" placement="right" container="body"> |
6 | <my-global-icon iconName="upload"></my-global-icon> | 6 | <my-global-icon iconName="upload"></my-global-icon> |
7 | <label class="visually-hidden" for="avatarfile" i18n>Upload a new avatar</label> | 7 | <label class="visually-hidden" for="avatarfile" i18n>Upload a new avatar</label> |
8 | <input #avatarfileInput type="file" name="avatarfile" id="avatarfile" [accept]="avatarExtensions" (change)="onAvatarChange(avatarfileInput)"/> | 8 | <input #avatarfileInput type="file" name="avatarfile" id="avatarfile" [accept]="avatarExtensions" (change)="onAvatarChange(avatarfileInput)"/> |
9 | </div> | 9 | </div> |
10 | 10 | ||
11 | <div *ngIf="editable && hasAvatar()" ngbDropdown placement="right"> | 11 | <div *ngIf="editable && hasAvatar()" ngbDropdown placement="right"> |
12 | <div class="actor-img-edit-button" ngbDropdownToggle> | 12 | <button type="button" class="actor-img-edit-button" ngbDropdownToggle> |
13 | <my-global-icon iconName="edit"></my-global-icon> | 13 | <my-global-icon iconName="edit"></my-global-icon> |
14 | <label class="visually-hidden" for="avatarMenu" i18n>Change your avatar</label> | 14 | <label class="visually-hidden" for="avatarMenu" i18n>Change your avatar</label> |
15 | </div> | 15 | </button> |
16 | 16 | ||
17 | <div ngbDropdownMenu> | 17 | <div ngbDropdownMenu> |
18 | <div class="dropdown-item c-hand dropdown-file" [ngbTooltip]="avatarFormat"> | 18 | <div class="dropdown-item dropdown-file button-focus-within" [ngbTooltip]="avatarFormat"> |
19 | <my-global-icon iconName="upload"></my-global-icon> | 19 | <my-global-icon iconName="upload"></my-global-icon> |
20 | <span for="avatarfile" i18n>Upload a new avatar</span> | 20 | <span for="avatarfile" i18n>Upload a new avatar</span> |
21 | <input #avatarfileInput type="file" name="avatarfile" id="avatarfile" [accept]="avatarExtensions" (change)="onAvatarChange(avatarfileInput)"/> | 21 | <input #avatarfileInput type="file" name="avatarfile" id="avatarfile" [accept]="avatarExtensions" (change)="onAvatarChange(avatarfileInput)"/> |
22 | </div> | 22 | </div> |
23 | 23 | ||
24 | <div class="dropdown-item c-hand" (click)="deleteAvatar()" (key.enter)="deleteAvatar()"> | 24 | <button type="button" class="dropdown-item" (click)="deleteAvatar()" (key.enter)="deleteAvatar()"> |
25 | <my-global-icon iconName="delete"></my-global-icon> | 25 | <my-global-icon iconName="delete"></my-global-icon> |
26 | <span i18n>Remove avatar</span> | 26 | <span i18n>Remove avatar</span> |
27 | </div> | 27 | </button> |
28 | </div> | 28 | </div> |
29 | 29 | ||
30 | </div> | 30 | </div> |
diff --git a/client/src/app/shared/shared-actor-image-edit/actor-avatar-edit.component.scss b/client/src/app/shared/shared-actor-image-edit/actor-avatar-edit.component.scss index 01e2131ba..689c5873c 100644 --- a/client/src/app/shared/shared-actor-image-edit/actor-avatar-edit.component.scss +++ b/client/src/app/shared/shared-actor-image-edit/actor-avatar-edit.component.scss | |||
@@ -39,6 +39,10 @@ | |||
39 | right: 5px; | 39 | right: 5px; |
40 | } | 40 | } |
41 | 41 | ||
42 | .button-focus-within:focus-within { | ||
43 | box-shadow: #{$focus-box-shadow-form} pvar(--mainColorLightest); | ||
44 | } | ||
45 | |||
42 | .dropdown-item { | 46 | .dropdown-item { |
43 | @include dropdown-with-icon-item; | 47 | @include dropdown-with-icon-item; |
44 | } | 48 | } |
diff --git a/client/src/app/shared/shared-actor-image-edit/actor-banner-edit.component.html b/client/src/app/shared/shared-actor-image-edit/actor-banner-edit.component.html index d6fe37094..d4ddb2deb 100644 --- a/client/src/app/shared/shared-actor-image-edit/actor-banner-edit.component.html +++ b/client/src/app/shared/shared-actor-image-edit/actor-banner-edit.component.html | |||
@@ -4,25 +4,25 @@ | |||
4 | <img *ngIf="hasBanner()" [src]="preview || actor.bannerUrl" alt="Banner" /> | 4 | <img *ngIf="hasBanner()" [src]="preview || actor.bannerUrl" alt="Banner" /> |
5 | </div> | 5 | </div> |
6 | 6 | ||
7 | <div *ngIf="!hasBanner()" class="actor-img-edit-button" [ngbTooltip]="bannerFormat" placement="right" container="body"> | 7 | <div *ngIf="!hasBanner()" class="actor-img-edit-button button-focus-within" [ngbTooltip]="bannerFormat" placement="right" container="body"> |
8 | <ng-container *ngTemplateOutlet="uploadNewBanner"></ng-container> | 8 | <ng-container *ngTemplateOutlet="uploadNewBanner"></ng-container> |
9 | </div> | 9 | </div> |
10 | 10 | ||
11 | <div *ngIf="hasBanner()" ngbDropdown placement="right"> | 11 | <div *ngIf="hasBanner()" ngbDropdown placement="right"> |
12 | <div class="actor-img-edit-button" ngbDropdownToggle> | 12 | <button type="button" class="actor-img-edit-button" ngbDropdownToggle> |
13 | <my-global-icon iconName="edit"></my-global-icon> | 13 | <my-global-icon iconName="edit"></my-global-icon> |
14 | <label for="bannerMenu" i18n>Change your banner</label> | 14 | <label for="bannerMenu" i18n>Change your banner</label> |
15 | </div> | 15 | </button> |
16 | 16 | ||
17 | <div ngbDropdownMenu> | 17 | <div ngbDropdownMenu> |
18 | <div class="dropdown-item c-hand dropdown-file" [ngbTooltip]="bannerFormat"> | 18 | <div class="dropdown-item dropdown-file button-focus-within" [ngbTooltip]="bannerFormat"> |
19 | <ng-container *ngTemplateOutlet="uploadNewBanner"></ng-container> | 19 | <ng-container *ngTemplateOutlet="uploadNewBanner"></ng-container> |
20 | </div> | 20 | </div> |
21 | 21 | ||
22 | <div class="dropdown-item c-hand" (click)="deleteBanner()" (key.enter)="deleteBanner()"> | 22 | <button type="button" class="dropdown-item" (click)="deleteBanner()"> |
23 | <my-global-icon iconName="delete"></my-global-icon> | 23 | <my-global-icon iconName="delete"></my-global-icon> |
24 | <span i18n>Remove banner</span> | 24 | <span i18n>Remove banner</span> |
25 | </div> | 25 | </button> |
26 | </div> | 26 | </div> |
27 | </div> | 27 | </div> |
28 | </div> | 28 | </div> |
diff --git a/client/src/app/shared/shared-actor-image-edit/actor-banner-edit.component.scss b/client/src/app/shared/shared-actor-image-edit/actor-banner-edit.component.scss index b2c64fff7..8e5a05603 100644 --- a/client/src/app/shared/shared-actor-image-edit/actor-banner-edit.component.scss +++ b/client/src/app/shared/shared-actor-image-edit/actor-banner-edit.component.scss | |||
@@ -34,6 +34,10 @@ | |||
34 | } | 34 | } |
35 | } | 35 | } |
36 | 36 | ||
37 | .button-focus-within:focus-within { | ||
38 | box-shadow: #{$focus-box-shadow-form} pvar(--mainColorLightest); | ||
39 | } | ||
40 | |||
37 | .dropdown-item { | 41 | .dropdown-item { |
38 | @include dropdown-with-icon-item; | 42 | @include dropdown-with-icon-item; |
39 | } | 43 | } |
diff --git a/client/src/app/shared/shared-actor-image/actor-avatar.component.ts b/client/src/app/shared/shared-actor-image/actor-avatar.component.ts index 8e6ad4015..f1c1aa03f 100644 --- a/client/src/app/shared/shared-actor-image/actor-avatar.component.ts +++ b/client/src/app/shared/shared-actor-image/actor-avatar.component.ts | |||
@@ -145,13 +145,13 @@ export class ActorAvatarComponent implements OnInit, OnChanges { | |||
145 | // Keep consistency with CSS | 145 | // Keep consistency with CSS |
146 | const themes = { | 146 | const themes = { |
147 | '0123456789abc': 'blue', | 147 | '0123456789abc': 'blue', |
148 | def: 'green', | 148 | 'def': 'green', |
149 | ghi: 'purple', | 149 | 'ghi': 'purple', |
150 | jkl: 'gray', | 150 | 'jkl': 'gray', |
151 | mno: 'yellow', | 151 | 'mno': 'yellow', |
152 | pqr: 'orange', | 152 | 'pqr': 'orange', |
153 | stvu: 'red', | 153 | 'stvu': 'red', |
154 | wxyz: 'dark-blue' | 154 | 'wxyz': 'dark-blue' |
155 | } | 155 | } |
156 | 156 | ||
157 | const theme = Object.keys(themes) | 157 | const theme = Object.keys(themes) |
diff --git a/client/src/app/shared/shared-forms/input-switch.component.html b/client/src/app/shared/shared-forms/input-switch.component.html index 9a466055a..4017d4aa5 100644 --- a/client/src/app/shared/shared-forms/input-switch.component.html +++ b/client/src/app/shared/shared-forms/input-switch.component.html | |||
@@ -1,4 +1,2 @@ | |||
1 | <div (click)="update()"> | 1 | <input type="checkbox" [checked]="checked" [name]="inputName" [id]="inputName" (change)="update()" /> |
2 | <input type="checkbox" [checked]="checked"/> | 2 | <label [for]="inputName" class="ms-auto">Toggle</label> |
3 | <label class="ms-auto">Toggle</label> | ||
4 | </div> | ||
diff --git a/client/src/app/shared/shared-forms/preview-upload.component.html b/client/src/app/shared/shared-forms/preview-upload.component.html index 11e7bdf7f..8a10a11b0 100644 --- a/client/src/app/shared/shared-forms/preview-upload.component.html +++ b/client/src/app/shared/shared-forms/preview-upload.component.html | |||
@@ -5,7 +5,7 @@ | |||
5 | icon="edit" (fileChanged)="onFileChanged($event)" [buttonTooltip]="getReactiveFileButtonTooltip()" | 5 | icon="edit" (fileChanged)="onFileChanged($event)" [buttonTooltip]="getReactiveFileButtonTooltip()" |
6 | ></my-reactive-file> | 6 | ></my-reactive-file> |
7 | 7 | ||
8 | <img *ngIf="imageSrc" [ngStyle]="{ width: previewWidth, height: previewHeight }" [src]="imageSrc" class="preview" /> | 8 | <img *ngIf="imageSrc" [ngStyle]="{ width: previewWidth, height: previewHeight }" [src]="imageSrc" class="preview" alt="Preview" i18n-alt /> |
9 | <div *ngIf="!imageSrc" [ngStyle]="{ width: previewWidth, height: previewHeight }" class="preview no-image"></div> | 9 | <div *ngIf="!imageSrc" [ngStyle]="{ width: previewWidth, height: previewHeight }" class="preview no-image"></div> |
10 | </div> | 10 | </div> |
11 | </div> | 11 | </div> |
diff --git a/client/src/app/shared/shared-icons/global-icon.component.ts b/client/src/app/shared/shared-icons/global-icon.component.ts index 55eb45a75..96179cbe6 100644 --- a/client/src/app/shared/shared-icons/global-icon.component.ts +++ b/client/src/app/shared/shared-icons/global-icon.component.ts | |||
@@ -3,81 +3,81 @@ import { HooksService } from '@app/core/plugins/hooks.service' | |||
3 | 3 | ||
4 | const icons = { | 4 | const icons = { |
5 | // misc icons | 5 | // misc icons |
6 | npm: require('!!raw-loader?!../../../assets/images/misc/npm.svg').default, | 6 | 'npm': require('!!raw-loader?!../../../assets/images/misc/npm.svg').default, |
7 | markdown: require('!!raw-loader?!../../../assets/images/misc/markdown.svg').default, | 7 | 'markdown': require('!!raw-loader?!../../../assets/images/misc/markdown.svg').default, |
8 | language: require('!!raw-loader?!../../../assets/images/misc/language.svg').default, | 8 | 'language': require('!!raw-loader?!../../../assets/images/misc/language.svg').default, |
9 | 'video-lang': require('!!raw-loader?!../../../assets/images/misc/video-lang.svg').default, | 9 | 'video-lang': require('!!raw-loader?!../../../assets/images/misc/video-lang.svg').default, |
10 | support: require('!!raw-loader?!../../../assets/images/misc/support.svg').default, | 10 | 'support': require('!!raw-loader?!../../../assets/images/misc/support.svg').default, |
11 | 'peertube-x': require('!!raw-loader?!../../../assets/images/misc/peertube-x.svg').default, | 11 | 'peertube-x': require('!!raw-loader?!../../../assets/images/misc/peertube-x.svg').default, |
12 | robot: require('!!raw-loader?!../../../assets/images/misc/miscellaneous-services.svg').default, // material ui | 12 | 'robot': require('!!raw-loader?!../../../assets/images/misc/miscellaneous-services.svg').default, // material ui |
13 | videos: require('!!raw-loader?!../../../assets/images/misc/video-library.svg').default, // material ui | 13 | 'videos': require('!!raw-loader?!../../../assets/images/misc/video-library.svg').default, // material ui |
14 | history: require('!!raw-loader?!../../../assets/images/misc/history.svg').default, // material ui | 14 | 'history': require('!!raw-loader?!../../../assets/images/misc/history.svg').default, // material ui |
15 | subscriptions: require('!!raw-loader?!../../../assets/images/misc/subscriptions.svg').default, // material ui | 15 | 'subscriptions': require('!!raw-loader?!../../../assets/images/misc/subscriptions.svg').default, // material ui |
16 | 'playlist-add': require('!!raw-loader?!../../../assets/images/misc/playlist-add.svg').default, // material ui | 16 | 'playlist-add': require('!!raw-loader?!../../../assets/images/misc/playlist-add.svg').default, // material ui |
17 | follower: require('!!raw-loader?!../../../assets/images/misc/account-arrow-left.svg').default, // material ui | 17 | 'follower': require('!!raw-loader?!../../../assets/images/misc/account-arrow-left.svg').default, // material ui |
18 | following: require('!!raw-loader?!../../../assets/images/misc/account-arrow-right.svg').default, // material ui | 18 | 'following': require('!!raw-loader?!../../../assets/images/misc/account-arrow-right.svg').default, // material ui |
19 | tip: require('!!raw-loader?!../../../assets/images/misc/tip.svg').default, // material ui | 19 | 'tip': require('!!raw-loader?!../../../assets/images/misc/tip.svg').default, // material ui |
20 | flame: require('!!raw-loader?!../../../assets/images/misc/flame.svg').default, | 20 | 'flame': require('!!raw-loader?!../../../assets/images/misc/flame.svg').default, |
21 | local: require('!!raw-loader?!../../../assets/images/misc/local.svg').default, | 21 | 'local': require('!!raw-loader?!../../../assets/images/misc/local.svg').default, |
22 | 22 | ||
23 | // feather icons | 23 | // feather icons |
24 | copy: require('!!raw-loader?!../../../assets/images/feather/copy.svg').default, | 24 | 'copy': require('!!raw-loader?!../../../assets/images/feather/copy.svg').default, |
25 | flag: require('!!raw-loader?!../../../assets/images/feather/flag.svg').default, | 25 | 'flag': require('!!raw-loader?!../../../assets/images/feather/flag.svg').default, |
26 | playlists: require('!!raw-loader?!../../../assets/images/feather/list.svg').default, | 26 | 'playlists': require('!!raw-loader?!../../../assets/images/feather/list.svg').default, |
27 | syndication: require('!!raw-loader?!../../../assets/images/feather/syndication.svg').default, | 27 | 'syndication': require('!!raw-loader?!../../../assets/images/feather/syndication.svg').default, |
28 | help: require('!!raw-loader?!../../../assets/images/feather/help.svg').default, | 28 | 'help': require('!!raw-loader?!../../../assets/images/feather/help.svg').default, |
29 | alert: require('!!raw-loader?!../../../assets/images/feather/alert.svg').default, | 29 | 'alert': require('!!raw-loader?!../../../assets/images/feather/alert.svg').default, |
30 | globe: require('!!raw-loader?!../../../assets/images/feather/globe.svg').default, | 30 | 'globe': require('!!raw-loader?!../../../assets/images/feather/globe.svg').default, |
31 | home: require('!!raw-loader?!../../../assets/images/feather/home.svg').default, | 31 | 'home': require('!!raw-loader?!../../../assets/images/feather/home.svg').default, |
32 | trending: require('!!raw-loader?!../../../assets/images/feather/trending.svg').default, | 32 | 'trending': require('!!raw-loader?!../../../assets/images/feather/trending.svg').default, |
33 | search: require('!!raw-loader?!../../../assets/images/feather/search.svg').default, | 33 | 'search': require('!!raw-loader?!../../../assets/images/feather/search.svg').default, |
34 | upload: require('!!raw-loader?!../../../assets/images/feather/upload.svg').default, | 34 | 'upload': require('!!raw-loader?!../../../assets/images/feather/upload.svg').default, |
35 | dislike: require('!!raw-loader?!../../../assets/images/feather/dislike.svg').default, | 35 | 'dislike': require('!!raw-loader?!../../../assets/images/feather/dislike.svg').default, |
36 | like: require('!!raw-loader?!../../../assets/images/feather/like.svg').default, | 36 | 'like': require('!!raw-loader?!../../../assets/images/feather/like.svg').default, |
37 | no: require('!!raw-loader?!../../../assets/images/feather/no.svg').default, | 37 | 'no': require('!!raw-loader?!../../../assets/images/feather/no.svg').default, |
38 | 'cloud-download': require('!!raw-loader?!../../../assets/images/feather/cloud-download.svg').default, | 38 | 'cloud-download': require('!!raw-loader?!../../../assets/images/feather/cloud-download.svg').default, |
39 | clock: require('!!raw-loader?!../../../assets/images/feather/clock.svg').default, | 39 | 'clock': require('!!raw-loader?!../../../assets/images/feather/clock.svg').default, |
40 | cog: require('!!raw-loader?!../../../assets/images/feather/cog.svg').default, | 40 | 'cog': require('!!raw-loader?!../../../assets/images/feather/cog.svg').default, |
41 | delete: require('!!raw-loader?!../../../assets/images/feather/delete.svg').default, | 41 | 'delete': require('!!raw-loader?!../../../assets/images/feather/delete.svg').default, |
42 | bell: require('!!raw-loader?!../../../assets/images/feather/bell.svg').default, | 42 | 'bell': require('!!raw-loader?!../../../assets/images/feather/bell.svg').default, |
43 | 'sign-out': require('!!raw-loader?!../../../assets/images/feather/log-out.svg').default, | 43 | 'sign-out': require('!!raw-loader?!../../../assets/images/feather/log-out.svg').default, |
44 | 'sign-in': require('!!raw-loader?!../../../assets/images/feather/log-in.svg').default, | 44 | 'sign-in': require('!!raw-loader?!../../../assets/images/feather/log-in.svg').default, |
45 | download: require('!!raw-loader?!../../../assets/images/feather/download.svg').default, | 45 | 'download': require('!!raw-loader?!../../../assets/images/feather/download.svg').default, |
46 | 'ownership-change': require('!!raw-loader?!../../../assets/images/feather/share.svg').default, | 46 | 'ownership-change': require('!!raw-loader?!../../../assets/images/feather/share.svg').default, |
47 | share: require('!!raw-loader?!../../../assets/images/feather/share-2.svg').default, | 47 | 'share': require('!!raw-loader?!../../../assets/images/feather/share-2.svg').default, |
48 | channel: require('!!raw-loader?!../../../assets/images/feather/tv.svg').default, | 48 | 'channel': require('!!raw-loader?!../../../assets/images/feather/tv.svg').default, |
49 | user: require('!!raw-loader?!../../../assets/images/feather/user.svg').default, | 49 | 'user': require('!!raw-loader?!../../../assets/images/feather/user.svg').default, |
50 | 'user-x': require('!!raw-loader?!../../../assets/images/feather/user-x.svg').default, | 50 | 'user-x': require('!!raw-loader?!../../../assets/images/feather/user-x.svg').default, |
51 | users: require('!!raw-loader?!../../../assets/images/feather/users.svg').default, | 51 | 'users': require('!!raw-loader?!../../../assets/images/feather/users.svg').default, |
52 | 'user-add': require('!!raw-loader?!../../../assets/images/feather/user-plus.svg').default, | 52 | 'user-add': require('!!raw-loader?!../../../assets/images/feather/user-plus.svg').default, |
53 | add: require('!!raw-loader?!../../../assets/images/feather/plus-circle.svg').default, | 53 | 'add': require('!!raw-loader?!../../../assets/images/feather/plus-circle.svg').default, |
54 | 'cloud-error': require('!!raw-loader?!../../../assets/images/feather/cloud-off.svg').default, | 54 | 'cloud-error': require('!!raw-loader?!../../../assets/images/feather/cloud-off.svg').default, |
55 | undo: require('!!raw-loader?!../../../assets/images/feather/corner-up-left.svg').default, | 55 | 'undo': require('!!raw-loader?!../../../assets/images/feather/corner-up-left.svg').default, |
56 | 'circle-tick': require('!!raw-loader?!../../../assets/images/feather/check-circle.svg').default, | 56 | 'circle-tick': require('!!raw-loader?!../../../assets/images/feather/check-circle.svg').default, |
57 | 'more-horizontal': require('!!raw-loader?!../../../assets/images/feather/more-horizontal.svg').default, | 57 | 'more-horizontal': require('!!raw-loader?!../../../assets/images/feather/more-horizontal.svg').default, |
58 | 'more-vertical': require('!!raw-loader?!../../../assets/images/feather/more-vertical.svg').default, | 58 | 'more-vertical': require('!!raw-loader?!../../../assets/images/feather/more-vertical.svg').default, |
59 | play: require('!!raw-loader?!../../../assets/images/feather/play.svg').default, | 59 | 'play': require('!!raw-loader?!../../../assets/images/feather/play.svg').default, |
60 | p2p: require('!!raw-loader?!../../../assets/images/feather/airplay.svg').default, | 60 | 'p2p': require('!!raw-loader?!../../../assets/images/feather/airplay.svg').default, |
61 | fullscreen: require('!!raw-loader?!../../../assets/images/feather/maximize.svg').default, | 61 | 'fullscreen': require('!!raw-loader?!../../../assets/images/feather/maximize.svg').default, |
62 | 'exit-fullscreen': require('!!raw-loader?!../../../assets/images/feather/minimize.svg').default, | 62 | 'exit-fullscreen': require('!!raw-loader?!../../../assets/images/feather/minimize.svg').default, |
63 | film: require('!!raw-loader?!../../../assets/images/feather/film.svg').default, | 63 | 'film': require('!!raw-loader?!../../../assets/images/feather/film.svg').default, |
64 | edit: require('!!raw-loader?!../../../assets/images/feather/edit-2.svg').default, | 64 | 'edit': require('!!raw-loader?!../../../assets/images/feather/edit-2.svg').default, |
65 | 'external-link': require('!!raw-loader?!../../../assets/images/feather/external-link.svg').default, | 65 | 'external-link': require('!!raw-loader?!../../../assets/images/feather/external-link.svg').default, |
66 | 'eye-open': require('!!raw-loader?!../../../assets/images/feather/eye.svg').default, | 66 | 'eye-open': require('!!raw-loader?!../../../assets/images/feather/eye.svg').default, |
67 | 'eye-close': require('!!raw-loader?!../../../assets/images/feather/eye-off.svg').default, | 67 | 'eye-close': require('!!raw-loader?!../../../assets/images/feather/eye-off.svg').default, |
68 | refresh: require('!!raw-loader?!../../../assets/images/feather/refresh-cw.svg').default, | 68 | 'refresh': require('!!raw-loader?!../../../assets/images/feather/refresh-cw.svg').default, |
69 | command: require('!!raw-loader?!../../../assets/images/feather/command.svg').default, | 69 | 'command': require('!!raw-loader?!../../../assets/images/feather/command.svg').default, |
70 | go: require('!!raw-loader?!../../../assets/images/feather/arrow-up-right.svg').default, | 70 | 'go': require('!!raw-loader?!../../../assets/images/feather/arrow-up-right.svg').default, |
71 | cross: require('!!raw-loader?!../../../assets/images/feather/x.svg').default, | 71 | 'cross': require('!!raw-loader?!../../../assets/images/feather/x.svg').default, |
72 | tick: require('!!raw-loader?!../../../assets/images/feather/check.svg').default, | 72 | 'tick': require('!!raw-loader?!../../../assets/images/feather/check.svg').default, |
73 | columns: require('!!raw-loader?!../../../assets/images/feather/columns.svg').default, | 73 | 'columns': require('!!raw-loader?!../../../assets/images/feather/columns.svg').default, |
74 | live: require('!!raw-loader?!../../../assets/images/feather/live.svg').default, | 74 | 'live': require('!!raw-loader?!../../../assets/images/feather/live.svg').default, |
75 | repeat: require('!!raw-loader?!../../../assets/images/feather/repeat.svg').default, | 75 | 'repeat': require('!!raw-loader?!../../../assets/images/feather/repeat.svg').default, |
76 | 'chevrons-up': require('!!raw-loader?!../../../assets/images/feather/chevrons-up.svg').default, | 76 | 'chevrons-up': require('!!raw-loader?!../../../assets/images/feather/chevrons-up.svg').default, |
77 | 'message-circle': require('!!raw-loader?!../../../assets/images/feather/message-circle.svg').default, | 77 | 'message-circle': require('!!raw-loader?!../../../assets/images/feather/message-circle.svg').default, |
78 | codesandbox: require('!!raw-loader?!../../../assets/images/feather/codesandbox.svg').default, | 78 | 'codesandbox': require('!!raw-loader?!../../../assets/images/feather/codesandbox.svg').default, |
79 | award: require('!!raw-loader?!../../../assets/images/feather/award.svg').default, | 79 | 'award': require('!!raw-loader?!../../../assets/images/feather/award.svg').default, |
80 | stats: require('!!raw-loader?!../../../assets/images/feather/stats.svg').default | 80 | 'stats': require('!!raw-loader?!../../../assets/images/feather/stats.svg').default |
81 | } | 81 | } |
82 | 82 | ||
83 | export type GlobalIconName = keyof typeof icons | 83 | export type GlobalIconName = keyof typeof icons |
diff --git a/client/src/app/shared/shared-instance/instance-features-table.component.html b/client/src/app/shared/shared-instance/instance-features-table.component.html index 205f2bc97..37f53b7c6 100644 --- a/client/src/app/shared/shared-instance/instance-features-table.component.html +++ b/client/src/app/shared/shared-instance/instance-features-table.component.html | |||
@@ -11,7 +11,7 @@ | |||
11 | <tr> | 11 | <tr> |
12 | <th i18n class="label" scope="row"> | 12 | <th i18n class="label" scope="row"> |
13 | <div>Default NSFW/sensitive videos policy</div> | 13 | <div>Default NSFW/sensitive videos policy</div> |
14 | <div class="c-hand more-info" (click)="openQuickSettingsHighlight()">can be redefined by the users</div> | 14 | <span class="fs-7 fw-normal fst-italic">can be redefined by the users</span> |
15 | </th> | 15 | </th> |
16 | 16 | ||
17 | <td class="value">{{ buildNSFWLabel() }}</td> | 17 | <td class="value">{{ buildNSFWLabel() }}</td> |
diff --git a/client/src/app/shared/shared-instance/instance-features-table.component.ts b/client/src/app/shared/shared-instance/instance-features-table.component.ts index c3df7c594..2e63f6c17 100644 --- a/client/src/app/shared/shared-instance/instance-features-table.component.ts +++ b/client/src/app/shared/shared-instance/instance-features-table.component.ts | |||
@@ -2,7 +2,6 @@ import { Component, OnInit } from '@angular/core' | |||
2 | import { ServerService } from '@app/core' | 2 | import { ServerService } from '@app/core' |
3 | import { prepareIcu } from '@app/helpers' | 3 | import { prepareIcu } from '@app/helpers' |
4 | import { ServerConfig } from '@shared/models' | 4 | import { ServerConfig } from '@shared/models' |
5 | import { PeertubeModalService } from '../shared-main/peertube-modal/peertube-modal.service' | ||
6 | 5 | ||
7 | @Component({ | 6 | @Component({ |
8 | selector: 'my-instance-features-table', | 7 | selector: 'my-instance-features-table', |
@@ -14,8 +13,7 @@ export class InstanceFeaturesTableComponent implements OnInit { | |||
14 | serverConfig: ServerConfig | 13 | serverConfig: ServerConfig |
15 | 14 | ||
16 | constructor ( | 15 | constructor ( |
17 | private serverService: ServerService, | 16 | private serverService: ServerService |
18 | private modalService: PeertubeModalService | ||
19 | ) { } | 17 | ) { } |
20 | 18 | ||
21 | get initialUserVideoQuota () { | 19 | get initialUserVideoQuota () { |
@@ -69,10 +67,6 @@ export class InstanceFeaturesTableComponent implements OnInit { | |||
69 | return this.serverService.getServerVersionAndCommit() | 67 | return this.serverService.getServerVersionAndCommit() |
70 | } | 68 | } |
71 | 69 | ||
72 | openQuickSettingsHighlight () { | ||
73 | this.modalService.openQuickSettingsSubject.next() | ||
74 | } | ||
75 | |||
76 | private getApproximateTime (seconds: number) { | 70 | private getApproximateTime (seconds: number) { |
77 | const hours = Math.floor(seconds / 3600) | 71 | const hours = Math.floor(seconds / 3600) |
78 | 72 | ||
diff --git a/client/src/app/shared/shared-main/angular/number-formatter.pipe.ts b/client/src/app/shared/shared-main/angular/number-formatter.pipe.ts index e0cb475fc..00cfbc692 100644 --- a/client/src/app/shared/shared-main/angular/number-formatter.pipe.ts +++ b/client/src/app/shared/shared-main/angular/number-formatter.pipe.ts | |||
@@ -17,7 +17,7 @@ export class NumberFormatterPipe implements PipeTransform { | |||
17 | return +f | 17 | return +f |
18 | } | 18 | } |
19 | 19 | ||
20 | private dictionary: Array<{ max: number, type: string }> = [ | 20 | private dictionary: { max: number, type: string }[] = [ |
21 | { max: 1000, type: '' }, | 21 | { max: 1000, type: '' }, |
22 | { max: 1000000, type: 'K' }, | 22 | { max: 1000000, type: 'K' }, |
23 | { max: 1000000000, type: 'M' } | 23 | { max: 1000000000, type: 'M' } |
diff --git a/client/src/app/shared/shared-main/buttons/action-dropdown.component.html b/client/src/app/shared/shared-main/buttons/action-dropdown.component.html index bbfab7b37..d4aa9f380 100644 --- a/client/src/app/shared/shared-main/buttons/action-dropdown.component.html +++ b/client/src/app/shared/shared-main/buttons/action-dropdown.component.html | |||
@@ -40,7 +40,7 @@ | |||
40 | 40 | ||
41 | <h6 | 41 | <h6 |
42 | *ngIf="!action.linkBuilder && action.isHeader && areActionsDisplayed(actions, entry)" [ngClass]="{ 'with-icon': !!action.iconName }" | 42 | *ngIf="!action.linkBuilder && action.isHeader && areActionsDisplayed(actions, entry)" [ngClass]="{ 'with-icon': !!action.iconName }" |
43 | class="dropdown-header" [title]="action.title || ''" (click)="action.handler(entry)" (keyup.enter)="action.handler(entry)" | 43 | class="dropdown-header" [title]="action.title || ''" |
44 | > | 44 | > |
45 | <ng-container *ngTemplateOutlet="templateActionLabel; context:{ $implicit: action }"></ng-container> | 45 | <ng-container *ngTemplateOutlet="templateActionLabel; context:{ $implicit: action }"></ng-container> |
46 | </h6> | 46 | </h6> |
diff --git a/client/src/app/shared/shared-main/buttons/action-dropdown.component.ts b/client/src/app/shared/shared-main/buttons/action-dropdown.component.ts index e39fbd66d..7d24ff4ae 100644 --- a/client/src/app/shared/shared-main/buttons/action-dropdown.component.ts +++ b/client/src/app/shared/shared-main/buttons/action-dropdown.component.ts | |||
@@ -55,7 +55,7 @@ export class ActionDropdownComponent<T> { | |||
55 | return {} | 55 | return {} |
56 | } | 56 | } |
57 | 57 | ||
58 | areActionsDisplayed (actions: Array<DropdownAction<T> | DropdownAction<T>[]>, entry: T): boolean { | 58 | areActionsDisplayed (actions: (DropdownAction<T> | DropdownAction<T>[])[], entry: T): boolean { |
59 | return actions.some(a => { | 59 | return actions.some(a => { |
60 | if (Array.isArray(a)) return this.areActionsDisplayed(a, entry) | 60 | if (Array.isArray(a)) return this.areActionsDisplayed(a, entry) |
61 | 61 | ||
diff --git a/client/src/app/shared/shared-main/buttons/button.component.ts b/client/src/app/shared/shared-main/buttons/button.component.ts index 63a59cbe1..e3a830891 100644 --- a/client/src/app/shared/shared-main/buttons/button.component.ts +++ b/client/src/app/shared/shared-main/buttons/button.component.ts | |||
@@ -31,7 +31,7 @@ export class ButtonComponent implements OnInit, OnChanges { | |||
31 | private buildClasses () { | 31 | private buildClasses () { |
32 | this.classes = { | 32 | this.classes = { |
33 | [this.className]: true, | 33 | [this.className]: true, |
34 | disabled: this.disabled, | 34 | 'disabled': this.disabled, |
35 | 'icon-only': !this.label, | 35 | 'icon-only': !this.label, |
36 | 'has-icon': !!this.icon, | 36 | 'has-icon': !!this.icon, |
37 | 'responsive-label': this.responsiveLabel | 37 | 'responsive-label': this.responsiveLabel |
diff --git a/client/src/app/shared/shared-main/date/date-toggle.component.html b/client/src/app/shared/shared-main/date/date-toggle.component.html index 14b6e7d7a..5277ae0e8 100644 --- a/client/src/app/shared/shared-main/date/date-toggle.component.html +++ b/client/src/app/shared/shared-main/date/date-toggle.component.html | |||
@@ -1,7 +1,10 @@ | |||
1 | <span | 1 | <span |
2 | class="date-toggle" | 2 | class="date-toggle" |
3 | [title]="getTitle()" | 3 | [title]="getTitle()" |
4 | role="button" | ||
5 | tabindex="0" | ||
4 | (click)="toggle()" | 6 | (click)="toggle()" |
7 | (keyup.enter)="toggle()" | ||
5 | > | 8 | > |
6 | {{ getContent() }} | 9 | {{ getContent() }} |
7 | </span> | 10 | </span> |
diff --git a/client/src/app/shared/shared-main/loaders/loader.component.ts b/client/src/app/shared/shared-main/loaders/loader.component.ts index bd038f8b5..be9e130e7 100644 --- a/client/src/app/shared/shared-main/loaders/loader.component.ts +++ b/client/src/app/shared/shared-main/loaders/loader.component.ts | |||
@@ -10,8 +10,8 @@ export class LoaderComponent { | |||
10 | 10 | ||
11 | private readonly sizes = { | 11 | private readonly sizes = { |
12 | sm: { | 12 | sm: { |
13 | width: '1rem', | 13 | 'width': '1rem', |
14 | height: '1rem', | 14 | 'height': '1rem', |
15 | 'border-width': '0.15rem' | 15 | 'border-width': '0.15rem' |
16 | }, | 16 | }, |
17 | xl: { | 17 | xl: { |
diff --git a/client/src/app/shared/shared-main/users/user-notifications.component.html b/client/src/app/shared/shared-main/users/user-notifications.component.html index a51e08292..351e4dc3f 100644 --- a/client/src/app/shared/shared-main/users/user-notifications.component.html +++ b/client/src/app/shared/shared-main/users/user-notifications.component.html | |||
@@ -1,6 +1,7 @@ | |||
1 | <div *ngIf="componentPagination.totalItems === 0" class="no-notification" i18n>You don't have notifications.</div> | 1 | <div *ngIf="componentPagination.totalItems === 0" class="no-notification" i18n>You don't have notifications.</div> |
2 | 2 | ||
3 | <div class="notifications" myInfiniteScroller (nearOfBottom)="onNearOfBottom()" [dataObservable]="onDataSubject.asObservable()"> | 3 | <div class="notifications" myInfiniteScroller (nearOfBottom)="onNearOfBottom()" [dataObservable]="onDataSubject.asObservable()"> |
4 | <!-- eslint-disable-next-line @angular-eslint/template/click-events-have-key-events,@angular-eslint/template/interactive-supports-focus --> | ||
4 | <div *ngFor="let notification of notifications" class="notification" [ngClass]="{ unread: !notification.read }" (click)="markAsRead(notification)"> | 5 | <div *ngFor="let notification of notifications" class="notification" [ngClass]="{ unread: !notification.read }" (click)="markAsRead(notification)"> |
5 | 6 | ||
6 | <ng-container [ngSwitch]="notification.type"> | 7 | <ng-container [ngSwitch]="notification.type"> |
diff --git a/client/src/app/shared/shared-main/users/user-quota.component.html b/client/src/app/shared/shared-main/users/user-quota.component.html index 0e0d38c2a..ac9085bb3 100644 --- a/client/src/app/shared/shared-main/users/user-quota.component.html +++ b/client/src/app/shared/shared-main/users/user-quota.component.html | |||
@@ -1,6 +1,7 @@ | |||
1 | <div class="user-quota mb-3"> | 1 | <div class="user-quota mb-3"> |
2 | <div> | 2 | <div> |
3 | <label class="user-quota-title" tabindex="0" i18n>Total video quota</label> | 3 | <div class="mb-2 fw-bold" i18n>Total video quota</div> |
4 | |||
4 | <div class="progress" tabindex="0" [ngbTooltip]="titleVideoQuota()"> | 5 | <div class="progress" tabindex="0" [ngbTooltip]="titleVideoQuota()"> |
5 | <div class="progress-bar" tabindex="0" role="progressbar" [style]="{ width: userVideoQuotaPercentage + '%' }" | 6 | <div class="progress-bar" tabindex="0" role="progressbar" [style]="{ width: userVideoQuotaPercentage + '%' }" |
6 | [attr.aria-valuenow]="userVideoQuotaUsed" aria-valuemin="0" [attr.aria-valuemax]="user.videoQuota"></div> | 7 | [attr.aria-valuenow]="userVideoQuotaUsed" aria-valuemin="0" [attr.aria-valuemax]="user.videoQuota"></div> |
@@ -10,7 +11,8 @@ | |||
10 | </div> | 11 | </div> |
11 | 12 | ||
12 | <div *ngIf="hasDailyQuota()" class="mt-3"> | 13 | <div *ngIf="hasDailyQuota()" class="mt-3"> |
13 | <label class="user-quota-title" tabindex="0" i18n>Daily video quota</label> | 14 | <div class="mb-2 fw-bold" i18n>Daily video quota</div> |
15 | |||
14 | <div class="progress" tabindex="0" [ngbTooltip]="titleVideoQuotaDaily()"> | 16 | <div class="progress" tabindex="0" [ngbTooltip]="titleVideoQuotaDaily()"> |
15 | <div class="progress-bar" role="progressbar" [style]="{ width: userVideoQuotaDailyPercentage + '%' }" | 17 | <div class="progress-bar" role="progressbar" [style]="{ width: userVideoQuotaDailyPercentage + '%' }" |
16 | [attr.aria-valuenow]="userVideoQuotaUsedDaily" aria-valuemin="0" [attr.aria-valuemax]="user.videoQuotaDaily"></div> | 18 | [attr.aria-valuenow]="userVideoQuotaUsedDaily" aria-valuemin="0" [attr.aria-valuemax]="user.videoQuotaDaily"></div> |
diff --git a/client/src/app/shared/shared-moderation/server-blocklist.component.html b/client/src/app/shared/shared-moderation/server-blocklist.component.html index e07703cf4..1a13e0207 100644 --- a/client/src/app/shared/shared-moderation/server-blocklist.component.html +++ b/client/src/app/shared/shared-moderation/server-blocklist.component.html | |||
@@ -14,10 +14,10 @@ | |||
14 | <ng-template pTemplate="caption"> | 14 | <ng-template pTemplate="caption"> |
15 | <div class="caption"> | 15 | <div class="caption"> |
16 | <div class="left-buttons"> | 16 | <div class="left-buttons"> |
17 | <a class="block-button" (click)="addServersToBlock()" (key.enter)="addServersToBlock()"> | 17 | <button class="peertube-create-button" (click)="addServersToBlock()" (key.enter)="addServersToBlock()"> |
18 | <my-global-icon iconName="add" aria-hidden="true"></my-global-icon> | 18 | <my-global-icon iconName="add" aria-hidden="true"></my-global-icon> |
19 | <ng-container i18n>Mute domain</ng-container> | 19 | <ng-container i18n>Mute domain</ng-container> |
20 | </a> | 20 | </button> |
21 | </div> | 21 | </div> |
22 | 22 | ||
23 | <div class="ms-auto"> | 23 | <div class="ms-auto"> |
diff --git a/client/src/app/shared/shared-moderation/server-blocklist.component.scss b/client/src/app/shared/shared-moderation/server-blocklist.component.scss index 1a6b0435f..10b9a40a1 100644 --- a/client/src/app/shared/shared-moderation/server-blocklist.component.scss +++ b/client/src/app/shared/shared-moderation/server-blocklist.component.scss | |||
@@ -20,7 +20,3 @@ a { | |||
20 | @include peertube-button; | 20 | @include peertube-button; |
21 | @include grey-button; | 21 | @include grey-button; |
22 | } | 22 | } |
23 | |||
24 | .block-button { | ||
25 | @include create-button; | ||
26 | } | ||
diff --git a/client/src/app/shared/shared-tables/video-cell.component.html b/client/src/app/shared/shared-tables/video-cell.component.html index ea432b70e..38e7dea17 100644 --- a/client/src/app/shared/shared-tables/video-cell.component.html +++ b/client/src/app/shared/shared-tables/video-cell.component.html | |||
@@ -1,7 +1,7 @@ | |||
1 | <a [href]="getVideoUrl()" class="table-video-link" [title]="video.name" target="_blank" rel="noopener noreferrer"> | 1 | <a [href]="getVideoUrl()" class="table-video-link" [title]="video.name" target="_blank" rel="noopener noreferrer"> |
2 | <div class="table-video"> | 2 | <div class="table-video"> |
3 | <div class="table-video-image"> | 3 | <div class="table-video-image"> |
4 | <img [src]="video.thumbnailPath"> | 4 | <img [src]="video.thumbnailPath" alt=""> |
5 | 5 | ||
6 | <ng-content select="[image]"></ng-content> | 6 | <ng-content select="[image]"></ng-content> |
7 | </div> | 7 | </div> |
diff --git a/client/src/app/shared/shared-thumbnail/video-thumbnail.component.html b/client/src/app/shared/shared-thumbnail/video-thumbnail.component.html index 57fcdd899..6c9a8b91c 100644 --- a/client/src/app/shared/shared-thumbnail/video-thumbnail.component.html +++ b/client/src/app/shared/shared-thumbnail/video-thumbnail.component.html | |||
@@ -11,15 +11,15 @@ | |||
11 | 11 | ||
12 | <div *ngIf="displayWatchLaterPlaylist" class="video-thumbnail-actions-overlay"> | 12 | <div *ngIf="displayWatchLaterPlaylist" class="video-thumbnail-actions-overlay"> |
13 | <ng-container *ngIf="inWatchLaterPlaylist !== true"> | 13 | <ng-container *ngIf="inWatchLaterPlaylist !== true"> |
14 | <div class="video-thumbnail-watch-later-overlay" placement="left" [ngbTooltip]="addToWatchLaterText" container="body" (click)="onWatchLaterClick($event)"> | 14 | <button class="video-thumbnail-watch-later-overlay button-unstyle" placement="left" [ngbTooltip]="addToWatchLaterText" container="body" (click)="onWatchLaterClick($event)"> |
15 | <my-global-icon iconName="clock" [attr.aria-label]="addToWatchLaterText" role="button"></my-global-icon> | 15 | <my-global-icon iconName="clock" [attr.aria-label]="addToWatchLaterText" role="button"></my-global-icon> |
16 | </div> | 16 | </button> |
17 | </ng-container> | 17 | </ng-container> |
18 | 18 | ||
19 | <ng-container *ngIf="inWatchLaterPlaylist === true"> | 19 | <ng-container *ngIf="inWatchLaterPlaylist === true"> |
20 | <div class="video-thumbnail-watch-later-overlay" placement="left" [ngbTooltip]="addedToWatchLaterText" container="body" (click)="onWatchLaterClick($event)"> | 20 | <button class="video-thumbnail-watch-later-overlay button-unstyle" placement="left" [ngbTooltip]="addedToWatchLaterText" container="body" (click)="onWatchLaterClick($event)"> |
21 | <my-global-icon iconName="tick" [attr.aria-label]="addedToWatchLaterText" role="button"></my-global-icon> | 21 | <my-global-icon iconName="tick" [attr.aria-label]="addedToWatchLaterText" role="button"></my-global-icon> |
22 | </div> | 22 | </button> |
23 | </ng-container> | 23 | </ng-container> |
24 | </div> | 24 | </div> |
25 | 25 | ||
diff --git a/client/src/app/shared/shared-video-live/live-stream-information.component.html b/client/src/app/shared/shared-video-live/live-stream-information.component.html index 8e61bdbb3..e385b429c 100644 --- a/client/src/app/shared/shared-video-live/live-stream-information.component.html +++ b/client/src/app/shared/shared-video-live/live-stream-information.component.html | |||
@@ -33,7 +33,7 @@ | |||
33 | </div> | 33 | </div> |
34 | 34 | ||
35 | <div class="journal" *ngIf="latestLiveSessions.length !== 0"> | 35 | <div class="journal" *ngIf="latestLiveSessions.length !== 0"> |
36 | <label i18n>Latest live sessions</label> | 36 | <div class="mb-2 fw-bold" i18n>Latest live sessions</div> |
37 | 37 | ||
38 | <div class="journal-session" *ngFor="let session of latestLiveSessions"> | 38 | <div class="journal-session" *ngFor="let session of latestLiveSessions"> |
39 | <span i18n class="pt-badge badge-success" *ngIf="!getErrorLabel(session)">Success</span> | 39 | <span i18n class="pt-badge badge-success" *ngIf="!getErrorLabel(session)">Success</span> |
diff --git a/client/src/app/shared/shared-video-miniature/video-download.component.html b/client/src/app/shared/shared-video-miniature/video-download.component.html index 3d8ce22de..a3676e159 100644 --- a/client/src/app/shared/shared-video-miniature/video-download.component.html +++ b/client/src/app/shared/shared-video-miniature/video-download.component.html | |||
@@ -111,9 +111,9 @@ | |||
111 | </div> | 111 | </div> |
112 | </div> | 112 | </div> |
113 | 113 | ||
114 | <div | 114 | <button |
115 | (click)="isAdvancedCustomizationCollapsed = !isAdvancedCustomizationCollapsed" | 115 | (click)="isAdvancedCustomizationCollapsed = !isAdvancedCustomizationCollapsed" |
116 | role="button" class="advanced-filters-button" | 116 | class="advanced-filters-button button-unstyle" |
117 | [attr.aria-expanded]="!isAdvancedCustomizationCollapsed" aria-controls="collapseBasic" | 117 | [attr.aria-expanded]="!isAdvancedCustomizationCollapsed" aria-controls="collapseBasic" |
118 | > | 118 | > |
119 | <ng-container *ngIf="isAdvancedCustomizationCollapsed"> | 119 | <ng-container *ngIf="isAdvancedCustomizationCollapsed"> |
@@ -131,7 +131,7 @@ | |||
131 | Simple | 131 | Simple |
132 | </ng-container> | 132 | </ng-container> |
133 | </ng-container> | 133 | </ng-container> |
134 | </div> | 134 | </button> |
135 | </ng-container> | 135 | </ng-container> |
136 | </div> | 136 | </div> |
137 | 137 | ||
diff --git a/client/src/app/shared/shared-video-miniature/video-filters-header.component.html b/client/src/app/shared/shared-video-miniature/video-filters-header.component.html index 48bb0d812..3d39c6fdc 100644 --- a/client/src/app/shared/shared-video-miniature/video-filters-header.component.html +++ b/client/src/app/shared/shared-video-miniature/video-filters-header.component.html | |||
@@ -2,7 +2,7 @@ | |||
2 | <div class="label-description muted" i18n> | 2 | <div class="label-description muted" i18n> |
3 | Update | 3 | Update |
4 | <a routerLink="/my-account/settings" [fragment]="fragment"> | 4 | <a routerLink="/my-account/settings" [fragment]="fragment"> |
5 | <span (click)="onAccountSettingsClick($event)">your settings</span> | 5 | <button class="button-unstyle" (click)="onAccountSettingsClick($event)">your settings</button> |
6 | </a | 6 | </a |
7 | ></div> | 7 | ></div> |
8 | </ng-template> | 8 | </ng-template> |
@@ -23,9 +23,9 @@ | |||
23 | <my-global-icon iconName="chevrons-up"></my-global-icon> | 23 | <my-global-icon iconName="chevrons-up"></my-global-icon> |
24 | </button> | 24 | </button> |
25 | 25 | ||
26 | <div | 26 | <button |
27 | *ngFor="let activeFilter of filters.getActiveFilters()" (click)="resetFilter(activeFilter.key, activeFilter.canRemove)" | 27 | *ngFor="let activeFilter of filters.getActiveFilters()" (click)="resetFilter(activeFilter.key, activeFilter.canRemove)" |
28 | class="active-filter pastille" [ngClass]="{ 'can-remove': activeFilter.canRemove }" [title]="getFilterTitle(activeFilter.canRemove)" | 28 | class="active-filter pastille button-unstyle" [ngClass]="{ 'can-remove': activeFilter.canRemove }" [title]="getFilterTitle(activeFilter.canRemove)" |
29 | > | 29 | > |
30 | <span> | 30 | <span> |
31 | {{ activeFilter.label }} | 31 | {{ activeFilter.label }} |
@@ -34,7 +34,7 @@ | |||
34 | </span> | 34 | </span> |
35 | 35 | ||
36 | <my-global-icon *ngIf="activeFilter.canRemove" iconName="cross"></my-global-icon> | 36 | <my-global-icon *ngIf="activeFilter.canRemove" iconName="cross"></my-global-icon> |
37 | </div> | 37 | </button> |
38 | </div> | 38 | </div> |
39 | 39 | ||
40 | <ng-select | 40 | <ng-select |
diff --git a/client/src/app/shared/shared-video-miniature/video-filters.model.ts b/client/src/app/shared/shared-video-miniature/video-filters.model.ts index 4069ab4b5..6b4b72c75 100644 --- a/client/src/app/shared/shared-video-miniature/video-filters.model.ts +++ b/client/src/app/shared/shared-video-miniature/video-filters.model.ts | |||
@@ -37,7 +37,7 @@ export class VideoFilters { | |||
37 | private activeFilters: { key: string, canRemove: boolean, label: string, value?: string }[] = [] | 37 | private activeFilters: { key: string, canRemove: boolean, label: string, value?: string }[] = [] |
38 | private defaultNSFWPolicy: NSFWPolicyType | 38 | private defaultNSFWPolicy: NSFWPolicyType |
39 | 39 | ||
40 | private onChangeCallbacks: Array<() => void> = [] | 40 | private onChangeCallbacks: (() => void)[] = [] |
41 | private oldFormObjectString: string | 41 | private oldFormObjectString: string |
42 | 42 | ||
43 | private readonly hiddenFields: string[] = [] | 43 | private readonly hiddenFields: string[] = [] |
diff --git a/client/src/app/shared/shared-video-miniature/videos-list.component.html b/client/src/app/shared/shared-video-miniature/videos-list.component.html index 8c8bf80d9..909c86d3d 100644 --- a/client/src/app/shared/shared-video-miniature/videos-list.component.html +++ b/client/src/app/shared/shared-video-miniature/videos-list.component.html | |||
@@ -16,9 +16,9 @@ | |||
16 | <ng-container *ngTemplateOutlet="actionContent; context:{ $implicit: action }"></ng-container> | 16 | <ng-container *ngTemplateOutlet="actionContent; context:{ $implicit: action }"></ng-container> |
17 | </a> | 17 | </a> |
18 | 18 | ||
19 | <a *ngIf="!action.routerLink && !action.href && action.click" class="ms-2" (click)="action.click($event)" (key.enter)="action.click($event)"> | 19 | <button *ngIf="!action.routerLink && !action.href && action.click" class="ms-2 button-unstyle" (click)="action.click($event)" (key.enter)="action.click($event)"> |
20 | <ng-container *ngTemplateOutlet="actionContent; context:{ $implicit: action }"></ng-container> | 20 | <ng-container *ngTemplateOutlet="actionContent; context:{ $implicit: action }"></ng-container> |
21 | </a> | 21 | </button> |
22 | 22 | ||
23 | <a *ngIf="!action.routerLink && action.href && action.click" class="ms-2" (click)="action.click($event)" (key.enter)="action.click($event)" [href]="action.href"> | 23 | <a *ngIf="!action.routerLink && action.href && action.click" class="ms-2" (click)="action.click($event)" (key.enter)="action.click($event)" [href]="action.href"> |
24 | <ng-container *ngTemplateOutlet="actionContent; context:{ $implicit: action }"></ng-container> | 24 | <ng-container *ngTemplateOutlet="actionContent; context:{ $implicit: action }"></ng-container> |
diff --git a/client/src/app/shared/shared-video-miniature/videos-selection.component.html b/client/src/app/shared/shared-video-miniature/videos-selection.component.html index 6c6db4b96..8931158a9 100644 --- a/client/src/app/shared/shared-video-miniature/videos-selection.component.html +++ b/client/src/app/shared/shared-video-miniature/videos-selection.component.html | |||
@@ -20,9 +20,9 @@ | |||
20 | <!-- Display only once --> | 20 | <!-- Display only once --> |
21 | <div class="action-selection-mode" *ngIf="isInSelectionMode() === true && i === 0"> | 21 | <div class="action-selection-mode" *ngIf="isInSelectionMode() === true && i === 0"> |
22 | <div class="action-selection-mode-child"> | 22 | <div class="action-selection-mode-child"> |
23 | <span i18n class="action-button action-button-cancel-selection" (click)="abortSelectionMode()"> | 23 | <button i18n class="action-button action-button-cancel-selection" (click)="abortSelectionMode()"> |
24 | Cancel | 24 | Cancel |
25 | </span> | 25 | </button> |
26 | 26 | ||
27 | <ng-container *ngTemplateOutlet="globalButtonsTemplate"></ng-container> | 27 | <ng-container *ngTemplateOutlet="globalButtonsTemplate"></ng-container> |
28 | </div> | 28 | </div> |
diff --git a/client/src/app/shared/shared-video-playlist/video-add-to-playlist.component.html b/client/src/app/shared/shared-video-playlist/video-add-to-playlist.component.html index 6d787796a..f2f69236c 100644 --- a/client/src/app/shared/shared-video-playlist/video-add-to-playlist.component.html +++ b/client/src/app/shared/shared-video-playlist/video-add-to-playlist.component.html | |||
@@ -14,20 +14,20 @@ | |||
14 | *ngFor="let playlist of videoPlaylists" | 14 | *ngFor="let playlist of videoPlaylists" |
15 | class="playlist dropdown-item" [ngClass]="{ 'has-optional-row': playlist.optionalRowDisplayed }" | 15 | class="playlist dropdown-item" [ngClass]="{ 'has-optional-row': playlist.optionalRowDisplayed }" |
16 | > | 16 | > |
17 | <div class="primary-row" (click)="toggleMainPlaylist($event, playlist)"> | 17 | <button class="primary-row button-unstyle" (click)="toggleMainPlaylist($event, playlist)"> |
18 | <my-peertube-checkbox | 18 | <my-peertube-checkbox |
19 | [disabled]="isPresentMultipleTimes(playlist) || playlist.optionalRowDisplayed" [inputName]="getPrimaryInputName(playlist)" | 19 | [disabled]="isPresentMultipleTimes(playlist) || playlist.optionalRowDisplayed" [inputName]="getPrimaryInputName(playlist)" |
20 | [ngModel]="isPrimaryCheckboxChecked(playlist)" [onPushWorkaround]="true" | 20 | [ngModel]="isPrimaryCheckboxChecked(playlist)" [onPushWorkaround]="true" |
21 | ></my-peertube-checkbox> | 21 | ></my-peertube-checkbox> |
22 | 22 | ||
23 | <label class="display-name"> | 23 | <label [for]="getPrimaryInputName(playlist)" class="display-name"> |
24 | {{ playlist.displayName }} | 24 | {{ playlist.displayName }} |
25 | </label> | 25 | </label> |
26 | 26 | ||
27 | <div class="optional-row-icon" *ngIf="isPrimaryCheckboxChecked(playlist)" (click)="$event.stopPropagation(); toggleOptionalRow(playlist)"> | 27 | <button class="optional-row-icon button-unstyle" *ngIf="isPrimaryCheckboxChecked(playlist)" (click)="$event.stopPropagation(); toggleOptionalRow(playlist)"> |
28 | <my-global-icon iconName="add" aria-hidden="true"></my-global-icon> | 28 | <my-global-icon iconName="add" aria-hidden="true"></my-global-icon> |
29 | </div> | 29 | </button> |
30 | </div> | 30 | </button> |
31 | 31 | ||
32 | <div class="optional-rows" *ngIf="playlist.optionalRowDisplayed"> | 32 | <div class="optional-rows" *ngIf="playlist.optionalRowDisplayed"> |
33 | <div class="header-label" i18n>Start at</div> | 33 | <div class="header-label" i18n>Start at</div> |
@@ -58,11 +58,11 @@ | |||
58 | </div> | 58 | </div> |
59 | </div> | 59 | </div> |
60 | 60 | ||
61 | <div class="new-playlist-button dropdown-item" (click)="openCreateBlock($event)" [hidden]="isNewPlaylistBlockOpened"> | 61 | <button class="new-playlist-button dropdown-item" (click)="openCreateBlock($event)" [hidden]="isNewPlaylistBlockOpened"> |
62 | <my-global-icon iconName="add" aria-hidden="true"></my-global-icon> | 62 | <my-global-icon iconName="add" aria-hidden="true"></my-global-icon> |
63 | 63 | ||
64 | <span i18n>Create a private playlist</span> | 64 | <span i18n>Create a private playlist</span> |
65 | </div> | 65 | </button> |
66 | 66 | ||
67 | <form class="new-playlist-block dropdown-item" *ngIf="isNewPlaylistBlockOpened" (ngSubmit)="createPlaylist()" [formGroup]="form"> | 67 | <form class="new-playlist-block dropdown-item" *ngIf="isNewPlaylistBlockOpened" (ngSubmit)="createPlaylist()" [formGroup]="form"> |
68 | <div class="form-group"> | 68 | <div class="form-group"> |
diff --git a/client/src/app/shared/shared-video-playlist/video-add-to-playlist.component.scss b/client/src/app/shared/shared-video-playlist/video-add-to-playlist.component.scss index de2f1032b..d1aa95266 100644 --- a/client/src/app/shared/shared-video-playlist/video-add-to-playlist.component.scss +++ b/client/src/app/shared/shared-video-playlist/video-add-to-playlist.component.scss | |||
@@ -67,6 +67,8 @@ | |||
67 | } | 67 | } |
68 | 68 | ||
69 | .optional-row-icon { | 69 | .optional-row-icon { |
70 | @include margin-left(5px); | ||
71 | |||
70 | display: flex; | 72 | display: flex; |
71 | align-items: center; | 73 | align-items: center; |
72 | font-size: 14px; | 74 | font-size: 14px; |
@@ -79,6 +81,10 @@ | |||
79 | width: 19px; | 81 | width: 19px; |
80 | height: 19px; | 82 | height: 19px; |
81 | } | 83 | } |
84 | |||
85 | &:hover { | ||
86 | opacity: 0.8; | ||
87 | } | ||
82 | } | 88 | } |
83 | } | 89 | } |
84 | 90 | ||
diff --git a/client/src/app/shared/shared-video-playlist/video-playlist-element-miniature.component.html b/client/src/app/shared/shared-video-playlist/video-playlist-element-miniature.component.html index 40c58166d..75afa0709 100644 --- a/client/src/app/shared/shared-video-playlist/video-playlist-element-miniature.component.html +++ b/client/src/app/shared/shared-video-playlist/video-playlist-element-miniature.component.html | |||
@@ -59,10 +59,10 @@ | |||
59 | 59 | ||
60 | <div ngbDropdownMenu> | 60 | <div ngbDropdownMenu> |
61 | <ng-container *ngIf="playlistElement.video"> | 61 | <ng-container *ngIf="playlistElement.video"> |
62 | <div class="dropdown-item" (click)="toggleDisplayTimestampsOptions($event, playlistElement)"> | 62 | <button ngbDropdownItem (click)="toggleDisplayTimestampsOptions($event, playlistElement)"> |
63 | <my-global-icon iconName="edit" aria-hidden="true"></my-global-icon> | 63 | <my-global-icon iconName="edit" aria-hidden="true"></my-global-icon> |
64 | <ng-container i18n>Edit starts/stops at</ng-container> | 64 | <ng-container i18n>Edit starts/stops at</ng-container> |
65 | </div> | 65 | </button> |
66 | 66 | ||
67 | <div class="timestamp-options" *ngIf="displayTimestampOptions"> | 67 | <div class="timestamp-options" *ngIf="displayTimestampOptions"> |
68 | <div> | 68 | <div> |
@@ -97,10 +97,10 @@ | |||
97 | </div> | 97 | </div> |
98 | </ng-container> | 98 | </ng-container> |
99 | 99 | ||
100 | <span class="dropdown-item" (click)="removeFromPlaylist(playlistElement)"> | 100 | <button ngbDropdownItem (click)="removeFromPlaylist(playlistElement)"> |
101 | <my-global-icon iconName="delete" aria-hidden="true"></my-global-icon> | 101 | <my-global-icon iconName="delete" aria-hidden="true"></my-global-icon> |
102 | <ng-container i18n>Delete from {{ playlist?.displayName }}</ng-container> | 102 | <ng-container i18n>Delete from {{ playlist?.displayName }}</ng-container> |
103 | </span> | 103 | </button> |
104 | </div> | 104 | </div> |
105 | </div> | 105 | </div> |
106 | </div> | 106 | </div> |
diff --git a/client/src/app/shared/shared-video-playlist/video-playlist-element-miniature.component.scss b/client/src/app/shared/shared-video-playlist/video-playlist-element-miniature.component.scss index 0f085231c..cd9d0ce53 100644 --- a/client/src/app/shared/shared-video-playlist/video-playlist-element-miniature.component.scss +++ b/client/src/app/shared/shared-video-playlist/video-playlist-element-miniature.component.scss | |||
@@ -156,6 +156,7 @@ my-video-thumbnail, | |||
156 | @include padding-left(35px); | 156 | @include padding-left(35px); |
157 | 157 | ||
158 | padding-top: 0; | 158 | padding-top: 0; |
159 | margin-top: 5px; | ||
159 | margin-bottom: 15px; | 160 | margin-bottom: 15px; |
160 | 161 | ||
161 | > div { | 162 | > div { |