Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Konflikt zwischen Textfilter-Addon und Limit-Results-Addon #69

Open
fenglisch opened this issue Jul 29, 2022 · 3 comments
Open

Konflikt zwischen Textfilter-Addon und Limit-Results-Addon #69

fenglisch opened this issue Jul 29, 2022 · 3 comments
Labels
bug prio1 high priority

Comments

@fenglisch
Copy link
Collaborator

Steps to reproduce:

  • Die beiden genannten Addons müssen aktiviert sein
  • Beantworte oder überspringe die Fragen, um zur Auswertung zu gelangen
  • Zu Filterkategorie A gehören bspw. drei Ergebnisse, die Plätze 1, 4 und 6
  • Da das Limit-Results-Addon auf 5 eingestellt ist, wird das 6. Ergebnisse anfangs nicht angezeigt
  • Filtere die Ergebnisse nach Kategorie A

Expected behaviour:

  • Es werden mir die Top 5 Ergebnisse angezeigt, die zu Filterkategorie A passen (bzw. in diesem Fall alle drei Ergebnisse, die es gibt)
  • Die Limit-Results-Buttons werden weiterhin angezeigt, damit ich auch innerhalb dieser Filterung weiter stöbern kann (wichtig für große Datensätze, wo eine Filterkategorie viele Ergebnisse enthält)

Actual behaviour:

  • Es werden mir weiterhin nur die Plätze 1 und 4 angezeigt, Platz 6 ist versteckt
  • Die Limit-Results-Buttons sind ebenfalls verschwunden, weshalb ich Platz 6 auch nicht anzeigen kann
  • Die Limit-Results-Buttons kommen erst wieder, wenn ich die Filterkategorie "Alle anzeigen" wähle

Nachvollziehen kannst du das an dieser Instanz: https://mitwirk-o-mat.de/demo-v7/

  • Überspringe die ersten vier Fragen und beantworte die letzte Frage zustimmend
  • Plätze 1, 4 & 6 = DiA, KS & FMF
  • Filterkategorie A = PLZ 12345

Bei https://www.mat-o-wahl.de/download/mat-o-wahl/index_de_addons.html ist das aber genauso. Hier werden die Limit-Results-Buttons nicht mal wieder angezeigt, wenn ich "Alle anzeigen" wähle

@fenglisch fenglisch added bug prio1 high priority labels Jul 29, 2022
@fenglisch
Copy link
Collaborator Author

fenglisch commented Jul 29, 2022

Außerdem überschreiben die Limit-Results-Button die Filterung, wenn sie angezeigt werden (also in der resultsByPartyTable)
Steps to reproduce auf https://www.mat-o-wahl.de/download/mat-o-wahl/index_de_addons.html:

  • Die beiden genannten Addons müssen aktiviert sein
  • Beantworte oder überspringe die Fragen, um zur Auswertung zu gelangen
  • Wähle irgendeine Filterkategorie (außer "Alle anzeigen")
  • Öffne die resultsByPartyTable
  • Klicke unten auf "Weitere anzeigen"

Expected behaviour:

  • Es werden nur weitere Ergebnisse angezeigt, die der zuvor eingestellten Filterkategorie entsprechen, falls vorhanden (falls nicht vorhanden, wird der Button "Weitere anzeigen" gar nicht angezeigt)

Actual behaviour:

  • Es werden sowohl in der resultsByPartyTable als auch in der resultsShortTable Ergebnisse angezeigt, die gar nicht der Filterkategorie entsprechen
  • Bei den fälschlicherweise angezeigten Ergebnissen in der resultsByPartyTable hat der Collapse-Button keine Wirkung (wie in Issue Konflikt zwischen Filter-Addon und Collapse-Answers #70
  • Erst wenn ich den Filter wieder auf "Alle anzeigen" schalte, werden die auszuklappenden Antworten angezeigt

Der Button "Weniger anzeigen" überschreibt die Filterung auch. Wenn ich auf https://www.mat-o-wahl.de/download/mat-o-wahl/index_de_addons.html alle Fragen überspringe, dann nach Südfrüchten filtere und die resultsByPartyTable ausklappe, werden richtigerweise Bananen und die TBC angezeigt. Wenn ich dann auf "Weniger anzeigen" klicke, wird nur die APPD angezeigt.

@msteudtn
Copy link
Owner

Ja, ich konnte das Problem nachvollziehen.

Hier arbeiten zwei Filter gegeneinander. :( Im Hintergrund gibt es leider keine schöne SQL-Datenbank, die man regelmäßig mit AND abfragen kann. Stattdessen wurden die Listen bereits ins DOM gerendert.

Meine ersten Ideen gehen dahin, eine "Austauschvariable" zu erstellen. Dort können die Addons Informationen zu ihrem aktuellen Stand reinschreiben.

@fenglisch
Copy link
Collaborator Author

Mir kam hierzu eine Idee (vielleicht ließe sich damit auch #73 lösen):

Aktuell wird ja sowohl vom Limit-Results-Addon als auch vom Filter-Addon direkt das inline CSS bearbeitet. Alternativ könnten doch beide eine Klasse hinzufügen/entfernen, z. B. .hide-by-limit-results bzw. .hide-by-filter, mit

.hide-by-limit-results, .hide-by-filter {
   display: none;
}

Das Filter-Addon fügt jedem Element, das nicht dem gewählten Filter entspricht, die Klasse .hide-by-filter hinzu. Zusätzlich generiert es einen Array mit allen Elementen, die dem gewählten Filter entsprechen. Von den ersten x Elementen wird jetzt die Klasse .hide-by-limit-results entfernt, wobei x der Zahl der Ergebnisse entspricht, die angezeigt werden sollen. Wenn ich jetzt auf "Mehr anzeigen" (oder "Weniger anzeigen") klicke, wird die Klasse von weiteren Elementen aus dem Array entfernt (bzw. hinzugefügt). Wenn ich dagegen einen neuen Filter setze, wird die Klasse .hide-by-filter komplett neu verteilt und damit wird auch ein neuer Array erzeugt, von dem bei den ersten x Elementen auch die Klasse .hide-by-limit-results entfernt wird.

Als ich weiß nicht, ob ich das so gut schildern konnte, aber die Überlegung ist, dass der AND Operator ja bei CSS-Klassen automatisch eingebaut ist, da eine Zeile nur angezeigt wird, wenn sie keine der beiden Klassen hat.

Ich hab mich noch nicht herangetraut, das selbst zu probieren (bastele gerade an einem Custom-Voting-Buttons-Addon), aber ich kann mir vorstellen, dass du das ohnehin deutlich schneller hinbekommen würdest

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug prio1 high priority
Projects
None yet
Development

No branches or pull requests

2 participants