From e510fb58f60d47e886b3caa6cc042810cee13dd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krist=C3=B3f=20T=C3=B3th?= Date: Thu, 31 May 2018 11:31:22 +0200 Subject: [PATCH 01/10] Move all message types to a standardised location --- src/app/console/console.component.ts | 4 ++-- src/app/dashboard/dashboard.component.ts | 4 ++-- src/app/ide/ide.component.ts | 14 +++++++------- .../console.command.ts} | 0 .../fsmupdate.ts => message.types/fsm.update.ts} | 0 .../ide.command.ts} | 2 +- .../layout.command.ts} | 0 src/app/{services => message.types}/log.message.ts | 0 .../{messages => message.types}/messagecontrol.ts | 0 .../messages.message.ts} | 2 +- .../process.command.ts} | 0 .../process.log.command.ts} | 0 .../websocket.message.ts} | 2 +- src/app/messages/messages.component.ts | 8 ++++---- src/app/services/fsmupdate.service.ts | 2 +- src/app/services/processlog.service.ts | 4 ++-- src/app/services/processmanager.service.ts | 10 +++++----- src/app/services/websocket.service.ts | 8 ++++---- 18 files changed, 30 insertions(+), 30 deletions(-) rename src/app/{console/console-command.ts => message.types/console.command.ts} (100%) rename src/app/{services/fsmupdate.ts => message.types/fsm.update.ts} (100%) rename src/app/{ide/source-code.ts => message.types/ide.command.ts} (87%) rename src/app/{dashboard/layout-command.ts => message.types/layout.command.ts} (100%) rename src/app/{services => message.types}/log.message.ts (100%) rename src/app/{messages => message.types}/messagecontrol.ts (100%) rename src/app/{messages/message.ts => message.types/messages.message.ts} (84%) rename src/app/{services/processcommand.ts => message.types/process.command.ts} (100%) rename src/app/{services/processlog-command.ts => message.types/process.log.command.ts} (100%) rename src/app/{services/wsmessage.ts => message.types/websocket.message.ts} (82%) diff --git a/src/app/console/console.component.ts b/src/app/console/console.component.ts index 5c960bd..e47cb0a 100644 --- a/src/app/console/console.component.ts +++ b/src/app/console/console.component.ts @@ -3,10 +3,10 @@ import { Component, OnInit } from '@angular/core'; import { WebSocketService } from '../services/websocket.service'; -import { ConsoleCommand } from './console-command'; +import { ConsoleCommand } from '../message.types/console.command'; import { config } from '../config'; import { ProcessLogService } from '../services/processlog.service'; -import { LogMessage } from '../services/log.message'; +import { LogMessage } from '../message.types/log.message'; @Component({ selector: 'app-console', diff --git a/src/app/dashboard/dashboard.component.ts b/src/app/dashboard/dashboard.component.ts index 9fb9d63..296fefd 100644 --- a/src/app/dashboard/dashboard.component.ts +++ b/src/app/dashboard/dashboard.component.ts @@ -5,10 +5,10 @@ import { Component, OnDestroy, OnInit, ChangeDetectorRef, ElementRef, ViewChild import { DeploymentNotificationService } from '../services/deployment-notification.service'; import { Subscription } from 'rxjs'; import { WebSocketService } from '../services/websocket.service'; -import { LayoutCommand } from './layout-command'; +import { LayoutCommand } from '../message.types/layout.command'; import { config } from '../config'; import { ProcessLogService } from '../services/processlog.service'; -import { LogMessage } from '../services/log.message'; +import { LogMessage } from '../message.types/log.message'; @Component({ selector: 'app-dashboard', diff --git a/src/app/ide/ide.component.ts b/src/app/ide/ide.component.ts index 596def1..a25e294 100644 --- a/src/app/ide/ide.component.ts +++ b/src/app/ide/ide.component.ts @@ -16,7 +16,7 @@ import 'brace/mode/python'; import 'brace/mode/sql'; import 'brace/theme/cobalt'; -import { SourceCode } from './source-code'; +import { IDECommand } from '../message.types/ide.command'; import { WebSocketService } from '../services/websocket.service'; import { ProcessManagerService } from '../services/processmanager.service'; import { DeploymentNotificationService } from '../services/deployment-notification.service'; @@ -89,7 +89,7 @@ export class IdeComponent implements OnInit { } subscribeWS() { - this.webSocketService.observeKey(this.key_id).subscribe((event) => { + this.webSocketService.observeKey(this.key_id).subscribe((event) => { this.command_handlers[event.data.command](event.data); this.changeDetectorRef.detectChanges(); }); @@ -119,7 +119,7 @@ export class IdeComponent implements OnInit { ); } - updateFileData(data: SourceCode) { + updateFileData(data: IDECommand) { this.filename = data.filename; this.directory = data.directory; this.code = (data.content != null) ? data.content : this.code; @@ -127,15 +127,15 @@ export class IdeComponent implements OnInit { this.files = data.files; } - selectHandler(data: SourceCode) { + selectHandler(data: IDECommand) { this.updateFileData(data); } - reloadHandler(data: SourceCode) { + reloadHandler(data: IDECommand) { this.requestCode(); } - readHandler(data: SourceCode) { + readHandler(data: IDECommand) { if (this.codeState === CodeState.SAVED) { this.updateFileData(data); } @@ -145,7 +145,7 @@ export class IdeComponent implements OnInit { this.setCodeState(CodeState.SAVED); } - selectdirHandler(data: SourceCode) { + selectdirHandler(data: IDECommand) { this.updateFileData(data); } diff --git a/src/app/console/console-command.ts b/src/app/message.types/console.command.ts similarity index 100% rename from src/app/console/console-command.ts rename to src/app/message.types/console.command.ts diff --git a/src/app/services/fsmupdate.ts b/src/app/message.types/fsm.update.ts similarity index 100% rename from src/app/services/fsmupdate.ts rename to src/app/message.types/fsm.update.ts diff --git a/src/app/ide/source-code.ts b/src/app/message.types/ide.command.ts similarity index 87% rename from src/app/ide/source-code.ts rename to src/app/message.types/ide.command.ts index a860436..205af53 100644 --- a/src/app/ide/source-code.ts +++ b/src/app/message.types/ide.command.ts @@ -1,7 +1,7 @@ // Copyright (C) 2018 Avatao.com Innovative Learning Kft. // All Rights Reserved. See LICENSE file for details. -export interface SourceCode { +export interface IDECommand { filename: string; content?: string; files: string[]; diff --git a/src/app/dashboard/layout-command.ts b/src/app/message.types/layout.command.ts similarity index 100% rename from src/app/dashboard/layout-command.ts rename to src/app/message.types/layout.command.ts diff --git a/src/app/services/log.message.ts b/src/app/message.types/log.message.ts similarity index 100% rename from src/app/services/log.message.ts rename to src/app/message.types/log.message.ts diff --git a/src/app/messages/messagecontrol.ts b/src/app/message.types/messagecontrol.ts similarity index 100% rename from src/app/messages/messagecontrol.ts rename to src/app/message.types/messagecontrol.ts diff --git a/src/app/messages/message.ts b/src/app/message.types/messages.message.ts similarity index 84% rename from src/app/messages/message.ts rename to src/app/message.types/messages.message.ts index 0b58bad..d8b1d0a 100644 --- a/src/app/messages/message.ts +++ b/src/app/message.types/messages.message.ts @@ -1,7 +1,7 @@ // Copyright (C) 2018 Avatao.com Innovative Learning Kft. // All Rights Reserved. See LICENSE file for details. -export class Message { +export class MessagesMessage { originator: string; timestamp: Date; message: string; diff --git a/src/app/services/processcommand.ts b/src/app/message.types/process.command.ts similarity index 100% rename from src/app/services/processcommand.ts rename to src/app/message.types/process.command.ts diff --git a/src/app/services/processlog-command.ts b/src/app/message.types/process.log.command.ts similarity index 100% rename from src/app/services/processlog-command.ts rename to src/app/message.types/process.log.command.ts diff --git a/src/app/services/wsmessage.ts b/src/app/message.types/websocket.message.ts similarity index 82% rename from src/app/services/wsmessage.ts rename to src/app/message.types/websocket.message.ts index 690f72c..c0d3b52 100644 --- a/src/app/services/wsmessage.ts +++ b/src/app/message.types/websocket.message.ts @@ -1,7 +1,7 @@ // Copyright (C) 2018 Avatao.com Innovative Learning Kft. // All Rights Reserved. See LICENSE file for details. -export class WSMessage { +export class WebSocketMessage { key: string; trigger?: string; data: T; diff --git a/src/app/messages/messages.component.ts b/src/app/messages/messages.component.ts index 9960bfc..9221a89 100644 --- a/src/app/messages/messages.component.ts +++ b/src/app/messages/messages.component.ts @@ -5,8 +5,8 @@ import { ChangeDetectorRef, Component, OnInit } from '@angular/core'; import { MarkdownService } from '../services/markdown.service'; import { WebSocketService } from '../services/websocket.service'; -import { Message } from './message'; -import { MessageControl } from './messagecontrol'; +import { MessagesMessage } from '../message.types/messages.message'; +import { MessageControl } from '../message.types/messagecontrol'; import { config } from '../config'; @Component({ @@ -15,7 +15,7 @@ import { config } from '../config'; styleUrls: ['./messages.component.scss'] }) export class MessagesComponent implements OnInit { - messages: Message[] = []; + messages: MessagesMessage[] = []; showNextButton: boolean = config.messages.showNextButton; command_handlers = {'showbutton': this.showButton.bind(this)}; @@ -35,7 +35,7 @@ export class MessagesComponent implements OnInit { ngOnInit() { this.websocketService.connect(); - this.websocketService.observeKey('message').subscribe( + this.websocketService.observeKey('message').subscribe( (event) => { this.messages.push(event.data); event.data.message = this.convert(event.data.message); diff --git a/src/app/services/fsmupdate.service.ts b/src/app/services/fsmupdate.service.ts index 85cf01a..0df04ff 100644 --- a/src/app/services/fsmupdate.service.ts +++ b/src/app/services/fsmupdate.service.ts @@ -4,7 +4,7 @@ import { Injectable } from '@angular/core'; import { WebSocketService } from './websocket.service'; -import { FSMUpdate } from './fsmupdate'; +import { FSMUpdate } from '../message.types/fsm.update'; @Injectable() export class FSMUpdateService { diff --git a/src/app/services/processlog.service.ts b/src/app/services/processlog.service.ts index 0feda37..79b8216 100644 --- a/src/app/services/processlog.service.ts +++ b/src/app/services/processlog.service.ts @@ -3,10 +3,10 @@ import { Injectable } from '@angular/core'; import { WebSocketService } from './websocket.service'; -import { ProcessLogCommand } from './processlog-command'; +import { ProcessLogCommand } from '../message.types/process.log.command'; import { config } from '../config'; import { BehaviorSubject } from 'rxjs/BehaviorSubject'; -import { LogMessage } from './log.message'; +import { LogMessage } from '../message.types/log.message'; @Injectable() export class ProcessLogService { diff --git a/src/app/services/processmanager.service.ts b/src/app/services/processmanager.service.ts index 4fc96b3..70cefbf 100644 --- a/src/app/services/processmanager.service.ts +++ b/src/app/services/processmanager.service.ts @@ -4,9 +4,9 @@ import { Injectable } from '@angular/core'; import { WebSocketService } from './websocket.service'; -import { ProcessCommand } from './processcommand'; +import { ProcessCommand } from '../message.types/process.command'; import { filter } from 'rxjs/operators'; -import { WSMessage } from './wsmessage'; +import { WebSocketMessage } from '../message.types/websocket.message'; @Injectable() @@ -20,15 +20,15 @@ export class ProcessManagerService { this.webSocketService.connect(); } - subscribeCallback(process_name: string, callback: (event: WSMessage) => void) { + subscribeCallback(process_name: string, callback: (event: WebSocketMessage) => void) { this.observeProcessMessage(process_name).subscribe(callback); } - subscribeSuccessCallback(process_name: string, callback: (event: WSMessage) => void) { + subscribeSuccessCallback(process_name: string, callback: (event: WebSocketMessage) => void) { this.observeProcessMessage(process_name).pipe(filter(message => !('error' in message.data))).subscribe(callback); } - subscribeErrorCallback(process_name: string, callback: (event: WSMessage) => void) { + subscribeErrorCallback(process_name: string, callback: (event: WebSocketMessage) => void) { this.observeProcessMessage(process_name).pipe(filter(message => 'error' in message.data)).subscribe(callback); } diff --git a/src/app/services/websocket.service.ts b/src/app/services/websocket.service.ts index 435b648..53b2365 100644 --- a/src/app/services/websocket.service.ts +++ b/src/app/services/websocket.service.ts @@ -6,7 +6,7 @@ import { QueueingSubject } from './queueing-subject'; import { Observable } from 'rxjs'; import websocketConnect from 'rxjs-websockets'; import { filter, map, share } from 'rxjs/operators'; -import { WSMessage } from './wsmessage'; +import { WebSocketMessage } from '../message.types/websocket.message'; function jsonWebsocketConnect(url: string, input: Observable, protocols?: string | string[]) { @@ -19,7 +19,7 @@ function jsonWebsocketConnect(url: string, input: Observable, protocols? @Injectable() export class WebSocketService { private uplink: QueueingSubject; - public downlink: Observable>; + public downlink: Observable>; constructor() {} @@ -33,13 +33,13 @@ export class WebSocketService { wsproto + window.location.host + '/ws', this.uplink = new QueueingSubject() ).messages.pipe( - map(message => > message), + map(message => > message), share() ); console.log('ws connected'); } - public observeKey(key: string): Observable> { + public observeKey(key: string): Observable> { return this.downlink.pipe(filter(message => message.key === key)); } From 887a81ab8ebb6c475b11c23328dfb5490df8d236 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krist=C3=B3f=20T=C3=B3th?= Date: Thu, 31 May 2018 12:02:53 +0200 Subject: [PATCH 02/10] Make type hierarchy from messages --- src/app/console/console.component.ts | 5 ++-- src/app/dashboard/dashboard.component.ts | 5 ++-- src/app/ide/ide.component.ts | 7 +++--- .../{messagecontrol.ts => command.message.ts} | 5 ++-- src/app/message.types/console.command.ts | 5 ++-- src/app/message.types/ide.command.ts | 5 ++-- src/app/message.types/layout.command.ts | 5 ++-- .../message.types/message.control.command.ts | 8 +++++++ src/app/message.types/process.command.ts | 8 +++---- src/app/message.types/process.log.command.ts | 9 ++++---- src/app/messages/messages.component.ts | 23 ++++++++++--------- src/app/services/processlog.service.ts | 3 ++- 12 files changed, 51 insertions(+), 37 deletions(-) rename src/app/message.types/{messagecontrol.ts => command.message.ts} (59%) create mode 100644 src/app/message.types/message.control.command.ts diff --git a/src/app/console/console.component.ts b/src/app/console/console.component.ts index e47cb0a..fa10bad 100644 --- a/src/app/console/console.component.ts +++ b/src/app/console/console.component.ts @@ -7,6 +7,7 @@ import { ConsoleCommand } from '../message.types/console.command'; import { config } from '../config'; import { ProcessLogService } from '../services/processlog.service'; import { LogMessage } from '../message.types/log.message'; +import { CommandMessage } from '../message.types/command.message'; @Component({ selector: 'app-console', @@ -29,7 +30,7 @@ export class ConsoleComponent implements OnInit { ngOnInit() { this.webSocketService.connect(); - this.webSocketService.observeKey('console').subscribe( + this.webSocketService.observeKey('console').subscribe( (event) => this.command_handlers[event.data.command](event.data) ); this.processLogService.newLogs.subscribe((data) => this.newLogsHandler(data)); @@ -39,7 +40,7 @@ export class ConsoleComponent implements OnInit { this.setContent(data.content); } - readHandler(data: ConsoleCommand) { + readHandler(data: CommandMessage) { this.sendContent(this.console_content); } diff --git a/src/app/dashboard/dashboard.component.ts b/src/app/dashboard/dashboard.component.ts index 296fefd..1a6b99b 100644 --- a/src/app/dashboard/dashboard.component.ts +++ b/src/app/dashboard/dashboard.component.ts @@ -9,6 +9,7 @@ import { LayoutCommand } from '../message.types/layout.command'; import { config } from '../config'; import { ProcessLogService } from '../services/processlog.service'; import { LogMessage } from '../message.types/log.message'; +import { CommandMessage } from '../message.types/command.message'; @Component({ selector: 'app-dashboard', @@ -42,7 +43,7 @@ export class DashboardComponent implements OnInit, OnDestroy { } initCommandHandling() { - this.webSocketService.observeKey('dashboard').subscribe((event) => { + this.webSocketService.observeKey('dashboard').subscribe((event) => { this.command_handlers[event.data.command](event.data); this.changeDetectorRef.detectChanges(); }); @@ -85,7 +86,7 @@ export class DashboardComponent implements OnInit, OnDestroy { this.selectTerminalMenuItem(data.terminal_menu_item); } - reloadFrontendHandlder(data: LayoutCommand) { + reloadFrontendHandlder(data: CommandMessage) { setTimeout(() => window.location.reload(), 2000); } diff --git a/src/app/ide/ide.component.ts b/src/app/ide/ide.component.ts index a25e294..da4f096 100644 --- a/src/app/ide/ide.component.ts +++ b/src/app/ide/ide.component.ts @@ -21,6 +21,7 @@ import { WebSocketService } from '../services/websocket.service'; import { ProcessManagerService } from '../services/processmanager.service'; import { DeploymentNotificationService } from '../services/deployment-notification.service'; import { config } from '../config'; +import { CommandMessage } from '../message.types/command.message'; const modelist = brace.acequire('ace/ext/modelist'); const langTools = brace.acequire('ace/ext/language_tools'); @@ -89,7 +90,7 @@ export class IdeComponent implements OnInit { } subscribeWS() { - this.webSocketService.observeKey(this.key_id).subscribe((event) => { + this.webSocketService.observeKey(this.key_id).subscribe((event) => { this.command_handlers[event.data.command](event.data); this.changeDetectorRef.detectChanges(); }); @@ -131,7 +132,7 @@ export class IdeComponent implements OnInit { this.updateFileData(data); } - reloadHandler(data: IDECommand) { + reloadHandler(data: CommandMessage) { this.requestCode(); } @@ -141,7 +142,7 @@ export class IdeComponent implements OnInit { } } - writeHandler() { + writeHandler(data: CommandMessage) { this.setCodeState(CodeState.SAVED); } diff --git a/src/app/message.types/messagecontrol.ts b/src/app/message.types/command.message.ts similarity index 59% rename from src/app/message.types/messagecontrol.ts rename to src/app/message.types/command.message.ts index 9f49cf0..9249ee4 100644 --- a/src/app/message.types/messagecontrol.ts +++ b/src/app/message.types/command.message.ts @@ -1,7 +1,6 @@ // Copyright (C) 2018 Avatao.com Innovative Learning Kft. // All Rights Reserved. See LICENSE file for details. -export class MessageControl { - command: string; - next_visibility?: boolean; +export interface CommandMessage { + readonly command: string; } diff --git a/src/app/message.types/console.command.ts b/src/app/message.types/console.command.ts index c23e6a8..3b662b5 100644 --- a/src/app/message.types/console.command.ts +++ b/src/app/message.types/console.command.ts @@ -1,8 +1,9 @@ // Copyright (C) 2018 Avatao.com Innovative Learning Kft. // All Rights Reserved. See LICENSE file for details. -export interface ConsoleCommand { - command: string; +import { CommandMessage } from './command.message'; + +export interface ConsoleCommand extends CommandMessage { content?: string; showLiveLogs?: boolean; rewriteContentWithProcessLogsOnDeploy?: string; diff --git a/src/app/message.types/ide.command.ts b/src/app/message.types/ide.command.ts index 205af53..29fed5b 100644 --- a/src/app/message.types/ide.command.ts +++ b/src/app/message.types/ide.command.ts @@ -1,10 +1,11 @@ // Copyright (C) 2018 Avatao.com Innovative Learning Kft. // All Rights Reserved. See LICENSE file for details. -export interface IDECommand { +import { CommandMessage } from './command.message'; + +export interface IDECommand extends CommandMessage { filename: string; content?: string; files: string[]; directory: string; - command: string; } diff --git a/src/app/message.types/layout.command.ts b/src/app/message.types/layout.command.ts index 18274fd..2cb0e9e 100644 --- a/src/app/message.types/layout.command.ts +++ b/src/app/message.types/layout.command.ts @@ -1,8 +1,9 @@ // Copyright (C) 2018 Avatao.com Innovative Learning Kft. // All Rights Reserved. See LICENSE file for details. -export interface LayoutCommand { - command: string; +import { CommandMessage } from './command.message'; + +export interface LayoutCommand extends CommandMessage { layout?: string; hide_messages?: boolean; terminal_menu_item?: string; diff --git a/src/app/message.types/message.control.command.ts b/src/app/message.types/message.control.command.ts new file mode 100644 index 0000000..ac2a99c --- /dev/null +++ b/src/app/message.types/message.control.command.ts @@ -0,0 +1,8 @@ +// Copyright (C) 2018 Avatao.com Innovative Learning Kft. +// All Rights Reserved. See LICENSE file for details. + +import { CommandMessage } from './command.message'; + +export interface MessageControlCommand extends CommandMessage { + next_visibility?: boolean; +} diff --git a/src/app/message.types/process.command.ts b/src/app/message.types/process.command.ts index 8952530..dcad547 100644 --- a/src/app/message.types/process.command.ts +++ b/src/app/message.types/process.command.ts @@ -1,10 +1,10 @@ // Copyright (C) 2018 Avatao.com Innovative Learning Kft. // All Rights Reserved. See LICENSE file for details. -export interface ProcessCommand { - command: string; +import { CommandMessage } from './command.message'; +import { LogMessage } from './log.message'; + +export interface ProcessCommand extends CommandMessage, LogMessage { process_name: string; error?: string; - stdout: string; - stderr: string; } diff --git a/src/app/message.types/process.log.command.ts b/src/app/message.types/process.log.command.ts index 1ed732e..d906d20 100644 --- a/src/app/message.types/process.log.command.ts +++ b/src/app/message.types/process.log.command.ts @@ -1,8 +1,7 @@ // Copyright (C) 2018 Avatao.com Innovative Learning Kft. // All Rights Reserved. See LICENSE file for details. -export interface ProcessLogCommand { - command: string; - stdout: string; - stderr: string; -} +import { CommandMessage } from './command.message'; +import { LogMessage } from './log.message'; + +export interface ProcessLogCommand extends CommandMessage, LogMessage {} diff --git a/src/app/messages/messages.component.ts b/src/app/messages/messages.component.ts index 9221a89..59b4746 100644 --- a/src/app/messages/messages.component.ts +++ b/src/app/messages/messages.component.ts @@ -6,8 +6,9 @@ import { MarkdownService } from '../services/markdown.service'; import { WebSocketService } from '../services/websocket.service'; import { MessagesMessage } from '../message.types/messages.message'; -import { MessageControl } from '../message.types/messagecontrol'; +import { MessageControlCommand } from '../message.types/message.control.command'; import { config } from '../config'; +import { CommandMessage } from '../message.types/command.message'; @Component({ selector: 'app-messages', @@ -17,7 +18,7 @@ import { config } from '../config'; export class MessagesComponent implements OnInit { messages: MessagesMessage[] = []; showNextButton: boolean = config.messages.showNextButton; - command_handlers = {'showbutton': this.showButton.bind(this)}; + command_handlers = {'showbutton': this.showButtonHandler.bind(this)}; constructor( private markdownService: MarkdownService, @@ -25,14 +26,6 @@ export class MessagesComponent implements OnInit { private changeDetectorRef: ChangeDetectorRef ) {} - convert(text: string) { - return this.markdownService.convertToHtml(text); - } - - showButton(data: MessageControl) { - this.showNextButton = data.next_visibility; - } - ngOnInit() { this.websocketService.connect(); this.websocketService.observeKey('message').subscribe( @@ -41,12 +34,20 @@ export class MessagesComponent implements OnInit { event.data.message = this.convert(event.data.message); this.changeDetectorRef.detectChanges(); }); - this.websocketService.observeKey('messagecontrol').subscribe( + this.websocketService.observeKey('messagecontrol').subscribe( (event) => { this.command_handlers[event.data.command](event.data); }); } + convert(text: string) { + return this.markdownService.convertToHtml(text); + } + + showButtonHandler(data: MessageControlCommand) { + this.showNextButton = data.next_visibility; + } + stepFSM() { this.websocketService.sendJSON({key: '', trigger: 'step_next'}); } diff --git a/src/app/services/processlog.service.ts b/src/app/services/processlog.service.ts index 79b8216..c38775e 100644 --- a/src/app/services/processlog.service.ts +++ b/src/app/services/processlog.service.ts @@ -7,6 +7,7 @@ import { ProcessLogCommand } from '../message.types/process.log.command'; import { config } from '../config'; import { BehaviorSubject } from 'rxjs/BehaviorSubject'; import { LogMessage } from '../message.types/log.message'; +import { CommandMessage } from '../message.types/command.message'; @Injectable() export class ProcessLogService { @@ -19,7 +20,7 @@ export class ProcessLogService { constructor(private webSocketService: WebSocketService) { this.webSocketService.connect(); - this.webSocketService.observeKey('processlog').subscribe( + this.webSocketService.observeKey('processlog').subscribe( (event) => this.command_handlers[event.data.command](event.data) ); } From 279a121538dda37cc9cfd484c5b756138d1c56ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krist=C3=B3f=20T=C3=B3th?= Date: Thu, 31 May 2018 12:11:35 +0200 Subject: [PATCH 03/10] Refactor console message types and API --- src/app/console/console.component.ts | 14 +++++++------- src/app/message.types/console.commands.ts | 13 +++++++++++++ .../{console.command.ts => set.value.command.ts} | 6 ++---- 3 files changed, 22 insertions(+), 11 deletions(-) create mode 100644 src/app/message.types/console.commands.ts rename src/app/message.types/{console.command.ts => set.value.command.ts} (52%) diff --git a/src/app/console/console.component.ts b/src/app/console/console.component.ts index fa10bad..5758c12 100644 --- a/src/app/console/console.component.ts +++ b/src/app/console/console.component.ts @@ -3,7 +3,7 @@ import { Component, OnInit } from '@angular/core'; import { WebSocketService } from '../services/websocket.service'; -import { ConsoleCommand } from '../message.types/console.command'; +import { ConsoleContentCommand, RewriteContentCommand, ShowLiveLogsCommand } from '../message.types/console.commands'; import { config } from '../config'; import { ProcessLogService } from '../services/processlog.service'; import { LogMessage } from '../message.types/log.message'; @@ -36,11 +36,11 @@ export class ConsoleComponent implements OnInit { this.processLogService.newLogs.subscribe((data) => this.newLogsHandler(data)); } - writeHandler(data: ConsoleCommand) { + writeHandler(data: ConsoleContentCommand) { this.setContent(data.content); } - readHandler(data: CommandMessage) { + readHandler(data: ConsoleContentCommand) { this.sendContent(this.console_content); } @@ -53,12 +53,12 @@ export class ConsoleComponent implements OnInit { } } - showLiveLogsHandler(data: ConsoleCommand) { - this.processLogService.showLiveLogs = data.showLiveLogs; + showLiveLogsHandler(data: ShowLiveLogsCommand) { + this.processLogService.showLiveLogs = data.value; } - rewriteContentWithProcessLogsOnDeployHandler(data: ConsoleCommand) { - this.rewriteContentWithProcessLogsOnDeploy = data.rewriteContentWithProcessLogsOnDeploy; + rewriteContentWithProcessLogsOnDeployHandler(data: RewriteContentCommand) { + this.rewriteContentWithProcessLogsOnDeploy = data.value; } setContent(content: string) { diff --git a/src/app/message.types/console.commands.ts b/src/app/message.types/console.commands.ts new file mode 100644 index 0000000..41f4290 --- /dev/null +++ b/src/app/message.types/console.commands.ts @@ -0,0 +1,13 @@ +// Copyright (C) 2018 Avatao.com Innovative Learning Kft. +// All Rights Reserved. See LICENSE file for details. + +import { CommandMessage } from './command.message'; +import { SetValueCommand } from './set.value.command'; + +export interface ConsoleContentCommand extends CommandMessage { + content?: string; +} + +export interface ShowLiveLogsCommand extends CommandMessage, SetValueCommand {} + +export interface RewriteContentCommand extends CommandMessage, SetValueCommand {} diff --git a/src/app/message.types/console.command.ts b/src/app/message.types/set.value.command.ts similarity index 52% rename from src/app/message.types/console.command.ts rename to src/app/message.types/set.value.command.ts index 3b662b5..f243585 100644 --- a/src/app/message.types/console.command.ts +++ b/src/app/message.types/set.value.command.ts @@ -3,8 +3,6 @@ import { CommandMessage } from './command.message'; -export interface ConsoleCommand extends CommandMessage { - content?: string; - showLiveLogs?: boolean; - rewriteContentWithProcessLogsOnDeploy?: string; +export interface SetValueCommand extends CommandMessage { + value: T; } From 2fdcea4af8295f51d264547bc1b68cbaf08ef686 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krist=C3=B3f=20T=C3=B3th?= Date: Thu, 31 May 2018 12:22:53 +0200 Subject: [PATCH 04/10] Rework dashboard API and refactory typing --- src/app/dashboard/dashboard.component.ts | 16 ++++++++-------- src/app/message.types/dashboard.commands.ts | 11 +++++++++++ src/app/message.types/layout.command.ts | 10 ---------- 3 files changed, 19 insertions(+), 18 deletions(-) create mode 100644 src/app/message.types/dashboard.commands.ts delete mode 100644 src/app/message.types/layout.command.ts diff --git a/src/app/dashboard/dashboard.component.ts b/src/app/dashboard/dashboard.component.ts index 1a6b99b..dc06110 100644 --- a/src/app/dashboard/dashboard.component.ts +++ b/src/app/dashboard/dashboard.component.ts @@ -5,7 +5,7 @@ import { Component, OnDestroy, OnInit, ChangeDetectorRef, ElementRef, ViewChild import { DeploymentNotificationService } from '../services/deployment-notification.service'; import { Subscription } from 'rxjs'; import { WebSocketService } from '../services/websocket.service'; -import { LayoutCommand } from '../message.types/layout.command'; +import { HideMessagesCommand, LayoutCommand, TerminalMenuItemCommand } from '../message.types/dashboard.commands'; import { config } from '../config'; import { ProcessLogService } from '../services/processlog.service'; import { LogMessage } from '../message.types/log.message'; @@ -71,19 +71,19 @@ export class DashboardComponent implements OnInit, OnDestroy { } layoutHandler(data: LayoutCommand) { - if (config.dashboard.enabledLayouts.includes(data.layout)) { - this.setLayout(data.layout); + if (config.dashboard.enabledLayouts.includes(data.value)) { + this.setLayout(data.value); } else { - console.log('Invalid ide layout "' + data.layout + '" received!'); + console.log('Invalid ide layout "' + data.value + '" received!'); } } - hideMessagesHandler(data: LayoutCommand) { - this.hide_messages = data.hide_messages; + hideMessagesHandler(data: HideMessagesCommand) { + this.hide_messages = data.value; } - terminalMenuSelectHandler(data: LayoutCommand) { - this.selectTerminalMenuItem(data.terminal_menu_item); + terminalMenuSelectHandler(data: TerminalMenuItemCommand) { + this.selectTerminalMenuItem(data.value); } reloadFrontendHandlder(data: CommandMessage) { diff --git a/src/app/message.types/dashboard.commands.ts b/src/app/message.types/dashboard.commands.ts new file mode 100644 index 0000000..0557a37 --- /dev/null +++ b/src/app/message.types/dashboard.commands.ts @@ -0,0 +1,11 @@ +// Copyright (C) 2018 Avatao.com Innovative Learning Kft. +// All Rights Reserved. See LICENSE file for details. + +import { CommandMessage } from './command.message'; +import { SetValueCommand } from './set.value.command'; + +export interface LayoutCommand extends CommandMessage, SetValueCommand {} + +export interface HideMessagesCommand extends CommandMessage, SetValueCommand {} + +export interface TerminalMenuItemCommand extends CommandMessage, SetValueCommand {} diff --git a/src/app/message.types/layout.command.ts b/src/app/message.types/layout.command.ts deleted file mode 100644 index 2cb0e9e..0000000 --- a/src/app/message.types/layout.command.ts +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright (C) 2018 Avatao.com Innovative Learning Kft. -// All Rights Reserved. See LICENSE file for details. - -import { CommandMessage } from './command.message'; - -export interface LayoutCommand extends CommandMessage { - layout?: string; - hide_messages?: boolean; - terminal_menu_item?: string; -} From c407ce1e96d48005a2d4c7338ac072baaf63f537 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krist=C3=B3f=20T=C3=B3th?= Date: Thu, 31 May 2018 12:24:34 +0200 Subject: [PATCH 05/10] Refactor Messages API with new types and conventions --- ....control.command.ts => messages.control.command.ts} | 5 ++--- src/app/messages/messages.component.ts | 10 ++++++---- 2 files changed, 8 insertions(+), 7 deletions(-) rename src/app/message.types/{message.control.command.ts => messages.control.command.ts} (53%) diff --git a/src/app/message.types/message.control.command.ts b/src/app/message.types/messages.control.command.ts similarity index 53% rename from src/app/message.types/message.control.command.ts rename to src/app/message.types/messages.control.command.ts index ac2a99c..3427501 100644 --- a/src/app/message.types/message.control.command.ts +++ b/src/app/message.types/messages.control.command.ts @@ -2,7 +2,6 @@ // All Rights Reserved. See LICENSE file for details. import { CommandMessage } from './command.message'; +import { SetValueCommand } from './set.value.command'; -export interface MessageControlCommand extends CommandMessage { - next_visibility?: boolean; -} +export interface MessagesControlCommand extends CommandMessage, SetValueCommand {} diff --git a/src/app/messages/messages.component.ts b/src/app/messages/messages.component.ts index 59b4746..55e1813 100644 --- a/src/app/messages/messages.component.ts +++ b/src/app/messages/messages.component.ts @@ -6,7 +6,7 @@ import { MarkdownService } from '../services/markdown.service'; import { WebSocketService } from '../services/websocket.service'; import { MessagesMessage } from '../message.types/messages.message'; -import { MessageControlCommand } from '../message.types/message.control.command'; +import { MessagesControlCommand } from '../message.types/messages.control.command'; import { config } from '../config'; import { CommandMessage } from '../message.types/command.message'; @@ -18,7 +18,9 @@ import { CommandMessage } from '../message.types/command.message'; export class MessagesComponent implements OnInit { messages: MessagesMessage[] = []; showNextButton: boolean = config.messages.showNextButton; - command_handlers = {'showbutton': this.showButtonHandler.bind(this)}; + command_handlers = { + 'showNextButton': this.showButtonHandler.bind(this) + }; constructor( private markdownService: MarkdownService, @@ -44,8 +46,8 @@ export class MessagesComponent implements OnInit { return this.markdownService.convertToHtml(text); } - showButtonHandler(data: MessageControlCommand) { - this.showNextButton = data.next_visibility; + showButtonHandler(data: MessagesControlCommand) { + this.showNextButton = data.value; } stepFSM() { From 00efe0002c8409ad125bab91b7264031824b6d91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krist=C3=B3f=20T=C3=B3th?= Date: Thu, 31 May 2018 12:28:39 +0200 Subject: [PATCH 06/10] Rename dashboard API command --- src/app/dashboard/dashboard.component.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/app/dashboard/dashboard.component.ts b/src/app/dashboard/dashboard.component.ts index dc06110..079c166 100644 --- a/src/app/dashboard/dashboard.component.ts +++ b/src/app/dashboard/dashboard.component.ts @@ -25,10 +25,10 @@ export class DashboardComponent implements OnInit, OnDestroy { @ViewChild('webiframe') webiframe: ElementRef; selectedTerminalMenuItem = config.dashboard.terminalOrConsole; - command_handlers = {'layout': this.layoutHandler.bind(this), - 'hide_messages': this.hideMessagesHandler.bind(this), - 'terminal_menu': this.terminalMenuSelectHandler.bind(this), - 'reload_frontend': this.reloadFrontendHandlder.bind(this)}; + command_handlers = {'layout': this.layoutHandler.bind(this), + 'hide_messages': this.hideMessagesHandler.bind(this), + 'terminal_menu_item': this.terminalMenuSelectHandler.bind(this), + 'reload_frontend': this.reloadFrontendHandlder.bind(this)}; constructor(private deploymentNotificationService: DeploymentNotificationService, private webSocketService: WebSocketService, From 6a507debec864a65906f1f6d29642638fab636cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krist=C3=B3f=20T=C3=B3th?= Date: Thu, 31 May 2018 14:18:13 +0200 Subject: [PATCH 07/10] Unify fronted API naming conventions in dashboard --- src/app/config.ts | 2 +- src/app/dashboard/dashboard.component.html | 2 +- src/app/dashboard/dashboard.component.ts | 21 +++++++++++---------- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/app/config.ts b/src/app/config.ts index 56dbeb2..9afd139 100644 --- a/src/app/config.ts +++ b/src/app/config.ts @@ -19,7 +19,7 @@ export const config = { 'web-only' ], iframeUrl: '/webservice', - hide_messages: false + hideMessages: false }, ide: { route: 'ide', diff --git a/src/app/dashboard/dashboard.component.html b/src/app/dashboard/dashboard.component.html index 2473be4..77d23d3 100644 --- a/src/app/dashboard/dashboard.component.html +++ b/src/app/dashboard/dashboard.component.html @@ -4,7 +4,7 @@
-
+
Date: Thu, 31 May 2018 14:57:19 +0200 Subject: [PATCH 08/10] Remove lies from README --- README.md | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 81337bd..fb3331b 100644 --- a/README.md +++ b/README.md @@ -120,10 +120,7 @@ The dashboard also exposes a frontend API to dynamically change layouts any time "data": { "command": "layout", - "layout": ..., - "hide_messages": ... + "value": ... } } -``` - -You can use the `hide_messages` key to hide the message component (sadly it currently takes up the space it would occupy). +``` \ No newline at end of file From d99853d88eeca79f411de70b4c77c06d47255f5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krist=C3=B3f=20T=C3=B3th?= Date: Sat, 2 Jun 2018 17:10:12 +0200 Subject: [PATCH 09/10] Extend README with console stuff and update config.ts part --- README.md | 36 +++++++++++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index fb3331b..801fb63 100644 --- a/README.md +++ b/README.md @@ -21,10 +21,25 @@ These APIs are documented in the [baseimage-tutorial-framework](https://github.c ## Configuration -Most of the time it is not necessary to edit the source code of our components as you can easily customise their behaviour through the `src/app/config.ts` config file. +Generally it is unadvised to directly modify the source code of our pre-written components (this is hard for us to support and is prone to break). -The most notable setting available in this file is the enabling of different layouts, which allows the user and you to switch between them. -Layouts describe which components are visible and where they are on the screen. +For this reason most components are extensively configurable through the `src/app/config.ts` file. +These configurations range from the enabling of different layouts to how frequently should our IDE save automatically. + +Many configuration options are changeable dynamically using API messages sent from the backend, like so: + +``` +{ + "key": ...component name..., + "data": + { + "command": ...configuration key..., + "value": ... + } +} +``` + +Should you encounter any missing features, feel free to contact team TFW and we'll consider implementing them as configuration options (a common example would be making a configuration option dynamic). ### Terminal (webshell) @@ -41,6 +56,21 @@ You can write to it (and thus execute commands) and read what commands were exec This enables you to pre-type or execute commands for the user and figure out what they are doing in the terminal. +### Console + +Not unlike how a desktop IDE displays the output of your application, TFW provides a similar component as well. + +The console can appear in place of the terminal and allows you to display the output of a supervisor process in real time. + +This means that if you type `print('cats like cheese')` in your application code and run it, you will see `cats like cheese` appear on the console! Pretty neat, right? + +You can control the displaying of process logs to the console using the `console.rewriteContentWithProcessLogsOnDeploy` key in `config.ts`. +The value of `stdout` or `stderr` will cause the console to display the respective stream, while an empty string will disable any automatic output to the console altogether. + +We recommend redirecting `stdout` and `stderr` to the same file and displaying the together. + +The `console.showLiveLogs` key enables real time output from the standard stream you've selected. + ### IDE (webIde) This component is a simple text editor based on ACE. From 1b4c7a1f0fafcf77625d15cd258eadbab4e30110 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krist=C3=B3f=20T=C3=B3th?= Date: Sat, 2 Jun 2018 17:31:51 +0200 Subject: [PATCH 10/10] Rename message-types stuff to comply angular naming conventions --- src/app/console/console.component.ts | 6 +++--- src/app/dashboard/dashboard.component.ts | 6 +++--- src/app/ide/ide.component.ts | 4 ++-- .../command.message.ts => message-types/command-message.ts} | 0 .../console-commands.ts} | 4 ++-- .../dashboard-commands.ts} | 4 ++-- .../fsm.update.ts => message-types/fsm-update.ts} | 0 .../ide.command.ts => message-types/ide-command.ts} | 2 +- .../log.message.ts => message-types/log-message.ts} | 0 .../messages-control-command.ts} | 4 ++-- .../messages-message.ts} | 0 .../process.command.ts => message-types/process-command.ts} | 4 ++-- .../process-log-command.ts} | 4 ++-- .../set-value-command.ts} | 2 +- .../websocket-message.ts} | 0 src/app/messages/messages.component.ts | 6 +++--- src/app/services/fsmupdate.service.ts | 2 +- src/app/services/processlog.service.ts | 6 +++--- src/app/services/processmanager.service.ts | 4 ++-- src/app/services/websocket.service.ts | 2 +- 20 files changed, 30 insertions(+), 30 deletions(-) rename src/app/{message.types/command.message.ts => message-types/command-message.ts} (100%) rename src/app/{message.types/console.commands.ts => message-types/console-commands.ts} (78%) rename src/app/{message.types/dashboard.commands.ts => message-types/dashboard-commands.ts} (77%) rename src/app/{message.types/fsm.update.ts => message-types/fsm-update.ts} (100%) rename src/app/{message.types/ide.command.ts => message-types/ide-command.ts} (82%) rename src/app/{message.types/log.message.ts => message-types/log-message.ts} (100%) rename src/app/{message.types/messages.control.command.ts => message-types/messages-control-command.ts} (65%) rename src/app/{message.types/messages.message.ts => message-types/messages-message.ts} (100%) rename src/app/{message.types/process.command.ts => message-types/process-command.ts} (70%) rename src/app/{message.types/process.log.command.ts => message-types/process-log-command.ts} (66%) rename src/app/{message.types/set.value.command.ts => message-types/set-value-command.ts} (78%) rename src/app/{message.types/websocket.message.ts => message-types/websocket-message.ts} (100%) diff --git a/src/app/console/console.component.ts b/src/app/console/console.component.ts index 5758c12..857406f 100644 --- a/src/app/console/console.component.ts +++ b/src/app/console/console.component.ts @@ -3,11 +3,11 @@ import { Component, OnInit } from '@angular/core'; import { WebSocketService } from '../services/websocket.service'; -import { ConsoleContentCommand, RewriteContentCommand, ShowLiveLogsCommand } from '../message.types/console.commands'; +import { ConsoleContentCommand, RewriteContentCommand, ShowLiveLogsCommand } from '../message-types/console-commands'; import { config } from '../config'; import { ProcessLogService } from '../services/processlog.service'; -import { LogMessage } from '../message.types/log.message'; -import { CommandMessage } from '../message.types/command.message'; +import { LogMessage } from '../message-types/log-message'; +import { CommandMessage } from '../message-types/command-message'; @Component({ selector: 'app-console', diff --git a/src/app/dashboard/dashboard.component.ts b/src/app/dashboard/dashboard.component.ts index 7ead75a..86307db 100644 --- a/src/app/dashboard/dashboard.component.ts +++ b/src/app/dashboard/dashboard.component.ts @@ -5,11 +5,11 @@ import { Component, OnDestroy, OnInit, ChangeDetectorRef, ElementRef, ViewChild import { DeploymentNotificationService } from '../services/deployment-notification.service'; import { Subscription } from 'rxjs'; import { WebSocketService } from '../services/websocket.service'; -import { HideMessagesCommand, LayoutCommand, TerminalMenuItemCommand } from '../message.types/dashboard.commands'; +import { HideMessagesCommand, LayoutCommand, TerminalMenuItemCommand } from '../message-types/dashboard-commands'; import { config } from '../config'; import { ProcessLogService } from '../services/processlog.service'; -import { LogMessage } from '../message.types/log.message'; -import { CommandMessage } from '../message.types/command.message'; +import { LogMessage } from '../message-types/log-message'; +import { CommandMessage } from '../message-types/command-message'; @Component({ selector: 'app-dashboard', diff --git a/src/app/ide/ide.component.ts b/src/app/ide/ide.component.ts index da4f096..8aaa57e 100644 --- a/src/app/ide/ide.component.ts +++ b/src/app/ide/ide.component.ts @@ -16,12 +16,12 @@ import 'brace/mode/python'; import 'brace/mode/sql'; import 'brace/theme/cobalt'; -import { IDECommand } from '../message.types/ide.command'; +import { IDECommand } from '../message-types/ide-command'; import { WebSocketService } from '../services/websocket.service'; import { ProcessManagerService } from '../services/processmanager.service'; import { DeploymentNotificationService } from '../services/deployment-notification.service'; import { config } from '../config'; -import { CommandMessage } from '../message.types/command.message'; +import { CommandMessage } from '../message-types/command-message'; const modelist = brace.acequire('ace/ext/modelist'); const langTools = brace.acequire('ace/ext/language_tools'); diff --git a/src/app/message.types/command.message.ts b/src/app/message-types/command-message.ts similarity index 100% rename from src/app/message.types/command.message.ts rename to src/app/message-types/command-message.ts diff --git a/src/app/message.types/console.commands.ts b/src/app/message-types/console-commands.ts similarity index 78% rename from src/app/message.types/console.commands.ts rename to src/app/message-types/console-commands.ts index 41f4290..1b7de79 100644 --- a/src/app/message.types/console.commands.ts +++ b/src/app/message-types/console-commands.ts @@ -1,8 +1,8 @@ // Copyright (C) 2018 Avatao.com Innovative Learning Kft. // All Rights Reserved. See LICENSE file for details. -import { CommandMessage } from './command.message'; -import { SetValueCommand } from './set.value.command'; +import { CommandMessage } from './command-message'; +import { SetValueCommand } from './set-value-command'; export interface ConsoleContentCommand extends CommandMessage { content?: string; diff --git a/src/app/message.types/dashboard.commands.ts b/src/app/message-types/dashboard-commands.ts similarity index 77% rename from src/app/message.types/dashboard.commands.ts rename to src/app/message-types/dashboard-commands.ts index 0557a37..6abbdb8 100644 --- a/src/app/message.types/dashboard.commands.ts +++ b/src/app/message-types/dashboard-commands.ts @@ -1,8 +1,8 @@ // Copyright (C) 2018 Avatao.com Innovative Learning Kft. // All Rights Reserved. See LICENSE file for details. -import { CommandMessage } from './command.message'; -import { SetValueCommand } from './set.value.command'; +import { CommandMessage } from './command-message'; +import { SetValueCommand } from './set-value-command'; export interface LayoutCommand extends CommandMessage, SetValueCommand {} diff --git a/src/app/message.types/fsm.update.ts b/src/app/message-types/fsm-update.ts similarity index 100% rename from src/app/message.types/fsm.update.ts rename to src/app/message-types/fsm-update.ts diff --git a/src/app/message.types/ide.command.ts b/src/app/message-types/ide-command.ts similarity index 82% rename from src/app/message.types/ide.command.ts rename to src/app/message-types/ide-command.ts index 29fed5b..e72e2dd 100644 --- a/src/app/message.types/ide.command.ts +++ b/src/app/message-types/ide-command.ts @@ -1,7 +1,7 @@ // Copyright (C) 2018 Avatao.com Innovative Learning Kft. // All Rights Reserved. See LICENSE file for details. -import { CommandMessage } from './command.message'; +import { CommandMessage } from './command-message'; export interface IDECommand extends CommandMessage { filename: string; diff --git a/src/app/message.types/log.message.ts b/src/app/message-types/log-message.ts similarity index 100% rename from src/app/message.types/log.message.ts rename to src/app/message-types/log-message.ts diff --git a/src/app/message.types/messages.control.command.ts b/src/app/message-types/messages-control-command.ts similarity index 65% rename from src/app/message.types/messages.control.command.ts rename to src/app/message-types/messages-control-command.ts index 3427501..cd53f52 100644 --- a/src/app/message.types/messages.control.command.ts +++ b/src/app/message-types/messages-control-command.ts @@ -1,7 +1,7 @@ // Copyright (C) 2018 Avatao.com Innovative Learning Kft. // All Rights Reserved. See LICENSE file for details. -import { CommandMessage } from './command.message'; -import { SetValueCommand } from './set.value.command'; +import { CommandMessage } from './command-message'; +import { SetValueCommand } from './set-value-command'; export interface MessagesControlCommand extends CommandMessage, SetValueCommand {} diff --git a/src/app/message.types/messages.message.ts b/src/app/message-types/messages-message.ts similarity index 100% rename from src/app/message.types/messages.message.ts rename to src/app/message-types/messages-message.ts diff --git a/src/app/message.types/process.command.ts b/src/app/message-types/process-command.ts similarity index 70% rename from src/app/message.types/process.command.ts rename to src/app/message-types/process-command.ts index dcad547..aef7b3d 100644 --- a/src/app/message.types/process.command.ts +++ b/src/app/message-types/process-command.ts @@ -1,8 +1,8 @@ // Copyright (C) 2018 Avatao.com Innovative Learning Kft. // All Rights Reserved. See LICENSE file for details. -import { CommandMessage } from './command.message'; -import { LogMessage } from './log.message'; +import { CommandMessage } from './command-message'; +import { LogMessage } from './log-message'; export interface ProcessCommand extends CommandMessage, LogMessage { process_name: string; diff --git a/src/app/message.types/process.log.command.ts b/src/app/message-types/process-log-command.ts similarity index 66% rename from src/app/message.types/process.log.command.ts rename to src/app/message-types/process-log-command.ts index d906d20..3792c37 100644 --- a/src/app/message.types/process.log.command.ts +++ b/src/app/message-types/process-log-command.ts @@ -1,7 +1,7 @@ // Copyright (C) 2018 Avatao.com Innovative Learning Kft. // All Rights Reserved. See LICENSE file for details. -import { CommandMessage } from './command.message'; -import { LogMessage } from './log.message'; +import { CommandMessage } from './command-message'; +import { LogMessage } from './log-message'; export interface ProcessLogCommand extends CommandMessage, LogMessage {} diff --git a/src/app/message.types/set.value.command.ts b/src/app/message-types/set-value-command.ts similarity index 78% rename from src/app/message.types/set.value.command.ts rename to src/app/message-types/set-value-command.ts index f243585..e64dee2 100644 --- a/src/app/message.types/set.value.command.ts +++ b/src/app/message-types/set-value-command.ts @@ -1,7 +1,7 @@ // Copyright (C) 2018 Avatao.com Innovative Learning Kft. // All Rights Reserved. See LICENSE file for details. -import { CommandMessage } from './command.message'; +import { CommandMessage } from './command-message'; export interface SetValueCommand extends CommandMessage { value: T; diff --git a/src/app/message.types/websocket.message.ts b/src/app/message-types/websocket-message.ts similarity index 100% rename from src/app/message.types/websocket.message.ts rename to src/app/message-types/websocket-message.ts diff --git a/src/app/messages/messages.component.ts b/src/app/messages/messages.component.ts index 55e1813..bf971bf 100644 --- a/src/app/messages/messages.component.ts +++ b/src/app/messages/messages.component.ts @@ -5,10 +5,10 @@ import { ChangeDetectorRef, Component, OnInit } from '@angular/core'; import { MarkdownService } from '../services/markdown.service'; import { WebSocketService } from '../services/websocket.service'; -import { MessagesMessage } from '../message.types/messages.message'; -import { MessagesControlCommand } from '../message.types/messages.control.command'; +import { MessagesMessage } from '../message-types/messages-message'; +import { MessagesControlCommand } from '../message-types/messages-control-command'; import { config } from '../config'; -import { CommandMessage } from '../message.types/command.message'; +import { CommandMessage } from '../message-types/command-message'; @Component({ selector: 'app-messages', diff --git a/src/app/services/fsmupdate.service.ts b/src/app/services/fsmupdate.service.ts index 0df04ff..b05d503 100644 --- a/src/app/services/fsmupdate.service.ts +++ b/src/app/services/fsmupdate.service.ts @@ -4,7 +4,7 @@ import { Injectable } from '@angular/core'; import { WebSocketService } from './websocket.service'; -import { FSMUpdate } from '../message.types/fsm.update'; +import { FSMUpdate } from '../message-types/fsm-update'; @Injectable() export class FSMUpdateService { diff --git a/src/app/services/processlog.service.ts b/src/app/services/processlog.service.ts index c38775e..afb7f53 100644 --- a/src/app/services/processlog.service.ts +++ b/src/app/services/processlog.service.ts @@ -3,11 +3,11 @@ import { Injectable } from '@angular/core'; import { WebSocketService } from './websocket.service'; -import { ProcessLogCommand } from '../message.types/process.log.command'; +import { ProcessLogCommand } from '../message-types/process-log-command'; import { config } from '../config'; import { BehaviorSubject } from 'rxjs/BehaviorSubject'; -import { LogMessage } from '../message.types/log.message'; -import { CommandMessage } from '../message.types/command.message'; +import { LogMessage } from '../message-types/log-message'; +import { CommandMessage } from '../message-types/command-message'; @Injectable() export class ProcessLogService { diff --git a/src/app/services/processmanager.service.ts b/src/app/services/processmanager.service.ts index 70cefbf..67c2cea 100644 --- a/src/app/services/processmanager.service.ts +++ b/src/app/services/processmanager.service.ts @@ -4,9 +4,9 @@ import { Injectable } from '@angular/core'; import { WebSocketService } from './websocket.service'; -import { ProcessCommand } from '../message.types/process.command'; +import { ProcessCommand } from '../message-types/process-command'; import { filter } from 'rxjs/operators'; -import { WebSocketMessage } from '../message.types/websocket.message'; +import { WebSocketMessage } from '../message-types/websocket-message'; @Injectable() diff --git a/src/app/services/websocket.service.ts b/src/app/services/websocket.service.ts index 53b2365..e473d94 100644 --- a/src/app/services/websocket.service.ts +++ b/src/app/services/websocket.service.ts @@ -6,7 +6,7 @@ import { QueueingSubject } from './queueing-subject'; import { Observable } from 'rxjs'; import websocketConnect from 'rxjs-websockets'; import { filter, map, share } from 'rxjs/operators'; -import { WebSocketMessage } from '../message.types/websocket.message'; +import { WebSocketMessage } from '../message-types/websocket-message'; function jsonWebsocketConnect(url: string, input: Observable, protocols?: string | string[]) {