aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/src/app/+admin/plugins/shared
diff options
context:
space:
mode:
Diffstat (limited to 'client/src/app/+admin/plugins/shared')
-rw-r--r--client/src/app/+admin/plugins/shared/plugin-api.service.ts23
-rw-r--r--client/src/app/+admin/plugins/shared/plugin-list.component.scss37
2 files changed, 58 insertions, 2 deletions
diff --git a/client/src/app/+admin/plugins/shared/plugin-api.service.ts b/client/src/app/+admin/plugins/shared/plugin-api.service.ts
index 89f190675..51f086a93 100644
--- a/client/src/app/+admin/plugins/shared/plugin-api.service.ts
+++ b/client/src/app/+admin/plugins/shared/plugin-api.service.ts
@@ -11,6 +11,7 @@ import { PeerTubePlugin } from '@shared/models/plugins/peertube-plugin.model'
11import { ManagePlugin } from '@shared/models/plugins/manage-plugin.model' 11import { ManagePlugin } from '@shared/models/plugins/manage-plugin.model'
12import { InstallOrUpdatePlugin } from '@shared/models/plugins/install-plugin.model' 12import { InstallOrUpdatePlugin } from '@shared/models/plugins/install-plugin.model'
13import { RegisterSettingOptions } from '@shared/models/plugins/register-setting.model' 13import { RegisterSettingOptions } from '@shared/models/plugins/register-setting.model'
14import { PeerTubePluginIndex } from '@shared/models/plugins/peertube-plugin-index.model'
14 15
15@Injectable() 16@Injectable()
16export class PluginApiService { 17export class PluginApiService {
@@ -45,7 +46,7 @@ export class PluginApiService {
45 } 46 }
46 47
47 getPlugins ( 48 getPlugins (
48 type: PluginType, 49 pluginType: PluginType,
49 componentPagination: ComponentPagination, 50 componentPagination: ComponentPagination,
50 sort: string 51 sort: string
51 ) { 52 ) {
@@ -53,12 +54,30 @@ export class PluginApiService {
53 54
54 let params = new HttpParams() 55 let params = new HttpParams()
55 params = this.restService.addRestGetParams(params, pagination, sort) 56 params = this.restService.addRestGetParams(params, pagination, sort)
56 params = params.append('type', type.toString()) 57 params = params.append('pluginType', pluginType.toString())
57 58
58 return this.authHttp.get<ResultList<PeerTubePlugin>>(PluginApiService.BASE_APPLICATION_URL, { params }) 59 return this.authHttp.get<ResultList<PeerTubePlugin>>(PluginApiService.BASE_APPLICATION_URL, { params })
59 .pipe(catchError(res => this.restExtractor.handleError(res))) 60 .pipe(catchError(res => this.restExtractor.handleError(res)))
60 } 61 }
61 62
63 searchAvailablePlugins (
64 pluginType: PluginType,
65 componentPagination: ComponentPagination,
66 sort: string,
67 search?: string
68 ) {
69 const pagination = this.restService.componentPaginationToRestPagination(componentPagination)
70
71 let params = new HttpParams()
72 params = this.restService.addRestGetParams(params, pagination, sort)
73 params = params.append('pluginType', pluginType.toString())
74
75 if (search) params = params.append('search', search)
76
77 return this.authHttp.get<ResultList<PeerTubePluginIndex>>(PluginApiService.BASE_APPLICATION_URL + '/available', { params })
78 .pipe(catchError(res => this.restExtractor.handleError(res)))
79 }
80
62 getPlugin (npmName: string) { 81 getPlugin (npmName: string) {
63 const path = PluginApiService.BASE_APPLICATION_URL + '/' + npmName 82 const path = PluginApiService.BASE_APPLICATION_URL + '/' + npmName
64 83
diff --git a/client/src/app/+admin/plugins/shared/plugin-list.component.scss b/client/src/app/+admin/plugins/shared/plugin-list.component.scss
new file mode 100644
index 000000000..f250404ed
--- /dev/null
+++ b/client/src/app/+admin/plugins/shared/plugin-list.component.scss
@@ -0,0 +1,37 @@
1@import '_variables';
2@import '_mixins';
3
4.first-row {
5 margin-bottom: 10px;
6
7 .plugin-name {
8 font-size: 16px;
9 margin-right: 10px;
10 font-weight: $font-semibold;
11 }
12
13 .plugin-version {
14 opacity: 0.6;
15 }
16}
17
18.second-row {
19 display: flex;
20 align-items: center;
21 justify-content: space-between;
22
23 .description {
24 opacity: 0.8
25 }
26
27 .buttons {
28 > *:not(:last-child) {
29 margin-right: 10px;
30 }
31 }
32}
33
34.action-button {
35 @include peertube-button-link;
36 @include button-with-icon(21px, 0, -2px);
37}