I have a scenario where I have a base page that opens a sliding panel. That sliding panel has a button and a page include. The button closes the sliding panel as expected with the “close all sliding panels” action. However… My included page also has a button. That button opens a sliding panel with the same basic set up of a button and a page include. The button in the second sliding panel is set to “close all sliding panels”, but it doesn’t work. I can think of a couple potential reasons why, but is there a way to work around this? Can I define a specific sliding panel by ID and close just that sliding panel regardless of the fact that it is launched from within a page include within a sliding panel?
Hi Raymond, we would like to take a look at the issue. Could you please provide a simple repro page and post the XML here? It sounds as if this is a visual issue only, so the page probably doesn’t need any data models. Please use UI-only models if possible.
Which Skuid version are you on?
Regards, Luzie & team
This requires two pages. This is the xml for the first page:
<skuidpage unsavedchangeswarning="yes" personalizationmode="server" showsidebar="true" useviewportmeta="true" showheader="true"> <models/> <components> <buttonset uniqueid="sk-1d6r-212"> <buttons> <button type="multi" label="Open Main Slider" uniqueid="sk-1d6r-218"> <actions> <action type="openSlidingPanel"> <panel title="Sliding Panel Contents" uniqueid="sk-1d6r-277" size="70%" origin="left" closeonpageclick="true" behavior="overlay"> <components> <includepanel type="skuid" uniqueid="sk-1d6r-283" pagename="SampleSliderIssue__Include"/> </components> </panel> </action> </actions> </button> </buttons> </buttonset> <richtext multiple="false" uniqueid="sk-1d6r-421"> <contents><p><span style="font-size:18px;">The Open Main Slider Button at upper right opens a slider with a page include. In that page include there is a button to open another slider. In that secondary slider there is a button to Close All Sliders. The close all sliders action doesn't work as one would expect by the name. Instead, it closes the Main Slider, but not the Secondary Slider. Preferrably, it would clost the secondary slider and not the main slider, but, due to the name of the button, it should probably close all sliders.</span></p> <p><span style="font-size:18px;">I would love to be able to close just the specific slider that opens from the button in the page include or an action similar to Close top-most pop up but for sliders.</span></p> </contents> </richtext> </components> <resources> <labels/> <javascript/> <css/> <actionsequences/> </resources> <styles> <styleitem type="background" bgtype="none"/> </styles> </skuidpage>
This is the XML for the second page:
<skuidpage unsavedchangeswarning="yes" personalizationmode="server" showsidebar="true" useviewportmeta="true" showheader="true"> <models/> <components> <buttonset uniqueid="sk-1d6r-212"> <buttons> <button type="multi" label="Open Secondary Slider" uniqueid="sk-1d6r-218"> <actions> <action type="openSlidingPanel"> <panel title="Sliding Panel Contents" uniqueid="sk-1d6r-277" size="270px" origin="left" closeonpageclick="true" behavior="overlay"> <components> <buttonset uniqueid="sk-1d7K-375"> <buttons> <button type="multi" label="Close All Sliders" uniqueid="sk-1d7K-380"> <actions> <action type="closeSlidingPanel"/> </actions> </button> </buttons> </buttonset> <wrapper uniqueid="sk-1d7K-331"> <components> <richtext multiple="false" uniqueid="sk-1d7K-342"> <contents><p>Stuff In The slider</p> </contents> </richtext> </components> <styles> <styleitem type="background"/> <styleitem type="border"/> <styleitem type="size"/> </styles> </wrapper> </components> </panel> </action> </actions> </button> </buttons> </buttonset> </components> <resources> <labels/> <javascript/> <css/> <actionsequences/> </resources> <styles> <styleitem type="background" bgtype="none"/> </styles> </skuidpage>
This requires two pages. This is the xml for the first page:
<p><span style="font-size:18px;">The &quot;Open Main Slider&quot; Button at upper right opens a slider with a page include. In that page include there is a button to open another slider. In that secondary slider there is a button to &quot;Close All Sliders&quot;. The close all sliders action doesn&#39;t work as one would expect by the name. Instead, it closes the Main Slider, but not the Secondary Slider.&nbsp;Preferrably, it would clost the secondary slider and not the main slider, but, due to the name of the button, it should probably close all sliders.&nbsp;</span></p>
<p><span style=“font-size:18px;”>I would love to be able to close just the specific slider that opens from the button in the page include or an action similar to &quot;Close top-most pop up&quot; but for sliders.&nbsp;</span></p>
This is the XML for the second page:
<p>Stuff In The slider</p>
I am running Skuid 11.1.11
Hi Raymond, those are great repro pages, thank you very much! It seems like there might be a product defect in the actions to close Sliding Panels when PageIncludes are involved, I’ll keep on investigating. Regarding your question “How can I close just the second sliding panel from a button in the second sliding panel.” that should work if you change the button behaviour to “Close topmost”.
Also regarding the first Sliding Panel, you should be able to keep using your Page Include, but try adding a button to close the Sliding Panel below the Page Include component, so that the button is in the first Sliding Panel directly, outside of the Page Include component. Use behaviour “Close all”, that worked in my test.
Does that work for you? Please note that I tested in Skuid version 12.1.5, which is the latest release.
In v11 see a “close topmost popup” action. Are you saying that fowls for sliding panels too? Or in v12 is there a “close topmost” action that is different from “close topmost popup”?
In 12.1.5 there is an action type “Close Sliding Panel” and you can choose from two different behaviours, “Close all” or “Close topmost”
As a reminder, Salesforce does NOT allow reverting back to prior versions of managed packages. Skuid always recommends installing new versions in a non-business critical sandbox environment to test all mission critical functionality before installing into a production environment. We also recommend that you update out of date themes after you upgraded.
Reply
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.