prettier tags in table

This commit is contained in:
2019-12-30 19:44:53 +01:00
parent 21baa4810c
commit 52676cf227
5 changed files with 36 additions and 13 deletions
+1 -1
View File
@@ -54,7 +54,7 @@ fn route_index(store: State<RwLock<Store>>, page: Option<usize>) -> Template {
let mut page = page.unwrap_or_default();
let n_pages = (rg.data.cards.len() as f64 / PER_PAGE as f64).ceil() as usize;
if page >= n_pages {
if page >= n_pages && page != 0 {
page = n_pages - 1;
}
+7 -7
View File
@@ -23,6 +23,7 @@ pub struct RenderedField<'a> {
pub max: String,
pub all_tags_json: String,
pub tags_json: String,
pub tags: Option<Vec<String>>,
pub options: Option<Vec<&'a String>>,
pub value: Cow<'a, str>,
pub checked: bool,
@@ -118,7 +119,6 @@ impl<'a> RenderedField<'a> {
FieldKind::Tags { options } => {
rendered.kind = "tags";
rendered.options = Some(options.iter().collect());
rendered.all_tags_json = serde_json::to_string(options).unwrap();
}
FieldKind::FreeTags { tag_group } => {
@@ -145,12 +145,12 @@ impl<'a> RenderedField<'a> {
}
FieldKind::Tags { .. } | FieldKind::FreeTags { .. } => {
if let Some(v) = value {
rendered.value = serde_json::from_value::<Vec<String>>(v.clone())
.unwrap()
.join(" ")
.into();
let tags = serde_json::from_value::<Vec<String>>(v.clone()).unwrap();
rendered.value = tags.join(",").into();
rendered.tags = Some(tags);
rendered.tags_json = serde_json::to_string(v).unwrap();
} else {
rendered.tags = Some(vec![]);
rendered.tags_json = "[]".into();
}
}
@@ -274,7 +274,7 @@ pub fn collect_card_form(store: &Store, mut form: MapFromForm) -> IndexMap<Strin
}
FieldKind::Tags { options } => {
let mut tags: Vec<String> = input
.split(' ')
.split(',')
.map(ToOwned::to_owned)
.filter_map(|tag| {
if options.contains(&tag) {
@@ -291,7 +291,7 @@ pub fn collect_card_form(store: &Store, mut form: MapFromForm) -> IndexMap<Strin
}
FieldKind::FreeTags { .. } => {
let mut tags: Vec<String> = input
.split(' ')
.split(',')
.map(str::trim)
.filter(|s| !s.is_empty())
.map(ToOwned::to_owned)