ui: fix stratum section at mining screen, optimize copy/paste buttons for tokens, update translations

This commit is contained in:
ardocrat 2023-07-15 21:13:37 +03:00
parent afdcc4dcb9
commit e951fbab73
6 changed files with 116 additions and 91 deletions

View file

@ -71,48 +71,50 @@ network_mining:
disconnected: Disconnected
network_settings:
change_value: Change value
stratum_ip: Stratum IP Address
stratum_port: Stratum port
stratum_ip: 'Stratum IP Address:'
stratum_port: 'Stratum port:'
port_unavailable: Specified port is unavailable
restart_node_required: Node restart is required to apply changes.
enable: Enable
disable: Disable
restart: Restart
server: Server
api_ip: API IP Address
api_port: API Port
api_secret: Rest API and V2 Owner API token
foreign_api_secret: Foreign API token
api_ip: 'API IP Address:'
api_port: 'API Port:'
api_secret: 'Rest API and V2 Owner API token:'
foreign_api_secret: 'Foreign API token:'
disabled: Disabled
enabled: Enabled
ftl: The Future Time Limit (FTL)
ftl: 'The Future Time Limit (FTL):'
ftl_description: Limit on how far into the future, relative to a node's local time in seconds, the timestamp on a new block can be, in order for the block to be accepted.
not_valid_value: Entered value is not valid
full_validation: Full validation
full_validation_description: Whether to run a full chain validation when processing each block (except during synchronization).
archive_mode: Archive mode
archive_mode_desc: Run the node in full archive mode (more disk space and time will be required for synchronization).
attempt_time: Attempt time
attempt_time_desc: The amount of time in seconds to attempt to mine on a particular header before stopping and re-collecting transactions from the pool
min_share_diff: The minimum acceptable share difficulty
attempt_time: 'Mining attempt time (in seconds):'
attempt_time_desc: The amount of time to attempt to mine on a particular header before stopping and re-collecting transactions from the pool
min_share_diff: 'The minimum acceptable share difficulty:'
reset_settings_desc: Reset node settings to default values
reset_settings: Reset settings
reset: Reset
tx_pool: Transaction pool
pool_fee: Base fee that's accepted into the pool
reorg_period: Reorg cache retention period (in minutes)
max_tx_pool: Maximum number of transactions in the pool
max_tx_stempool: Maximum number of transactions in the stem-pool
max_tx_weight: Maximum total weight of transactions that can get selected to build a block
epoch_duration: Epoch duration (in seconds)
embargo_timer: Embargo timer (in seconds)
aggregation_period: Aggregation period (in seconds)
stem_probability: Stem phase probability
pool_fee: 'Base fee that is accepted into the pool:'
reorg_period: 'Reorg cache retention period (in minutes):'
max_tx_pool: 'Maximum number of transactions in the pool:'
max_tx_stempool: 'Maximum number of transactions in the stem-pool:'
max_tx_weight: 'Maximum total weight of transactions that can get selected to build a block:'
epoch_duration: 'Epoch duration (in seconds):'
embargo_timer: 'Embargo timer (in seconds):'
aggregation_period: 'Aggregation period (in seconds):'
stem_probability: 'Stem phase probability:'
stem_txs: Stem transactions
p2p_server: P2P server
p2p_port: P2P port
p2p_port: 'P2P port:'
add_seed: Add DNS Seed
seed_address: 'DNS Seed address:'
add_peer: Add peer
peer_address: 'Peer address:'
peer_address_error: 'Enter IP address or DNS name (make sure specified host is available) in correct format, e.g.: 192.168.0.1:1234 or example.com:5678'
default: Default
allow_list: Allow list
@ -121,11 +123,11 @@ network_settings:
deny_list_desc: Never connect to peers in this list.
favourites: Favourites
favourites_desc: A list of preferred peers to connect to.
ban_window: How long a banned peer should stay banned (in seconds)
ban_window: 'How much time (in seconds) a banned peer should stay banned:'
ban_window_desc: The decision to ban is made by node, based on the correctness of the data received from the peer.
max_inbound_count: Maximum number of inbound peer connections
max_outbound_count: Maximum number of outbound peer connections
min_outbound_count: Minimum number of outbound peer connections
max_inbound_count: 'Maximum number of inbound peer connections:'
max_outbound_count: 'Maximum number of outbound peer connections:'
min_outbound_count: 'Minimum number of outbound peer connections:'
min_outbound_desc: Node server will actively keep trying to add peers until it will get to at least this number.
modal:
cancel: Cancel

View file

@ -71,48 +71,50 @@ network_mining:
disconnected: Отключен
network_settings:
change_value: Изменить значение
stratum_ip: Stratum IP Адрес
stratum_port: Порт Stratum
stratum_ip: 'Stratum IP Адрес:'
stratum_port: 'Порт Stratum:'
port_unavailable: Указанный порт недоступен
restart_node_required: Для применения изменений требуется перезапуск узла.
enable: Включить
disable: Выключить
restart: Перезапуск
server: Сервер
api_ip: API IP Адрес
api_port: API Порт
api_secret: Rest и V2 Owner API токен
foreign_api_secret: Foreign API токен
api_ip: 'API IP Адрес:'
api_port: 'API Порт:'
api_secret: 'Rest и V2 Owner API токен:'
foreign_api_secret: 'Foreign API токен:'
disabled: Отключен
enabled: Включен
ftl: Предел Будущего Времени (FTL)
ftl: 'Предел Будущего Времени (FTL):'
ftl_description: Насколько далеко в будущем, относительно локального времени узла в секундах, может находиться временная метка на новом блоке для его принятия.
not_valid_value: Введено недопустимое значение
full_validation: Полная валидация
full_validation_description: Запускать ли полную проверку цепи при обработке каждого блока (за исключением синхронизации).
archive_mode: Архивный режим
archive_mode_desc: Запустить узел в режиме полного архива (потребуется больше места и времени для синхронизации).
attempt_time: Время попытки
attempt_time_desc: Количество времени в секундах для попытки майнинга на определённом заголовке перед остановкой и повторным сбором транзакций из пула
min_share_diff: Минимальная допустимая сложность шары
attempt_time: 'Время попытки майнинга (в секундах):'
attempt_time_desc: Количество времени для попытки майнинга на определённом заголовке перед остановкой и повторным сбором транзакций из пула
min_share_diff: 'Минимальная допустимая сложность шары:'
reset_settings_desc: Сбросить настройки узла до стандартных значений
reset_settings: Сброс настроек
reset: Сбросить
tx_pool: Пул транзакций
pool_fee: Базовая комиссия, принимаемая в пул
reorg_period: Срок хранения кэша реорганизации (в минутах)
max_tx_pool: Максимальное количество транзакций в пуле
max_tx_stempool: Максимальное количество транзакций в stem-пуле
max_tx_weight: Максимальный общий вес транзакций, которые могут быть выбраны для построения блока
epoch_duration: Длительность эпохи (в секундах)
embargo_timer: Таймер эмбарго (в секундах)
aggregation_period: Период агрегации (в секундах)
stem_probability: Вероятность фазы Stem
pool_fee: 'Базовая комиссия, принимаемая в пул:'
reorg_period: 'Срок хранения кэша реорганизации (в минутах):'
max_tx_pool: 'Максимальное количество транзакций в пуле:'
max_tx_stempool: 'Максимальное количество транзакций в stem-пуле:'
max_tx_weight: 'Максимальный общий вес транзакций, которые могут быть выбраны для построения блока:'
epoch_duration: 'Длительность эпохи (в секундах):'
embargo_timer: 'Таймер эмбарго (в секундах):'
aggregation_period: 'Период агрегации (в секундах):'
stem_probability: 'Вероятность фазы Stem:'
stem_txs: Stem транзакций
p2p_server: P2P сервер
p2p_port: P2P порт
p2p_port: 'P2P порт:'
add_seed: Добавить DNS Seed
seed_address: 'Адрес DNS Seed:'
add_peer: Добавить пир
peer_address: 'Адрес пира:'
peer_address_error: 'Введите IP адрес или DNS имя (убедитесь, что указанный хост доступен) в правильном формате, например: 192.168.0.1:1234 или example.com:5678'
default: По умолчанию
allow_list: Белый список
@ -121,11 +123,11 @@ network_settings:
deny_list_desc: Никогда не подключаться к пирам в данном списке.
favourites: Избранное
favourites_desc: Список предпочтительных пиров для подключения.
ban_window: Как долго забаненый пир должен оставаться забаненым (в секундах)
ban_window_desc: Решение о запрете принимается нодой, основываясь на корректности данных полученных от пира.
max_inbound_count: Максимальное количество входящих подключений пиров
max_outbound_count: Максимальное количество исходящих подключений к пирам
min_outbound_count: Минимальное количество исходящих подключений к пирам
ban_window: 'Сколько времени (в секундах) забаненый пир должен оставаться забаненым:'
ban_window_desc: Решение о запрете принимается узлом, основываясь на корректности данных полученных от пира.
max_inbound_count: 'Максимальное количество входящих подключений пиров:'
max_outbound_count: 'Максимальное количество исходящих подключений к пирам:'
min_outbound_count: 'Минимальное количество исходящих подключений к пирам:'
min_outbound_desc: Сервер узла будет активно пытаться добавить пиры, пока не дойдёт хотя бы до этого числа.
modal:
cancel: Отмена

View file

@ -203,6 +203,12 @@ impl NetworkTab for NetworkMining {
StratumSetup::STRATUM_PORT_MODAL => {
self.stratum_server_setup.port_modal(ui, modal, cb);
},
StratumSetup::ATTEMPT_TIME_MODAL => {
self.stratum_server_setup.attempt_modal(ui, modal, cb);
},
StratumSetup::MIN_SHARE_DIFF_MODAL => {
self.stratum_server_setup.min_diff_modal(ui, modal, cb);
},
_ => {}
}
}

View file

@ -15,6 +15,7 @@
use eframe::emath::Align;
use egui::{Id, Layout, RichText, TextStyle, Ui, Widget};
use egui::os::OperatingSystem;
use egui_extras::{Size, StripBuilder};
use grin_core::global::ChainTypes;
use crate::AppConfig;
@ -357,48 +358,58 @@ impl NodeSetup {
.color(Colors::GRAY));
ui.add_space(6.0);
StripBuilder::new(ui)
.size(Size::exact(42.0))
.vertical(|mut strip| {
strip.strip(|builder| {
builder
.size(Size::remainder())
.size(Size::exact(48.0))
.size(Size::exact(48.0))
.horizontal(|mut strip| {
strip.cell(|ui| {
// Draw API port text edit.
let text_edit_resp = egui::TextEdit::singleline(&mut self.secret_edit)
let edit = egui::TextEdit::singleline(&mut self.secret_edit)
.id(Id::from(modal.id))
.font(TextStyle::Heading)
.cursor_at_end(true)
.ui(ui);
text_edit_resp.request_focus();
if text_edit_resp.clicked() {
edit.request_focus();
if edit.clicked() {
cb.show_keyboard();
}
// Show buttons to copy/paste text for Android.
if OperatingSystem::from_target_os() == OperatingSystem::Android {
ui.add_space(12.0);
ui.scope(|ui| {
// Setup spacing between buttons.
ui.spacing_mut().item_spacing = egui::Vec2::new(12.0, 0.0);
let mut buttons_rect = ui.available_rect_before_wrap();
buttons_rect.set_height(42.0);
ui.allocate_ui_at_rect(buttons_rect, |ui| {
ui.columns(2, |columns| {
columns[0].with_layout(Layout::right_to_left(Align::Center), |ui| {
View::button(ui, COPY.to_string(), Colors::WHITE, || {
});
strip.cell(|ui| {
ui.vertical_centered(|ui| {
// Draw API port text edit.
let copy_icon = COPY.to_string();
View::button(ui, copy_icon, Colors::WHITE, || {
cb.copy_string_to_buffer(self.secret_edit.clone());
});
});
columns[1].with_layout(Layout::left_to_right(Align::Center), |ui| {
View::button(ui, CLIPBOARD_TEXT.to_string(), Colors::WHITE, || {
});
strip.cell(|ui| {
ui.vertical_centered(|ui| {
// Draw paste button.
let paste_icon = CLIPBOARD_TEXT.to_string();
View::button(ui, paste_icon, Colors::WHITE, || {
self.secret_edit = cb.get_string_from_buffer();
});
});
});
});
})
});
}
// Show reminder to restart enabled node.
NetworkSettings::node_restart_required_ui(ui);
ui.add_space(12.0);
if Node::is_running() {
ui.label(RichText::new(t!("network_settings.restart_node_required"))
.size(16.0)
.color(Colors::GREEN)
);
ui.add_space(8.0);
}
ui.add_space(4.0);
});
// Show modal buttons.

View file

@ -386,8 +386,8 @@ impl P2PSetup {
ui.add_space(6.0);
ui.vertical_centered(|ui| {
let label_text = match modal.id {
Self::CUSTOM_SEED_MODAL => t!("network_settings.add_seed"),
&_ => t!("network_settings.add_peer")
Self::CUSTOM_SEED_MODAL => t!("network_settings.seed_address"),
&_ => t!("network_settings.peer_address")
};
ui.label(RichText::new(label_text).size(17.0).color(Colors::GRAY));
ui.add_space(8.0);
@ -832,7 +832,6 @@ impl P2PSetup {
.size(16.0)
.color(Colors::INACTIVE_TEXT)
);
ui.add_space(2.0);
}
/// Draw minimum number of outbound peers [`Modal`] content.

View file

@ -258,7 +258,7 @@ impl StratumSetup {
/// Draw attempt time value setup content.
fn attempt_time_ui(&mut self, ui: &mut Ui, cb: &dyn PlatformCallbacks) {
ui.label(RichText::new(t!("network_settings.attempt_time_desc"))
ui.label(RichText::new(t!("network_settings.attempt_time"))
.size(16.0)
.color(Colors::GRAY)
);
@ -276,7 +276,12 @@ impl StratumSetup {
Modal::show(time_modal);
cb.show_keyboard();
});
ui.add_space(12.0);
ui.add_space(6.0);
ui.label(RichText::new(t!("network_settings.attempt_time_desc"))
.size(16.0)
.color(Colors::INACTIVE_TEXT)
);
ui.add_space(6.0);
}
/// Draw attempt time [`Modal`] content.