-
Notifications
You must be signed in to change notification settings - Fork 73
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
[REQUEST] Auto save #544
Comments
@lwnoble suggests we do some Design Thinking on this |
UPDATE: This is not working I messed up my issues. |
Looking at this and working on a solution @aaronreed708 |
Added this feature with this PR #715 |
Sorry @prithviraj-chaudhuri, I somehow missed that you commented that you were going to work on this. I'm sorry about that. I would have cautioned you that issues with the "design thinking" tag will usually require some level of discussion as to the user experience that we want to present before we begin working it. I see nothing wrong with your solution, but I believe that this requires some deeper thought. For example, a minute might be too long. And should we provide some level of undo? Should we have a way to turn off auto save? Things like that we probably need to decide on. What time zone do you work in? A lot of us are traveling this week. Maybe I can set up a call next week. Would that work for you? |
@aaronreed708 I work in the EST time zone. Any time after 5.30 pm on weekdays and any time on the weekends work. Feel free to send me a calendar invite. |
I am in the EST, too, so that works for me. Let's try to capture some ideas here so that we have a basis to start discussions. I like what I read here: https://design.gitlab.com/usability/saving-and-feedback#auto-save. The idea that auto save is saving "drafts" with timestamps feels like the right path to take. That the user can get back to previous drafts even if they close their browser feels right to me, but if they export their design system, it is the last one that they saved manually. The save button is prominent and always visible, so I think that we have to think that the user might not be clicking it for a reason (e.g. they aren't ready to keep the experimenting that they've been doing). But they also might not want to lose their experimentation, either. One of the tough questions is when to autosave a draft. As the article recommends for forms, on blur for text fields, on click for button actions, menu items, etc seems desirable. But then we have to make sure that we handle these correctly in each of our panels, which may not be trivial. |
Discussed with @Chessel, she is thinking that this should work more like design tools that have autosave features. She suggested since that is our intended audience, for the most part, that we should give the user experience that they are used to/expect. That rather than drafts, she suggested that we save restore points so that a user can recover where they were if he heads down the wrong road. So maybe we need to target how other design tools handle auto save as our goal. |
I'll try and come up with a design that enables this. I'm guessing this needs some form of history that the user can go to. Give me some time to come up with something |
@aaronreed708 this is the design I am currently thinking of.
This is a pretty big change and hence is taking me some time to get this working. Let me know if you have any concerns about this in the meanwhile |
Hi @prithviraj-chaudhuri, so here are my initial, first-impression thoughts:
|
@aaronreed708
Does this sound good to you? |
@prithviraj-chaudhuri Thoughts @Chessel? |
|
@Chessel and @aaronreed708 to discuss, do mockups on restore points in footers |
The thing I'm struggling with is that I really don't know how the average user will use the theme builder. I wonder if the theme builder will be a place for experimentation or if the experimentation will take place somewhere else, such as Figma or Sketch, and they'll come to the TB with all the values they want. I wonder if the auto-save feature has to be so granular in terms of dos/redos/versions to comeback to? Think about Google docs or even Word, what are the minimum expectations from auto save? I would assume undo/redo some actions during my session but, when working on Word do I ever want to go back to a certain point in time? I think we might be able to simplify this feature until we have more information on how the users use the tool. But I agree with @aaronreed708 let's mock it up and take it from there |
@aaronreed708 I can build just the UI and send you screenshots. Will that be enough for the mockup? |
@Chessel I would say that the average user will be pretty split between designers and developers initially (I think developers experiment with new tooling quite a bit), but over time I would expect it to be more designers. But even if the designer comes with known values (like we have, ourselves, for our internal applications), there will be times when the designer needs to change the theme colors or make tweaks to existing design systems to see how they play out. So I would think that these designers would expect the undo/redo behaviors to work like they do in design tools. Which I assume is slightly different than Outlook, Word or Google Docs. Are there any obvious differences that you can itemize or are they substantially the same as any other undo/redo implementation? @prithviraj-chaudhuri I don't want to cause you a lot of work building real UI unless you work better that way. I'd be just as happy if you scan a sketch. We just need a place to start discussions. |
@aaronreed708 from the designer perspective, if we talk about Figma, when I experiment in Figma im not expecting to go back to a precise point in time, although I expect to be able to do/undo. However there is a versioning capability Figma saves a version everytime they detect 30 mins of inactivity. I think that makes sense and the versions are not so overwhelming. If during a work session you need to go back you undo/redo. If you want to go back to the latest saved work of a different day, you user versioning.
I do not know if engineers will expect a higher level of granuality. |
Hi @aaronreed708 and @Chessel |
@Chessel something to keep in mind is that there are no accounts for Theme Builder currently. https://try.a11y-theme-builder.finos.org/designSystem/sample is using static pages and local browser storage. So we may not be able to detect 30 minute of inactivity if the user closes the page or the browser. We could, of course, try to version something when these are detected, but I don't know that it is fool proof. But maybe this is another reason to consider accounts, etc. We could also have two flavors, a static version of TB and a TB server with persistence, accounts, etc. |
Hi @prithviraj-chaudhuri, these are the thoughts that came to me immediately as I walked through your PDF:
|
@aaronreed708 Please look at my response to your points below
|
@Chessel Thoughts? BTW, I'm on vacation starting tomorrow - Monday. I'll try to keep up with updates, but no guarantee. |
@aaronreed708 @prithviraj-chaudhuri
|
@prithviraj-chaudhuri: Sorry, I'm back from vacation now and caught up on other business and getting caught up with this issue now. Looks like @Chessel is out until at least Monday. So if you want to wait for her return, we can. But these are my current thoughts:
Further questions/suggestions:
Autosave sessions:
|
Hi @prithviraj-chaudhuri and @aaronreed708 these are my thoughts:
I like this suggestion by Aaron
My take on Aaron's questions: where would the dropdown be located? In the footer? Or another dropdown in the header?
should we think of the versioning as tags like in gitHub? So that there is always a "latest" named tag that is always identical to the most recent autosave?
Is there only one autosave/named-save session or will there be one for every loaded design system?
Is detecting browser closing triggering a save? Or a modal asking if the user wants to save changes?
|
So here is the final solution that I am starting to build
Please let me know if i am good to start building the solution with these points |
I think I was thinking that all autosaves would disappear if the browser would close and thus there would be a saved milestone to start from the next time the design system was opened. But I'm fine not having this initially and keeping all of the autosaves even after close to see if that works well. |
Wouldn't you show the popup when the browser/tab closes? So if you can detect it to show the popup, then you could just do the save (as @Chessel suggested). |
If you are having a limit on the named saves, then you probably need to allow the user to delete specific named saves to clear up slots to store the new save. |
I am looking into this. I have started the implementation. Would get back to you when I reach that point
I will try and incorporate this in the PR as well |
@Chessel has done some wireframing for post MVP work. Will post here when it is ready. |
@prithviraj-chaudhuri I've been working on a draft for the auto-save flow based on the new Theme Builder design. These designs ARE NOT APPROVED, but @aaronreed708 and I wanted to share with you to get feedback. |
No update from Prithviraj - possibly move back into No Status, and use as mentorship project / good first issue. |
No update from Turntabl - possibly move back into No Status, and use as mentorship project / good first issue. |
I'm fine with moving this back into a prioritized column, but probably not a "good first issue". To implement this fully will not be quick. |
Suggestion/Concern
The user has to constantly save changes if they don't want their progress to be lost. Many times the progress is lost because the progress wasn't saved and one has to start over.
Proposed Solution
This could be resolved by auto saving progress every so often
The text was updated successfully, but these errors were encountered: