+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 } 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',
pagination: ComponentPagination = {
currentPage: 1,
- itemsPerPage: 10
+ itemsPerPage: 10,
+ totalItems: null
}
sort = '-popularity'
private searchSubject = new Subject<string>()
constructor (
- private server: ServerService,
- private i18n: I18n,
private pluginService: PluginApiService,
private notifier: Notifier,
private confirmService: ConfirmService,
this.reloadPlugins()
}
- onSearchChange (search: string) {
- this.searchSubject.next(search)
+ onSearchChange (event: Event) {
+ const target = event.target as HTMLInputElement
+
+ this.searchSubject.next(target.value)
}
reloadPlugins () {
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)
}
)
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] = false
this.pluginInstalled = true
- this.notifier.success(this.i18n('{{pluginName}} installed.', { pluginName: plugin.name }))
+ this.notifier.success($localize`${plugin.name} installed.`)
plugin.installed = true
},