Direkter Link zur Anzeige von Gruppenmitgliedern in absteigender Reihenfolge funktioniert nicht

  • Zum Auflisten von Mitgliedern in einer Gruppe akzeptiert der Backend-Code die Parameter order und asc, um nach einem bestimmten Feld in aufsteigender/absteigender Reihenfolge zu sortieren. Wenn der Parameter asc vorhanden 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. asc ist im Frontend standardmäßig true.

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?

1 „Gefällt mir“