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

Buggy download page #120

Closed
sorawee opened this issue Apr 27, 2020 · 1 comment
Closed

Buggy download page #120

sorawee opened this issue Apr 27, 2020 · 1 comment
Assignees

Comments

@sorawee
Copy link
Contributor

sorawee commented Apr 27, 2020

  1. Navigate to https://download.racket-lang.org/racket-minimal-v7.6.html. Notice that there are two "Variant" select widgets. Only the second one is functional.
  2. Click the "Platform" select widget. There are duplicate choices. E.g., Windows (x64, 64-bit) appears twice. I believe this over-counting happens because there are two suffixes for Windows: tgz and exe. Though I think it makes more sense to show these variants in the "Variant" select widgets (and in fact it already does this).
  3. Choose Windows (x64, 64-bit). There are four variants: Regular, Regular, CS, and CS. Again, this happens because for each variant, there are two suffixes. It would be nice to display Regular (tgz), Regular (exe), CS (tgz), CS (exe) instead.
@jbclements jbclements self-assigned this Apr 27, 2020
@jbclements
Copy link
Contributor

This is probably my fault, and almost certainly my responsibility, regardless of whether it's my fault.

sorawee added a commit to sorawee/racket-lang-org that referenced this issue Jun 1, 2020
This PR fixes three bugs:
- Remove an extra "Variant" widget.
- Remove redundant "Platform" options
- Add extension information to variants

Additionally, it replaces the current implementation to a declarative approach
similar to big-bang / React framework. The current approach is _extremely_
complicated due to its imperative nature, generating multiple selection widgets,
embedding several information in non-standard attributes of DOM elements,
and showing/hiding them via JS. This is very error prone due to multiple levels
of the selection widgets, and how the number of levels is dynamic. Additionally,
it is very difficult to modify this page.

The new approach is similar to big-bang. We supply the framework the initial
state and the toDraw function, which constructs the DOM tree based on the input
state. Each DOM element can have a handler (such as onclick) which will
transition the current state into the next state. This makes it much easier to
reason about it.
@mflatt mflatt closed this as completed in 4912e06 Jun 2, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants