Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upIssue with dynamic server-side steps' tooltip browser placement #16
Comments
|
Hi Matt, Thanks for the bug report. I will investigate this issue. Regards, |
|
As per @wch, "DOM element with the specified ID isn't necessarily the thing that's displayed", so that means you will need to use a different CSS selector for
The sliders contain spans with unique class names based on the order they appear so they can be selected that way. For selectizeInputs, you can select the element with class Let me know if this works for you. Kind Regards, |
|
This works very well! Thanks for the quick update. I have found some other issues that lead to intro elements continuing to be displayed in the wrong place and sometimes even highlighting a different steps' element while showing the intro tooltip near the correct element. Once I have a simplified example I can post that here under this tooltip placement problems issue, or would you prefer I create a separate issue since the causes seem like they may be unrelated to the cause here? I can try to make an example by perhaps slightly expanding the example you posted above. Thanks, |
|
When you get a chance please leave an example here, and I will investigate. |
|
Hi Carl, I have a working example I'll paste here. Unfortunately, it was supposed to be the non-working example, but I am having difficultly reproducing the problem. I wrote this up expecting it to do the same thing as the app I was originally experiencing the issue with. But this one works fine. I'm including it anyway because with the comments included you can see where I was going with it. This issue is with the callback function not working right, or maybe I am specifying it wrong, in my attempt to handle the user changing tab box tabs during a tour. But I cannot tell why it is working when my other app is not.
|
|
Oh, After comparing the two some more in the process of sharing the other app just now, I think I know what is happening, but not how to solve it. It looks like the widgets which get messed up are those wrapped in |
|
Got it. Replace the tabItem() in the above app.R file we've been working with. Use this:
I moved one selectInput into a conditional panel outside the tab box, to only display when tab box tab 1 is active. This causes the problem. My other app shows a more robust set of problems, if this turns out to be a nuanced issue. But using this code here creates the simplest reproduction of the problem. Matt |
|
I will investigate the bullets issue. What happens to the elements in the
Can you explain exactly what the problem is in the example app? When I run the tour it seems to go through all the steps correctly. |
|
It will go through steps correctly, but when the tab box title bar or individual tabs are highlighted for a tour step, the user can force a tab change. The callback function will correctly take the tab back to the correct tab when they change steps again. However, the containers in the browser for widgets wrapped in conditional panels like the selectInput I moved just a moment ago in my last post cannot be found. In our app.R file, if you change that tabItem to use the condition panel, then run the tour, then when you are on a step where you can change tabs, change to tab 2. Then once on tab 2, click the bullet (I think the 7th one?) the one that makes you jump to that selectInput that is inside a conditional panel. It will fail to display correctly even though the callback function to go back to tab one runs as it should. Let me know if that helps, |
|
Oh I misunderstood you regarding outputOptions. Was thinking about the other app. I will check that now. |
|
Ooohhhh I see.
Thanks a lot for the thorough bug report. |
|
Hmm, that's an input. It shouldn't be suspended. If it is, I am unsure how to force that unless I made all my inputs on the server side |
|
No problem. Thank you for your help. This is an outstanding package. If you need any more testing just let me know. Regards, |
|
Oh one last thing, which I think makes sense regarding the inputs being suspended. When you get a poorly placed tooltip or incorrectly highlighted widget area, simply resizing your browser window will cause it to update and fix itself. Funny behavior. |
|
Hey Matt, The issue with the I am still working on resolving the other issue. Regards, |
|
I can confirm hiding bullets now works as long as I specify as "showBullets"=FALSE, rather than using "false". Thanks for the fixes and updates. A separate issue that may or may not be related to this Github issue in general: I am noticing that something seems to get messed up with the z-index of the intro tooltips when using the back button or left arrow to go backward through the tour steps, but only when doing so from the final tour step. If I go backward from any other step in the tour, all earlier steps display properly, just as they had when stepping forward through the tour. But if the user reaches the final tour step and then goes "Back" instead of "Next" or "Done", all prior tooltips appear to highlight plain white rectangles. Some very faint content of widgets may be seen underneath (like with some R plots) but it is essentially whited out as though the tooltip is completely on top of what it is highlighting. Let me know if this is something you observe as well. I have updated to rintrojs_0.1.2.900 Regards, |
|
I can reproduce the issue. I have a suspicion that both issues are upstream with intro.js, but I haven't had a chance to create a reproducible example in pure JavaScript. Thanks again for the bug reports. This will all get fixed eventually. |
|
@leonawicz I sincerely apologize for the delay. I believe the issue is resolved now. Please try out the latest github version, and let me know if you are still having problems. Kind Regards, |
|
@carlganz Thanks. It seems resolved. I can no longer reproduce the issue. I've encountered a new problem after upgrading the package. However, I don't know if it is related for sure. Tour steps work properly over any type of container I set them to highlight, except for leaflet map output widgets. While I've often used leaflet maps in tours previously, now what happens when moving to a tour step that highlights a leaflet map (moving from previous or backward from the next step), is a large dark gray pixelated rectangle blob appears on the screen. It is large enough to encapsulate the combination of highlighted leaflet output widget and accompanying tour step text box. It eventually fades away on its own, slowly and seemingly randomly, but looks really unprofessional while still lingering on the screen. I can't figure out how I introduced this issue so I don't know how easy it is to reproduce. I only noticed it after upgrading the package but I can't tell how it may or may not be related to recent changes. I've tried wrapping the leaflet map in a separate div with unique id and referencing that for the tour step, among other things. I tried removing many other widgets from the app. All to no avail. I continue to get the strange dark gray artifact on the screen when highlighting a leaflet map. I don't notice anything when I inspect the page in the browser inspection tool either. To see what I mean, I have this example available for now but I won't be able to keep it live for long so please take a look soon. Thanks, |
|
Okay this is interesting. I just realized that the tour step works fine over the leaflet map if I press the "next" or "previous" buttons with my mouse. However, if I press the left or right arrow keys, which I prefer, only this method of tour step navigation leads to the transient gray blob! I'm now confirming this only happens in Firefox. It does not happen in Chrome. I seem to recall my installation of Firefox doing an auto update recently. I have version 54.0.1. So this makes more sense, in that it has nothing to do with the package and is probably a bug between Firefox and introjs? Still, I hope there is something that can be done, because a large fraction of users will use firefox + arrow keys and see a really ugly tour step- to the point that I'd prefer to not ever highlight the map in a tour if that is the case. |
|
Thanks for your feedback. I will try to reduce the leaflet/firefox issue to a MRE and file an issue upstream. |
Hi,
Are there any known issues with this dynamic approach and perhaps using shiny dashboard? I am having trouble uncovering why some types of widgets don't seem to get the proper div wrapper (if that is in fact the issue) when using this approach.
I have created a simplified example, which suggests the problem does not have to do with environments, modules, unique dashboard functions like tabBox, etc.
Here is a github gist and here is a live app demo. The plot intro is fine but the selectInput and sliderInput intros show up in the corner, I think because they are not getting wrapped in new divs as they would if I were using introBox() in ui.R instead.
My session info:
Thanks for checking into this, and thank you for this awesome package,
Matt