Keep expiry times in provided order
This commit is contained in:
parent
01c96357ea
commit
51ac45f9f0
2 changed files with 12 additions and 13 deletions
21
src/main.rs
21
src/main.rs
|
@ -26,7 +26,6 @@ use plugins::plugin::{Plugin, PluginManager};
|
||||||
mod api_generated;
|
mod api_generated;
|
||||||
use api_generated::api::get_root_as_entry;
|
use api_generated::api::get_root_as_entry;
|
||||||
|
|
||||||
use std::collections::BTreeMap;
|
|
||||||
use std::io;
|
use std::io;
|
||||||
use std::io::Cursor;
|
use std::io::Cursor;
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
|
@ -385,7 +384,7 @@ fn get<'r>(
|
||||||
state: State<'r, DB>,
|
state: State<'r, DB>,
|
||||||
handlebars: State<'r, Handlebars>,
|
handlebars: State<'r, Handlebars>,
|
||||||
plugin_manager: State<PluginManager>,
|
plugin_manager: State<PluginManager>,
|
||||||
ui_expiry_times: State<'r, BTreeMap<String, u64>>,
|
ui_expiry_times: State<'r, Vec<(String, u64)>>,
|
||||||
ui_expiry_default: State<'r, String>,
|
ui_expiry_default: State<'r, String>,
|
||||||
cfg: State<PastebinConfig>,
|
cfg: State<PastebinConfig>,
|
||||||
) -> Response<'r> {
|
) -> Response<'r> {
|
||||||
|
@ -478,7 +477,7 @@ fn get_new<'r>(
|
||||||
handlebars: State<Handlebars>,
|
handlebars: State<Handlebars>,
|
||||||
cfg: State<PastebinConfig>,
|
cfg: State<PastebinConfig>,
|
||||||
plugin_manager: State<PluginManager>,
|
plugin_manager: State<PluginManager>,
|
||||||
ui_expiry_times: State<'r, BTreeMap<String, u64>>,
|
ui_expiry_times: State<'r, Vec<(String, u64)>>,
|
||||||
ui_expiry_default: State<'r, String>,
|
ui_expiry_default: State<'r, String>,
|
||||||
id: Option<String>,
|
id: Option<String>,
|
||||||
level: Option<String>,
|
level: Option<String>,
|
||||||
|
@ -665,16 +664,16 @@ fn rocket(pastebin_config: PastebinConfig) -> rocket::Rocket {
|
||||||
|
|
||||||
// setup drop down expiry menu (for instance 1m, 20m, 1 year, never)
|
// setup drop down expiry menu (for instance 1m, 20m, 1 year, never)
|
||||||
let ui_expiry_times = {
|
let ui_expiry_times = {
|
||||||
let mut all = BTreeMap::new();
|
let mut all = vec![];
|
||||||
for item in pastebin_config.ui_expiry_times.clone() {
|
for item in pastebin_config.ui_expiry_times.clone() {
|
||||||
for sub_elem in item.split(',') {
|
for sub_elem in item.split(',') {
|
||||||
if sub_elem.trim().to_lowercase() == "never" {
|
if sub_elem.trim().to_lowercase() == "never" {
|
||||||
all.insert(sub_elem.trim().to_string(), 0);
|
all.push((sub_elem.trim().to_string(), 0));
|
||||||
} else {
|
} else {
|
||||||
all.insert(
|
all.push((
|
||||||
sub_elem.trim().to_string(),
|
sub_elem.trim().to_string(),
|
||||||
parse_duration(sub_elem).unwrap().as_secs(),
|
parse_duration(sub_elem).unwrap().as_secs()
|
||||||
);
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -684,9 +683,9 @@ fn rocket(pastebin_config: PastebinConfig) -> rocket::Rocket {
|
||||||
|
|
||||||
let ui_expiry_default: String = ui_expiry_times
|
let ui_expiry_default: String = ui_expiry_times
|
||||||
.iter()
|
.iter()
|
||||||
.filter_map(|(key, &val)| {
|
.filter_map(|(name, val)| {
|
||||||
if val == pastebin_config.ttl {
|
if *val == pastebin_config.ttl {
|
||||||
Some(key.clone())
|
Some(name.clone())
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,8 +41,8 @@
|
||||||
<li class="nav-item dropdown">
|
<li class="nav-item dropdown">
|
||||||
<a id="expiry-dropdown-btn" class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">Expires: {{ui_expiry_default}}</a>
|
<a id="expiry-dropdown-btn" class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">Expires: {{ui_expiry_default}}</a>
|
||||||
<div class="dropdown-menu" id="expiry-dropdown">
|
<div class="dropdown-menu" id="expiry-dropdown">
|
||||||
{{#each ui_expiry_times as |value key|}}
|
{{#each ui_expiry_times}}
|
||||||
<a class="dropdown-item" href="{{value}}">{{key}}</a>
|
<a class="dropdown-item" href="{{1}}">{{0}}</a>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
|
|
Loading…
Reference in a new issue