Skip to content

Commit a9f3aae

Browse files
committed
handle focus bettew between file and workload lists
1 parent ba363ca commit a9f3aae

5 files changed

Lines changed: 25 additions & 11 deletions

File tree

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coman/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "coman"
3-
version = "0.6.0"
3+
version = "0.7.0"
44
edition = "2024"
55
description = "Compute Manager for managing HPC compute"
66
authors = ["Ralf Grubenmann <ralf.grubenmann@sdsc.ethz.ch>"]

coman/src/app/model.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -410,6 +410,14 @@ where
410410
}
411411
fn change_view(&mut self, view: View) {
412412
self.current_view = view;
413+
match self.current_view {
414+
View::Workloads => {
415+
assert!(self.app.active(&Id::WorkloadList).is_ok());
416+
}
417+
View::Files => {
418+
assert!(self.app.active(&Id::FileView).is_ok());
419+
}
420+
}
413421
}
414422
}
415423

coman/src/components/workload_list.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use tuirealm::{
1111
use crate::{
1212
app::{
1313
messages::{JobMsg, Msg},
14-
user_events::{CscsEvent, UserEvent},
14+
user_events::{CscsEvent, JobEvent, UserEvent},
1515
},
1616
cscs::api_client::types::Job,
1717
};
@@ -81,7 +81,7 @@ impl Component<Msg, UserEvent> for WorkloadList {
8181
}
8282
self.perform(Cmd::Change)
8383
}
84-
Event::User(UserEvent::Job(crate::app::user_events::JobEvent::Cancel)) => {
84+
Event::User(UserEvent::Job(JobEvent::Cancel)) => {
8585
if let State::One(StateValue::Usize(index)) = self.state()
8686
&& !self.jobs.is_empty()
8787
{

coman/src/main.rs

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ use crate::{
1616
ids::Id,
1717
messages::{Msg, View},
1818
model::Model,
19-
user_events::{CscsEvent, FileEvent, StatusEvent, UserEvent},
19+
user_events::{CscsEvent, FileEvent, JobEvent, StatusEvent, UserEvent},
2020
},
2121
cli::{
2222
app::{
@@ -233,17 +233,23 @@ fn run_tui(tick_rate: f64) -> Result<()> {
233233
app.mount(
234234
Id::WorkloadList,
235235
Box::new(WorkloadList::default()),
236-
vec![Sub::new(
237-
SubEventClause::Any,
238-
SubClause::AndMany(vec![SubClause::IsMounted(Id::WorkloadList), popup_exclusion_clause()]),
239-
)],
236+
vec![
237+
Sub::new(
238+
SubEventClause::Discriminant(UserEvent::Cscs(CscsEvent::LoggedIn)),
239+
SubClause::Always,
240+
),
241+
Sub::new(
242+
SubEventClause::Discriminant(UserEvent::Job(JobEvent::Cancel)),
243+
SubClause::Always,
244+
),
245+
],
240246
)?;
241247
app.mount(
242248
Id::FileView,
243249
Box::new(FileTree::new(background_task_tx.clone())),
244250
vec![Sub::new(
245-
SubEventClause::Any,
246-
SubClause::AndMany(vec![SubClause::IsMounted(Id::FileView), popup_exclusion_clause()]),
251+
SubEventClause::Discriminant(UserEvent::File(FileEvent::DownloadCurrentFile)),
252+
SubClause::Always,
247253
)],
248254
)?;
249255
app.mount(

0 commit comments

Comments
 (0)