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

New report parameters may require a rethinking of the reports page UI #97

Closed
tw4l opened this issue Nov 27, 2020 · 1 comment
Closed

Comments

@tw4l
Copy link
Contributor

tw4l commented Nov 27, 2020

(Text copied from original discussion here)

Given that we seem to be moving toward a future application state where we have a handful of reports, each of which may have a variable number of available report types (e.g. print table, CSV, pie chart, scatter plot, time series) and parameters (e.g. start date, end date, file type, file format, PUID), we may eventually need to rethink our current reports selection UI, which currently looks like this:

image

One way to move forward might be a more reactive UI that lists a number of reports, and then allows the user to specify further refinements after one is selected (e.g. in a modal, as an in-between step to generating a report), based on what that particular selected report supports.

I played around with one example of what that could look like with a very simple and rough-around-the-edges Vue app embedded in a Flask template:

aipscan_ui_idea

aipscan_ui_idea_modal

Demo code repo on GitHub (again, just for demo, lots of rough edges here): https://github.com/tw4l/aipscan-reports-ui-demo

Definitely not the only way to approach it, but I think one potential solution for down the road. The main benefit being that ultimately down this path, you can have the UI be responsive to the data it's being passed - e.g. displaying different report types and parameters in the modal depending on the underlying data about each report.

My experience with Vue is that it's a joy to work with, well documented, and more stable than most popular JS frameworks (e.g. Vue 3, the most recent release, keeps backwards-compatibility with Vue 2). But using it in AIPscan would introduce new dependencies and tooling and potentially a frontend build step (the demo doesn't need one and one of the nice things about Vue is that you can sort of sprinkle it here and there into otherwise server-rendered apps, but further complexity might warrant it at some point), so is not trivial and would need to be discussed and prioritized accordingly. Even if we found a different path forward with our current approach of server-rendered code with a bit of jQuery on top, it would likely be wise to invest into user stories, wireframes, and some collective brainstorming and refinement before embarking in a new direction.

@tw4l
Copy link
Contributor Author

tw4l commented Apr 13, 2022

Closing because it seems that for now, our static Flask template will do

@tw4l tw4l closed this as completed Apr 13, 2022
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

1 participant