-
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
Improve experience with recoverable modules for view-only users #5376
Comments
Copying over Evan's comment from the asana ticket:
|
@aaemnnosttv what do you think if we update widgets to display a special state for recoverable modules instead of hiding widgets? In this case, a widget will say that the corresponding module has been configured by an admin that has disconnected his account and the module needs to be re-configured to continue showing their widgets. It will explain the problem and motivate users to reach out to their admins to re-configure the module. What do you think? |
@eugene-manuilov I think this is the best approach for now. |
Assigning back to @eugene-manuilov to please add AC |
Thanks, @aaemnnosttv. Does AC look good to you? |
Thanks @eugene-manuilov! This is a good start although this issue is specific to the experience for view-only users. For authenticated admins, they may have access themselves and on the backend if the module is recoverable, the request will be made with the current user's token instead of the owner. E.g. if SC was shared with admins and then became recoverable, all admins signed in with Google should still be able to see the data via their own access. Authenticated admins will already see the notice to recover any recoverable modules as well so we don't need to duplicate this information in the widgets as well. |
@aaemnnosttv I only have higher-level feedback on the IB: I'm wondering, shouldn't we rather make this So I think the per-module approach is more targeted and also better in line with the other special states we have so far which are typically per module. What do you think about that? |
@felixarntz The problem I see is that this component would replace a widget which doesn't necessarily have a 1:1 relationship with a module (even though most do). If we made it singular to one module, if a widget had multiple recoverable modules it makes sense to surface all of those dependencies, otherwise a user may recover a single module and then still not see the module they are trying to "unlock". Otherwise it could result in a kind of moving target. If a module isn't truly necessary for a widget to function, it probably shouldn't declare it in its
Each widget would only surface the recoverable modules it depends on, not all recoverable modules on the dashboard. Maybe that part wasn't clear? |
Ahh, that makes total sense. I hadn't thought about that a widget can be associated with multiple modules. If we only group them based on the modules that each individual widget is tied to, then this sounds good. IB ✅ |
Oh, looks like this is good to go into the backlog, maybe there was a Zenhub error here. I had a look over and this looks good though, so another IB ✅ |
Hi @aaemnnosttv, as I'm implementing this I've run into a slight hiccup with regard to the requirement to combine the widgets. At present the
However this issue introduces a new metadata item, a list of modules, I suspect we should amend Does this sound right to you? It seems fairly trivial but I didn't want to just go ahead with the change unilaterally as it's modifying the stated intent of the function, and there are also tests to consider... |
Thanks for raising this @techanvil – I think at one point the engine combined widgets based on equivalent In the interest of not increasing the scope here (and because most widgets have only a single module), I would suggest we join the widget's modules into a single |
Thanks @aaemnnosttv, sounds like a plan. Update: I have created a follow-up issue for the multiple modules case: #5466 |
Feature Description
Bug bash issue: https://app.asana.com/0/1202258919887896/1202445528223671 please refer to Asana issue for background
Improve the messaging & experience if an admin has connected a module, shared access, and then disconnects. If an admin has connected a module (ie. Analytics), shared view only access with other roles (include admins), and then disconnects they'll be presented with an option to "Set Up" Site Kit or to access "View only" data.
If they choose to only view the data they'll encounter the below message, which isn't the most suitable (screenshot):
Data error in Analytics
Site Kit can’t access the relevant data from Analytics because you haven’t granted all permissions requested during setup.
The reason is not suitable is that the user did provide access previously but they disconnected. They do actually have access to the Analytics property but they need to re-do the plugin setup, and there is no obvious link to do so (after choosing the "view only" dashboard).
The only way for the admin to re-do plugin set up is to click on the "View only" link and then "Sign in with Google" option. This isn't very obvious, and would likely lead to many admins resetting the plugin.
Recording of experience
Improved recording of experience - showing all 3 CTA's on the dashboard after disconnecting
Steps to recreate:
Related to #5354
Do not alter or remove anything below. The following sections will be managed by moderators only.
Acceptance criteria
Data Unavailable
state of the widget but has different title and message.Data Unavailable
{Module} data was previously shared by an admin who no longer has access. Please contact another admin to restore it.
The data for the following modules was previously shared by an admin who no longer has access: {Module1, Module2, ...}. Please contact another admin to restore it.
modules
and the current set of recoverable modulesImplementation Brief
RecoverableModules
component which takesmoduleSlugs
(string[]
module slugs) as a propCTA
with the title and message as defined in the AC informing about the recoverable modulesWidgetRecoverableModules
component, similar toWidgetReportError
which rendersRecoverableModules
(passing through its props to it) and uses theuseWidgetStateEffect
hook internally to set the widget state on mount usingRecoverableModules
as the component andmoduleSlugs
as themetadata
WidgetRenderer
to conditionally override thewidgetElement
with aWidgetRecoverableModules
ifwidget.modules
contains any recoverable modules, if so, passing the intersection of module slugs asprops.moduleSlugs
toWidgetRecoverableModules
useViewOnly
)RecoverableModules
to the list of special widget statesTest Coverage
QA Brief
dashboardSharing
feature flag.RecoverableModules
component:Changelog entry
The text was updated successfully, but these errors were encountered: