97 lines
2.3 KiB
TypeScript
Raw Normal View History

2019-11-25 10:57:02 +09:00
import {
Component,
OnInit,
ChangeDetectorRef,
Output,
2019-12-16 04:49:27 +09:00
EventEmitter,
Input,
ViewChild
2019-11-25 10:57:02 +09:00
} from '@angular/core';
2019-12-16 04:49:27 +09:00
import {
MatTabChangeEvent,
MatTabGroup,
MatCheckboxChange,
MatSelectChange
} from '@angular/material';
import { GeneralSetting } from '../models/settings';
2019-11-21 16:43:25 +09:00
@Component({
selector: 'ucap-settings-general',
templateUrl: './general.component.html',
styleUrls: ['./general.component.scss']
})
export class GeneralComponent implements OnInit {
2019-12-16 04:49:27 +09:00
@Input()
setting: GeneralSetting;
2019-11-21 16:43:25 +09:00
2019-11-25 10:57:02 +09:00
@Output()
2019-12-16 04:49:27 +09:00
changed = new EventEmitter<GeneralSetting>();
2019-11-25 10:57:02 +09:00
2019-12-16 04:49:27 +09:00
@ViewChild('themeTabGroup', { static: true })
themeTabGroup: MatTabGroup;
2019-11-21 16:43:25 +09:00
2019-12-16 04:49:27 +09:00
constructor(private changeDetectorRef: ChangeDetectorRef) {}
ngOnInit() {
let themeIndex;
switch (this.setting.appTheme) {
case 'theme-default':
themeIndex = 0;
break;
case 'theme-lgRed':
themeIndex = 1;
break;
default:
themeIndex = 0;
break;
}
this.themeTabGroup.selectedIndex = themeIndex;
}
2019-11-21 16:43:25 +09:00
2019-11-26 15:08:00 +09:00
onSelectedTabChange(e: MatTabChangeEvent) {
let theme = 'theme-default';
switch (e.index) {
case 0:
theme = 'theme-default';
break;
case 1:
theme = 'theme-lgRed';
break;
default:
break;
}
2019-12-16 04:49:27 +09:00
this.emit({ ...this.setting, appTheme: theme });
}
onChangeAutoStart(event: MatCheckboxChange) {
2019-12-17 17:27:08 +09:00
this.emit({ ...this.setting, autoLaunch: event.checked });
2019-12-16 04:49:27 +09:00
}
2019-12-18 17:11:58 +09:00
onChangeStartupHideWindow(event: MatCheckboxChange) {
this.emit({ ...this.setting, startupHideWindow: event.checked });
2019-12-16 04:49:27 +09:00
}
onChangeContinueRunWhenClose(event: MatCheckboxChange) {
this.emit({ ...this.setting, continueRunWhenClose: event.checked });
}
onChangeAutoLogin(event: MatCheckboxChange) {
this.emit({ ...this.setting, autoLogin: event.checked });
2019-11-25 10:57:02 +09:00
}
2019-12-16 04:49:27 +09:00
onSelectionChangeLocale(event: MatSelectChange) {
this.emit({ ...this.setting, locale: event.value });
}
onSelectionChangeHrInfoLocale(event: MatSelectChange) {
this.emit({ ...this.setting, hrInfoLocale: event.value });
}
2019-12-16 04:49:27 +09:00
onSelectionChangeTimezone(event: MatSelectChange) {
this.emit({ ...this.setting, timezone: event.value });
}
private emit(setting: GeneralSetting) {
this.setting = setting;
this.changed.emit(this.setting);
}
2019-11-21 16:43:25 +09:00
}