Popup title has wrong context

  • 1
  • Problem
  • Updated 7 months ago
  • Solved
I have a table on a model called MyObservations.
I have a row action which activates a few conditions, queries two other models, and then opens a popup.
I expect the context of the popup title to be the table row which started the action sequence, but it's not...



Any idea what could be going on there?
Photo of Matt Sones

Matt Sones, Champion

  • 31,478 Points 20k badge 2x thumb

Posted 7 months ago

  • 1
Photo of mB Pat Vachon

mB Pat Vachon, Champion

  • 42,714 Points 20k badge 2x thumb
Doesn't seem right to me.

Is the Interaction__c model related Staff_Observation__c model. If so, you can implement a work around by using the relationship field. ie. Interaction__r.Staff__c.
Photo of Mark DeSimone

Mark DeSimone, Official Rep

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

Which version of Skuid are you working with? 

Would you mind trying this simple page in your Salesforce org to see if it behaves the same way as in your video? I tried to reproduce the behavior, but so far haven't seen anything unexpected.

<skuidpage unsavedchangeswarning="yes" personalizationmode="server" showsidebar="true" useviewportmeta="true" showheader="true">
    <models>
        <model id="acc" limit="20" query="false" createrowifnonefound="false" datasource="salesforce" sobject="Account">
            <fields>
                <field id="Name"/>
                <field id="Id"/>
            </fields>
            <conditions>
                <condition type="fieldvalue" value="" enclosevalueinquotes="true" field="Id" state="filterableoff" inactive="true" name="Id"/>
            </conditions>
            <actions/>
        </model>
        <model id="cont" limit="20" query="false" createrowifnonefound="false" datasource="salesforce" sobject="Contact">
            <fields>
                <field id="Name"/>
                <field id="AccountId"/>
                <field id="Account.Name"/>
            </fields>
            <conditions>
                <condition type="fieldvalue" value="" enclosevalueinquotes="true" field="AccountId" fieldtargetobjects="Account" state="filterableoff" inactive="true" name="AccountId"/>
            </conditions>
            <actions/>
        </model>
        <model id="opp" limit="20" query="true" createrowifnonefound="false" datasource="salesforce" sobject="Opportunity">
            <fields>
                <field id="AccountId"/>
                <field id="Account.Name"/>
                <field id="Amount"/>
                <field id="Name"/>
            </fields>
            <conditions/>
            <actions/>
        </model>
    </models>
    <components>
        <grid uniqueid="sk-3LlZ-856">
            <divisions>
                <division behavior="flex" minwidth="100px" ratio="2" verticalalign="top">
                    <components>
                        <skootable showconditions="true" showsavecancel="true" showerrorsinline="true" searchmethod="server" searchbox="true" showexportbuttons="false" hideheader="false" hidefooter="false" pagesize="10" alwaysresetpagination="false" createrecords="true" model="opp" buttonposition="" mode="read" allowcolumnreordering="true" responsive="true" uniqueid="sk-3LlZ-270" heading="Opportunities">
                            <fields>
                                <field id="AccountId" hideable="true" uniqueid="fi-3LlZ-306"/>
                                <field id="Amount" hideable="true" uniqueid="fi-3LlZ-307"/>
                                <field id="Name" hideable="true" uniqueid="fi-3LlZ-308"/>
                            </fields>
                            <rowactions>
                                <action type="edit"/>
                                <action type="delete"/>
                                <action type="multi" label="Show only this Opp's Accounts and Contacts" icon="sk-icon-hierarchy">
                                    <actions>
                                        <action type="setCondition" model="acc" condition="Id" value="{{{AccountId}}}"/>
                                        <action type="setCondition" model="cont" condition="AccountId" value="{{{AccountId}}}"/>
                                        <action type="requeryModels" model="acc" behavior="standard">
                                            <models>
                                                <model>acc</model>
                                                <model>cont</model>
                                            </models>
                                        </action>
                                        <action type="showPopup">
                                            <popup title="{{Model.label}} - {{Name}}" width="90%">
                                                <components>
                                                    <pagetitle model="opp" uniqueid="sk-3LlZ-413">
                                                        <maintitle>
                                                            <template>{{Name}}</template>
                                                        </maintitle>
                                                        <subtitle>
                                                            <template>{{Model.label}}</template>
                                                        </subtitle>
                                                        <actions/>
                                                        <conditions>
                                                            <condition type="contextrow" field="Id" mergefield="Id"/>
                                                        </conditions>
                                                    </pagetitle>
                                                </components>
                                            </popup>
                                        </action>
                                    </actions>
                                </action>
                            </rowactions>
                            <massactions usefirstitemasdefault="true">
                                <action type="massupdate"/>
                                <action type="massdelete"/>
                            </massactions>
                            <views>
                                <view type="standard"/>
                            </views>
                        </skootable>
                    </components>
                </division>
                <division behavior="flex" verticalalign="top" minwidth="100px" ratio="1">
                    <components>
                        <queue model="acc" tagrendertype="template" searchbox="true" tokenizesearch="true" showsearchbydefault="true" hideheader="false" hidefooter="false" uniqueid="sk-3LlZ-609" title="Associated Accounts">
                            <rendertemplate>{{Name}}</rendertemplate>
                            <interactions>
                                <interaction type="tap">
                                    <action type="updateIncludePanel" querystring="id={{Id}}"/>
                                </interaction>
                            </interactions>
                        </queue>
                    </components>
                </division>
                <division behavior="flex" verticalalign="top" minwidth="100px" ratio="1">
                    <components>
                        <queue model="cont" tagrendertype="template" searchbox="true" tokenizesearch="true" showsearchbydefault="true" hideheader="false" hidefooter="false" uniqueid="sk-3LlZ-901" title="Associated Contacts">
                            <rendertemplate>{{Name}}</rendertemplate>
                            <interactions>
                                <interaction type="tap">
                                    <action type="updateIncludePanel" querystring="id={{Id}}"/>
                                </interaction>
                            </interactions>
                            <searchfields/>
                        </queue>
                    </components>
                </division>
            </divisions>
            <styles>
                <styleitem type="background" bgtype="none"/>
            </styles>
        </grid>
    </components>
    <resources>
        <labels/>
        <javascript/>
        <css/>
        <actionsequences uniqueid="sk-3LlZ-300"/>
    </resources>
    <styles>
        <styleitem type="background" bgtype="none"/>
    </styles>
</skuidpage>
Photo of Matt Sones

Matt Sones, Champion

  • 31,478 Points 20k badge 2x thumb
Looks like I found the problem. It looks like I turned a query model action into a "show popup" action, and it retained the model property in the XML like so:

<action type="showPopup" model="MyInteractions" behavior="standard">

Eliminating the model and behavior properties fixed the popup title context.

I guess it's nice to know I can forcibly set a popup's title context by hacking the XML?
Photo of mB Pat Vachon

mB Pat Vachon, Champion

  • 42,714 Points 20k badge 2x thumb
That is interesting and strange. You'd think this is something that could be set in the builder.
Photo of Mark DeSimone

Mark DeSimone, Official Rep

  • 11,050 Points 10k badge 2x thumb
Matt, thanks very much for closing the loop. It looks like this XML property should be updated or removed when the action type is changed, but didn't happen in this case for some reason. Do you remember if you made this change in your current version of Skuid, or in a past version? Also, which version of Skuid are you using here?
Photo of Matt Sones

Matt Sones, Champion

  • 31,478 Points 20k badge 2x thumb
Made the change in 10.0.19, am using 10.0.21 now.