mirror of
https://github.com/pcvolkmer/osc-variant.git
synced 2025-04-19 11:46:50 +00:00
feat: add profile option alias 'never_hide' for 'remove_filter'
The option 'never_hide' will also be the counterpart to 'hide'.
This commit is contained in:
parent
218e6aff15
commit
ee6c38b459
@ -237,14 +237,15 @@ Wird keine Angabe gemacht, wird der bestehende Wert beibehalten.
|
||||
Zudem wird im Formular "ExampleForm" das Formularfeld "formularfeld" ausgeblendet, indem der Filter auf "false" gesetzt
|
||||
wird.
|
||||
Dadurch wird das Formularfeld nie angezeigt.
|
||||
Ein zuvor bestehender Filter wird ersetzt.
|
||||
Ein zuvor bestehender Filter wird ersetzt und das Formularfeld wird nie angezeigt.
|
||||
Weiterhin wird die Eigenschaft "Speichern" des Formularfelds auf "Immer speichern" gesetzt um sicherzustellen, dass
|
||||
zuvor enthaltene Daten weiterhin gespeichert bleiben und werden, auch wenn das Formularfeld nicht sichtbar ist.
|
||||
Um das Gegenteil zu erreichen und das Formularfeld *immer* anzuzeigen, kann `never_hide: true` verwendet werden.
|
||||
|
||||
Der Standardwert des Feldes `otherformfield` ist nun auf `T` gesetzt.
|
||||
Zum Löschen eines Standardwerts ist `""` anzugeben.
|
||||
Das Formularfeld wird dabei nun immer angezeigt, auch wenn zuvor ein (Anzeige)-Filter gesetzt war.
|
||||
Dieser wird mir `remove_filter: true` entfernt.
|
||||
Dieser wird mir `remove_filter: true` oder `never_hide: true` entfernt.
|
||||
|
||||
**Achtung!** Diese Anwendung überprüft keine Scripts und verwendet angegebene Scripts als "valid" im resultierenden
|
||||
OSC-File.
|
||||
|
@ -79,7 +79,7 @@ pub struct FormReference {
|
||||
pub referenced_data_form: Option<String>,
|
||||
pub anzeige: Option<String>,
|
||||
pub anzeige_auswahl: Option<String>,
|
||||
#[serde(default)]
|
||||
#[serde(alias = "never_hide", default)]
|
||||
pub remove_filter: bool,
|
||||
scripts_code: Option<String>,
|
||||
}
|
||||
@ -96,7 +96,7 @@ pub struct FormField {
|
||||
#[serde(default)]
|
||||
pub hide: bool,
|
||||
pub default_value: Option<String>,
|
||||
#[serde(default)]
|
||||
#[serde(alias = "never_hide", default)]
|
||||
pub remove_filter: bool,
|
||||
scripts_code: Option<String>,
|
||||
}
|
||||
@ -317,4 +317,49 @@ mod tests {
|
||||
Err(e) => panic!("Cannot deserialize profile: {}", e),
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn should_use_never_hide_as_alias_for_remove_filter_in_form_references() {
|
||||
let content = "forms:
|
||||
- name: 'DNPM Therapieplan'
|
||||
form_references:
|
||||
- name: formularref_to_mod
|
||||
never_hide: true
|
||||
";
|
||||
|
||||
match Profile::from_str(content) {
|
||||
Ok(profile) => {
|
||||
assert_eq!(profile.forms.len(), 1);
|
||||
assert_eq!(profile.forms[0].name, "DNPM Therapieplan");
|
||||
assert_eq!(profile.forms[0].form_references.len(), 1);
|
||||
assert_eq!(
|
||||
profile.forms[0].form_references[0].name,
|
||||
"formularref_to_mod"
|
||||
);
|
||||
assert!(profile.forms[0].form_references[0].remove_filter);
|
||||
}
|
||||
Err(e) => panic!("Cannot deserialize profile: {}", e),
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn should_use_never_hide_as_alias_for_remove_filter_in_form_fields() {
|
||||
let content = "forms:
|
||||
- name: 'DNPM Therapieplan'
|
||||
form_fields:
|
||||
- name: formularfeld_to_mod
|
||||
never_hide: true
|
||||
";
|
||||
|
||||
match Profile::from_str(content) {
|
||||
Ok(profile) => {
|
||||
assert_eq!(profile.forms.len(), 1);
|
||||
assert_eq!(profile.forms[0].name, "DNPM Therapieplan");
|
||||
assert_eq!(profile.forms[0].form_fields.len(), 1);
|
||||
assert_eq!(profile.forms[0].form_fields[0].name, "formularfeld_to_mod");
|
||||
assert!(profile.forms[0].form_fields[0].remove_filter);
|
||||
}
|
||||
Err(e) => panic!("Cannot deserialize profile: {}", e),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user