Zum Hauptinhalt gehen

FS_INDEX Sortierung nach Anzeigenamen möglich?

Kommentare

4 Kommentare

  • Holger Höbbel

    Hallo Matthias,

    bei der CMS_INPUT_LIST wird die Sortierung bei der Auswahl nicht über die QUERY, sondern über den Parameter sortOrder definiert. Wenn Du in den CMS_INPUT_LIST Tag noch das Attribut sortOrder="ascending" hinzufügst, solltest Du dort das gewünschte Ergebnis erhalten.

    Bei FS_INDEX muss ich Dich aber leider bitten einen Feature Request einzustellen, da meines Wissens nach eine entsprechende sprachabhängige Sortierung nicht möglich ist. 

    Viele Grüße
    Holger

    1
  • Matthias Forberg

    Hallo Holger,

    vielen Dank, Feature Request habe ich gemacht! Als Übergangslösung nehmen wir die andere Variante, allerdings mit CHECKBOX, das lässt sich leichter auswählen als die LIST. Ein Haken daran ist noch, dass man im Gegensatz zu FS_INDEX nicht alle gleichzeitig auswählen kann, sondern alle einzeln anhaken muss. 

    Mir schwebt ein kleiner Hack vor, um alle gleichzeitig anzuhaken. Über ein TOGGLE und eine Regel mit einem ValueService. Etwa so:

    Bloß scheitere ich grad daran, die Optionen auszulesen, die hier über <CMS_INCLUDE_OPTIONS type="database"> mit einer QUERY angebunden werden. Wie kommt man denn da dran?

    Grüße
    Matthias

    0
  • Holger Höbbel

    Hallo Matthias,

    Du musst Dir die Entities holen, die Du setzen willst (also in deinem Fall alle aus der entsprechenden Datenquelle) und diese dann in Options umwandeln und setzen. Ich gehe mal davon aus, dass das Holen der Entities kein Problem ist. 

    Ich habe das Umwandeln (und Setzen) in einem Modul über diese zentrale Methode gemacht:

    /**
    * Setzt die Auswahl einer Entity-basierten Checkbox auf die uebergebene Entity-Liste.
    * Bei leerer Liste passiert nichts. Existiert die GOM-Komponente nicht, ist es ein no-op.
    */
    public static void setCheckboxEntityValues(String componentName, ArrayList<Entity> entityList, FormData formData) {
    if (!entityList.isEmpty()) {
    GomEditorProvider gomElements = formData.getForm();
    GomFormElement gomElement = gomElements.findEditor(componentName);
    if (null != gomElement) {
    OptionFactory optionFactory = ((OptionFactoryProvider) gomElement).getOptionFactory();
    HashSet<Option> valueSet = new HashSet<>();
    for (Entity entity : entityList) {
    valueSet.add(optionFactory.create(entity));
    }
    FormField<?> checkbox = formData.get(null, componentName);
    checkbox.set(valueSet);
    }
    }
    }

    Viele Grüße
    Holger

    1
  • Matthias Forberg

    Dankeschön! Ich habe es jetzt nicht als ValueService in einer Regel, sondern als FS_BUTTON umgesetzt und das Skript etwas variiert. Es funktioniert!

    Grüße
    Matthias

    0

Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.