mirror of
https://github.com/YGGverse/Yoda.git
synced 2025-01-15 17:20:08 +00:00
add identity page for CertificateRequest status code
This commit is contained in:
parent
611addda42
commit
63f7f1c769
@ -848,6 +848,24 @@ impl Page {
|
|||||||
|
|
||||||
update.activate(Some(&id));
|
update.activate(Some(&id));
|
||||||
},
|
},
|
||||||
|
// https://geminiprotocol.net/docs/protocol-specification.gmi#status-60
|
||||||
|
gemini::client::response::meta::Status::CertificateRequest => {
|
||||||
|
// Define common data
|
||||||
|
let status = Status::Success;
|
||||||
|
let title = "Identity";
|
||||||
|
|
||||||
|
// Update widget
|
||||||
|
content
|
||||||
|
.to_status_identity()
|
||||||
|
.set_title(title);
|
||||||
|
|
||||||
|
// Update meta
|
||||||
|
meta.set_status(status)
|
||||||
|
.set_title(title);
|
||||||
|
|
||||||
|
// Update window
|
||||||
|
update.activate(Some(&id));
|
||||||
|
}
|
||||||
_ => {
|
_ => {
|
||||||
// Define common data
|
// Define common data
|
||||||
let status = Status::Failure;
|
let status = Status::Failure;
|
||||||
|
@ -55,6 +55,16 @@ impl Content {
|
|||||||
status
|
status
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Set new `content::Status` component for `Self` with new `status::Identity` preset
|
||||||
|
///
|
||||||
|
/// * action removes previous children component from `Self`
|
||||||
|
pub fn to_status_identity(&self) -> Status {
|
||||||
|
self.clean();
|
||||||
|
let status = Status::new_identity();
|
||||||
|
self.gobject.append(status.gobject());
|
||||||
|
status
|
||||||
|
}
|
||||||
|
|
||||||
/// Set new `content::Status` component for `Self` with new `status::Loading` preset
|
/// Set new `content::Status` component for `Self` with new `status::Loading` preset
|
||||||
///
|
///
|
||||||
/// * action removes previous children component from `Self`
|
/// * action removes previous children component from `Self`
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
mod failure;
|
mod failure;
|
||||||
|
mod identity;
|
||||||
mod loading;
|
mod loading;
|
||||||
|
|
||||||
use adw::StatusPage;
|
use adw::StatusPage;
|
||||||
@ -20,6 +21,16 @@ impl Status {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Create new identity preset
|
||||||
|
///
|
||||||
|
/// Useful as placeholder for 60 status code
|
||||||
|
/// https://geminiprotocol.net/docs/protocol-specification.gmi#status-60
|
||||||
|
pub fn new_identity() -> Self {
|
||||||
|
Self {
|
||||||
|
gobject: identity::new_gobject(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Create new loading preset
|
/// Create new loading preset
|
||||||
///
|
///
|
||||||
/// Useful as placeholder widget for async operations
|
/// Useful as placeholder widget for async operations
|
||||||
|
@ -0,0 +1,29 @@
|
|||||||
|
use adw::StatusPage;
|
||||||
|
use gtk::{prelude::ButtonExt, Align, Button};
|
||||||
|
|
||||||
|
// Defaults
|
||||||
|
const DEFAULT_ICON_NAME: &str = "avatar-default-symbolic";
|
||||||
|
const DEFAULT_TITLE: &str = "Identity";
|
||||||
|
const DEFAULT_DESCRIPTION: &str = "Client certificate required to continue!";
|
||||||
|
const DEFAULT_BUTTON_LABEL: &str = "Select";
|
||||||
|
|
||||||
|
/// Create new default preset for `Identity`
|
||||||
|
/// [StatusPage](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.StatusPage.html)
|
||||||
|
pub fn new_gobject() -> StatusPage {
|
||||||
|
// Init certificate selection
|
||||||
|
let button = &Button::builder()
|
||||||
|
.label(DEFAULT_BUTTON_LABEL)
|
||||||
|
.halign(Align::Center)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
// Init events
|
||||||
|
button.connect_activate(|_| {}); // @TODO
|
||||||
|
|
||||||
|
// Init status page
|
||||||
|
StatusPage::builder()
|
||||||
|
.description(DEFAULT_DESCRIPTION)
|
||||||
|
.icon_name(DEFAULT_ICON_NAME)
|
||||||
|
.title(DEFAULT_TITLE)
|
||||||
|
.child(button)
|
||||||
|
.build()
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user