X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2F%2Badmin%2Fplugins%2Fplugin-search%2Fplugin-search.component.ts;h=d2c179aba2e464fd86561ee3d8fa54bd69673a1f;hb=c96e457bde8495cf9103bf819f887f341a528543;hp=dc59e759b5adf323ab264d2e7074718d6e24d551;hpb=818c449b3c34e9f324ac744120c8774e724ab25e;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/+admin/plugins/plugin-search/plugin-search.component.ts b/client/src/app/+admin/plugins/plugin-search/plugin-search.component.ts index dc59e759b..d2c179aba 100644 --- a/client/src/app/+admin/plugins/plugin-search/plugin-search.component.ts +++ b/client/src/app/+admin/plugins/plugin-search/plugin-search.component.ts @@ -1,14 +1,11 @@ +import { Subject } from 'rxjs' +import { debounceTime, distinctUntilChanged } from 'rxjs/operators' import { Component, OnInit } from '@angular/core' -import { Notifier, ServerService } from '@app/core' -import { ConfirmService } from '../../../core' -import { I18n } from '@ngx-translate/i18n-polyfill' -import { PluginType } from '@shared/models/plugins/plugin.type' -import { PluginApiService } from '@app/+admin/plugins/shared/plugin-api.service' -import { ComponentPagination, hasMoreItems } from '@app/shared/rest/component-pagination.model' import { ActivatedRoute, Router } from '@angular/router' +import { PluginApiService } from '@app/+admin/plugins/shared/plugin-api.service' +import { ComponentPagination, ConfirmService, hasMoreItems, Notifier, PluginService } from '@app/core' import { PeerTubePluginIndex } from '@shared/models/plugins/peertube-plugin-index.model' -import { Subject } from 'rxjs' -import { debounceTime, distinctUntilChanged } from 'rxjs/operators' +import { PluginType } from '@shared/models/plugins/plugin.type' @Component({ selector: 'my-plugin-search', @@ -42,15 +39,14 @@ export class PluginSearchComponent implements OnInit { private searchSubject = new Subject() constructor ( - private server: ServerService, - private i18n: I18n, - private pluginService: PluginApiService, + private pluginService: PluginService, + private pluginApiService: PluginApiService, private notifier: Notifier, private confirmService: ConfirmService, private router: Router, private route: ActivatedRoute ) { - this.pluginTypeOptions = this.pluginService.getPluginTypeOptions() + this.pluginTypeOptions = this.pluginApiService.getPluginTypeOptions() } ngOnInit () { @@ -88,7 +84,7 @@ export class PluginSearchComponent implements OnInit { loadMorePlugins () { this.isSearching = true - this.pluginService.searchAvailablePlugins(this.pluginType, this.pagination, this.sort, this.search) + this.pluginApiService.searchAvailablePlugins(this.pluginType, this.pagination, this.sort, this.search) .subscribe( res => { this.isSearching = false @@ -102,7 +98,7 @@ export class PluginSearchComponent implements OnInit { err => { console.error(err) - const message = this.i18n('The plugin index is not available. Please retry later.') + const message = $localize`The plugin index is not available. Please retry later.` this.notifier.error(message) } ) @@ -120,24 +116,36 @@ export class PluginSearchComponent implements OnInit { return !!this.installing[plugin.npmName] } + getPluginOrThemeHref (name: string) { + return this.pluginApiService.getPluginOrThemeHref(this.pluginType, name) + } + + getShowRouterLink (plugin: PeerTubePluginIndex) { + return [ '/admin', 'plugins', 'show', this.pluginService.nameToNpmName(plugin.name, this.pluginType) ] + } + + isThemeSearch () { + return this.pluginType === PluginType.THEME + } + async install (plugin: PeerTubePluginIndex) { if (this.installing[plugin.npmName]) return const res = await this.confirmService.confirm( - this.i18n('Please only install plugins or themes you trust, since they can execute any code on your instance.'), - this.i18n('Install {{pluginName}}?', { pluginName: plugin.name }) + $localize`Please only install plugins or themes you trust, since they can execute any code on your instance.`, + $localize`Install ${plugin.name}?` ) if (res === false) return this.installing[plugin.npmName] = true - this.pluginService.install(plugin.npmName) + this.pluginApiService.install(plugin.npmName) .subscribe( () => { this.installing[plugin.npmName] = false this.pluginInstalled = true - this.notifier.success(this.i18n('{{pluginName}} installed.', { pluginName: plugin.name })) + this.notifier.success($localize`${plugin.name} installed.`) plugin.installed = true },