1
0
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:
Paul-Christian Volkmer 2024-05-23 15:11:59 +02:00
parent 218e6aff15
commit ee6c38b459
2 changed files with 50 additions and 4 deletions

View File

@ -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.

View 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),
}
}
}