Skip to content

Commit

Permalink
Messages page improvements.
Browse files Browse the repository at this point in the history
  - Revamp on Messages page, introducing Tabs.
  Tabs title shows connection name and topic name.
  Fix #2
  - Minor messages controls fixes.
  • Loading branch information
Miguel Aranha Baldi Horlle committed Apr 19, 2024
1 parent 6d55208 commit ed56c0c
Show file tree
Hide file tree
Showing 7 changed files with 884 additions and 793 deletions.
9 changes: 4 additions & 5 deletions src/backend/kafka.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ use std::time::{Duration, Instant};
use tracing::{debug, info, trace, warn};

use crate::backend::repository::{KrustConnection, KrustHeader, KrustMessage, Partition};
use crate::component::messages::messages_page::{MessagesPageMsg, LIVE_MESSAGES_BROKER};
use crate::config::ExternalError;

use super::repository::{KrustConnectionSecurityType, KrustTopic, MessagesRepository};
Expand Down Expand Up @@ -271,7 +270,7 @@ impl KafkaBackend {
&self,
topic: &String,
total: usize,
) -> Result<Duration, ExternalError> {
) -> Result<Vec<KrustMessage>, ExternalError> {
let start_mark = Instant::now();
info!("starting listing messages for topic {}", topic);
let topic_name = topic.as_str();
Expand All @@ -284,7 +283,7 @@ impl KafkaBackend {
consumer
.subscribe(&[topic_name])
.expect("Can't subscribe to specified topics");

let mut messages: Vec<KrustMessage> = Vec::with_capacity(total);
while counter < total {
match consumer.recv().await {
Err(e) => warn!("Kafka error: {}", e),
Expand Down Expand Up @@ -323,7 +322,7 @@ impl KafkaBackend {
headers,
};

LIVE_MESSAGES_BROKER.send(MessagesPageMsg::UpdateMessage(message));
messages.push(message);
counter += 1;
}
};
Expand All @@ -333,6 +332,6 @@ impl KafkaBackend {
"finished listing messages for topic {}, duration: {:?}",
topic, duration
);
Ok(duration)
Ok(messages)
}
}
7 changes: 3 additions & 4 deletions src/backend/worker.rs
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ impl MessagesWorker {
_ = token.cancelled() => {
info!("request {:?} cancelled", &req);
// The token was cancelled
Ok(MessagesResponse { total: 0, messages: Vec::new(), topic: None, page_operation: req.page_operation, page_size: req.page_size})
Ok(MessagesResponse { total: 0, messages: Vec::new(), topic: Some(req.topic), page_operation: req.page_operation, page_size: req.page_size})
}
messages = self.get_messages_by_mode(&req) => {
messages
Expand Down Expand Up @@ -202,11 +202,10 @@ impl MessagesWorker {
let topic = &request.topic.name;
// Run async background task
let total = kafka.topic_message_count(topic).await;
let duration = kafka.list_messages_for_topic(topic, total).await?;
info!("get_messages_live {:?}", duration);
let messages = kafka.list_messages_for_topic(topic, total, ).await?;
Ok(MessagesResponse {
total,
messages: vec![],
messages: messages,
topic: Some(request.topic.clone()),
page_operation: request.page_operation,
page_size: request.page_size,
Expand Down
11 changes: 3 additions & 8 deletions src/component/app.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,7 @@ use tracing::{error, info, warn};
use crate::{
backend::repository::{KrustConnection, KrustTopic, Repository},
component::{
connection_list::KrustConnectionOutput,
connection_page::{ConnectionPageModel, ConnectionPageMsg, ConnectionPageOutput},
messages::messages_page::LIVE_MESSAGES_BROKER,
settings_page::{SettingsPageModel, SettingsPageMsg, SettingsPageOutput},
status_bar::{StatusBarModel, STATUS_BROKER},
topics_page::{TopicsPageModel, TopicsPageMsg, TopicsPageOutput},
connection_list::KrustConnectionOutput, connection_page::{ConnectionPageModel, ConnectionPageMsg, ConnectionPageOutput}, settings_page::{SettingsPageModel, SettingsPageMsg, SettingsPageOutput}, status_bar::{StatusBarModel, STATUS_BROKER}, topics_page::{TopicsPageModel, TopicsPageMsg, TopicsPageOutput}
},
config::State,
modals::about::AboutDialog,
Expand Down Expand Up @@ -149,7 +144,7 @@ impl Component for AppModel {
add_child = topics_page.widget() -> &gtk::Box {} -> {
set_name: "Topics"
},
add_child = messages_page.widget() -> &gtk::Paned {} -> {
add_child = messages_page.widget() -> &gtk::Box {} -> {
set_name: "Messages"
},
add_child = settings_page.widget() -> &gtk::Grid {} -> {
Expand Down Expand Up @@ -209,7 +204,7 @@ impl Component for AppModel {
});

let messages_page: Controller<MessagesPageModel> = MessagesPageModel::builder()
.launch_with_broker((), &LIVE_MESSAGES_BROKER)
.launch(())
.detach();

let settings_page: Controller<SettingsPageModel> = SettingsPageModel::builder()
Expand Down
Loading

0 comments on commit ed56c0c

Please sign in to comment.