Code cleaned up

This commit is contained in:
Piotr Pekala 2019-01-22 01:03:54 -08:00
parent 8977750d90
commit e60a5bbf07
7 changed files with 59 additions and 14 deletions

View File

@ -9,6 +9,7 @@ import { SettingsComponent } from './components/settings/settings.component';
import { LocalServerComponent } from './components/local-server/local-server.component';
import { PreferencesComponent } from './components/preferences/preferences.component';
import { QemuPreferencesComponent } from './components/preferences/qemu/qemu-preferences/qemu-preferences.component';
import { QemuVirtualMachinesComponent } from './components/preferences/qemu/qemu-virtual-machines/qemu-virtual-machines.component';
const routes: Routes = [
{
@ -21,7 +22,8 @@ const routes: Routes = [
{ path: 'server/:server_id/projects', component: ProjectsComponent },
{ path: 'settings', component: SettingsComponent },
{ path: 'server/:server_id/preferences', component: PreferencesComponent },
{ path: 'server/:server_id/preferences/qemu', component: QemuPreferencesComponent }
{ path: 'server/:server_id/preferences/qemu', component: QemuPreferencesComponent },
{ path: 'server/:server_id/preferences/qemu/templates', component: QemuVirtualMachinesComponent }
]
},
{ path: 'server/:server_id/project/:project_id', component: ProjectMapComponent }

View File

@ -91,6 +91,7 @@ import { TextEditorDialogComponent } from './components/project-map/drawings-edi
import { PreferencesComponent } from './components/preferences/preferences.component';
import { QemuPreferencesComponent } from './components/preferences/qemu/qemu-preferences/qemu-preferences.component';
import { ServerSettingsService } from './services/server-settings.service';
import { QemuVirtualMachinesComponent } from './components/preferences/qemu/qemu-virtual-machines/qemu-virtual-machines.component';
if (environment.production) {
Raven.config('https://b2b1cfd9b043491eb6b566fd8acee358@sentry.io/842726', {
@ -144,7 +145,8 @@ if (environment.production) {
InterfaceLabelDraggedComponent,
StyleEditorDialogComponent,
TextEditorDialogComponent,
QemuPreferencesComponent
QemuPreferencesComponent,
QemuVirtualMachinesComponent
],
imports: [
BrowserModule,

View File

@ -2,19 +2,19 @@
<div class="default-header">
<div class="row">
<h1 class="col">QEMU preferences</h1>
<button class="top-button" mat-raised-button color="primary">QEMU Virtual Machines</button>
<button *ngIf="server" class="top-button" routerLink="/server/{{server.id}}/preferences/qemu/templates" mat-raised-button color="primary">QEMU Virtual Machines</button>
</div>
</div>
<div class="default-content">
<div class="example-container mat-elevation-z8">
<mat-nav-list *ngIf="settings">
<mat-list-item>
<mat-checkbox class="example-margin" [(ngModel)]="settings.Qemu.enable_hardware_acceleration">
<mat-checkbox class="example-margin" [(ngModel)]="settings.enable_hardware_acceleration">
Enable Hardware Acceleration (KVM/HAXM)
</mat-checkbox>
</mat-list-item>
<mat-list-item *ngIf="settings.Qemu.enable_hardware_acceleration">
<mat-checkbox class="example-margin" [(ngModel)]="settings.Qemu.require_hardware_acceleration">
<mat-list-item *ngIf="settings.enable_hardware_acceleration">
<mat-checkbox class="example-margin" [(ngModel)]="settings.require_hardware_acceleration">
Require Hardware Acceleration (KVM/HAXM)
</mat-checkbox>
</mat-list-item>

View File

@ -7,6 +7,7 @@ import { ServerService } from '../../../../services/server.service';
import { ServerSettings } from '../../../../models/serverSettings';
import { Qemu } from '../../../../models/server-settings-models/qemu';
import { ToasterService } from '../../../../services/toaster.service';
import { QemuSettings } from '../../../../models/settings/qemu';
@Component({
@ -16,7 +17,7 @@ import { ToasterService } from '../../../../services/toaster.service';
})
export class QemuPreferencesComponent implements OnInit {
server: Server;
settings: ServerSettings;
settings: QemuSettings;
constructor(
private route: ActivatedRoute,
@ -35,24 +36,33 @@ export class QemuPreferencesComponent implements OnInit {
)
.subscribe((server: Server) => {
this.server = server;
this.serverSettingsService.get(this.server).subscribe((settings: ServerSettings) => {
this.serverSettingsService.getSettingsForQemu(this.server).subscribe((settings: QemuSettings) => {
this.settings = settings;
});
});
}
apply(){
if(!this.settings.Qemu.enable_hardware_acceleration){
this.settings.Qemu.require_hardware_acceleration = false;
if(!this.settings.enable_hardware_acceleration){
this.settings.require_hardware_acceleration = false;
}
this.serverSettingsService.update(this.server, this.settings)
.subscribe((serverSettings: ServerSettings) => {
this.serverSettingsService.updateSettingsForQemu(this.server, this.settings)
.subscribe((qemuSettings: QemuSettings) => {
this.toasterService.success(`Changes applied`);
});
}
restoreDefaults(){
let defaultSettings : QemuSettings = {
enable_hardware_acceleration: true,
require_hardware_acceleration: true
};
this.serverSettingsService.updateSettingsForQemu(this.server, defaultSettings)
.subscribe((qemuSettings: QemuSettings) => {
this.settings = qemuSettings;
this.toasterService.success(`Restored to default settings`);
});
}
}

View File

@ -1,4 +1,19 @@
import { Component } from "@angular/core";
import { Component, OnInit } from "@angular/core";
import { Server } from '../../../../models/server';
import { ActivatedRoute } from '@angular/router';
@Component({
selector: 'app-qemu-virtual-machines',
templateUrl: './qemu-virtual-machines.component.html',
styleUrls: ['./qemu-virtual-machines.component.scss']
})
export class QemuVirtualMachinesComponent implements OnInit {
server: Server;
constructor(
private route: ActivatedRoute
) {}
ngOnInit() {}
}

View File

@ -0,0 +1,4 @@
export class QemuSettings {
enable_hardware_acceleration: boolean;
require_hardware_acceleration: boolean
}

View File

@ -2,6 +2,7 @@ import { Injectable } from "@angular/core";
import { HttpServer } from './http-server.service';
import { Server } from '../models/server';
import { ServerSettings } from '../models/serverSettings';
import { QemuSettings } from '../models/settings/qemu';
@Injectable()
export class ServerSettingsService {
@ -16,4 +17,15 @@ export class ServerSettingsService {
update(server: Server, serverSettings: ServerSettings) {
return this.httpServer.post<ServerSettings>(server, `/settings`, serverSettings);
}
getSettingsForQemu(server: Server) {
return this.httpServer.get<QemuSettings>(server, `/settings/qemu`);
}
updateSettingsForQemu(server: Server, qemuSettings: QemuSettings) {
return this.httpServer.put<QemuSettings>(server, `/settings/qemu`, {
enable_hardware_acceleration: qemuSettings.enable_hardware_acceleration,
require_hardware_acceleration: qemuSettings.require_hardware_acceleration
});
}
}