- Zum Auflisten von Mitgliedern in einer Gruppe akzeptiert der Backend-Code die Parameter
orderundasc, um nach einem bestimmten Feld in aufsteigender/absteigender Reihenfolge zu sortieren. Wenn der Parameterascvorhanden und nicht leer ist, ist es die aufsteigende Reihenfolge, andernfalls die absteigende. - Der Frontend-Code der Gruppenseite scheint auch Abfrageparameter parsen und an das Backend übergeben zu können.
ascist im Frontend standardmäßigtrue.
Wenn ich zu diesem Link navigiere: https://try.discourse.org/g/trust_level_2?order=added_at&asc=, erwarte ich, dass dies ein direkter Link ist, der mir TL2-Mitglieder anzeigt, sortiert nach Hinzufügungszeit in absteigender Reihenfolge, ohne dass ich manuell auf die Tabellenüberschrift klicken muss, um die Sortierung umzuschalten.
Das tatsächliche Verhalten ist jedoch: Es werden TL2-Mitglieder angezeigt, sortiert nach Hinzufügungszeit in aufsteigender Reihenfolge, aber mit einem “chevron-down”-Symbol (was darauf hindeutet, dass es stattdessen in absteigender Reihenfolge hätte angezeigt werden sollen):
Wenn man sich den Netzwerk-Tab in DevTools ansieht, hat die Seite eine Anfrage von https://try.discourse.org/groups/trust_level_2/members.json?offset=0&order=added_at&asc=false&filter= ausgegeben, anstatt https://try.discourse.org/groups/trust_level_2/members.json?offset=0&order=added_at&asc=&filter=.
Da alle URL-Parameter Zeichenketten sind, wird asc=false von der Logik params[:asc] && params[:asc].present? als nicht leer betrachtet, wodurch ein aufsteigendes Ergebnis zurückgegeben wird. Vielleicht sollte der Frontend-Code den booleschen Wert false des asc-Parameters in einen leeren String im URL-Parameter umwandeln?
