Skip to content

Commit

Permalink
update footer display
Browse files Browse the repository at this point in the history
  • Loading branch information
pythops committed Oct 10, 2024
1 parent cb70046 commit 29b0632
Show file tree
Hide file tree
Showing 4 changed files with 133 additions and 163 deletions.
1 change: 1 addition & 0 deletions oryx-tui/src/app.rs
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,7 @@ impl App {
frame,
section_block,
&self.filter.interface.selected_interface.name,
self.active_popup.as_ref(),
);

self.filter.render_on_sniffing(frame, settings_block);
Expand Down
73 changes: 13 additions & 60 deletions oryx-tui/src/filter.rs
Original file line number Diff line number Diff line change
Expand Up @@ -652,27 +652,25 @@ impl Filter {
let help = Text::from(vec![
Line::from(""),
Line::from(vec![
Span::from("k,").bold(),
Span::from(": Scroll up").bold(),
Span::from("k,").bold(),
Span::from(" Up").bold(),
Span::from(" | ").bold(),
Span::from("j,⬇").bold(),
Span::from(": Scroll down").bold(),
Span::from("j,").bold(),
Span::from(" Down").bold(),
Span::from(" | ").bold(),
Span::from("󱁐 ").bold(),
Span::from(" Toggle Select").bold(),
Span::from(" | ").bold(),
Span::from("󱞦 ").bold(),
Span::from(": Apply").bold(),
Span::from(" Apply").bold(),
Span::from(" | ").bold(),
Span::from(" ").bold(),
Span::from(": Naviguate").bold(),
Span::from(" Nav").bold(),
]),
])
.blue()
.centered();
frame.render_widget(
Block::new()
.borders(Borders::ALL)
.blue()
.border_type(BorderType::Rounded),
help_block,
);

frame.render_widget(
help,
help_block.inner(Margin {
Expand Down Expand Up @@ -810,16 +808,6 @@ impl Filter {
.flex(ratatui::layout::Flex::SpaceBetween)
.split(layout[1])[1];

let (filters_block, help_block) = {
let chunks = Layout::default()
.direction(Direction::Vertical)
.constraints([Constraint::Fill(1), Constraint::Length(3)])
.flex(ratatui::layout::Flex::SpaceBetween)
.split(block);

(chunks[0], chunks[1])
};

let (
transport_filter_block,
network_filter_block,
Expand All @@ -839,7 +827,7 @@ impl Filter {
])
.margin(1)
.flex(Flex::SpaceBetween)
.split(filters_block);
.split(block);
(chunks[1], chunks[2], chunks[3], chunks[4], chunks[5])
};

Expand All @@ -850,7 +838,7 @@ impl Filter {
.borders(Borders::all())
.border_type(BorderType::Thick)
.border_style(Style::default().green()),
filters_block,
block,
);

self.network.render(
Expand Down Expand Up @@ -888,40 +876,5 @@ impl Filter {
.centered()
.build();
frame.render_widget(apply, apply_block);

let help = Text::from(vec![
Line::from(""),
Line::from(vec![
Span::from("k,⬆").bold(),
Span::from(": Move up").bold(),
Span::from(" | ").bold(),
Span::from("j,⬇").bold(),
Span::from(": Move down").bold(),
Span::from(" | ").bold(),
Span::from("󱊷 ").bold(),
Span::from(": Discard").bold(),
Span::from(" | ").bold(),
Span::from("󱞦 ").bold(),
Span::from(": Apply").bold(),
Span::from(" | ").bold(),
Span::from(" ").bold(),
Span::from(": Naviguate").bold(),
]),
])
.centered();
frame.render_widget(
Block::new()
.borders(Borders::ALL)
.blue()
.border_type(BorderType::Rounded),
help_block,
);
frame.render_widget(
help,
help_block.inner(Margin {
horizontal: 1,
vertical: 0,
}),
);
}
}
173 changes: 115 additions & 58 deletions oryx-tui/src/section.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,11 @@ use ratatui::{
};
use stats::Stats;

use crate::{app::AppResult, event::Event, packet::AppPacket};
use crate::{
app::{ActivePopup, AppResult},
event::Event,
packet::AppPacket,
};

#[derive(Debug, PartialEq)]
pub enum FocusedSection {
Expand Down Expand Up @@ -89,63 +93,110 @@ impl Section {
}
}

fn render_footer_help(&self, frame: &mut Frame, block: Rect) {
let message = match self.focused_section {
FocusedSection::Inspection => Line::from(vec![
Span::from("k,⬆").bold(),
Span::from(": Move up").bold(),
Span::from(" | ").bold(),
Span::from("j,⬇").bold(),
Span::from(": Move down").bold(),
Span::from(" | ").bold(),
Span::from("/").bold(),
Span::from(": Search").bold(),
Span::from(" | ").bold(),
Span::from("i").bold(),
Span::from(": Infos").bold(),
Span::from(" | ").bold(),
Span::from("f").bold(),
Span::from(": Filters").bold(),
Span::from(" | ").bold(),
Span::from(" ").bold(),
Span::from(": Naviguate").bold(),
]),
FocusedSection::Firewall => Line::from(vec![
Span::from("k,⬆").bold(),
Span::from(": Move up").bold(),
Span::from(" | ").bold(),
Span::from("j,⬇").bold(),
Span::from(": Move down").bold(),
Span::from(" | ").bold(),
Span::from("n").bold(),
Span::from(": New Rule").bold(),
Span::from(" | ").bold(),
Span::from("d").bold(),
Span::from(": Delete Rule").bold(),
Span::from(" | ").bold(),
Span::from("f").bold(),
Span::from(": Filters").bold(),
Span::from(" | ").bold(),
Span::from(" ").bold(),
Span::from(": Naviguate").bold(),
]),
_ => Line::from(vec![
Span::from("f").bold(),
Span::from(": Filters").bold(),
Span::from(" | ").bold(),
Span::from(" ").bold(),
Span::from(": Naviguate").bold(),
]),
fn render_footer_help(
&self,
frame: &mut Frame,
block: Rect,
active_popup: Option<&ActivePopup>,
) {
let message = {
match active_popup {
Some(ActivePopup::UpdateFilters) => Line::from(vec![
Span::from("k,").bold(),
Span::from(" Up").bold(),
Span::from(" | ").bold(),
Span::from("j,").bold(),
Span::from(" Down").bold(),
Span::from(" | ").bold(),
Span::from("󱁐 ").bold(),
Span::from(" Toggle Select").bold(),
Span::from(" | ").bold(),
Span::from("󱊷 ").bold(),
Span::from(": Discard").bold(),
Span::from(" | ").bold(),
Span::from("󱞦 ").bold(),
Span::from(" Apply").bold(),
Span::from(" | ").bold(),
Span::from(" ").bold(),
Span::from(" Nav").bold(),
]),
Some(ActivePopup::NewFirewallRule) => Line::from(vec![
Span::from("j,k,,").bold(),
Span::from(": Toggle Direction").bold(),
Span::from(" | ").bold(),
Span::from("󱊷 ").bold(),
Span::from(": Discard").bold(),
Span::from(" | ").bold(),
Span::from("󱞦 ").bold(),
Span::from(": Save").bold(),
Span::from(" | ").bold(),
Span::from(" ").bold(),
Span::from(": Naviguate").bold(),
]),
Some(ActivePopup::PacketInfos) | Some(ActivePopup::Help) => Line::from(vec![
Span::from("󱊷 ").bold(),
Span::from(": Discard Popup").bold(),
]),
_ => match self.focused_section {
FocusedSection::Inspection => Line::from(vec![
Span::from("k,").bold(),
Span::from(" Up").bold(),
Span::from(" | ").bold(),
Span::from("j,").bold(),
Span::from(" Down").bold(),
Span::from(" | ").bold(),
Span::from("/").bold(),
Span::from(" Search").bold(),
Span::from(" | ").bold(),
Span::from("i").bold(),
Span::from(" Infos").bold(),
Span::from(" | ").bold(),
Span::from("f").bold(),
Span::from(" Filters").bold(),
Span::from(" | ").bold(),
Span::from("󱊷 ").bold(),
Span::from(": Discard").bold(),
Span::from(" | ").bold(),
Span::from(" ").bold(),
Span::from(" Nav").bold(),
]),
FocusedSection::Firewall => Line::from(vec![
Span::from("k,").bold(),
Span::from(" Up").bold(),
Span::from(" | ").bold(),
Span::from("j,").bold(),
Span::from(" Down").bold(),
Span::from(" | ").bold(),
Span::from("n").bold(),
Span::from(" New").bold(),
Span::from(" | ").bold(),
Span::from("d").bold(),
Span::from(" Delete").bold(),
Span::from(" | ").bold(),
Span::from("e").bold(),
Span::from(" Edit").bold(),
Span::from(" | ").bold(),
Span::from("󱁐 ").bold(),
Span::from(" Toggle").bold(),
Span::from(" | ").bold(),
Span::from("f").bold(),
Span::from(" Filters").bold(),
Span::from(" | ").bold(),
Span::from(" ").bold(),
Span::from(" Nav").bold(),
]),
_ => Line::from(vec![
Span::from("f").bold(),
Span::from(" Filters").bold(),
Span::from(" | ").bold(),
Span::from(" ").bold(),
Span::from(" Nav").bold(),
]),
},
}
};

let help = Text::from(vec![Line::from(""), message]).centered();
frame.render_widget(
Block::new()
.borders(Borders::ALL)
.blue()
.border_type(BorderType::Rounded),
block,
);
let help = Text::from(vec![Line::from(""), message]).blue().centered();
frame.render_widget(
help,
block.inner(Margin {
Expand Down Expand Up @@ -175,7 +226,13 @@ impl Section {
block,
);
}
pub fn render(&mut self, frame: &mut Frame, block: Rect, network_interace: &str) {
pub fn render(
&mut self,
frame: &mut Frame,
block: Rect,
network_interace: &str,
active_popup: Option<&ActivePopup>,
) {
let (section_block, help_block) = {
let chunks = Layout::default()
.direction(Direction::Vertical)
Expand All @@ -187,7 +244,7 @@ impl Section {
};

self.render_header(frame, section_block);
self.render_footer_help(frame, help_block);
self.render_footer_help(frame, help_block, active_popup);

match self.focused_section {
FocusedSection::Inspection => self.inspection.render(frame, section_block),
Expand Down
Loading

0 comments on commit 29b0632

Please sign in to comment.