-
Notifications
You must be signed in to change notification settings - Fork 9
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
Add user tours in Advanced Settings #17
Conversation
Awesome feature 🚀 ❤️ One quick question, would it make sense to add a second plugin that activates this feature (aka loading the settings and adding the tours to the manager)? The idea behind is for admin to be able to deactivate this feature. |
Yeah, that's a good angle. |
Split into:
Took some doing, and did theoretically change the top level API, as it changed a number of concrete types to reference interfaces. |
Thanks a lot @bollwyvl This is really a nice structure improvement. For the type changes, it looks that the main change is the use of the interface Let me know when you are ready with this one. |
Cool, thanks for the review. Looks like i gotta fix some tests, which is fine, though I'll have to mock settingsmanager, probably, as it's not exactly a lightweight chain. I don't think the I ran into some issues with generating the schema, and can't find my hacked script... will try a little bit more this weekend. |
I think i am going to extract most of the changes to |
Yep, pretty happy with the new shape: it removes some weird timing things, etc. |
@fcollonval no more changes planned from this side, but happy to address any comments! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @bollwyvl
I have two minor comments. Then we are good to go.
"jupyterlab-tour:user-tours": true, | ||
"jupyterlab-tour:default-tours": true, | ||
} | ||
} | ||
``` | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What about adding the alternative with the command line. Something like
Alternatively, you can also use the following commands:
jupyter labextension disable "jupyterlab-tour:user-tours"
jupyter labextension disable "jupyterlab-tour:default-tours"
To enable the extension, use
jupyter labextension enable ...
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
good call, 66b0f95
Co-authored-by: Frédéric Collonval <[email protected]>
@fcollonval thanks, added both ideas. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks again for this great feature and the quick reply to the review.
boo test fail, looking... |
fix from cefa2d7 passes locally 🎉 |
Cool, thanks for the merge. No hurry on release, as we have a bunch of
plumbing on lite to do before being able to use it, but I'll subscribe to
releases... And no doubt have to make some issues.
Some things while tooling through the code base:
- automating joyride types to schema. Maybe there's a way to write some
subclasses that will hide the tricky parts
- specifying lab commands to run when various events. This has been very
helpful on jupyterlab-starters, and would give JSON workflows a little more
power.
- markdown. Being able to opt into some markdown (which might include
commandlinker links) for the step bodies would open a lot of opportunities
- xpath. The css selectors fall down on finding some lab things. I'd love
if selectors starting with / were interpreted as xpath selectors, seems
like a light transform.
These last three kinda quack like "middleware," which could be registered
by plugins and opted into in a tour definition in the settings/command
API... As these would not be part of the official types, they'd need a new
place in the schema, e.g. "extras" or "transformers," e.g. {"markdown":
true, "xpath": true, "commands": true} at the simplest, though they might
need configuration...
|
References
Task
react-joyride
to 2.3.0, remove third-party typingsPlacement
in steps (where it can also beauto
andcenter
)Follow-on
I started going down the rabbit hole of executing commands based on the signals... would be super fun, but we can easily push that to another PR.
Screens