Users need to be informed of activity that happens in the Designs Tab via system notes.
Intended users
All users of Design Management should be informed of activity via Systems Notes.
Proposal
System notes should be generated and put in the main issue activity feed. This information should include designs that were uploaded or changed and that comments were left on design.
@jareko - what should the links target? For individual designs it is clear enough, but for things like added [three designs] what should the user see if they click on three designs?
@phikai Now that I'm looking at it, updated actually feels like the right word here. The word changed feels like something is being "exchanged" for another, like when you "change" a milestone from 12.2 to 12.3. @MattPennaThe3rd What do you think the most appropriate word here would be?
@alexkalderimis The links should target the design version associated with whatever was added/deleted/modified. So if the Version 2 is associated with added [three designs], then it should link to Version 2 of the designs. Does that make sense?
One thing that immediately jumps out at me is how unhelpful it is. Lots of 'added 1 design', 'updated 1 design'. If there has been lots of activity here, it will quickly becoming uninteresting and users will learn to ignore it.
@phikai: am I correct that the current master has a version selector but it is not functional? I don't see any version route in the router. So for now I will link to the designs tab (which I can do), and then we will have another issue to link to the precise version
Looking at the URI when you select a version, the state is passed as ?version=<version id>. Note that <version id> is the id and not the sha of the version.
Thanks, I managed to work that one out, but I very much appreciate the tip.
I don't think the Vue router likes receiving the query parameter though. I have it being passed in the href, but then it disappears from the URI once clicked. @sming-gitlab, any tips?
It's possible we need to think about how the Vue app should handle routing in general, in order for us to link to parts of the design management page with the correct state (and let people share links amongst themselves).
@iamphill@sming-gitlab@ntepluhina excuse me if I'm stepping into the wrong area! But hopefully the following is useful and possible:
# showing all designs (latest version - i.e., current behaviour)/designs# showing all designs at the given version # (i.e., behaviour when ?version=<id> is passed currently)/designs/<version-id># showing a single design at a given version # (i.e., when user clicks on a design to enlarge it)/designs/<version-id>/my-screencap.png
That last URI would always link to the enlarged image at a specific version. If we'd also want to provide a different URI when viewing the enlarged image of the latest version that will always reflect the latest version when shared, we'd need a route to it that doesn't contain a version id/sha in it.
At this point, I might have to leave it up to people who know more about Vue routing to decide how that would fit in the above scheme, but as an idea:
# If it's easy/sensible for the router to determine# what's a version id and what's a filename:/designs/my-screencap.png# Or, if we should be explicit, we could have a special token# to signal the latest version, perhaps:/designs/HEAD/my-screencap.png
Some sort of fix for the issue that @alexkalderimis is experiencing is obviously more important than any of these extra routes. So I imagine if we did decide to do this extra work it'd be follow up issues separate from a fix for @alexkalderimis.
I'm not sure if we could have /designs/my-screencap.png and /designs/VERSION_ID/my-screencap.png However, doing something like /designs/HEAD/my-screencap.png would be much easier.
We will need a GraphQL entity exposing so that we can get a specific design for a specific version, I don't think the way we currently do it is the best (we just get it based on the data that we already have on the frontend)
Either way, this isn't something that is needed immediately, is that right? This would only be for when we want to allow the permalinking of a large image version? @iamphill@alexkalderimis
@alexkalderimis are you referring to this scenario > select a version from dropdown and once go to a different route the query parameter is gone and it reverts back selecting the latest design?
Yes, I did that intentionally. I was thinking when someone navigate away from the page, it should be cleared. But now that I'm thinking about it again, maybe that's not the right way to do it. Now that I'm reviewing how our MR diffs work, the version always stay puts, so the design version dropdown should operate the same
Should I create another ticket to change the implementation?
@sming-gitlab My scenario is related to the system notes (the little automatic notes you see on the issues page). When we add a design, we will be adding one that says, for examples "Joe Bloggs added [5 designs]", where [five designs] links to the version at which Joe performed this action.
So for this, we need stable links we can load which take the user to the view of the set of designs at a given version.
I think you are right to be concerned about showing the user stale information though! Perhaps whenever we are not showing the current version, we should add a warning/informational box that tells them this, e.g.:
You are not viewing the current version of these designs.To see the current version, click [here](#/designs)
@alexkalderimis I mis-read the question, I was thinking of the incorrect ticket reference Thanks for clarifying! I like that idea you mentioned. But I'm going to leave that for the designer
Since there doesn't seem to be any FE work here, I'll be unassigning @ntepluhina but please, if anything comes up re: FE, feel free to ping me @alexkalderimis. Thanks!