diff options
author | Jelle Besseling <jelle@pingiun.com> | 2021-10-12 13:33:44 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-12 13:33:44 +0200 |
commit | 8d8a037e3fe9b1d2ccbc4169ce59b13000b59cb0 (patch) | |
tree | 755ba56bc3acbd82ec195974545581c1e49aae5e /client/src/app/shared/shared-forms/select | |
parent | badacdbb4a3e4a1aae4d324abc496be8e261b2ef (diff) | |
download | PeerTube-8d8a037e3fe9b1d2ccbc4169ce59b13000b59cb0.tar.gz PeerTube-8d8a037e3fe9b1d2ccbc4169ce59b13000b59cb0.tar.zst PeerTube-8d8a037e3fe9b1d2ccbc4169ce59b13000b59cb0.zip |
Allow configuration to be static/readonly (#4315)
* Allow configuration to be static/readonly
* Make all components disableable
* Improve disabled component styling
* Rename edits allowed field in configuration
* Fix CI
Diffstat (limited to 'client/src/app/shared/shared-forms/select')
6 files changed, 19 insertions, 0 deletions
diff --git a/client/src/app/shared/shared-forms/select/select-checkbox.component.html b/client/src/app/shared/shared-forms/select/select-checkbox.component.html index 7b49a0c01..03db2875b 100644 --- a/client/src/app/shared/shared-forms/select/select-checkbox.component.html +++ b/client/src/app/shared/shared-forms/select/select-checkbox.component.html | |||
@@ -7,6 +7,7 @@ | |||
7 | [multiple]="true" | 7 | [multiple]="true" |
8 | [searchable]="true" | 8 | [searchable]="true" |
9 | [closeOnSelect]="false" | 9 | [closeOnSelect]="false" |
10 | [disabled]="disabled" | ||
10 | 11 | ||
11 | bindValue="id" | 12 | bindValue="id" |
12 | bindLabel="label" | 13 | bindLabel="label" |
diff --git a/client/src/app/shared/shared-forms/select/select-checkbox.component.ts b/client/src/app/shared/shared-forms/select/select-checkbox.component.ts index 12f697628..c9a500324 100644 --- a/client/src/app/shared/shared-forms/select/select-checkbox.component.ts +++ b/client/src/app/shared/shared-forms/select/select-checkbox.component.ts | |||
@@ -23,6 +23,8 @@ export class SelectCheckboxComponent implements OnInit, ControlValueAccessor { | |||
23 | @Input() selectableGroupAsModel: boolean | 23 | @Input() selectableGroupAsModel: boolean |
24 | @Input() placeholder: string | 24 | @Input() placeholder: string |
25 | 25 | ||
26 | disabled = false | ||
27 | |||
26 | ngOnInit () { | 28 | ngOnInit () { |
27 | if (!this.placeholder) this.placeholder = $localize`Add a new option` | 29 | if (!this.placeholder) this.placeholder = $localize`Add a new option` |
28 | } | 30 | } |
@@ -59,6 +61,10 @@ export class SelectCheckboxComponent implements OnInit, ControlValueAccessor { | |||
59 | this.propagateChange(this.selectedItems) | 61 | this.propagateChange(this.selectedItems) |
60 | } | 62 | } |
61 | 63 | ||
64 | setDisabledState (isDisabled: boolean) { | ||
65 | this.disabled = isDisabled | ||
66 | } | ||
67 | |||
62 | compareFn (item: SelectOptionsItem, selected: ItemSelectCheckboxValue) { | 68 | compareFn (item: SelectOptionsItem, selected: ItemSelectCheckboxValue) { |
63 | if (typeof selected === 'string' || typeof selected === 'number') { | 69 | if (typeof selected === 'string' || typeof selected === 'number') { |
64 | return item.id === selected | 70 | return item.id === selected |
diff --git a/client/src/app/shared/shared-forms/select/select-custom-value.component.html b/client/src/app/shared/shared-forms/select/select-custom-value.component.html index 9dc8c2ec2..69fdedc10 100644 --- a/client/src/app/shared/shared-forms/select/select-custom-value.component.html +++ b/client/src/app/shared/shared-forms/select/select-custom-value.component.html | |||
@@ -5,6 +5,7 @@ | |||
5 | [searchable]="searchable" | 5 | [searchable]="searchable" |
6 | [groupBy]="groupBy" | 6 | [groupBy]="groupBy" |
7 | [labelForId]="labelForId" | 7 | [labelForId]="labelForId" |
8 | [disabled]="disabled" | ||
8 | 9 | ||
9 | [(ngModel)]="selectedId" | 10 | [(ngModel)]="selectedId" |
10 | (ngModelChange)="onModelChange()" | 11 | (ngModelChange)="onModelChange()" |
diff --git a/client/src/app/shared/shared-forms/select/select-custom-value.component.ts b/client/src/app/shared/shared-forms/select/select-custom-value.component.ts index bc6b863c7..636bd6101 100644 --- a/client/src/app/shared/shared-forms/select/select-custom-value.component.ts +++ b/client/src/app/shared/shared-forms/select/select-custom-value.component.ts | |||
@@ -25,6 +25,7 @@ export class SelectCustomValueComponent implements ControlValueAccessor, OnChang | |||
25 | 25 | ||
26 | customValue: number | string = '' | 26 | customValue: number | string = '' |
27 | selectedId: number | string | 27 | selectedId: number | string |
28 | disabled = false | ||
28 | 29 | ||
29 | itemsWithCustom: SelectOptionsItem[] = [] | 30 | itemsWithCustom: SelectOptionsItem[] = [] |
30 | 31 | ||
@@ -75,4 +76,8 @@ export class SelectCustomValueComponent implements ControlValueAccessor, OnChang | |||
75 | isCustomValue () { | 76 | isCustomValue () { |
76 | return this.selectedId === 'other' | 77 | return this.selectedId === 'other' |
77 | } | 78 | } |
79 | |||
80 | setDisabledState (isDisabled: boolean) { | ||
81 | this.disabled = isDisabled | ||
82 | } | ||
78 | } | 83 | } |
diff --git a/client/src/app/shared/shared-forms/select/select-options.component.html b/client/src/app/shared/shared-forms/select/select-options.component.html index 3b1761255..83c7de9f5 100644 --- a/client/src/app/shared/shared-forms/select/select-options.component.html +++ b/client/src/app/shared/shared-forms/select/select-options.component.html | |||
@@ -7,6 +7,7 @@ | |||
7 | [labelForId]="labelForId" | 7 | [labelForId]="labelForId" |
8 | [searchable]="searchable" | 8 | [searchable]="searchable" |
9 | [searchFn]="searchFn" | 9 | [searchFn]="searchFn" |
10 | [disabled]="disabled" | ||
10 | 11 | ||
11 | bindLabel="label" | 12 | bindLabel="label" |
12 | bindValue="id" | 13 | bindValue="id" |
diff --git a/client/src/app/shared/shared-forms/select/select-options.component.ts b/client/src/app/shared/shared-forms/select/select-options.component.ts index 8482b9dea..820a82c24 100644 --- a/client/src/app/shared/shared-forms/select/select-options.component.ts +++ b/client/src/app/shared/shared-forms/select/select-options.component.ts | |||
@@ -23,6 +23,7 @@ export class SelectOptionsComponent implements ControlValueAccessor { | |||
23 | @Input() searchFn: any | 23 | @Input() searchFn: any |
24 | 24 | ||
25 | selectedId: number | string | 25 | selectedId: number | string |
26 | disabled = false | ||
26 | 27 | ||
27 | propagateChange = (_: any) => { /* empty */ } | 28 | propagateChange = (_: any) => { /* empty */ } |
28 | 29 | ||
@@ -48,4 +49,8 @@ export class SelectOptionsComponent implements ControlValueAccessor { | |||
48 | onModelChange () { | 49 | onModelChange () { |
49 | this.propagateChange(this.selectedId) | 50 | this.propagateChange(this.selectedId) |
50 | } | 51 | } |
52 | |||
53 | setDisabledState (isDisabled: boolean) { | ||
54 | this.disabled = isDisabled | ||
55 | } | ||
51 | } | 56 | } |