handle plugin loading errors

This commit is contained in:
Eugene Pankov
2017-08-13 15:13:04 +03:00
parent 7e7d537868
commit 80699ee13f
8 changed files with 69 additions and 7 deletions

View File

@@ -1,5 +1,6 @@
import { Component, Inject, Input, HostListener } from '@angular/core'
import { trigger, style, animate, transition, state } from '@angular/animations'
import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
import { ElectronService } from '../services/electron.service'
import { HostAppService, Platform } from '../services/hostApp.service'
@@ -10,6 +11,7 @@ import { DockingService } from '../services/docking.service'
import { TabRecoveryService } from '../services/tabRecovery.service'
import { ThemesService } from '../services/themes.service'
import { SafeModeModalComponent } from './safeModeModal.component'
import { AppService, IToolbarButton, ToolbarButtonProvider } from '../api'
@Component({
@@ -62,6 +64,7 @@ export class AppRootComponent {
public app: AppService,
@Inject(ToolbarButtonProvider) private toolbarButtonProviders: ToolbarButtonProvider[],
log: LogService,
ngbModal: NgbModal,
_themes: ThemesService,
) {
this.logger = log.create('main')
@@ -104,6 +107,10 @@ export class AppRootComponent {
this.hotkeys.globalHotkey.subscribe(() => {
this.onGlobalHotkey()
})
if (window['safeModeReason']) {
ngbModal.open(SafeModeModalComponent)
}
}
onGlobalHotkey () {

View File

@@ -0,0 +1,7 @@
.modal-body
.alert.alert-danger Terminus could not start with your plugins, so all third party plugins have been disabled in this session. The error was:
pre {{error}}
.modal-footer
button.btn.btn-outline-primary((click)='close()') Close

View File

@@ -0,0 +1,19 @@
import { Component, Input } from '@angular/core'
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'
@Component({
template: require('./safeModeModal.component.pug'),
})
export class SafeModeModalComponent {
@Input() error: Error
constructor (
public modalInstance: NgbActiveModal,
) {
this.error = window['safeModeReason']
}
close () {
this.modalInstance.dismiss()
}
}