Bug or expected behavior?

I’m unsure if this is expected behavior in Skuid or if it is a bug. I made a video outlining the problem: https://www.youtube.com/watch?v=rVSa8OZhccY

And the Skuid XML to reproduce is below. I’m on Skuid 9.5.2.

Any insight is very much appreciated.

<skuidpage unsavedchangeswarning="yes" personalizationmode="server" showsidebar="false" showheader="true" theme="Paper"> <models> <model id="AccountTargets" limit="50" query="true" createrowifnonefound="false" type="" sobject="Account" orderby="" doclone="" datasource="salesforce"> <fields> <field id="Id"/> <field id="NumberOfEmployees"/> <field id="Industry"/> <field id="Name"/> </fields> <conditions> <condition type="userinfo" value="" field="OwnerId" operator="=" enclosevalueinquotes="true" userinfotype="userid"/> </conditions> <actions/> </model> <model id="AccountSelected" limit="" query="false" createrowifnonefound="false" type="" sobject="Account" doclone="" datasource="salesforce"> <fields> <field id="Id"/> <field id="NumberOfEmployees"/> <field id="Industry"/> <field id="Name"/> <field id="Description"/> <field id="BillingState"/> <field id="BillingCountry"/> <field id="BillingPostalCode"/> <field id="BillingStreet"/> <field id="Phone"/> <field id="BillingCity"/> <field id="OwnerId"/> <field id="Owner.Name"/> <field id="Website"/> </fields> <conditions> <condition type="fieldvalue" value="" enclosevalueinquotes="true" field="Id" state="filterableoff" inactive="true" name="AccountId"/> </conditions> <actions/> </model> </models> <components> <panelset type="standard" uniqueid="sk-1Cv52u-85" scroll=""> <panels> <panel type="left" width="225px"> <components> <queue tagrendertype="template" querystring="id={{Id}}" defaultitemparameter="id" searchbox="true" tokenizesearch="true" uniqueid="sk-1Ct_Yq-70" model="AccountTargets" searchmethod="server" title="Accounts" emptysearchbehavior="query"> <searchfields/> <renderconditions logictype="and"/> <filters/> <interactions> <interaction type="tap"> <action type="setCondition" model="AccountSelected" condition="AccountId" value="{{Id}}"/> <action type="requeryModels" model="AccountSelected" behavior="standard"> <models> <model>AccountSelected</model> </models> </action> </interaction> </interactions> <rendertemplate>&amp;lt;span class="company-name"&amp;gt;{{{Name}}}&amp;lt;/span&amp;gt;</rendertemplate> </queue> </components> </panel> <panel> <components> <template multiple="false" uniqueid="sk-3rTDMs-616" allowhtml="true"> <contents>&amp;lt;div class="info"&amp;gt;Please select an account to the left.&amp;lt;/div&amp;gt;</contents> <renderconditions logictype="and"> <rendercondition fieldmodel="AccountSelected" sourcetype="modelproperty" nosourcerowbehavior="deactivate" sourceproperty="hasNoRows"/> </renderconditions> </template> <grid uniqueid="sk-2-J3iL-1073"> <divisions> <division behavior="flex" verticalalign="top" ratio="1" minwidth="25%"> <components> <wrapper uniqueid="sk-33Mp_n-2585"> <components> <template multiple="false" uniqueid="sk-2-J9Cr-1088" model="AccountSelected" allowhtml="true"> <contents>{{Name}}</contents> </template> </components> <styles> <styleitem type="background"/> <styleitem type="border"/> <styleitem type="size"/> </styles> </wrapper> </components> </division> <division behavior="fit" verticalalign="top" cssclass="button-set"> <components> <buttonset model="AccountSelected" uniqueid="sk-2-JB-w-1098"> <buttons> <button type="multi" label="Edit Account" icon="sk-icon-edit"> <hotkeys/> <renderconditions logictype="and"/> <enableconditions/> <actions> <action type="showPopup"> <popup title="Edit Account" width="600px"> <components> <buttonset model="AccountSelected" uniqueid="sk-336etG-768"> <buttons> <button type="multi" label="Save" icon="sk-icon-save"> <actions> <action type="blockUI" message="Saving..."/> <action type="save"> <models> <model>AccountSelected</model> </models> <onerroractions> <action type="blockUI" message="There was an error" timeout="3000"/> </onerroractions> </action> <action type="requeryModel" model="AccountSelected" behavior="standard"> <onerroractions> <action type="blockUI" message="There was an error" timeout="3000"/> </onerroractions> </action> <action type="closeAllPopups"/> <action type="unblockUI"/> </actions> <hotkeys/> <renderconditions logictype="and"/> <enableconditions logictype="and"> <condition type="fieldvalue" enclosevalueinquotes="false" fieldmodel="AccountSelected" sourcetype="modelproperty" sourceproperty="hasChanged" value="true" operator="="/> </enableconditions> </button> <button type="multi" label="Cancel" icon="sk-icon-cancel"> <actions> <action type="blockUI" message="Canceling..."/> <action type="cancel"> <models> <model>AccountSelected</model> </models> </action> <action type="closeAllPopups"/> <action type="unblockUI"/> </actions> <hotkeys/> <renderconditions logictype="and"/> <enableconditions logictype="and"> <condition type="fieldvalue" enclosevalueinquotes="false" fieldmodel="AccountSelected" sourcetype="modelproperty" sourceproperty="hasChanged" value="true" operator="="/> </enableconditions> </button> </buttons> </buttonset> <template multiple="false" uniqueid="sk-34vL-L-1500" model="AccountSelected"> <contents>{{Name}}</contents> </template> <basicfieldeditor showheader="true" showsavecancel="false" showerrorsinline="true" model="AccountSelected" buttonposition="" uniqueid="sk-335asr-600" mode="edit" layout="above"> <columns layoutmode="fixed"> <column width="100%"> <sections> <section title="Section A" collapsible="no" showheader="false"> <fields> <field id="Name" valuehalign="" type=""/> <field id="Industry" valuehalign="" type=""/> <field id="NumberOfEmployees" valuehalign="" type=""/> <field id="Phone" valuehalign="" type=""/> <field id="Website" valuehalign="" type=""/> <field id="BillingStreet" valuehalign="" type=""> <label>Street</label> </field> <field id="BillingCity" valuehalign="" type=""> <label>City</label> </field> <field id="BillingState" valuehalign="" type=""> <label>State/Province</label> </field> <field id="BillingPostalCode" valuehalign="" type=""> <label>Zip/Postal Code</label> </field> <field id="BillingCountry" valuehalign="" type=""> <label>Country</label> </field> </fields> </section> </sections> </column> </columns> <renderconditions logictype="and"/> <conditions/> </basicfieldeditor> </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="fieldvalue" enclosevalueinquotes="true" fieldmodel="AccountSelected" sourcetype="modelproperty" nosourcerowbehavior="deactivate" sourceproperty="hasRows"/> </renderconditions> </grid> </components> </panel> </panels> </panelset> </components> <resources> <labels/> <javascript/> <css> <cssitem location="inline" name="general" cachelocation="false">.ui-tabs .ui-tabs-nav .ui-tabs-anchor { padding: 0.5em 0.7em; font-size: 11px; font-weight: normal; } .company-name { color: #b71234; }</cssitem> <cssitem location="inline" name="alert boxes" cachelocation="false">.info, .success, .warning, .error, .validation { border: 1px solid; margin: 10px 0px; padding:15px 10px 15px 50px; text-align: center; background-repeat: no-repeat; background-position: 10px center; } .info { color: #00529B; background-color: #BDE5F8; } .success { color: #4F8A10; background-color: #DFF2BF; } .warning { color: #9F6000; background-color: #FEEFB3; } .error { color: #D8000C; background-color: #FFBABA; }</cssitem> </css> </resources> <styles> <styleitem type="background" bgtype="none"/> </styles> <interactions/> </skuidpage>

That is not expected behavior. We’ve reported this as a bug to our developers.

Thank you for bringing it to our attention. We’ll update this post as soon as this bug is addressed.
Thank you for producing a reproduction page. That is amazingly helpful! Gold star!!!

Thanks Stephen for the quick response - any idea how long it usually takes to push out a patch? Hours, days, weeks? Just trying to plan how I should approach the problem moving forward.

Andrew

“Usually” is a pretty uncomfortably subjective and undefinable word for me. I could probably, maybe, potentially give you a better answer on Wednesday when I’ve discussed with the developers what their insight into this problem is. Regardless of what they say, this would certainly fall into the “weeks” category. I just couldn’t give a comfortable answer into how many weeks.

“Typically” - in the most vague and unpromising use of the word - problems like this are patched up and solved within 1-3 weeks. But it depends on a load of factors far outside of my control. God willing.

Sorry I couldn’t be more specific for you.

Just FYI that this might be related to the issues below as the same underlying issue would be present since “removing all rows” (as in the issues below) and “replacing” rows (as in this issue) would have the same effect

https://community.skuid.com/t/remove-all-rows-in-model-action-breaks-conditional-renderi…

https://community.skuid.com/t/piclist-still-not-working?topic-reply-list%5Bsettings%5D%5B…

https://community.skuid.com/t/button-ignoring-conditions?topic-reply-list%5Bsettings%5D%5…

Andrew - If it’s possible, as a workaround to your issue, you can use a Page Title with a button instead of a Button Set.

Here’s the same page using a Page Title (in addition to the Button Set for clarity):

<skuidpage unsavedchangeswarning="yes" personalizationmode="server" showsidebar="false" showheader="true" theme="Paper">    <models>
        <model id="AccountTargets" limit="50" query="true" createrowifnonefound="false" type="" sobject="Account" orderby="" doclone="" datasource="salesforce">
            <fields>
                <field id="Id"/>
                <field id="NumberOfEmployees"/>
                <field id="Industry"/>
                <field id="Name"/>
            </fields>
            <conditions>
                <condition type="userinfo" value="" field="OwnerId" operator="=" enclosevalueinquotes="true" userinfotype="userid"/>
            </conditions>
            <actions/>
        </model>
        <model id="AccountSelected" limit="" query="false" createrowifnonefound="false" type="" sobject="Account" doclone="" datasource="salesforce">
            <fields>
                <field id="Id"/>
                <field id="NumberOfEmployees"/>
                <field id="Industry"/>
                <field id="Name"/>
                <field id="Description"/>
                <field id="BillingState"/>
                <field id="BillingCountry"/>
                <field id="BillingPostalCode"/>
                <field id="BillingStreet"/>
                <field id="Phone"/>
                <field id="BillingCity"/>
                <field id="OwnerId"/>
                <field id="Owner.Name"/>
                <field id="Website"/>
            </fields>
            <conditions>
                <condition type="fieldvalue" value="" enclosevalueinquotes="true" field="Id" state="filterableoff" inactive="true" name="AccountId"/>
            </conditions>
            <actions/>
        </model>
    </models>
    <components>
        <panelset type="standard" uniqueid="sk-1Cv52u-85" scroll="">
            <panels>
                <panel type="left" width="225px">
                    <components>
                        <queue tagrendertype="template" querystring="id={{Id}}" defaultitemparameter="id" searchbox="true" tokenizesearch="true" uniqueid="sk-1Ct_Yq-70" model="AccountTargets" searchmethod="server" title="Accounts" emptysearchbehavior="query">
                            <searchfields/>
                            <renderconditions logictype="and"/>
                            <filters/>
                            <interactions>
                                <interaction type="tap">
                                    <action type="setCondition" model="AccountSelected" condition="AccountId" value="{{Id}}"/>
                                    <action type="requeryModels" model="AccountSelected" behavior="standard">
                                        <models>
                                            <model>AccountSelected</model>
                                        </models>
                                    </action>
                                </interaction>
                            </interactions>
                            <rendertemplate>&amp;lt;span class="company-name"&amp;gt;{{{Name}}}&amp;lt;/span&amp;gt;</rendertemplate>
                        </queue>
                    </components>
                </panel>
                <panel>
                    <components>
                        <template multiple="false" uniqueid="sk-3rTDMs-616" allowhtml="true">
                            <contents>&amp;lt;div class="info"&amp;gt;Please select an account to the left.&amp;lt;/div&amp;gt;</contents>
                            <renderconditions logictype="and">
                                <rendercondition fieldmodel="AccountSelected" sourcetype="modelproperty" nosourcerowbehavior="deactivate" sourceproperty="hasNoRows"/>
                            </renderconditions>
                        </template>
                        <grid uniqueid="sk-2-J3iL-1073">
                            <divisions>
                                <division behavior="flex" verticalalign="top" ratio="1" minwidth="25%">
                                    <components>
                                        <wrapper uniqueid="sk-33Mp_n-2585">
                                            <components>
                                                <template multiple="false" uniqueid="sk-2-J9Cr-1088" model="AccountSelected" allowhtml="true">
                                                    <contents>{{Name}}</contents>
                                                </template>
                                            </components>
                                            <styles>
                                                <styleitem type="background"/>
                                                <styleitem type="border"/>
                                                <styleitem type="size"/>
                                            </styles>
                                        </wrapper>
                                    </components>
                                </division>
                                <division behavior="fit" verticalalign="top" cssclass="button-set">
                                    <components>
                                        <buttonset model="AccountSelected" uniqueid="sk-2-JB-w-1098">
                                            <buttons>
                                                <button type="multi" label="Edit Account" icon="sk-icon-edit">
                                                    <hotkeys/>
                                                    <renderconditions logictype="and"/>
                                                    <enableconditions/>
                                                    <actions>
                                                        <action type="showPopup">
                                                            <popup title="Edit Account" width="600px">
                                                                <components>
                                                                    <buttonset model="AccountSelected" uniqueid="sk-336etG-768">
                                                                        <buttons>
                                                                            <button type="multi" label="Save" icon="sk-icon-save">
                                                                                <actions>
                                                                                    <action type="blockUI" message="Saving..."/>
                                                                                    <action type="save">
                                                                                        <models>
                                                                                            <model>AccountSelected</model>
                                                                                        </models>
                                                                                        <onerroractions>
                                                                                            <action type="blockUI" message="There was an error" timeout="3000"/>
                                                                                        </onerroractions>
                                                                                    </action>
                                                                                    <action type="requeryModel" model="AccountSelected" behavior="standard">
                                                                                        <onerroractions>
                                                                                            <action type="blockUI" message="There was an error" timeout="3000"/>
                                                                                        </onerroractions>
                                                                                    </action>
                                                                                    <action type="closeAllPopups"/>
                                                                                    <action type="unblockUI"/>
                                                                                </actions>
                                                                                <hotkeys/>
                                                                                <renderconditions logictype="and"/>
                                                                                <enableconditions logictype="and">
                                                                                    <condition type="fieldvalue" enclosevalueinquotes="false" fieldmodel="AccountSelected" sourcetype="modelproperty" sourceproperty="hasChanged" value="true" operator="="/>
                                                                                </enableconditions>
                                                                            </button>
                                                                            <button type="multi" label="Cancel" icon="sk-icon-cancel">
                                                                                <actions>
                                                                                    <action type="blockUI" message="Canceling..."/>
                                                                                    <action type="cancel">
                                                                                        <models>
                                                                                            <model>AccountSelected</model>
                                                                                        </models>
                                                                                    </action>
                                                                                    <action type="closeAllPopups"/>
                                                                                    <action type="unblockUI"/>
                                                                                </actions>
                                                                                <hotkeys/>
                                                                                <renderconditions logictype="and"/>
                                                                                <enableconditions logictype="and">
                                                                                    <condition type="fieldvalue" enclosevalueinquotes="false" fieldmodel="AccountSelected" sourcetype="modelproperty" sourceproperty="hasChanged" value="true" operator="="/>
                                                                                </enableconditions>
                                                                            </button>
                                                                        </buttons>
                                                                    </buttonset>
                                                                    <template multiple="false" uniqueid="sk-34vL-L-1500" model="AccountSelected">
                                                                        <contents>{{Name}}</contents>
                                                                    </template>
                                                                    <basicfieldeditor showheader="true" showsavecancel="false" showerrorsinline="true" model="AccountSelected" buttonposition="" uniqueid="sk-335asr-600" mode="edit" layout="above">
                                                                        <columns layoutmode="fixed">
                                                                            <column width="100%">
                                                                                <sections>
                                                                                    <section title="Section A" collapsible="no" showheader="false">
                                                                                        <fields>
                                                                                            <field id="Name" valuehalign="" type=""/>
                                                                                            <field id="Industry" valuehalign="" type=""/>

I am seeing page titles work for this issue currently on 9.5.2. We’re actively working on the button set to have the same level of functionality. We’ll update here when the fix is public.

Hello Skuid Community ~

Thank you for your thoughtful suggestion! Skuid listened to your concern and has implemented your idea in the new Brooklyn Update 1 - Iteration 4 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.

Excellent. Thanks Stephen and the Skuid team!