tabby/tabby-settings/src/components/configSyncSettingsTab.component.pug
2021-09-02 23:07:16 +02:00

124 lines
5.2 KiB
Plaintext

h3.mb-3 Config sync
ul.nav-tabs(ngbNav, #nav='ngbNav')
li(ngbNavItem)
a(ngbNavLink) Sync
ng-template(ngbNavContent)
.form-line
.header
.title Sync host
.input-group.w-50
input.form-control(
type='text',
[(ngModel)]='config.store.configSync.host',
(ngModelChange)='config.save()',
)
.input-group-append(*ngIf='config.store.configSync.host')
button.btn.btn-secondary((click)='openSyncHost()')
i.fas.fa-external-link-alt
.form-line
.header
.title Secret sync token
.description Get it from the Tabby Web settings window
.input-group
input.form-control(
type='password',
[(ngModel)]='config.store.configSync.token',
(ngModelChange)='config.save(); testConnection()'
)
.input-group-append(*ngIf='config.store.configSync.token')
.input-group-text
i.fas.fa-fw.fa-circle-notch.fa-spin.text-warning(*ngIf='connectionSuccessful === null')
i.fas.fa-fw.fa-check.text-success(*ngIf='connectionSuccessful')
i.fas.fa-fw.fa-exclamation-triangle.text-danger(*ngIf='connectionSuccessful === false')
ng-container(*ngIf='config.store.configSync.token')
.alert.alert-danger(*ngIf='connectionSuccessful === false')
i.fas.fa-exclamation-triangle
span.ml-2 Connection failed: {{connectionError}}
ng-container(*ngIf='connectionSuccessful')
.form-line
.header
.title Configs
div(*ngIf='configs === null')
i.fas.fa-fw.fa-circle-notch.fa-spin
span.ml-2 Loading configs...
ng-container(*ngIf='configs !== null')
.list-group-light
.list-group-item.d-flex.align-items-center(
*ngFor='let cfg of configs',
[class.active]='isActiveConfig(cfg)',
)
i.fas.fa-fw.text-success([class.fa-check]='isActiveConfig(cfg)')
i.fas.fa-fw.fa-file
.ml-2.d-flex.flex-column.align-items-start
div {{cfg.name}}
small.text-muted Modified on {{cfg.modified_at|date:'medium'}}
.mr-auto
button.btn.btn-link.ml-1(
(click)='uploadAndSync(cfg)',
[class.hover-reveal]='!isActiveConfig(cfg)'
)
i.fas.fa-arrow-up
span.ml-2(*ngIf='isActiveConfig(cfg)') Upload
span.ml-2(*ngIf='!isActiveConfig(cfg)') Replace
button.btn.btn-link.ml-1(
(click)='downloadAndSync(cfg)',
[class.hover-reveal]='!isActiveConfig(cfg)'
)
i.fas.fa-arrow-down
span.ml-2 Download
a.list-group-item.list-group-item-action.d-flex.align-items-center(
href='#',
(click)='uploadAsNew()'
)
i.fas.fa-fw
i.fas.fa-fw.fa-cloud-upload-alt
.ml-2 Upload as a new config
ng-container(*ngIf='hasMatchingRemoteConfig()')
.form-line
.header
.title Sync automatically
.description Automatically upload changes and check for updates every minute
toggle(
[(ngModel)]='config.store.configSync.auto',
(ngModelChange)='config.save()',
)
li(ngbNavItem)
a(ngbNavLink) Advanced
ng-template(ngbNavContent)
.form-line
.header
.title Sync hotkeys
toggle(
[(ngModel)]='config.store.configSync.parts.hotkeys',
(ngModelChange)='config.save()',
)
.form-line
.header
.title Sync window settings
toggle(
[(ngModel)]='config.store.configSync.parts.appearance',
(ngModelChange)='config.save()',
)
.form-line
.header
.title Sync Vault
toggle(
[(ngModel)]='config.store.configSync.parts.vault',
(ngModelChange)='config.save()',
)
div([ngbNavOutlet]='nav')