Conditions Failing

  • 2
  • Problem
  • Updated 1 year ago
  • Solved
I have a field that is conditioned to show when a reference field is null.  I open the collapsible wrapper and it works.  If I close the collapsible wrapper and open collapsible wrapper, the conditioning no longer works.
https://drive.google.com/file/d/0B409lhd9sYDcT0VIMmcyTW9xaGM/view?usp=drivesdk
Photo of Bill Fox

Bill Fox

  • 7,954 Points 5k badge 2x thumb

Posted 1 year ago

  • 2
Photo of Mark DeSimone

Mark DeSimone, Official Rep

  • 11,050 Points 10k badge 2x thumb
Hi Bill - I looked at your video. if you're conditionally rendering something based on whether a field value is null or not, and opening/closing the collapsible wrapper empties out the field, that empty field may not show as 'null' but empty instead. In other words, null would be undefined, while empty would be defined, and empty. If that's the case, you may just need to add a second render condition so that the render conditions look for either null or empty. 
Photo of Bill Fox

Bill Fox

  • 7,954 Points 5k badge 2x thumb
I tried your recommendation.  It seems that I must not be conditioning the collapsible wrapper.  When opening a second time, the field is blank because I do the following when collapsing and opening.


(Edited)
Photo of Bill Fox

Bill Fox

  • 7,954 Points 5k badge 2x thumb
I have recreated with accounts and contacts:
<skuidpage unsavedchangeswarning="yes" personalizationmode="server" useviewportmeta="true" showsidebar="false" showheader="false" tabtooverride="Contact" theme="FOXmls">
    <models>
        <model id="TempEgagement_Offer" limit="1" query="false" createrowifnonefound="false" datasource="salesforce" type="" sobject="Contact" doclone="" forview="true">
            <fields>
                <field id="Id"/>
                <field id="Name"/>
                <field id="AccountId"/>
                <field id="Account.Name"/>
                <field id="Account.Id"/>
                <field id="Account.MasterRecordId"/>
                <field id="Account.MasterRecord.Name"/>
                <field id="Account.MasterRecord.Id"/>
            </fields>
            <conditions/>
            <actions/>
        </model>
    </models>
    <components>
        <grid uniqueid="sk-3KZxI6-152">
            <divisions>
                <division behavior="flex" minwidth="100px" ratio="1">
                    <components>
                        <tfg__collapsiblewrapper title="&lt;div class=&quot;LEO_hdrMenuOption&quot;&gt;{{#IsBuildingDNAOpen}}Add Member to {{Connected_Engagement__r.DNA__c}} (Open){{/IsBuildingDNAOpen}}{{^IsBuildingDNAOpen}}Add Member to {{Connected_Engagement__r.DNA__c}} (Collapse){{/IsBuildingDNAOpen}}&lt;/div&gt;" showheader="yes" collapsible="collapsed" deferrenderingcontents="true" uniqueid="sk-3KZzeP-157" clickableheader="true" model="EngagementOfferDNA_Selected">
                            <components>
                                <grid uniqueid="sk-2k6xr0-1163">
                                    <divisions>
                                        <division behavior="flex" minwidth="100px" ratio="1">
                                            <components>
                                                <grid uniqueid="sk-1xfm8O-268">
                                                    <divisions>
                                                        <division behavior="flex" minwidth="300px" ratio="1" verticalalign="top">
                                                            <components>
                                                                <basicfieldeditor showheader="true" showsavecancel="false" showerrorsinline="true" model="TempEgagement_Offer" buttonposition="" uniqueid="sk-1xftgw-283" mode="edit" layout="above">
                                                                    <columns layoutmode="responsive" columngutter="4px" rowgutter="4px">
                                                                        <column ratio="1" minwidth="300px" behavior="flex" verticalalign="top">
                                                                            <sections>
                                                                                <section title="Section A" collapsible="no" showheader="false">
                                                                                    <fields>
                                                                                        <field id="AccountId" valuehalign="" type="" optionsource="" pagesize="5" required="true">
                                                                                            <renderconditions logictype="and" onhidedatabehavior="keep"/>
                                                                                            <enableconditions/>
                                                                                            <searchfields/>
                                                                                            <filters/>
                                                                                        </field>
                                                                                    </fields>
                                                                                </section>
                                                                            </sections>
                                                                        </column>
                                                                    </columns>
                                                                </basicfieldeditor>
                                                            </components>
                                                        </division>
                                                        <division behavior="flex" verticalalign="top" minwidth="300px" ratio="1">
                                                            <components>
                                                                <grid uniqueid="sk-2AQw96-1002">
                                                                    <divisions>
                                                                        <division behavior="flex" minwidth="100px" ratio="1">
                                                                            <components>
                                                                                <richtext multiple="false" uniqueid="sk-3KhtF5-574">
                                                                                    <contents>&lt;p&gt;If the member does not exist, then add it here. &amp;nbsp;Then search again.&lt;/p&gt;
</contents>
                                                                                    <renderconditions logictype="and"/>
                                                                                </richtext>
                                                                                <buttonset model="TempEgagement_Offer" uniqueid="sk-29DabF-443" position="left">
                                                                                    <buttons>
                                                                                        <button type="multi" label="Add New Member" icon="sk-icon-add">
                                                                                            <actions>
                                                                                                <action type="showPopup">
                                                                                                    <popup title="" width="90%">
                                                                                                        <components>
                                                                                                            <tfg__popupcontroller uniqueid="sk-29EGUt-523" hideclose="true" disableescape="true"/>
                                                                                                            <grid uniqueid="sk-29Dv9c-485">
                                                                                                                <divisions>
                                                                                                                    <division behavior="flex" minwidth="100px" ratio="1" verticalalign="top">
                                                                                                                        <components>
                                                                                                                            <buttonset model="TempEgagement_Offer" uniqueid="sk-29DvkL-490" position="left">
                                                                                                                                <buttons>
                                                                                                                                    <button type="multi" label="Close" icon="sk-icon-close">
                                                                                                                                        <actions>
                                                                                                                                            <action type="closeTopmostPopup"/>
                                                                                                                                        </actions>
                                                                                                                                    </button>
                                                                                                                                </buttons>
                                                                                                                            </buttonset>
                                                                                                                            <includepanel type="skuid" uniqueid="sk-29DxfD-493" pagename="RM1_Member" module=""/>
                                                                                                                        </components>
                                                                                                                    </division>
                                                                                                                </divisions>
                                                                                                                <styles>
                                                                                                                    <styleitem type="background" bgtype="none"/>
                                                                                                                </styles>
                                                                                                            </grid>
                                                                                                        </components>
                                                                                                    </popup>
                                                                                                </action>
                                                                                            </actions>
                                                                                        </button>
                                                                                    </buttons>
                                                                                    <renderconditions logictype="and"/>
                                                                                </buttonset>
                                                                            </components>
                                                                        </division>
                                                                    </divisions>
                                                                    <styles>
                                                                        <styleitem type="background" bgtype="none"/>
                                                                    </styles>
                                                                    <renderconditions logictype="and">
                                                                        <rendercondition type="blank" operator="=" fieldmodel="TempEgagement_Offer" sourcetype="fieldvalue" nosourcerowbehavior="deactivate" field="AccountId" value="null" enclosevalueinquotes="false"/>
                                                                    </renderconditions>
                                                                </grid>
                                                            </components>
                                                        </division>
                                                    </divisions>
                                                    <styles>
                                                        <styleitem type="background" bgtype="none"/>
                                                    </styles>
                                                    <renderconditions logictype="and"/>
                                                </grid>
                                            </components>
                                        </division>
                                    </divisions>
                                    <styles>
                                        <styleitem type="background" bgtype="none"/>
                                    </styles>
                                    <renderconditions logictype="and"/>
                                </grid>
                            </components>
                            <styles>
                                <styleitem type="background"/>
                                <styleitem type="border"/>
                                <styleitem type="size"/>
                            </styles>
                            <onbeforefirstopenactions/>
                            <onafterfirstopenactions/>
                            <onbeforeopenactions>
                                <action type="emptyModelData">
                                    <models>
                                        <model>TempEgagement_Offer</model>
                                    </models>
                                </action>
                                <action type="createRow" model="TempEgagement_Offer" appendorprepend="prepend" defaultmodefornewitems="edit" affectedrows="context">
                                    <defaults/>
                                </action>
                            </onbeforeopenactions>
                            <onafteropenactions/>
                            <onbeforecloseactions/>
                            <onaftercloseactions/>
                            <renderconditions logictype="and"/>
                        </tfg__collapsiblewrapper>
                    </components>
                </division>
            </divisions>
            <styles>
                <styleitem type="background" bgtype="none"/>
            </styles>
            <renderconditions logictype="and"/>
        </grid>
    </components>
    <resources>
        <labels/>
        <css/>
        <javascript>
            <jsitem location="external" name="closeCWFromInsideCW" cachelocation="false" url="https://dorothy.com/LEO/closeCWFromInsideCW.js">var params = arguments[0],
$ = skuid.$;
</jsitem>
        </javascript>
    </resources>
    <styles>
        <styleitem type="background" bgtype="none"/>
    </styles>
</skuidpage>
Photo of Barry Schnell

Barry Schnell, Champion

  • 18,076 Points 10k badge 2x thumb
Hi Bill -

Thanks for creating the repro using stock objects, this made it much easier to track down.  As I mentioned in in our email, the issue you are having does not have anything to do with the CW.  In short, you are encountering a skuid bug unfortunately.

I took your sample page and further simplified it.  First, I eliminated the theme of FoxMLS and also remove the JS that was referenced.  From there, i then eliminated the CW and a few other components to get to a bare bones repro.  The goal with any repro is to eliminate as many layers as possible to reduce the surface area for troubleshooting.

Below, you will find a simplified page that encounters the issue you are facing.  The issue stems from the "Remove All Rows" action.  There are several other community posts that are logged against unexpected behavior that components have when that action is invoked.  Some of those issues were fixed recently but unfortunately, it appears that some still remain.  Here is a link to the one I had logged against button sets specifically - https://community.skuid.com/skuid/topics/-remove-all-rows-in-model-action-breaks-conditional-renderi....  I had logged a few others against other components as well.  

** Note ** - The repro below identifies three (3) skuid bugs. across two different components - responsive grid & button sets

Using the page below, here are the steps to reproduce.  The repro is using skuid 10.0.1.

I'll leave it to the Skuid team to take it form here:

Steps to reproduce;
1) Create page using XML below
2) preview page

Expected behavior = Actual behavior
"Add New member' button is visible
"Say hi" button is visible

3) Select an Account

Expected Behavior = Actual behavior
"Add New Member' is not visible
"Say hi" is not visible

4) Clear the account field

** BUG #1 **
Expected Behavior
"Add new Member' is visible
"Say hi' is visible

Actual Behavior
"Add new Member" is visible
"Say hi" is NOT visible

5) Refresh the page
Expected behavior = Actual behavior
"Add New member' button is visible
"Say hi" button is visible

6) Select an Account

Expected Behavior = Actual behavior
"Add New Member' is not visible
"Say hi" is not visible

7) Click 'start over' (this mimicks what you had the CW doing)

** BUG #2 **
Expected Behavior
"Add new member" is visible
"Say hi" is visible

Actual behavior
"Add new member" is visible
"Say hi" is NOT visible


** BUG #3 **
8) Select an account
Expected Behavior
"Add new member" is NOT visible
"Say hi" is NOT visible

Actual Behavior
"Add new member" is visible
"Say hi' is NOT visible

Sample Page xml
<skuidpage unsavedchangeswarning="yes" personalizationmode="server" useviewportmeta="true" showsidebar="false" showheader="false" tabtooverride="Contact">
    <models>
        <model id="TempEgagement_Offer" limit="1" query="false" createrowifnonefound="false" datasource="salesforce" type="" sobject="Contact" doclone="" forview="true">
            <fields>
                <field id="Id"/>
                <field id="Name"/>
                <field id="AccountId"/>
                <field id="Account.Name"/>
                <field id="Account.Id"/>
                <field id="Account.MasterRecordId"/>
                <field id="Account.MasterRecord.Name"/>
                <field id="Account.MasterRecord.Id"/>
            </fields>
            <conditions/>
            <actions/>
        </model>
    </models>
    <components>
        <grid uniqueid="sk-3KZxI6-152">
            <divisions>
                <division behavior="flex" minwidth="100px" ratio="1">
                    <components>
                        <tfg__collapsiblewrapper title="&lt;div class=&quot;LEO_hdrMenuOption&quot;&gt;{{#IsBuildingDNAOpen}}Add Member to {{Connected_Engagement__r.DNA__c}} (Open){{/IsBuildingDNAOpen}}{{^IsBuildingDNAOpen}}Add Member to {{Connected_Engagement__r.DNA__c}} (Collapse){{/IsBuildingDNAOpen}}&lt;/div&gt;" showheader="yes" collapsible="collapsed" deferrenderingcontents="true" uniqueid="sk-3KZzeP-157" clickableheader="true" model="EngagementOfferDNA_Selected">
                            <components>
                                <grid uniqueid="sk-2k6xr0-1163">
                                    <divisions>
                                        <division behavior="flex" minwidth="100px" ratio="1">
                                            <components>
                                                <grid uniqueid="sk-1xfm8O-268">
                                                    <divisions>
                                                        <division behavior="flex" minwidth="300px" ratio="1" verticalalign="top">
                                                            <components>
                                                                <basicfieldeditor showheader="true" showsavecancel="false" showerrorsinline="true" model="TempEgagement_Offer" buttonposition="" uniqueid="sk-1xftgw-283" mode="edit" layout="above">
                                                                    <columns layoutmode="responsive" columngutter="4px" rowgutter="4px">
                                                                        <column ratio="1" minwidth="300px" behavior="flex" verticalalign="top">
                                                                            <sections>
                                                                                <section title="Section A" collapsible="no" showheader="false">
                                                                                    <fields>
                                                                                        <field id="AccountId" valuehalign="" type="" optionsource="" pagesize="5" required="true" uniqueid="sk-31d7WX-85">
                                                                                            <renderconditions logictype="and" onhidedatabehavior="keep"/>
                                                                                            <enableconditions/>
                                                                                            <searchfields/>
                                                                                            <filters/>
                                                                                        </field>
                                                                                    </fields>
                                                                                </section>
                                                                            </sections>
                                                                        </column>
                                                                    </columns>
                                                                </basicfieldeditor>
                                                            </components>
                                                        </division>
                                                        <division behavior="flex" verticalalign="top" minwidth="300px" ratio="1">
                                                            <components>
                                                                <grid uniqueid="sk-2AQw96-1002">
                                                                    <divisions>
                                                                        <division behavior="flex" minwidth="100px" ratio="1">
                                                                            <components>
                                                                                <richtext multiple="false" uniqueid="sk-3KhtF5-574">
                                                                                    <contents>&lt;p&gt;If the member does not exist, then add it here. &amp;nbsp;Then search again.&lt;/p&gt;
</contents>
                                                                                    <renderconditions logictype="and"/>
                                                                                </richtext>
                                                                                <buttonset model="TempEgagement_Offer" uniqueid="sk-29DabF-443" position="left">
                                                                                    <buttons>
                                                                                        <button type="multi" label="Add New Member" icon="sk-icon-add" uniqueid="sk-31d7YA-93">
                                                                                            <actions>
                                                                                                <action type="showPopup">
                                                                                                    <popup title="" width="90%">
                                                                                                        <components>
                                                                                                            <tfg__popupcontroller uniqueid="sk-29EGUt-523" hideclose="true" disableescape="true"/>
                                                                                                            <grid uniqueid="sk-29Dv9c-485">
                                                                                                                <divisions>
                                                                                                                    <division behavior="flex" minwidth="100px" ratio="1" verticalalign="top">
                                                                                                                        <components>
                                                                                                                            <buttonset model="TempEgagement_Offer" uniqueid="sk-29DvkL-490" position="left">
                                                                                                                                <buttons>
                                                                                                                                    <button type="multi" label="Close" icon="sk-icon-close">
                                                                                                                                        <actions>
                                                                                                                                            <action type="closeTopmostPopup"/>
                                                                                                                                        </actions>
                                                                                                                                    </button>
                                                                                                                                </buttons>
                                                                                                                            </buttonset>
                                                                                                                            <includepanel type="skuid" uniqueid="sk-29DxfD-493" pagename="RM1_Member" module=""/>
                                                                                                                        </components>
                                                                                                                    </division>
                                                                                                                </divisions>
                                                                                                                <styles>
                                                                                                                    <styleitem type="background" bgtype="none"/>
                                                                                                                </styles>
                                                                                                            </grid>
                                                                                                        </components>
                                                                                                    </popup>
                                                                                                </action>
                                                                                            </actions>
                                                                                        </button>
                                                                                    </buttons>
                                                                                    <renderconditions logictype="and"/>
                                                                                </buttonset>
                                                                            </components>
                                                                        </division>
                                                                    </divisions>
                                                                    <styles>
                                                                        <styleitem type="background" bgtype="none"/>
                                                                    </styles>
                                                                    <renderconditions logictype="and">
                                                                        <rendercondition type="blank" operator="=" fieldmodel="TempEgagement_Offer" sourcetype="fieldvalue" nosourcerowbehavior="deactivate" field="AccountId" value="null" enclosevalueinquotes="false"/>
                                                                    </renderconditions>
                                                                </grid>
                                                            </components>
                                                        </division>
                                                    </divisions>
                                                    <styles>
                                                        <styleitem type="background" bgtype="none"/>
                                                    </styles>
                                                    <renderconditions logictype="and"/>
                                                </grid>
                                            </components>
                                        </division>
                                    </divisions>
                                    <styles>
                                        <styleitem type="background" bgtype="none"/>
                                    </styles>
                                    <renderconditions logictype="and"/>
                                </grid>
                            </components>
                            <styles>
                                <styleitem type="background"/>
                                <styleitem type="border"/>
                                <styleitem type="size"/>
                            </styles>
                            <onbeforefirstopenactions/>
                            <onafterfirstopenactions/>
                            <onbeforeopenactions>
                                <action type="emptyModelData">
                                    <models>
                                        <model>TempEgagement_Offer</model>
                                    </models>
                                </action>
                                <action type="createRow" model="TempEgagement_Offer" appendorprepend="prepend" defaultmodefornewitems="edit" affectedrows="context">
                                    <defaults/>
                                </action>
                            </onbeforeopenactions>
                            <onafteropenactions/>
                            <onbeforecloseactions/>
                            <onaftercloseactions/>
                            <renderconditions logictype="and"/>
                        </tfg__collapsiblewrapper>
                    </components>
                </division>
            </divisions>
            <styles>
                <styleitem type="background" bgtype="none"/>
            </styles>
            <renderconditions logictype="and"/>
        </grid>
    </components>
    <resources>
        <labels/>
        <css/>
        <javascript/>
    </resources>
    <styles>
        <styleitem type="background" bgtype="none"/>
    </styles>
</skuidpage>
(Edited)
Photo of Mark DeSimone

Mark DeSimone, Official Rep

  • 11,050 Points 10k badge 2x thumb
Hello Bill and Barry, Thank you both for taking the time to illustrate this. It looks like both of your XML pages are using the collapsible wrapper. Barry, might you have meant to post a version of your reproduction page that didn't make use of this custom component?
(Edited)
Photo of Barry Schnell

Barry Schnell, Champion

  • 18,076 Points 10k badge 2x thumb
Sorry Mark, copy/pasted the wrong page.  Here is the version that reflects the above steps to reproduce:

<skuidpage unsavedchangeswarning="yes" personalizationmode="server" useviewportmeta="true" showsidebar="false" showheader="false" tabtooverride="Contact">
    <models>
        <model id="TempEgagement_Offer" limit="1" query="false" createrowifnonefound="true" datasource="salesforce" type="" sobject="Contact" doclone="" forview="true">
            <fields>
                <field id="Id"/>
                <field id="Name"/>
                <field id="AccountId"/>
                <field id="Account.Name"/>
                <field id="Account.Id"/>
                <field id="Account.MasterRecordId"/>
                <field id="Account.MasterRecord.Name"/>
                <field id="Account.MasterRecord.Id"/>
            </fields>
            <conditions/>
            <actions/>
        </model>
    </models>
    <components>
<pagetitle model="TempEgagement_Offer" uniqueid="sk-31baBM-140">
    <maintitle>
        <template>{{Name}}</template>
    </maintitle>
    <subtitle>
        <template>{{Model.label}}</template>
    </subtitle>
    <actions>
        <action type="multi" label="Start Over" uniqueid="sk-31d2GG-75">
            <actions>
                <action type="emptyModelData">
                    <models>
                        <model>TempEgagement_Offer</model>
                    </models>
                </action>
                <action type="createRow" model="TempEgagement_Offer" appendorprepend="prepend" defaultmodefornewitems="edit" affectedrows="context"/>
            </actions>
        </action>
    </actions>
</pagetitle>
        <grid uniqueid="sk-3KZxI6-152">
            <divisions>
                <division behavior="flex" minwidth="100px" ratio="1">
                    <components>
<basicfieldeditor showheader="true" showsavecancel="false" showerrorsinline="true" model="TempEgagement_Offer" buttonposition="" uniqueid="sk-1xftgw-283" mode="edit" layout="above">
                                                                    <columns layoutmode="responsive" columngutter="4px" rowgutter="4px">
                                                                        <column ratio="1" minwidth="300px" behavior="flex" verticalalign="top">
                                                                            <sections>
                                                                                <section title="Section A" collapsible="no" showheader="false">
                                                                                    <fields>
                                                                                        <field id="AccountId" valuehalign="" type="" optionsource="" pagesize="5" required="true" uniqueid="sk-31d2Gc-83">
                                                                                            <renderconditions logictype="and" onhidedatabehavior="keep"/>
                                                                                            <enableconditions/>
                                                                                            <searchfields/>
                                                                                            <filters/>
                                                                                        </field>
                                                                                    </fields>
                                                                                </section>
                                                                            </sections>
                                                                        </column>
                                                                    </columns>
                                                                </basicfieldeditor>
                        
                    </components>
                </division>
            <division behavior="flex" verticalalign="top" minwidth="100px" ratio="1">
<components>
    <grid uniqueid="sk-31dHrZ-109">
        <divisions>
            <division behavior="flex" minwidth="100px" ratio="1">
                <components>
                    <buttonset model="TempEgagement_Offer" uniqueid="sk-29DabF-443" position="left">
                                                                                    <buttons>
                                                                                        <button type="multi" label="Add New Member" icon="sk-icon-add" uniqueid="sk-31d2Go-87">
                                                                                            <actions>
                                                                                                <action type="showPopup">
                                                                                                    <popup title="" width="90%">
                                                                                                        <components>
                                                                                                            <tfg__popupcontroller uniqueid="sk-29EGUt-523" hideclose="true" disableescape="true"/>
                                                                                                            <grid uniqueid="sk-29Dv9c-485">
                                                                                                                <divisions>
                                                                                                                    <division behavior="flex" minwidth="100px" ratio="1" verticalalign="top">
                                                                                                                        <components>
                                                                                                                            <buttonset model="TempEgagement_Offer" uniqueid="sk-29DvkL-490" position="left">
                                                                                                                                <buttons>
                                                                                                                                    <button type="multi" label="Close" icon="sk-icon-close">
                                                                                                                                        <actions>
                                                                                                                                            <action type="closeTopmostPopup"/>
                                                                                                                                        </actions>
                                                                                                                                    </button>
                                                                                                                                </buttons>
                                                                                                                            </buttonset>
                                                                                                                            <includepanel type="skuid" uniqueid="sk-29DxfD-493" pagename="RM1_Member" module=""/>
                                                                                                                        </components>
                                                                                                                    </division>
                                                                                                                </divisions>
                                                                                                                <styles>
                                                                                                                    <styleitem type="background" bgtype="none"/>
                                                                                                                </styles>
                                                                                                            </grid>
                                                                                                        </components>
                                                                                                    </popup>
                                                                                                </action>
                                                                                            </actions>
                                                                                        </button>
                                                                                    </buttons>
                                                                                    <renderconditions logictype="or"/>
                                                                                </buttonset>
                </components>
            </division>
        </divisions>
        <styles>
            <styleitem type="background" bgtype="none"/>
        </styles>
        <renderconditions logictype="or">
            <rendercondition type="blank" operator="=" fieldmodel="TempEgagement_Offer" sourcetype="fieldvalue" nosourcerowbehavior="deactivate" field="AccountId" fieldtargetobjects="Account" value="null" enclosevalueinquotes="false"/>
            <rendercondition type="fieldvalue" operator="=" enclosevalueinquotes="true" fieldmodel="TempEgagement_Offer" sourcetype="fieldvalue" nosourcerowbehavior="deactivate" field="AccountId" fieldtargetobjects="Account"/>
        </renderconditions>
    </grid>
    <buttonset uniqueid="sk-31dzOP-141" model="TempEgagement_Offer" position="left">
        <buttons>
            <button type="multi" label="Say hi" uniqueid="sk-31d_T2-146">
                <actions>
                    <action type="blockUI" message="Hello" timeout="1000"/>
                </actions>
            </button>
        </buttons>
        <renderconditions logictype="or">
            <rendercondition type="blank" operator="=" fieldmodel="TempEgagement_Offer" sourcetype="fieldvalue" nosourcerowbehavior="deactivate" field="AccountId" fieldtargetobjects="Account" value="null" enclosevalueinquotes="false"/>
            <rendercondition type="fieldvalue" operator="=" enclosevalueinquotes="true" fieldmodel="TempEgagement_Offer" sourcetype="fieldvalue" nosourcerowbehavior="deactivate" field="AccountId" fieldtargetobjects="Account"/>
        </renderconditions>
    </buttonset>
</components>
</division>
</divisions>
            <styles>
                <styleitem type="background" bgtype="none"/>
            </styles>
            <renderconditions logictype="and"/>
        </grid>
    </components>
    <resources>
        <labels/>
        <css/>
        <javascript>
            
        </javascript>
    </resources>
    <styles>
        <styleitem type="background" bgtype="none"/>
    </styles>
</skuidpage>
Photo of Mark DeSimone

Mark DeSimone, Official Rep

  • 11,050 Points 10k badge 2x thumb
Thanks again - this is very helpful. 

I wanted to share back the same XML with one additional button added, which itself has conditional rendering. This button's rendering conditions match what was on the Button Set and Responsive Grid, and the button looks to be rendered/unrendered as expected. I also found that the issue seems to only occur when changes involve blank or null values. A render condition that looks for a specific AccountId, for example will work as expected. 

I will bring this to the attention of our developers, and we will update this conversation when a fix is available. I hope that the information I shared above is helpful in looking for a workaround. I also wanted to point out that the responsive grid in Barry's example does appear to render/unrender its contents as expected, so enclosing your button sets and other content inside a responsive grid which is conditionally rendered should enable the desired behavior. 
<skuidpage unsavedchangeswarning="yes" personalizationmode="server" useviewportmeta="true" showsidebar="false" showheader="false" tabtooverride="Contact">
    <models>
        <model id="TempEgagement_Offer" limit="1" query="false" createrowifnonefound="true" datasource="salesforce" type="" sobject="Contact" doclone="" forview="true">
            <fields>
                <field id="Id"/>
                <field id="Name"/>
                <field id="AccountId"/>
                <field id="Account.Name"/>
                <field id="Account.Id"/>
                <field id="Account.MasterRecordId"/>
                <field id="Account.MasterRecord.Name"/>
                <field id="Account.MasterRecord.Id"/>
            </fields>
            <conditions/>
            <actions/>
        </model>
    </models>
    <components>
<pagetitle model="TempEgagement_Offer" uniqueid="sk-31baBM-140">
    <maintitle>
        <template>{{Name}}</template>
    </maintitle>
    <subtitle>
        <template>{{Model.label}}</template>
    </subtitle>
    <actions>
        <action type="multi" label="Start Over" uniqueid="sk-31d2GG-75">
            <actions>
                <action type="emptyModelData">
                    <models>
                        <model>TempEgagement_Offer</model>
                    </models>
                </action>
                <action type="createRow" model="TempEgagement_Offer" appendorprepend="prepend" defaultmodefornewitems="edit" affectedrows="context"/>
            </actions>
        </action>
    </actions>
</pagetitle>
        <grid uniqueid="sk-3KZxI6-152">
            <divisions>
                <division behavior="flex" minwidth="100px" ratio="1">
                    <components>
<basicfieldeditor showheader="true" showsavecancel="false" showerrorsinline="true" model="TempEgagement_Offer" buttonposition="" uniqueid="sk-1xftgw-283" mode="edit" layout="above">
                                                                    <columns layoutmode="responsive" columngutter="4px" rowgutter="4px">
                                                                        <column ratio="1" minwidth="300px" behavior="flex" verticalalign="top">
                                                                            <sections>
                                                                                <section title="Section A" collapsible="no" showheader="false">
                                                                                    <fields>
                                                                                        <field id="AccountId" valuehalign="" type="" optionsource="" pagesize="5" required="true" uniqueid="sk-31d2Gc-83" redirecttype="datasourcedefault">
                                                                                            <renderconditions logictype="and" onhidedatabehavior="keep"/>
                                                                                            <enableconditions/>
                                                                                            <searchfields/>
                                                                                            <filters/>
                                                                                        </field>
                                                                                    </fields>
                                                                                </section>
                                                                            </sections>
                                                                        </column>
                                                                    </columns>
                                                                </basicfieldeditor>
<buttonset uniqueid="sk-37jKwH-180" model="TempEgagement_Offer">
    <buttons>
        <button type="multi" label="This Button is conditionally rendered" uniqueid="sk-37jLEW-185">
            <renderconditions logictype="or">
                <rendercondition type="blank" operator="=" fieldmodel="TempEgagement_Offer" sourcetype="fieldvalue" field="AccountId" fieldtargetobjects="Account" value="null" enclosevalueinquotes="false"/>
                <rendercondition type="fieldvalue" operator="=" enclosevalueinquotes="true" fieldmodel="TempEgagement_Offer" sourcetype="fieldvalue" field="AccountId" fieldtargetobjects="Account"/>
            </renderconditions>
            <enableconditions/>
        </button>
    </buttons>
</buttonset>
                        
                    </components>
                </division>
            <division behavior="flex" verticalalign="top" minwidth="100px" ratio="1">
<components>
    <grid uniqueid="sk-31dHrZ-109">
        <divisions>
            <division behavior="flex" minwidth="100px" ratio="1">
                <components>
                    <buttonset model="TempEgagement_Offer" uniqueid="sk-29DabF-443" position="left">
                                                                                    <buttons>
                                                                                        <button type="multi" label="Add New Member" icon="sk-icon-add" uniqueid="sk-31d2Go-87">
                                                                                            <actions>
                                                                                                <action type="showPopup">
                                                                                                    <popup title="" width="90%">
                                                                                                        <components>
                                                                                                            
                                                                                                            <grid uniqueid="sk-29Dv9c-485">
                                                                                                                <divisions>
                                                                                                                    <division behavior="flex" minwidth="100px" ratio="1" verticalalign="top">
                                                                                                                        <components>
                                                                                                                            <buttonset model="TempEgagement_Offer" uniqueid="sk-29DvkL-490" position="left">
                                                                                                                                <buttons>
                                                                                                                                    <button type="multi" label="Close" icon="sk-icon-close" uniqueid="sk-37gyHM-143">
                                                                                                                                        <actions>
                                                                                                                                            <action type="closeTopmostPopup"/>
                                                                                                                                        </actions>
                                                                                                                                    </button>
                                                                                                                                </buttons>
                                                                                                                            </buttonset>
                                                                                                                            <includepanel type="skuid" uniqueid="sk-29DxfD-493" pagename="RM1_Member" module=""/>
                                                                                                                        </components>
                                                                                                                    </division>
                                                                                                                </divisions>
                                                                                                                <styles>
                                                                                                                    <styleitem type="background" bgtype="none"/>
                                                                                                                </styles>
                                                                                                            </grid>
                                                                                                        </components>
                                                                                                    </popup>
                                                                                                </action>
                                                                                            </actions>
                                                                                        <renderconditions logictype="and"/>
<enableconditions/>
</button>
                                                                                    </buttons>
                                                                                    <renderconditions logictype="or"/>
                                                                                </buttonset>
                </components>
            </division>
        </divisions>
        <styles>
            <styleitem type="background" bgtype="none"/>
        </styles>
        <renderconditions logictype="or">
            <rendercondition type="blank" operator="=" fieldmodel="TempEgagement_Offer" sourcetype="fieldvalue" nosourcerowbehavior="deactivate" field="AccountId" fieldtargetobjects="Account" value="null" enclosevalueinquotes="false"/>
            <rendercondition type="fieldvalue" operator="=" enclosevalueinquotes="true" fieldmodel="TempEgagement_Offer" sourcetype="fieldvalue" nosourcerowbehavior="deactivate" field="AccountId" fieldtargetobjects="Account"/>
        </renderconditions>
    </grid>
    <buttonset uniqueid="sk-31dzOP-141" model="TempEgagement_Offer" position="left">
        <buttons>
            <button type="multi" label="Say hi" uniqueid="sk-31d_T2-146">
                <actions>
                    <action type="blockUI" message="Hello" timeout="1000"/>
                </actions>
            <renderconditions logictype="and"/>
<enableconditions logictype="and"/>
<hotkeys/>
</button>
        </buttons>
        <renderconditions logictype="or">
            <rendercondition type="blank" operator="=" fieldmodel="TempEgagement_Offer" sourcetype="fieldvalue" nosourcerowbehavior="deactivate" field="AccountId" fieldtargetobjects="Account" value="null" enclosevalueinquotes="false"/>
            <rendercondition type="fieldvalue" operator="=" fieldmodel="TempEgagement_Offer" sourcetype="fieldvalue" nosourcerowbehavior="deactivate" field="AccountId" fieldtargetobjects="Account" value="0014100000BHuSHAA1" enclosevalueinquotes="true"/>
        </renderconditions>
    </buttonset>
</components>
</division>
</divisions>
            <styles>
                <styleitem type="background" bgtype="none"/>
            </styles>
            <renderconditions logictype="and"/>
        </grid>
    </components>
    <resources>
        <labels/>
        <css/>
        <javascript>
            
        </javascript>
    </resources>
    <styles>
        <styleitem type="background" bgtype="none"/>
    </styles>
<interactions/>
</skuidpage>
Photo of Barry Schnell

Barry Schnell, Champion

  • 18,076 Points 10k badge 2x thumb
Hi Mark -

Thanks for looking in to this and the future information.  Couple of things:

1) I confirmed that when the conditions are on the button within the buttonset directly and not on the buttonset itself (or the responsive grid), behavior appears to be as expected.

2) Regarding your comment that the responsive grid works as expected, as you'll see in my "Bug #3", the responsive grid does not render/unrender as expected.  Possibly I'm mis-understanding what you meant there?

Bill - Given Mark's analysis, if it suits your use case, you should be able to apply the conditions to the button directly (instead of the responsive grid as you have them currently) to work around the issues.
Photo of Mark DeSimone

Mark DeSimone, Official Rep

  • 11,050 Points 10k badge 2x thumb
Ah, I had overlooked the relevance of the actions underneath your Start Over button. I see what you're describing now; clicking Start Over removes all rows from the model and adds a new blank one. The responsive grid renders/unrenders when the value is removed from the field, but as you've shown, it does not do so when the row is removed and a new blank row is added. What's happening is that the Create New Row action doesn't create a blank record with no Id # - Skuid assigns the new row a temporary Id#, like "sk-3BX-z7-52." That is actually intended behavior. Instead, pointing the render condition at any other field on the blank row (that doesn't receive a temporary value) should presumably elicit the desired render/unrender behavior. 
(Edited)
Photo of Bill Fox

Bill Fox

  • 7,954 Points 5k badge 2x thumb
Hi Mark,

Barry's suggestion will work on the button itself.  However in expanding the test I can not get the rich text field to condition or the page title field to condition. 

Even if the rich text field where conditionable , it will double or triple the effort if the responsive grid is not conditionable.

Below is the expanded test.  Where else does conditions not work?

I use these  conditions EVERYWHERE.  When will this be fixed?  





<skuidpage unsavedchangeswarning="yes" personalizationmode="server" useviewportmeta="true" showsidebar="false" showheader="false" tabtooverride="Contact">
    <models>
        <model id="TempEgagement_Offer" limit="1" query="false" createrowifnonefound="true" datasource="salesforce" type="" sobject="Contact" doclone="" forview="true">
            <fields>
                <field id="Id"/>
                <field id="Name"/>
                <field id="AccountId"/>
                <field id="Account.Name"/>
                <field id="Account.Id"/>
                <field id="Account.MasterRecordId"/>
                <field id="Account.MasterRecord.Name"/>
                <field id="Account.MasterRecord.Id"/>
            </fields>
            <conditions/>
            <actions/>
        </model>
    </models>
    <components>
        <pagetitle model="TempEgagement_Offer" uniqueid="sk-31baBM-140">
            <maintitle>
                <template>{{Name}}</template>
            </maintitle>
            <subtitle>
                <template>{{Model.label}}</template>
            </subtitle>
            <actions>
                <action type="multi" label="Start Over" uniqueid="sk-31d2GG-75">
                    <actions>
                        <action type="emptyModelData">
                            <models>
                                <model>TempEgagement_Offer</model>
                            </models>
                        </action>
                        <action type="createRow" model="TempEgagement_Offer" appendorprepend="prepend" defaultmodefornewitems="edit" affectedrows="context"/>
                    </actions>
                </action>
            </actions>
        </pagetitle>
        <grid uniqueid="sk-3KZxI6-152">
            <divisions>
                <division behavior="flex" minwidth="100px" ratio="1" verticalalign="top">
                    <components>
                        <basicfieldeditor showheader="true" showsavecancel="false" showerrorsinline="true" model="TempEgagement_Offer" buttonposition="" uniqueid="sk-1xftgw-283" mode="edit" layout="above">
                            <columns layoutmode="responsive" columngutter="4px" rowgutter="4px">
                                <column ratio="1" minwidth="300px" behavior="flex" verticalalign="top">
                                    <sections>
                                        <section title="Section A" collapsible="no" showheader="false">
                                            <fields>
                                                <field id="AccountId" valuehalign="" type="" optionsource="" pagesize="5" required="true" uniqueid="sk-31d2Gc-83" redirecttype="datasourcedefault">
                                                    <renderconditions logictype="and" onhidedatabehavior="keep"/>
                                                    <enableconditions/>
                                                    <searchfields/>
                                                    <filters/>
                                                </field>
                                            </fields>
                                        </section>
                                    </sections>
                                </column>
                            </columns>
                        </basicfieldeditor>
                        <buttonset uniqueid="sk-37jKwH-180" model="TempEgagement_Offer">
                            <buttons>
                                <button type="multi" label="This Button is conditionally rendered" uniqueid="sk-37jLEW-185">
                                    <renderconditions logictype="or">
                                        <rendercondition type="blank" operator="=" fieldmodel="TempEgagement_Offer" sourcetype="fieldvalue" field="AccountId" fieldtargetobjects="Account" value="null" enclosevalueinquotes="false"/>
                                        <rendercondition type="fieldvalue" operator="=" enclosevalueinquotes="true" fieldmodel="TempEgagement_Offer" sourcetype="fieldvalue" field="AccountId" fieldtargetobjects="Account"/>
                                    </renderconditions>
                                    <enableconditions/>
                                </button>
                            </buttons>
                        </buttonset>
                    </components>
                </division>
                <division behavior="flex" verticalalign="top" minwidth="100px" ratio="1">
                    <components>
                        <grid uniqueid="sk-31dHrZ-109">
                            <divisions>
                                <division behavior="flex" minwidth="100px" ratio="1">
                                    <components>
                                        <buttonset model="TempEgagement_Offer" uniqueid="sk-29DabF-443" position="left">
                                            <buttons>
                                                <button type="multi" label="Add New Member" icon="sk-icon-add" uniqueid="sk-31d2Go-87">
                                                    <actions>
                                                        <action type="showPopup">
                                                            <popup title="" width="90%">
                                                                <components>
                                                                    <grid uniqueid="sk-29Dv9c-485">
                                                                        <divisions>
                                                                            <division behavior="flex" minwidth="100px" ratio="1" verticalalign="top">
                                                                                <components>
                                                                                    <buttonset model="TempEgagement_Offer" uniqueid="sk-29DvkL-490" position="left">
                                                                                        <buttons>
                                                                                            <button type="multi" label="Close" icon="sk-icon-close" uniqueid="sk-37gyHM-143">
                                                                                                <actions>
                                                                                                    <action type="closeTopmostPopup"/>
                                                                                                </actions>
                                                                                            </button>
                                                                                        </buttons>
                                                                                    </buttonset>
                                                                                    <includepanel type="skuid" uniqueid="sk-29DxfD-493" pagename="RM1_Member" module=""/>
                                                                                </components>
                                                                            </division>
                                                                        </divisions>
                                                                        <styles>
                                                                            <styleitem type="background" bgtype="none"/>
                                                                        </styles>
                                                                    </grid>
                                                                </components>
                                                            </popup>
                                                        </action>
                                                    </actions>
                                                    <renderconditions logictype="and"/>
                                                    <enableconditions/>
                                                </button>
                                            </buttons>
                                            <renderconditions logictype="or"/>
                                        </buttonset>
                                    </components>
                                </division>
                            </divisions>
                            <styles>
                                <styleitem type="background" bgtype="none"/>
                            </styles>
                            <renderconditions logictype="or">
                                <rendercondition type="blank" operator="=" fieldmodel="TempEgagement_Offer" sourcetype="fieldvalue" nosourcerowbehavior="deactivate" field="AccountId" fieldtargetobjects="Account" value="null" enclosevalueinquotes="false"/>
                                <rendercondition type="fieldvalue" operator="=" enclosevalueinquotes="true" fieldmodel="TempEgagement_Offer" sourcetype="fieldvalue" nosourcerowbehavior="deactivate" field="AccountId" fieldtargetobjects="Account"/>
                            </renderconditions>
                        </grid>
                        <buttonset uniqueid="sk-31dzOP-141" model="TempEgagement_Offer" position="left">
                            <buttons>
                                <button type="multi" label="Say hi. I am a button set that  will not condition" uniqueid="sk-31d_T2-146">
                                    <actions>
                                        <action type="blockUI" message="Hello" timeout="1000"/>
                                    </actions>
                                    <renderconditions logictype="and"/>
                                    <enableconditions logictype="and"/>
                                    <hotkeys/>
                                </button>
                            </buttons>
                            <renderconditions logictype="or">
                                <rendercondition type="blank" operator="=" fieldmodel="TempEgagement_Offer" sourcetype="fieldvalue" nosourcerowbehavior="deactivate" field="AccountId" fieldtargetobjects="Account" value="null" enclosevalueinquotes="false"/>
                                <rendercondition type="fieldvalue" operator="=" fieldmodel="TempEgagement_Offer" sourcetype="fieldvalue" nosourcerowbehavior="deactivate" field="AccountId" fieldtargetobjects="Account" value="0014100000BHuSHAA1" enclosevalueinquotes="true"/>
                            </renderconditions>
                        </buttonset>
                        <buttonset uniqueid="sk-3AKNV8-274" model="TempEgagement_Offer" position="left">
                            <buttons>
                                <button type="multi" label="Hi Again, I am a button and I condition">
                                    <renderconditions logictype="or">
                                        <rendercondition type="blank" operator="=" fieldmodel="TempEgagement_Offer" sourcetype="fieldvalue" field="AccountId" value="null" enclosevalueinquotes="false"/>
                                        <rendercondition type="fieldvalue" operator="=" enclosevalueinquotes="true" fieldmodel="TempEgagement_Offer" sourcetype="fieldvalue" field="AccountId"/>
                                    </renderconditions>
                                    <enableconditions/>
                                </button>
                            </buttons>
                        </buttonset>
                        <richtext multiple="false" uniqueid="sk-3AKkY7-303">
                            <contents>&lt;p&gt;here is rich text that will not condition&lt;/p&gt;
</contents>
                            <renderconditions logictype="or" logic="1 AND 2">
                                <rendercondition type="blank" operator="=" fieldmodel="TempEgagement_Offer" sourcetype="fieldvalue" nosourcerowbehavior="deactivate" field="AccountId" value="null" enclosevalueinquotes="false"/>
                                <rendercondition type="fieldvalue" operator="=" enclosevalueinquotes="true" fieldmodel="TempEgagement_Offer" sourcetype="fieldvalue" nosourcerowbehavior="deactivate" field="AccountId"/>
                            </renderconditions>
                        </richtext>
                        <pagetitle uniqueid="sk-3ALZMp-381" model="TempEgagement_Offer">
                            <maintitle>This is a page title that will not condition</maintitle>
                            <actions/>
                            <renderconditions logictype="or">
                                <rendercondition type="blank" operator="=" fieldmodel="TempEgagement_Offer" sourcetype="fieldvalue" nosourcerowbehavior="deactivate" field="AccountId" value="null" enclosevalueinquotes="false"/>
                                <rendercondition type="fieldvalue" operator="=" enclosevalueinquotes="true" fieldmodel="TempEgagement_Offer" sourcetype="fieldvalue" nosourcerowbehavior="deactivate" field="AccountId"/>
                            </renderconditions>
                        </pagetitle>
                        <pagetitle uniqueid="sk-3ALzUT-411" model="TempEgagement_Offer">
                            <actions>
                                <action type="multi" label="This is a page title button and I will condition">
                                    <renderconditions logictype="or">
                                        <rendercondition type="blank" operator="=" fieldmodel="TempEgagement_Offer" sourcetype="fieldvalue" field="AccountId" value="null" enclosevalueinquotes="false"/>
                                        <rendercondition type="fieldvalue" operator="=" enclosevalueinquotes="true" fieldmodel="TempEgagement_Offer" sourcetype="fieldvalue" field="AccountId"/>
                                    </renderconditions>
                                    <enableconditions/>
                                </action>
                            </actions>
                        </pagetitle>
                    </components>
                </division>
            </divisions>
            <styles>
                <styleitem type="background" bgtype="none"/>
            </styles>
            <renderconditions logictype="and"/>
        </grid>
    </components>
    <resources>
        <labels/>
        <css/>
        <javascript/>
    </resources>
    <styles>
        <styleitem type="background" bgtype="none"/>
    </styles>
    <interactions/>
</skuidpage>
Photo of Mark DeSimone

Mark DeSimone, Official Rep

  • 11,050 Points 10k badge 2x thumb
Hi Bill,

I mentioned this briefly in my response to Barry above, but I think the Start Over button is not behaving as you want it to because when the action sequence creates a new row, that new row does not have a blank or null ID# - Skuid assigns it one, and that is the intended behavior. Instead of pointing to the ID# field, you could point to just about any other field in that model, as long as creating a new row leaves it blank.

I can't estimate what the time frame might be for fixing the button set's conditional rendering for null or blank fields, but it is very helpful to have the fleshed-out reproduction page ready to go, and this conversation has also been fruitful. 
Photo of Bill Fox

Bill Fox

  • 7,954 Points 5k badge 2x thumb
But I want the response grid to be hidden if the field is not null or empty.  How do I handle the rich text field?
Photo of Barry Schnell

Barry Schnell, Champion

  • 18,076 Points 10k badge 2x thumb
Mark -

I do not believe that the issue is with the "create row" action that results in a row with no "AccountId" field property.  The reason I believe this is that when you initially load the page, the model data appears the same (no AccountId property on the model) and the grid/buttonset/button conditional rendering works fine.  

What I believe is root cause of the issue is the 'Remove All Rows" action.  When this happens, the grid & buttonset are not being properly "resynced" with the model to track new rows and their activity.  This is the same issue that has arisen with a few other components in the past (you can search the community for other issues I've logged against remove all rows and conditional rendering).  It has been quite a while since I've immersed myself in the underlying Skuid code, however I'm fairly certain that the "Remove all rows" and how the components track model changes is the key to fixing this.

Bill -

My thought for your situation is to use a wrapper inside of the responsive grid and put the wrapper in the grid and all the other stuff in the wrapper.  Unfortunately, it appears that the wrapper component also has the same bug so that solution won't work.

Mark -

Below is another sample that demonstrates the wrapper issue.  It should be considered bug #4.  

The XML below includes my original XML, plus your addition of a buttonset with the button conditionally rendered (instead of the buttonset) plus my new addition of the wrapper component.

Building from my previous steps to reproduce, Step #8 now identify two bugs:

** BUG #3 & Bug #4 **
8) Select an account
Expected Behavior
"Add new member" is NOT visible
"Say hi" is NOT visible
"Wrapper is Conditionally Rendered" is NOT visible

Actual Behavior
"Add new member" is visible  (Bug #3)
"Say hi' is NOT visible
"Wrapper is Conditionally rendered" is visible(Bug #4)


Sample Page XML
<skuidpage unsavedchangeswarning="yes" personalizationmode="server" useviewportmeta="true" showsidebar="false" showheader="false" tabtooverride="Contact">
    <models>
        <model id="TempEgagement_Offer" limit="1" query="false" createrowifnonefound="true" datasource="salesforce" type="" sobject="Contact" doclone="" forview="true">
            <fields>
                <field id="Id"/>
                <field id="Name"/>
                <field id="AccountId"/>
                <field id="Account.Name"/>
                <field id="Account.Id"/>
                <field id="Account.MasterRecordId"/>
                <field id="Account.MasterRecord.Name"/>
                <field id="Account.MasterRecord.Id"/>
            </fields>
            <conditions/>
            <actions/>
        </model>
    </models>
    <components>
<pagetitle model="TempEgagement_Offer" uniqueid="sk-31baBM-140">
    <maintitle>
        <template>{{Name}}</template>
    </maintitle>
    <subtitle>
        <template>{{Model.label}}</template>
    </subtitle>
    <actions>
        <action type="multi" label="Start Over" uniqueid="sk-31d2GG-75">
            <actions>
                <action type="emptyModelData">
                    <models>
                        <model>TempEgagement_Offer</model>
                    </models>
                </action>
                <action type="createRow" model="TempEgagement_Offer" appendorprepend="prepend" defaultmodefornewitems="edit" affectedrows="context"/>
            </actions>
        </action>
    </actions>
</pagetitle>
        <grid uniqueid="sk-3KZxI6-152">
            <divisions>
                <division behavior="flex" minwidth="100px" ratio="1">
                    <components>
<basicfieldeditor showheader="true" showsavecancel="false" showerrorsinline="true" model="TempEgagement_Offer" buttonposition="" uniqueid="sk-1xftgw-283" mode="edit" layout="above">
                                                                    <columns layoutmode="responsive" columngutter="4px" rowgutter="4px">
                                                                        <column ratio="1" minwidth="300px" behavior="flex" verticalalign="top">
                                                                            <sections>
                                                                                <section title="Section A" collapsible="no" showheader="false">
                                                                                    <fields>
                                                                                        <field id="AccountId" valuehalign="" type="" optionsource="" pagesize="5" required="true" uniqueid="sk-31d2Gc-83">
                                                                                            <renderconditions logictype="and" onhidedatabehavior="keep"/>
                                                                                            <enableconditions/>
                                                                                            <searchfields/>
                                                                                            <filters/>
                                                                                        </field>
                                                                                    </fields>
                                                                                </section>
                                                                            </sections>
                                                                        </column>
                                                                    </columns>
                                                                </basicfieldeditor>
                        
                    </components>
                </division>
            <division behavior="flex" verticalalign="top" minwidth="100px" ratio="1">
<components>
    <grid uniqueid="sk-31dHrZ-109">
        <divisions>
            <division behavior="flex" minwidth="100px" ratio="1">
                <components>
                    <buttonset model="TempEgagement_Offer" uniqueid="sk-29DabF-443" position="left">
                                                                                    <buttons>
                                                                                        <button type="multi" label="Add New Member" icon="sk-icon-add" uniqueid="sk-31d2Go-87">
                                                                                            <actions>
                                                                                                <action type="showPopup">
                                                                                                    <popup title="" width="90%">
                                                                                                        <components>
                                                                                                            <tfg__popupcontroller uniqueid="sk-29EGUt-523" hideclose="true" disableescape="true"/>
                                                                                                            <grid uniqueid="sk-29Dv9c-485">
                                                                                                                <divisions>
                                                                                                                    <division behavior="flex" minwidth="100px" ratio="1" verticalalign="top">
                                                                                                                        <components>
                                                                                                                            <buttonset model="TempEgagement_Offer" uniqueid="sk-29DvkL-490" position="left">
                                                                                                                                <buttons>
                                                                                                                                    <button type="multi" label="Close" icon="sk-icon-close">
                                                                                                                                        <actions>
                                                                                                                                            <action type="closeTopmostPopup"/>
                                                                                                                                        </actions>
                                                                                                                                    </button>
                                                                                                                                </buttons>
                                                                                                                            </buttonset>
                                                                                                                            <includepanel type="skuid" uniqueid="sk-29DxfD-493" pagename="RM1_Member" module=""/>
                                                                                                                        </components>
                                                                                                                    </division>
                                                                                                                </divisions>
                                                                                                                <styles>
                                                                                                                    <styleitem type="background" bgtype="none"/>
                                                                                                                </styles>
                                                                                                            </grid>
                                                                                                        </components>
                                                                                                    </popup>
                                                                                                </action>
                                                                                            </actions>
                                                                                        </button>
                                                                                    </buttons>
                                                                                    <renderconditions logictype="or"/>
                                                                                </buttonset>
                </components>
            </division>
        </divisions>
        <styles>
            <styleitem type="background" bgtype="none"/>
        </styles>
        <renderconditions logictype="or">
            <rendercondition type="blank" operator="=" fieldmodel="TempEgagement_Offer" sourcetype="fieldvalue" nosourcerowbehavior="deactivate" field="AccountId" fieldtargetobjects="Account" value="null" enclosevalueinquotes="false"/>
            <rendercondition type="fieldvalue" operator="=" enclosevalueinquotes="true" fieldmodel="TempEgagement_Offer" sourcetype="fieldvalue" nosourcerowbehavior="deactivate" field="AccountId" fieldtargetobjects="Account"/>
        </renderconditions>
    </grid>
    <buttonset uniqueid="sk-31dzOP-141" model="TempEgagement_Offer" position="left">
        <buttons>
            <button type="multi" label="Say hi - Button Set Conditionally Rendered" uniqueid="sk-31d_T2-146">
                <actions>
                    <action type="blockUI" message="Hello" timeout="1000"/>
                </actions>
            </button>
        </buttons>
        <renderconditions logictype="or">
            <rendercondition type="blank" operator="=" fieldmodel="TempEgagement_Offer" sourcetype="fieldvalue" nosourcerowbehavior="deactivate" field="AccountId" fieldtargetobjects="Account" value="null" enclosevalueinquotes="false"/>
            <rendercondition type="fieldvalue" operator="=" enclosevalueinquotes="true" fieldmodel="TempEgagement_Offer" sourcetype="fieldvalue" nosourcerowbehavior="deactivate" field="AccountId" fieldtargetobjects="Account"/>
        </renderconditions>
    </buttonset>
    <buttonset uniqueid="sk-38t4K8-110" model="TempEgagement_Offer" position="left">
        <buttons>
            <button type="multi" label="Say hi - Button Inside ButtonSet Conditionally Rendered" uniqueid="sk-38t5CW-117">
                <actions/>
                <renderconditions logictype="or">
                    <rendercondition type="blank" operator="=" fieldmodel="TempEgagement_Offer" sourcetype="fieldvalue" field="AccountId" fieldtargetobjects="Account" value="null" enclosevalueinquotes="false"/>
                    <rendercondition type="fieldvalue" operator="=" enclosevalueinquotes="true" fieldmodel="TempEgagement_Offer" sourcetype="fieldvalue" field="AccountId" fieldtargetobjects="Account"/>
                </renderconditions>
                <enableconditions/>
            </button>
        </buttons>
    </buttonset>
    <wrapper uniqueid="sk-3CB3n5-112">
        <components>
            <buttonset uniqueid="sk-3CB6d9-122" model="TempEgagement_Offer" position="left">
                <buttons>
                    <button type="multi" label="Wrapper Is Conditionally Rendered" uniqueid="sk-3CB6wO-126"/>
                </buttons>
            </buttonset>
        </components>
        <styles>
            <styleitem type="background"/>
            <styleitem type="border"/>
            <styleitem type="size"/>
        </styles>
        <renderconditions logictype="or">
            <rendercondition type="blank" operator="=" fieldmodel="TempEgagement_Offer" sourcetype="fieldvalue" nosourcerowbehavior="deactivate" field="AccountId" fieldtargetobjects="Account" value="null" enclosevalueinquotes="false"/>
            <rendercondition type="fieldvalue" operator="=" enclosevalueinquotes="true" fieldmodel="TempEgagement_Offer" sourcetype="fieldvalue" nosourcerowbehavior="deactivate" field="AccountId" fieldtargetobjects="Account"/>
        </renderconditions>
    </wrapper>
</components>
</division>
</divisions>
            <styles>
                <styleitem type="background" bgtype="none"/>
            </styles>
            <renderconditions logictype="and"/>
        </grid>
    </components>
    <resources>
        <labels/>
        <css/>
        <javascript>
            
        </javascript>
    </resources>
    <styles>
        <styleitem type="background" bgtype="none"/>
    </styles>
</skuidpage>
Photo of Barry Schnell

Barry Schnell, Champion

  • 18,076 Points 10k badge 2x thumb
Mark -

I further simplified the repro to eliminate the "variables" of null/empty/non-existent AccountID property.  The below exhibits the same behavior as the repro page we have been working with but further isolates the issue.

Note that at all times (on initial page load & after start row) the field "HideEverything" always exists on the row in the model.

Instead of using "AccountId", I have a UI-Only checkbox field that can be manually toggled.  All the conditions are based on "HideEverything != true".

Steps to reproduce:

1) Create page using XML below
2) Preview page

Expected Behavior = Actual Behavior
all 4 buttons are displayed

3) Toggle 'hide everything" to true

Expected = Actual
All 4 buttons are removed

4) Toggle "hide everything" to false

Expected
All 4 buttons are visible

Actual - ** Bug #1 **
"Say hi - Button Set Conditionally Rendered" is NOT visible

5) Refresh Page

Expected = Actual
all 4 buttons are visible

6) Click Start Over

Expected = Actual
All 4 buttons are visible

7) Toggle "hide everything" to true

Expected
All 4 buttons are removed

Actual - ** Bug #2, #3 & #4 **
"Responsive Grid Conditionally Rendered is visible
"Say hi - Button Set Conditionally Rendered" is visible
"Wrapper is Conditionally Rendered" is visible

<skuidpage unsavedchangeswarning="yes" personalizationmode="server" useviewportmeta="true" showsidebar="false" showheader="false" tabtooverride="Contact">
    <models>
        <model id="TempEgagement_Offer" limit="1" query="false" createrowifnonefound="true" datasource="salesforce" type="" sobject="Contact" doclone="" forview="true">
            <fields>
                <field id="Id"/>
                <field id="Name"/>
                <field id="HideEverything" uionly="true" displaytype="BOOLEAN" ogdisplaytype="TEXT" defaultvaluetype="fieldvalue" readonly="false" returntype="BOOLEAN" label="Hide Everything" defaultValue="false"/>
            </fields>
            <conditions/>
            <actions/>
        </model>
    </models>
    <components>
        <pagetitle model="TempEgagement_Offer" uniqueid="sk-31baBM-140">
            <maintitle>
                <template>{{Name}}</template>
            </maintitle>
            <subtitle>
                <template>{{Model.label}}</template>
            </subtitle>
            <actions>
                <action type="multi" label="Start Over" uniqueid="sk-31d2GG-75">
                    <actions>
                        <action type="emptyModelData">
                            <models>
                                <model>TempEgagement_Offer</model>
                            </models>
                        </action>
                        <action type="createRow" model="TempEgagement_Offer" appendorprepend="prepend" defaultmodefornewitems="edit" affectedrows="context"/>
                    </actions>
                </action>
            </actions>
        </pagetitle>
        <grid uniqueid="sk-3KZxI6-152">
            <divisions>
                <division behavior="flex" minwidth="100px" ratio="1">
                    <components>
                        <basicfieldeditor showheader="true" showsavecancel="false" showerrorsinline="true" model="TempEgagement_Offer" buttonposition="" uniqueid="sk-1xftgw-283" mode="edit" layout="above">
                            <columns layoutmode="responsive" columngutter="4px" rowgutter="4px">
                                <column ratio="1" minwidth="300px" behavior="flex" verticalalign="top">
                                    <sections>
                                        <section title="Section A" collapsible="no" showheader="false">
                                            <fields>
                                                <field uniqueid="sk-3CFmzN-208" id="HideEverything" valuehalign="" type=""/>
                                            </fields>
                                        </section>
                                    </sections>
                                </column>
                            </columns>
                        </basicfieldeditor>
                    </components>
                </division>
                <division behavior="flex" verticalalign="top" minwidth="100px" ratio="1">
                    <components>
                        <grid uniqueid="sk-31dHrZ-109">
                            <divisions>
                                <division behavior="flex" minwidth="100px" ratio="1">
                                    <components>
                                        <buttonset model="TempEgagement_Offer" uniqueid="sk-29DabF-443" position="left">
                                            <buttons>
                                                <button type="multi" label="Responsive Grid Conditionally Rendered" icon="sk-icon-add" uniqueid="sk-31d2Go-87">
                                                    <actions/>
                                                    <renderconditions logictype="and"/>
                                                    <enableconditions/>
                                                </button>
                                            </buttons>
                                            <renderconditions logictype="or"/>
                                        </buttonset>
                                    </components>
                                </division>
                            </divisions>
                            <styles>
                                <styleitem type="background" bgtype="none"/>
                            </styles>
                            <renderconditions logictype="or">
                                <rendercondition type="fieldvalue" operator="!=" enclosevalueinquotes="false" fieldmodel="TempEgagement_Offer" sourcetype="fieldvalue" nosourcerowbehavior="deactivate" field="HideEverything" fieldtargetobjects="Contact" value="true"/>
                            </renderconditions>
                        </grid>
                        <buttonset uniqueid="sk-31dzOP-141" model="TempEgagement_Offer" position="left">
                            <buttons>
                                <button type="multi" label="Say hi - Button Set Conditionally Rendered" uniqueid="sk-31d_T2-146">
                                    <actions/>
                                    <renderconditions logictype="and"/>
                                    <enableconditions/>
                                </button>
                            </buttons>
                            <renderconditions logictype="or">
                                <rendercondition type="fieldvalue" operator="!=" fieldmodel="TempEgagement_Offer" sourcetype="fieldvalue" nosourcerowbehavior="deactivate" field="HideEverything" fieldtargetobjects="Contact" value="true" enclosevalueinquotes="false"/>
                            </renderconditions>
                        </buttonset>
                        <buttonset uniqueid="sk-38t4K8-110" model="TempEgagement_Offer" position="left">
                            <buttons>
                                <button type="multi" label="Say hi - Button Inside ButtonSet Conditionally Rendered" uniqueid="sk-38t5CW-117">
                                    <actions/>
                                    <renderconditions logictype="or">
                                        <rendercondition type="fieldvalue" operator="!=" fieldmodel="TempEgagement_Offer" sourcetype="fieldvalue" field="HideEverything" fieldtargetobjects="Contact" value="true" enclosevalueinquotes="false"/>
                                    </renderconditions>
                                    <enableconditions/>
                                </button>
                            </buttons>
                            <renderconditions logictype="and"/>
                        </buttonset>
                        <wrapper uniqueid="sk-3CB3n5-112">
                            <components>
                                <buttonset uniqueid="sk-3CB6d9-122" model="TempEgagement_Offer" position="left">
                                    <buttons>
                                        <button type="multi" label="Wrapper Is Conditionally Rendered" uniqueid="sk-3CB6wO-126">
                                            <renderconditions logictype="and"/>
                                            <enableconditions/>
                                            <actions/>
                                        </button>
                                    </buttons>
                                    <renderconditions logictype="and"/>
                                </buttonset>
                            </components>
                            <styles>
                                <styleitem type="background"/>
                                <styleitem type="border"/>
                                <styleitem type="size"/>
                            </styles>
                            <renderconditions logictype="or">
                                <rendercondition type="fieldvalue" operator="!=" fieldmodel="TempEgagement_Offer" sourcetype="fieldvalue" nosourcerowbehavior="deactivate" field="HideEverything" fieldtargetobjects="Contact" value="true" enclosevalueinquotes="false"/>
                            </renderconditions>
                        </wrapper>
                    </components>
                </division>
            </divisions>
            <styles>
                <styleitem type="background" bgtype="none"/>
            </styles>
            <renderconditions logictype="and"/>
        </grid>
    </components>
    <resources>
        <labels/>
        <css/>
        <javascript/>
    </resources>
    <styles>
        <styleitem type="background" bgtype="none"/>
    </styles>
</skuidpage>
(Edited)
Photo of Bill Fox

Bill Fox

  • 7,954 Points 5k badge 2x thumb
Does Brooklyn Q2 Point Release - Iteration 2 address this issue?
Photo of Mark DeSimone

Mark DeSimone, Official Rep

  • 11,050 Points 10k badge 2x thumb
Hi Bill. The issue is still unresolved in the most recent iteration. We do have this conversation earmarked and connected to the issue internally, and will update it when a fix is available.

On a separate note, I wanted to point out a new action that was released not too long ago, "toggle component." It may be useful in some of your use cases - it lets you toggle a component's visibility via the action framework. I haven't found a way to employ it in the scenario that you've discussed on this thread, but it seemed related enough that mentioning it would be worthwhile. 
Photo of Bill Fox

Bill Fox

  • 7,954 Points 5k badge 2x thumb
Thanks for the info on "Toggle Component"  I missed that one.  Any updates on this issue?  Whenever I close a collapsible window the conditions do not work.  I can not starting adding additional users until this is resolved.  What does it take to get this to be addressed?  
(Edited)
Photo of Mark DeSimone

Mark DeSimone, Official Rep

  • 11,050 Points 10k badge 2x thumb
Hi Bill. The development team has been aware of and working on resolving this. Good progress has been made, and although we don't know yet when it will be ready to release, a fix is in the works. 
Photo of Stephen Sells

Stephen Sells, Official Rep

  • 16,856 Points 10k badge 2x thumb
Hello Skuid Community ~

Thank you for your patience! Skuid implemented a fix in the new Brooklyn (10.0.3) and Brooklyn Q2 (9.5.10) release which is now available on the Skuid Releases page.

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 when you upgrade.
(Edited)
Photo of Barry Schnell

Barry Schnell, Champion

  • 18,076 Points 10k badge 2x thumb
Tested the two different repro scenarios that I posted above and confirmed behavior is now as expected as of 10.0.3.  Thank you!
Photo of Mark DeSimone

Mark DeSimone, Official Rep

  • 11,050 Points 10k badge 2x thumb
Thank you for responding to let us know!
Photo of Bill Fox

Bill Fox

  • 7,954 Points 5k badge 2x thumb
Fantastic. Thank you.