@@ -26,7 +26,7 @@ use crate::{
2626 } ,
2727 cscs:: {
2828 handlers:: { cscs_login, cscs_system_set} ,
29- ports:: TreeAction ,
29+ ports:: { JobLogAction , TreeAction } ,
3030 } ,
3131 trace_dbg,
3232 util:: ui:: { draw_area_in_absolute, draw_area_in_absolute_fixed_height} ,
5656
5757 /// Triggers watching job logs
5858 /// sending None stops watching
59- pub job_log_tx : mpsc:: Sender < Option < usize > > ,
59+ pub job_log_tx : mpsc:: Sender < JobLogAction > ,
6060
6161 /// Allows creating user events based on messages
6262 pub user_event_tx : mpsc:: Sender < UserEvent > ,
7474 bridge : TerminalBridge < T > ,
7575 error_tx : mpsc:: Sender < String > ,
7676 select_system_tx : mpsc:: Sender < ( ) > ,
77- job_log_tx : mpsc:: Sender < Option < usize > > ,
77+ job_log_tx : mpsc:: Sender < JobLogAction > ,
7878 user_event_tx : mpsc:: Sender < UserEvent > ,
7979 file_tree_tx : mpsc:: Sender < TreeAction > ,
8080 ) -> Self {
@@ -305,7 +305,7 @@ where
305305 }
306306 fn handle_job_msg ( & mut self , msg : JobMsg ) -> Option < Msg > {
307307 match msg {
308- JobMsg :: ShowLog ( jobid) => {
308+ JobMsg :: Show ( jobid) => {
309309 if self . app . mounted ( & Id :: WorkloadList ) {
310310 assert ! ( self . app. umount( & Id :: WorkloadList ) . is_ok( ) ) ;
311311 }
@@ -319,11 +319,18 @@ where
319319 assert ! ( self . app. active( & Id :: WorkloadLogs ) . is_ok( ) ) ;
320320 let job_log_tx = self . job_log_tx . clone ( ) ;
321321 tokio:: spawn ( async move {
322- job_log_tx. send ( Some ( jobid) ) . await . unwrap ( ) ;
322+ job_log_tx. send ( JobLogAction :: Job ( jobid) ) . await . unwrap ( ) ;
323323 } ) ;
324324 None
325325 }
326- JobMsg :: CloseLog => {
326+ JobMsg :: Switch => {
327+ let job_log_tx = self . job_log_tx . clone ( ) ;
328+ tokio:: spawn ( async move {
329+ job_log_tx. send ( JobLogAction :: SwitchLog ) . await . unwrap ( ) ;
330+ } ) ;
331+ None
332+ }
333+ JobMsg :: Close => {
327334 if self . app . mounted ( & Id :: WorkloadLogs ) {
328335 assert ! ( self . app. umount( & Id :: WorkloadLogs ) . is_ok( ) ) ;
329336 }
@@ -338,7 +345,7 @@ where
338345 let job_log_tx = self . job_log_tx . clone ( ) ;
339346 tokio:: spawn ( async move {
340347 // stopp polling for logs
341- job_log_tx. send ( None ) . await . unwrap ( ) ;
348+ job_log_tx. send ( JobLogAction :: Stop ) . await . unwrap ( ) ;
342349 } ) ;
343350 None
344351 }
0 commit comments