| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- .d-flex.mb-3
- h3(translate) Plugins
- button.btn.btn-secondary.btn-sm.ml-auto((click)='openPluginsFolder()')
- i.fas.fa-folder
- span(translate) Plugins folder
- .alert.alert-danger(*ngIf='errorMessage')
- strong(
- translate='Error in {plugin}:',
- [translateParams]='{plugin: erroredPlugin}'
- )
- pre {{errorMessage}}
- ul.nav-tabs.mb-2(ngbNav, #nav='ngbNav')
- li(ngbNavItem)
- a(ngbNavLink, translate) Available
- ng-template(ngbNavContent)
- .input-group.mb-3.mt-3
- .input-group-prepend
- .input-group-text
- i.fas.fa-fw.fa-circle-notch.fa-spin(*ngIf='!availablePluginsReady')
- i.fas.fa-fw.fa-search(*ngIf='availablePluginsReady')
- input.form-control(
- type='text',
- [(ngModel)]='_1',
- (ngModelChange)='searchAvailable(_1)',
- [placeholder]='"Search plugins"|translate'
- )
- ngb-accordion.mb-4(*ngIf='availablePlugins$', [closeOthers]='true')
- ng-container(*ngFor='let plugin of (availablePlugins$|async)')
- ngb-panel(*ngIf='!isAlreadyInstalled(plugin)')
- ng-template(ngbPanelTitle)
- .text-left
- strong.d-block {{plugin.name}}
- small.d-block.text-muted {{plugin.description}}
- ng-template(ngbPanelContent)
- .row
- .col-4
- button.btn.btn-primary.btn-block.justify-content-center(
- (click)='installPlugin(plugin)',
- [disabled]='busy.has(plugin.name)'
- )
- i.fas.fa-fw.fa-cloud-download(*ngIf='busy.get(plugin.name) != BusyState.Installing')
- i.fas.fa-fw.fa-circle-notch.fa-spin(*ngIf='busy.get(plugin.name) == BusyState.Installing')
- span.ml-2(translate) Get
- button.btn.btn-secondary.btn-block.justify-content-center(
- *ngIf='plugin.homepage',
- (click)='showPluginHomepage(plugin)'
- )
- i.fas.fa-fw.fa-external-link-alt
- span.ml-2(translate) Homepage
- .col-8
- ng-container(*ngTemplateOutlet='pluginInfo; context: { plugin }')
- .mt-2 {{plugin.description}}
- li(ngbNavItem)
- a(ngbNavLink, translate) Installed
- ng-template(ngbNavContent)
- ngb-accordion.mb-4([closeOthers]='true')
- ng-container(*ngFor='let plugin of pluginManager.installedPlugins')
- ngb-panel
- ng-template(ngbPanelTitle)
- .text-left.mr-auto
- div
- strong {{plugin.name}}
- small.text-muted.ml-2(*ngIf='plugin.isBuiltin', translate) Built-in
- small.text-warning.ml-2(*ngIf='!isPluginEnabled(plugin)', translate) Disabled
- small.d-block.text-muted {{plugin.description}}
- button.btn.btn-primary.ml-2(
- *ngIf='knownUpgrades[plugin.name]',
- (click)='upgradePlugin(plugin)',
- [disabled]='busy.has(plugin.name)'
- )
- i.fas.fa-fw.fa-arrow-up(*ngIf='busy.get(plugin.name) != BusyState.Installing')
- i.fas.fa-fw.fa-circle-notch.fa-spin(*ngIf='busy.get(plugin.name) == BusyState.Installing')
- span(
- translate='Upgrade to {version}',
- [translateParams]='{version: knownUpgrades[plugin.name].version}'
- )
- ng-template(ngbPanelContent)
- .row
- .col-4
- button.btn.btn-warning.btn-block.justify-content-center(
- (click)='togglePlugin(plugin)',
- *ngIf='isPluginEnabled(plugin)',
- [disabled]='!canDisablePlugin(plugin)',
- translate
- ) Disable
- button.btn.btn-success.btn-block.justify-content-center(
- (click)='togglePlugin(plugin)',
- *ngIf='canDisablePlugin(plugin) && !isPluginEnabled(plugin)',
- translate
- ) Enable
- button.btn.btn-danger.btn-block.justify-content-center(
- (click)='uninstallPlugin(plugin)',
- *ngIf='!plugin.isBuiltin',
- [disabled]='busy.has(plugin.name)'
- )
- i.fas.fa-fw.fa-trash(*ngIf='busy.get(plugin.name) != BusyState.Uninstalling')
- i.fas.fa-fw.fa-circle-notch.fa-spin(*ngIf='busy.get(plugin.name) == BusyState.Uninstalling')
- span(translate) Uninstall
- .col-8
- ng-container(*ngTemplateOutlet='pluginInfo; context: { plugin }')
- .mt-2 {{plugin.description}}
- ng-template(#pluginInfo, let-plugin='plugin')
- .row.align-items-center
- .col-4
- strong(translate) Version
- .col-8
- span {{plugin.version}}
- .row.align-items-center
- .col-4
- strong(translate) Author
- .col-8
- .badge.badge-success(*ngIf='plugin.isOfficial')
- i.fas.fa-check
- span.ml-1(translate) Official
- a.btn.btn-link.px-0.w-auto((click)='showPluginInfo(plugin)', *ngIf='!plugin.isOfficial')
- span {{plugin.author}}
- i.fas.fa-fw.fa-external-link-alt.ml-2
- .mb-4([ngbNavOutlet]='nav')
|