67 lines
2.5 KiB
Rust
67 lines
2.5 KiB
Rust
use crate::html::*;
|
|
use build_html::{self, Container, ContainerType, Html, HtmlContainer};
|
|
use file_service::{FileHandle, FileId, ReadFileError};
|
|
|
|
pub fn auth(_message: Option<String>) -> build_html::HtmlPage {
|
|
build_html::HtmlPage::new()
|
|
.with_title("Authentication")
|
|
.with_html(
|
|
Form::new()
|
|
.with_path("/auth")
|
|
.with_method("post")
|
|
.with_container(
|
|
Container::new(ContainerType::Div)
|
|
.with_html(Input::new("token", "token").with_id("for-token-input"))
|
|
.with_html(Label::new("for-token-input", "Authentication Token")),
|
|
),
|
|
)
|
|
}
|
|
|
|
pub fn gallery(handles: Vec<Result<FileHandle, ReadFileError>>) -> build_html::HtmlPage {
|
|
let mut page = build_html::HtmlPage::new()
|
|
.with_title("Admin list of files")
|
|
.with_header(1, "Admin list of files")
|
|
.with_html(
|
|
Form::new()
|
|
.with_path("/upload")
|
|
.with_method("post")
|
|
.with_encoding("multipart/form-data")
|
|
.with_container(
|
|
Container::new(ContainerType::Div)
|
|
.with_html(Input::new("file", "file").with_id("for-selector-input"))
|
|
.with_html(Label::new("for-selector-input", "Select a file")),
|
|
)
|
|
.with_html(Button::new("Upload file").with_type("submit")),
|
|
);
|
|
|
|
for handle in handles {
|
|
let container = match handle {
|
|
Ok(ref handle) => thumbnail(&handle.id).with_html(
|
|
Form::new()
|
|
.with_path(&format!("/{}", *handle.id))
|
|
.with_method("post")
|
|
.with_html(Input::new("hidden", "_method").with_value("delete"))
|
|
.with_html(Button::new("Delete")),
|
|
),
|
|
|
|
Err(err) => Container::new(ContainerType::Div)
|
|
.with_attributes(vec![("class", "file")])
|
|
.with_paragraph(format!("{:?}", err)),
|
|
};
|
|
page.add_container(container)
|
|
}
|
|
page
|
|
}
|
|
|
|
pub fn thumbnail(id: &FileId) -> Container {
|
|
let mut container = Container::new(ContainerType::Div).with_attributes(vec![("class", "file")]);
|
|
let tn = Container::new(ContainerType::Div)
|
|
.with_attributes(vec![("class", "thumbnail")])
|
|
.with_link(
|
|
format!("/{}", **id),
|
|
Image::new(&format!("{}/tn", **id)).to_html_string(),
|
|
);
|
|
container.add_html(tn);
|
|
container
|
|
}
|