Add name and species to tree title (if applicable); fix issue with dropdown in tagrenderingquestion

This commit is contained in:
pietervdvn 2022-04-22 16:24:21 +02:00
parent 2fe67c7dc1
commit 1bf3be987b
2 changed files with 26 additions and 4 deletions

View file

@ -11,7 +11,7 @@ import {SaveButton} from "./SaveButton";
import {VariableUiElement} from "../Base/VariableUIElement"; import {VariableUiElement} from "../Base/VariableUIElement";
import Translations from "../i18n/Translations"; import Translations from "../i18n/Translations";
import {FixedUiElement} from "../Base/FixedUiElement"; import {FixedUiElement} from "../Base/FixedUiElement";
import {Translation} from "../i18n/Translation"; import {Translation, TypedTranslation} from "../i18n/Translation";
import Constants from "../../Models/Constants"; import Constants from "../../Models/Constants";
import {SubstitutedTranslation} from "../SubstitutedTranslation"; import {SubstitutedTranslation} from "../SubstitutedTranslation";
import {TagsFilter} from "../../Logic/Tags/TagsFilter"; import {TagsFilter} from "../../Logic/Tags/TagsFilter";
@ -51,7 +51,7 @@ export default class TagRenderingQuestion extends Combine {
const applicableMappingsSrc = const applicableMappingsSrc =
UIEventSource.ListStabilized(tags.map(tags => { UIEventSource.ListStabilized(tags.map(tags => {
const applicableMappings: { if: TagsFilter, icon?: string, then: any, ifnot?: TagsFilter, addExtraTags: Tag[] }[] = [] const applicableMappings: { if: TagsFilter, icon?: string, then: TypedTranslation<object>, ifnot?: TagsFilter, addExtraTags: Tag[] }[] = []
for (const mapping of configuration.mappings ?? []) { for (const mapping of configuration.mappings ?? []) {
if (mapping.hideInAnswer === true) { if (mapping.hideInAnswer === true) {
continue continue
@ -158,7 +158,7 @@ export default class TagRenderingQuestion extends Combine {
private static GenerateInputElement( private static GenerateInputElement(
state, state,
configuration: TagRenderingConfig, configuration: TagRenderingConfig,
applicableMappings: { if: TagsFilter, then: any, icon?: string, ifnot?: TagsFilter, addExtraTags: Tag[] }[], applicableMappings: { if: TagsFilter, then: TypedTranslation<object>, icon?: string, ifnot?: TagsFilter, addExtraTags: Tag[] }[],
applicableUnit: Unit, applicableUnit: Unit,
tagsSource: UIEventSource<any>, tagsSource: UIEventSource<any>,
feedback: UIEventSource<Translation> feedback: UIEventSource<Translation>
@ -207,7 +207,7 @@ export default class TagRenderingQuestion extends Combine {
applicableMappings.map((mapping, i) => { applicableMappings.map((mapping, i) => {
return { return {
value: new And([mapping.if, ...allIfNotsExcept(i)]), value: new And([mapping.if, ...allIfNotsExcept(i)]),
shown: Translations.T(mapping.then) shown: mapping.then.Subs(tagsSource.data)
} }
}) })
) )

View file

@ -31,6 +31,28 @@
"es": "Árbol" "es": "Árbol"
}, },
"mappings": [ "mappings": [
{
"if": {
"and": ["name~*","species:wikidata~*"]
},
"then": {
"*": "{name} ({wikidata_label(species:wikidata)})"
}
},
{
"if": {
"and": ["name~*"]
},
"then": {
"*": "{name}"
}
},
{
"if": "species:wikidata~*",
"then": {
"*": "{wikidata_label(species:wikidata)}"
}
},
{ {
"if": "species~*", "if": "species~*",
"then": { "then": {