Fixes up settings

Adds progress spinner, even if ugly right now
Changes routing for dashboard
This commit is contained in:
GloriousCode
2017-09-28 07:34:23 +10:00
parent e3d099a867
commit d78f239f20
8 changed files with 42 additions and 56 deletions

View File

@@ -9,7 +9,7 @@ import { Routes, RouterModule } from '@angular/router';
const routes: Routes = [
{
path: '',
component: HomeComponent
component: DashboardComponent
},
{
path:'about',

View File

@@ -17,7 +17,8 @@ import {
MdFormFieldModule,
MdInputModule,
MdCheckboxModule,
MdGridListModule
MdGridListModule,
MdProgressSpinnerModule,
} from '@angular/material';
@@ -65,7 +66,8 @@ import * as Rx from 'rxjs/Rx';
MdFormFieldModule,
MdInputModule,
MdCheckboxModule,
MdGridListModule
MdGridListModule,
MdProgressSpinnerModule,
],
providers: [ElectronService,WebsocketService,WebsocketHandlerService],
bootstrap: [AppComponent]

View File

@@ -1,3 +1,6 @@
<div *ngShow="settings === null">
<md-progress-spinner mode="indeterminate"></md-progress-spinner>
</div>
<div *ngIf="settings !== null">
<button (click)="saveSettings()" md-fab color="accent" class="md-fab md-fab-bottom-right">Save</button>
<form *ngIf="settings.SMSGlobal != null">
@@ -13,7 +16,7 @@
</td>
</tr>
</table>
<md-grid-list cols="2" rowHeight="2:1">
<md-grid-list cols="2" rowHeight="3:1">
<md-grid-tile>
<md-form-field>
<input mdInput name="smsUsername" [(ngModel)]="settings.SMSGlobal.Username" [disabled]="!settings?.SMSGlobal.Enabled" placeholder="Username">
@@ -75,13 +78,11 @@
</md-grid-tile>
</md-grid-list>
<md-form-field>
<input mdInput placeholder="Exchange Name" disabled value="Enabled Currencies">
</md-form-field>
<label>Enabled Currencies</label>
<md-grid-list cols="5" rowHeight="2:1">
<md-grid-list cols="6" rowHeight="2:1">
<md-grid-tile *ngFor="let currency of exchange.AvailablePairs.split(',')">
<md-checkbox name="availableCurrency" [disabled]="!exchange.Enabled">{{currency}}</md-checkbox>
<md-checkbox name="availableCurrency" [disabled]="true || !exchange.Enabled">{{currency}}</md-checkbox>
</md-grid-tile>
</md-grid-list>
</md-card-content>

View File

@@ -17,17 +17,14 @@ export class SettingsComponent implements OnInit {
private getSettingsMessage = {
Event: 'GetConfig',
data: null,
Exchange: null,
AssetType: null
};
constructor(private websocketHandler: WebsocketHandlerService) {
this.ws = websocketHandler;
this.ws.messages.subscribe(msg => {
if (msg.Event === 'GetConfig') {
console.log('Data:' + JSON.stringify(msg.data));
this.settings = <Config>msg.data;
this.fixUpSettings();
} else if (msg.Event === 'SaveConfig') {
// something!
}
@@ -38,30 +35,23 @@ export class SettingsComponent implements OnInit {
}
private getSettings(): void {
console.log('new message from client to websocket: ', this.getSettingsMessage);
this.ws.messages.next(this.getSettingsMessage);
this.resendMessageIfPageRefreshed();
}
private fixUpSettings(): void {
}
private saveSettings(): void {
//Send the message
var settingsSave = {
Event: 'SaveConfig',
data: this.settings,
Exchange: null,
AssetType: null
}
this.ws.messages.next(settingsSave);
}
//there has to be a better way
private resendMessageIfPageRefreshed(): void {
if (this.failCount <= 5) {
if (this.failCount <= 10) {
setTimeout(() => {
if (this.settings === null) {
console.log(this.failCount);

View File

@@ -13,7 +13,16 @@ export interface Message {
@Injectable()
export class WebsocketHandlerService {
public messages: Subject<Message>;
public messages: Subject<any>;
private authenticateMessage = {
Event:'auth',
data:{"username":"admin","password":"e7cf3ef4f17c3999a94f2c6f612e8a888e5b1026878e4e19398b23bd38ec221a"},
}
public authenticate() {
this.messages.next(this.authenticateMessage);
}
constructor(wsService: WebsocketService) {
this.messages = <Subject<Message>>wsService
@@ -21,12 +30,11 @@ export class WebsocketHandlerService {
.map((response: MessageEvent): Message => {
let data = JSON.parse(response.data);
// debug only
//console.log('Recieved response from websocket. Data: ' + JSON.stringify(data))
var dataData = data.Data === null ? data.data : data.Data;
// variables aren't consistent yet. Here's a hack!
var dataData = data.Data === undefined ? data.data : data.Data;
var eventEvent = data.Event === undefined ? data.event : data.Event;
return {
Event: data.Event,
Event: eventEvent,
data: dataData,
Exchange: data.exchange,
AssetType: data.assetType

View File

@@ -15,9 +15,9 @@ export class WebsocketService {
}
private authenticateMessage = {
Event:'auth',
data:{"username":"admin","password":"e7cf3ef4f17c3999a94f2c6f612e8a888e5b1026878e4e19398b23bd38ec221a"},
}
Event:'auth',
data:{"username":"admin","password":"e7cf3ef4f17c3999a94f2c6f612e8a888e5b1026878e4e19398b23bd38ec221a"},
}
private isAuth = false;
@@ -32,13 +32,10 @@ export class WebsocketService {
return ws.close.bind(ws);
})
let observer = {
next: (data: Object) => {
next: (data: any) => {
if (ws.readyState === WebSocket.OPEN) {
if(!this.isAuth) {
//This is a shit initial way to be able to authenticate
ws.send(JSON.stringify(this.authenticateMessage));
this.isAuth = true;
}
ws.send(JSON.stringify(this.authenticateMessage));
ws.send(JSON.stringify(data));
}
}

View File

@@ -1,3 +1,6 @@
<div *ngIf="tickerCards === null">
<md-progress-spinner mode="indeterminate"></md-progress-spinner>
</div>
<md-grid-list cols="4" rowHeight="4:3" >
<md-grid-tile *ngFor="let ticker of tickerCards">
<app-exchange-currency-ticker [ticker]="ticker" ></app-exchange-currency-ticker>

View File

@@ -11,8 +11,6 @@ export class AllEnabledCurrencyTickersComponent implements OnInit {
allCurrencies:ExchangeCurrency[];
tickerCards: TickerUpdate[];
constructor(private websocketHandler: WebsocketHandlerService) {
this.ws = websocketHandler;
this.allCurrencies = <ExchangeCurrency[]>[];
@@ -36,35 +34,22 @@ export class AllEnabledCurrencyTickersComponent implements OnInit {
ticker.Exchange = msg.Exchange;
this.tickerCards.push(ticker);
this.allCurrencies.push(modal);
console.log(JSON.stringify(this.allCurrencies));
} else {
console.log('deleting');
//time to replace
for(var j = 0; j< this.tickerCards.length; j++) {
console.log(j);
console.log("exchange" + this.tickerCards[j].Exchange === msg.Exchange );
console.log("curr" + this.tickerCards[j].CurrencyPair === msg.data.CurrencyPair );
if(this.tickerCards[j].Exchange === msg.Exchange
&& this.tickerCards[j].CurrencyPair === msg.data.CurrencyPair) {
console.log('doner');
var ticker = <TickerUpdate>msg.data;
this.tickerCards[j] = ticker;
this.tickerCards[j].Exchange = msg.Exchange;
console.log('done');
return;
} else {
console.log('not found?');
}
return;
}
}
}
}
});
}
ngOnInit() {
}
ngOnInit() { }
}
export interface ExchangeCurrency {