mirror of
https://github.com/fabioformosa/quartz-manager.git
synced 2026-05-14 22:00:30 +09:00
#103 appended the trigger key to the websocket topic
This commit is contained in:
@@ -2,10 +2,12 @@ import {Component, OnInit, Input, Output, EventEmitter, OnDestroy} from '@angula
|
||||
|
||||
import {LogsWebsocketService, ApiService, getBaseUrl, CONTEXT_PATH, QuartzManagerWebsocketMessage} from '../../services';
|
||||
import {Observable} from 'rxjs';
|
||||
import {RxStompService, } from '../../services/rx-stomp.service';
|
||||
import {RxStompService,} from '../../services/rx-stomp.service';
|
||||
import {RxStompConfig} from '@stomp/rx-stomp/esm6/rx-stomp-config';
|
||||
import {LogsRxWebsocketService} from '../../services/logs.rx-websocket.service';
|
||||
import {map} from 'rxjs/operators';
|
||||
import {Trigger} from '../../model/trigger.model';
|
||||
import {TriggerKey} from '../../model/triggerKey.model';
|
||||
|
||||
|
||||
@Component({
|
||||
@@ -21,6 +23,8 @@ export class LogsPanelComponent implements OnInit, OnDestroy {
|
||||
|
||||
topicSubscription;
|
||||
|
||||
private selectedTriggerKey: TriggerKey;
|
||||
|
||||
constructor(
|
||||
// private logsWebsocketService: LogsWebsocketService,
|
||||
private logsRxWebsocketService: LogsRxWebsocketService,
|
||||
@@ -28,6 +32,14 @@ export class LogsPanelComponent implements OnInit, OnDestroy {
|
||||
) {
|
||||
}
|
||||
|
||||
@Input()
|
||||
set triggerKey(triggerKey: TriggerKey) {
|
||||
this.selectedTriggerKey = {...triggerKey} as TriggerKey;
|
||||
if (this.selectedTriggerKey && this.selectedTriggerKey.name) {
|
||||
this._subscribeToTheTopic(this.selectedTriggerKey);
|
||||
}
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
// const obs = this.logsWebsocketService.getObservable()
|
||||
// obs.subscribe({
|
||||
@@ -37,17 +49,34 @@ export class LogsPanelComponent implements OnInit, OnDestroy {
|
||||
// }
|
||||
// });
|
||||
|
||||
this.topicSubscription = this.logsRxWebsocketService.watch('/topic/logs')
|
||||
// this.topicSubscription = this.logsRxWebsocketService.watch('/topic/logs')
|
||||
// .pipe(map(msg => JSON.parse(msg.body)))
|
||||
// .subscribe(this._showNewLog, (err) => {
|
||||
// console.log(err);
|
||||
// // TODO in case of 401
|
||||
// // this.apiService.get('/quartz-manager/session/refresh');
|
||||
// });
|
||||
}
|
||||
|
||||
private _subscribeToTheTopic = (triggerKey: TriggerKey) => {
|
||||
if (this.topicSubscription) {
|
||||
this.topicSubscription.unsubscribe();
|
||||
}
|
||||
this.topicSubscription = this.logsRxWebsocketService.watch(`/topic/logs/${triggerKey.name}`)
|
||||
.pipe(map(msg => JSON.parse(msg.body)))
|
||||
.subscribe(this._showNewLog, (err) => {
|
||||
console.log(err);
|
||||
// TODO in case of 401
|
||||
// this.apiService.get('/quartz-manager/session/refresh');
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
ngOnDestroy() {
|
||||
if (this.topicSubscription) {
|
||||
this.topicSubscription.unsubscribe();
|
||||
}
|
||||
this.topicSubscription.unsubscribe();
|
||||
this.topicSubscription = null;
|
||||
}
|
||||
|
||||
// onNewLogMsg = (receivedMsg) => {
|
||||
|
||||
@@ -73,8 +73,10 @@ export class SimpleTriggerConfigComponent implements OnInit {
|
||||
|
||||
@Input()
|
||||
set triggerKey(triggerKey: TriggerKey) {
|
||||
this.selectedTriggerKey = {...triggerKey} as TriggerKey;
|
||||
this.fetchSelectedTrigger();
|
||||
if (!this.selectedTriggerKey || this.selectedTriggerKey.name !== triggerKey.name){
|
||||
this.selectedTriggerKey = {...triggerKey} as TriggerKey;
|
||||
this.fetchSelectedTrigger();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -90,7 +90,7 @@ export class TriggerListComponent implements OnInit {
|
||||
|
||||
onNewTrigger(newTrigger: SimpleTrigger) {
|
||||
this.newTriggers = [newTrigger, ...this.newTriggers];
|
||||
this.selectedTrigger = newTrigger.triggerKeyDTO;
|
||||
this.selectTrigger(newTrigger.triggerKeyDTO);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -30,7 +30,10 @@
|
||||
<div fxFlex="1 1 auto" style="margin-left: 20px;">
|
||||
<div fxFlex="1 1 auto" fxLayout="column" fxLayoutAlign="start stretch" fxLayoutGap="6px">
|
||||
<progress-panel></progress-panel>
|
||||
<logs-panel fxFlex="1 1 auto" fxFill></logs-panel>
|
||||
<logs-panel fxFlex="1 1 auto" fxFill
|
||||
[triggerKey]=selectedTriggerKey
|
||||
>
|
||||
</logs-panel>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user