-
Notifications
You must be signed in to change notification settings - Fork 293
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
Extend Dashboard Sharing feature tour to include settings interface #5382
Comments
@aaemnnosttv As part of the mini discovery, Mariya's suggested flow is possible. We could also allow the user to click on the Dashboard Sharing Settings button itself as part of 'Step 1' of the tour. Then a new tour would be triggered when the user sees the dialog box for the first time (there is small engineering challenge here). This way we can "dismiss" these two tours independently, in case the user decides to close the first feature tour without opening the settings dialog box. The engineering challenge here is triggering the second tour when the dialog box opens without adding code outside of the Feature Tours infrastructure. @asvinb suggested looking into the |
@aaemnnosttv @jimmymadon while testing another dashboard sharing ticket, the feature tour appeared and my instant thought was that it could be more helpful. I feel the feature tour should include a link to the Dashboard Sharing guide. We tell the user what the icon is for, but don't tell them where to find more information. Would this be an easy update to add a learn more link within the ACs on this ticket? |
@wpdarren I don't think we want to send the user away from their site as part of the feature tour. The sharing settings have a learn more link within the interface – together with an extended tour I feel this should be sufficient. The goal of this issue is to make that same tour more informative and part of that is showing them the sharing settings. Perhaps we could also link to the documentation from the last step of the tour but ideally everything should be clear enough without reading additional documentation. |
@aaemnnosttv following up here, @marrrmarrr replied in Slack saying this looks good - are we ok to move this over to IB now do you think? |
Thanks @asvinb – this looks pretty well thought out, nice work! A few thoughts for you on some of the details:
The intention here is for the modal to be opened when transitioning to the second step of the tour. We had discussed the idea of guiding the user to click it as part of the tour but it should be easier to do this automatically and also keeps things consistent by limiting interactions to the tour tooltips which is consistent with all other tours we have.
Does this apply to just the tooltips or also the focus area floater?
This will probably need to change from using local state to Second, I'm not sure that this is needed – most users should see the tour before they have a chance to trigger it, but since we have a secondary tour for the settings which will be triggered on first use, we can simply use this in the requirements check for the first tour: if the sharing settings tour has been dismissed, then don't show the first tour.
We shouldn't need to create separate tours for the with/without multiple admins case, as the main difference here is just an additional step. We'd only need to be able to determine if there are multiple admins on load to know whether or not we need that extra step or not. Thinking about having them separate for a minute, it could be beneficial to show the multi-admin tour if a single admin site later added a second admin. It probably wouldn't be beneficial for a multi-admin site to later see the single-admin tour if they later became the only admin. We could consider this as an enhancement in the future, I think it increases the scope a bit more than necessary for our needs at this point though. Let's use a single tour for the settings with a variable number of steps for now. We can expose
This would be the minimum as per usual, but if we're making changes to the existing feature tour infrastructure, this should be accounted for as well. |
@aaemnnosttv I originally suggested using |
@aaemnnosttv Just setting it to
The IB currently suggests that the I think the rest of your feedback is actionable and I will try these out in the POC branch and update the IB! |
Regarding the IB here… I'm not a big fan of "overloading" the I'd rather us add a new property for feature tours like In addition to that point though, I think I'm a bit confused by the IB here. There's mention of extending a feature tour with data from another based on conditions, but I'm not clear on why that's needed. I'd think we'd have another feature tour triggered when opening the Dashboard Sharing modal/dialog, and clicking "next" on the "first" feature tour (eg. the first "step" of this multi-tour tour) would open the Dashboard Sharing modal/dialog. I think I'm not quite following the IB here and how it all fits together. I know @jimmymadon is not available to review these comments now, but maybe @asvinb or @aaemnnosttv could clarify this a bit for me? I'm not quite clear on what exactly is changing here and why some of these changes are even needed 🤔 |
Unfortunately @asvinb is also resourced to other projects for a few weeks too, so we may need @aaemnnosttv and @tofumatt to own this one and push it through to the finish line - WDYT? |
I'm a bit confused as the proof-of-concept PR doesn't look anything like the IB from what I can tell, but I'm going to check out the PR and see how it works. |
Overall the PR looks good except for some intermittent glitch-y-ness when finishing the tour on the "third"/"last" step: I'm going to try tweaking the proof-of-concept though because otherwise it seems to be working well. But the proof-of-concept makes no reference to a lot of stuff (like the |
@tofumatt, I was thinking we might want to be able to use a given tour on load (as it is now) or on-demand in some cases. The current tour requirements check requires
Yes I thought about that as well, but I think such a property shouldn't be necessary as on-demand tours are checked differently as defined.
The idea is that in the user's experience, it's only one tour so long as they see both parts. Implemented as separate tours that are triggered seamlessly, the experience is unintuitive because you'd first see a tour with one step and then immediately see a second tour with one or two steps. This way, the user sees (and interacts with) the first tour as a more comprehensive tour from the beginning, and is able to navigate back and forth to/from any step until it is dismissed (like others). As separate tours, they'd be stuck in the second, unable to go back to the first once triggered. This is also why the ACs call for a second and conditional third step to be added to the first tour rather than simply triggering a separate tour immediately after dismissing the first. That's why the first is more of a composite tour – we only show the settings part of it on demand if they don't reach that part of the tour in the first.
The current IB is a bit different and came out of conversations I had with @jimmymadon last week, but he didn't have time to update it before he left which is why I've taken over here 😄 I've updated the IB to remove the special |
Ah, okay, I think that clarifies everything, thanks! The IB looks good now, thanks for fixing it up and adding the comments 👍🏻 IB ✅ |
QA Update: ❌Update: I will create a ticket for the minor observation (+ include it as a known issues) and get this moved forward. @tofumatt @aaemnnosttv a very minor observation. On scenario 3 in the QAB, where the user dismisses the tour and they click on the dashboard sharing settings icon, the tour is triggered again - when the tour appears on 'add user role' the highlighted area slightly overlaps the icon. It's more of an issue on Safari but noticed it on Chrome too. Can I also assume that like the other feature tours, this does not appear on small screen sizes like mobile phones and tablets in portrait mode? It does appear on tablets in landscape mode. Side note: the colour of the tour tooltips are black with GM2+ styles, and this is an issue under investigation from UX because it should really be appearing as the primary green. I wanted to add that for accessibility when using the tab, arrow keys and enter, it's not obvious where you are on the tour, so hopefully the colour change will improve that. |
Just a note regarding the background colour of the feature tour, I have added a comment here #5254 (comment) for @aaemnnosttv to kindly review and add today please. |
QA Update: ✅@aaemnnosttv @tofumatt @eclarke1 There are a few issues but I do not feel that they impact bug bashing or are launch blockers:
Created ticket here and added to bug bash board.
Have added this to the bug bash board for discussion.
Other than these areas, this is good to go, so have approved. Verified:
|
Feature Description
In #5328, we added a basic feature tour for dashboard sharing which informs an authenticated admin about the added ability to share the dashboard with other users but does not elaborate on how to use it.
This issue is about extending this tour with additional steps to walk the user through the sharing settings interface and better explain how to share the dashboard and or delegate sharing management.
Do not alter or remove anything below. The following sections will be managed by moderators only.
Acceptance criteria
The feature tour for dashboard sharing should be extended as follows:
Manage view access for other roles
Grant access to the view-only dashboard for each service for the specific roles you want. Users will see the Site Kit dashboard with only the services that have been shared with them without needing to sign-in with Google.
Share management with other admins
By default only the user who connects a service can control who it is shared with. This setting optionally lets these users allow any other admin signed in with Google to manage the roles a service is shared with.
Note: these could technically be separate tours with shared steps, etc – it is not strictly required that everything is defined in a single tour.
Implementation Brief
DashboardSharingSettingsButton
to use theCORE_UI
store for thedialogOpen
state (e.g.dashboardSharingDialogOpen
)_googlesitekitDashboardSharingData
to include the value ofhasMultipleAdmins
fromHas_Multiple_Admins
dashboardSharingSettings
feature tourtarget
should use.googlesitekit-dashboard-sharing-settings__main .googlesitekit-dashboard-sharing-settings__column--view
to highlight the first row's user role select control_googlesitekitDashboardSharingData.hasMultipleAdmins
is true, the second step (corresponding to the "third" step in the ACs) should be included/appendedtarget
should use.googlesitekit-dashboard-sharing-settings__main .googlesitekit-dashboard-sharing-settings__column--manage
to highlight the first row's sharing management controlcontexts
for this tour should be omitted because it should not be triggered automatically by view context, but only by its inclusion in thedashboardSharing
tour or on its own, on-demanddashboardSharing
tour to import the newdashboardSharingSettings
tour definition, appending its steps to its owncallback
function to respond to the tour events appropriately:dashboardSharingDialogOpen
state to truedashboardSharingDialogOpen
state to falsedashboardSharingDialogOpen
is set to false againdashboardSharingSettings
tour when exiting the tourinitialState.currentTour
property, which should hold the definition of the current tour being shownselectors.getCurrentTour
(no arguments) that returns thestate.currentTour
actions.receiveCurrentTour
action that sets thestate.currentTour
actions.triggerTour
which takes atour
object and receives thecurrentTour
if there is none currently setactions.triggerTourForView(viewContext)
areFeatureToursOnCooldown
), the action should return early and do nothing elseviewContext
and check all the tours as we do now inresolvers.getFeatureToursForView
, and dispatchtriggerTour
with the firsttour
that qualifiesactions.triggerOnDemandTour(tour)
that checks the given tour's requirements (below) before dispatchingtriggerTour(tour)
:checkRequirements
function should returntrue
FeatureTours
to source the tour it passes toTourTooltips
via the newgetCurrentTour
selector onlyonMount
effect should be used to dispatchactions.triggerTourForView(viewContext)
to preserve the current behavior of invoking tours for the currentviewContext
selectors.getFeatureToursForView
and its resolver should no longer be necessaryactions.dismissTour
to unsetstate.currentTour
if the given tour slug matches the current tour's slugDashboardSharingSettingsButton
with auseEffect
totriggerOnDemandTour
with thedashboardSharingSettings
tour object when the dialog is openeddashboardSharing
tour will essentially trigger this as part of the changes here but the secondarytriggerTour
will have no effect because acurrentTour
will already be set/runningTest Coverage
core/user
data store.selectors.getCurrentTour
actions.receiveCurrentTour
actions.triggerTour(tour)
actions.triggerTourForView(viewContext)
actions.triggerOnDemandTour(tour)
actions.dismissTour
getFeatureToursForView
QA Brief
This issue extends the existing feature tour for dashboard sharing with additional steps to cover the sharing settings.
Changelog entry
The text was updated successfully, but these errors were encountered: