frontend/src/app/components/option-picker/option-picker.component.ts

48 lines
1.5 KiB
TypeScript
Raw Normal View History

2020-02-11 06:39:47 +00:00
import {Component, Input, OnInit} from '@angular/core';
import {Router} from '@angular/router';
import {ApiService} from '../../service/api.service';
2020-10-13 12:54:14 +00:00
import {PopoverController} from '@ionic/angular';
import {DatabaseService} from '../../service/db/database.service';
@Component({
selector: 'app-option-picker',
templateUrl: './option-picker.component.html',
styleUrls: ['./option-picker.component.scss'],
})
export class OptionPickerComponent implements OnInit {
2020-02-11 06:39:47 +00:00
@Input() toggleDark: () => void;
@Input() isDark: () => boolean;
2020-10-13 12:54:14 +00:00
@Input() showSearch: () => void | Promise<void>;
@Input() isPrefetch: () => boolean;
@Input() togglePrefetch: () => void;
@Input() doPrefetch: () => any;
constructor(
2020-02-11 06:39:47 +00:00
protected api: ApiService,
protected router: Router,
2020-10-13 12:54:14 +00:00
protected popover: PopoverController,
protected db: DatabaseService,
) { }
ngOnInit() {}
async onSelect(key) {
if ( key === 'html_export' ) {
window.open(this.api._build_url('/data/export/html'), '_blank');
2020-02-11 06:39:47 +00:00
} else if ( key === 'logout' ) {
await this.db.purge();
2020-02-11 06:39:47 +00:00
window.location.href = '/auth/logout';
} else if ( key === 'toggle_darkmode' ) {
this.toggleDark();
2020-10-13 12:54:14 +00:00
} else if ( key === 'search_everywhere' ) {
this.showSearch();
this.popover.dismiss();
} else if ( key === 'toggle_auto_prefetch' ) {
this.togglePrefetch();
} else if ( key === 'prefetch_data' ) {
this.popover.dismiss();
this.doPrefetch();
}
}
}