X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2F%2Badmin%2Fplugins%2Fplugin-search%2Fplugin-search.component.ts;h=ccf9f1ed50775f3f78a163f395b82537aff010a7;hb=67ed6552b831df66713bac9e672738796128d33f;hp=0058fa691d5fe9f251f1df453559288aa3148536;hpb=89c344dba4ae2fca39cf636c3c6f09f31a339493;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 0058fa691..ccf9f1ed5 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,12 @@ +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, ServerService } from '@app/core' +import { I18n } from '@ngx-translate/i18n-polyfill' 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', @@ -25,7 +23,8 @@ export class PluginSearchComponent implements OnInit { pagination: ComponentPagination = { currentPage: 1, - itemsPerPage: 10 + itemsPerPage: 10, + totalItems: null } sort = '-popularity' @@ -36,6 +35,8 @@ export class PluginSearchComponent implements OnInit { installing: { [name: string]: boolean } = {} pluginInstalled = false + onDataSubject = new Subject() + private searchSubject = new Subject() constructor ( @@ -67,8 +68,10 @@ export class PluginSearchComponent implements OnInit { this.reloadPlugins() } - onSearchChange (search: string) { - this.searchSubject.next(search) + onSearchChange (event: Event) { + const target = event.target as HTMLInputElement + + this.searchSubject.next(target.value) } reloadPlugins () { @@ -90,9 +93,16 @@ export class PluginSearchComponent implements OnInit { this.plugins = this.plugins.concat(res.data) this.pagination.totalItems = res.total + + this.onDataSubject.next(res.data) }, - err => this.notifier.error(err.message) + err => { + console.error(err) + + const message = this.i18n('The plugin index is not available. Please retry later.') + this.notifier.error(message) + } ) }