<input type="text" (input)="onSearchChange($event.target.value)" i18n-placeholder placeholder="Search..."/>
</div>
+<div class="alert alert-info" i18n *ngIf="pluginInstalled">
+ To load your new installed plugins or themes, refresh the page.
+</div>
+
<div class="result-title" *ngIf="!isSearching">
<ng-container *ngIf="!search">
<my-global-icon iconName="trending"></my-global-icon>
<span class="plugin-name">{{ plugin.name }}</span>
<span class="plugin-version">{{ plugin.latestVersion }}</span>
+
+ <span *ngIf="plugin.installed" class="badge badge-success">Installed</span>
</div>
<div class="second-row">
import { Component, OnInit } from '@angular/core'
-import { Notifier } from '@app/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'
plugins: PeerTubePluginIndex[] = []
installing: { [name: string]: boolean } = {}
+ pluginInstalled = false
private searchSubject = new Subject<string>()
constructor (
+ private server: ServerService,
private i18n: I18n,
private pluginService: PluginApiService,
private notifier: Notifier,
.subscribe(
() => {
this.installing[plugin.npmName] = false
+ this.pluginInstalled = true
this.notifier.success(this.i18n('{{pluginName}} installed.', { pluginName: plugin.name }))