filters not showing up as drop down list on mobile view

  • 1
  • Question
  • Updated 3 years ago
  • Answered
Hi there, i've got a filter set up in a left nav page for the contacts object. Instead of the filters appearing as a drop down list they are appearing as a list of elements down the left hand nav (see image). for the life of me i can't figure out why this is going on, i'm trying to modify the version of this functionality (which works) found here (https://github.com/skuidify/SamplePages/blob/master/pages/Mobile_Filter) but cannot seem to make it work.. 

has anyone come across this before? Would definitely appreciate some help on this one :S
Photo of Adam Sellers

Adam Sellers

  • 100 Points 100 badge 2x thumb
  • at my wit's end..

Posted 3 years ago

  • 1
Photo of Adam Sellers

Adam Sellers

  • 100 Points 100 badge 2x thumb
here is the page. 

<skuidpage unsavedchangeswarning="" personalizationmode="server">   <models>
      <model id="ContactData" limit="500" query="true" createrowifnonefound="false" adapter="" doclone="" sobject="Contact" orderby="">
         <fields>
            <field id="AccountId"/>
            <field id="Account.Name"/>
            <field id="Activity_Indicator__c"/>
            <field id="Activity_Indicator_partner__c"/>
            <field id="Assistant_Email__c"/>
            <field id="AssistantName"/>
            <field id="AssistantPhone"/>
            <field id="Name"/>
            <field id="Gender__c"/>
            <field id="LastActivityDate"/>
            <field id="MobilePhone"/>
            <field id="NRL_Clubs__c"/>
            <field id="Email"/>
            <field id="Stakeholder_Category__c"/>
         </fields>
         <conditions>
            <condition type="fieldvalue" value="" enclosevalueinquotes="true" operator="=" state="filterableoff" field="RecordType.Name" inactive="true" name="RecordTypeName"/>
         </conditions>
      </model>
      <model id="StakeholderPicker" limit="20" query="true" createrowifnonefound="false" adapter="" doclone="" sobject="RecordType">
         <fields>
            <field id="Id"/>
            <field id="DeveloperName"/>
            <field id="Name"/>
         </fields>
         <conditions>
            <condition type="fieldvalue" value="Contact" operator="=" state="" field="SobjectType" enclosevalueinquotes="true"/>
            <condition type="fieldvalue" value="true" enclosevalueinquotes="false" operator="=" state="" field="IsActive"/>
         </conditions>
      </model>
      <model id="ContactPicker" limit="100" query="true" createrowifnonefound="false" adapter="" doclone="" sobject="Contact">
         <fields>
            <field id="Stakeholder_Category__c"/>
         </fields>
         <conditions/>
      </model>
   </models>
   <components>
      <skuidmobile>
         <mobilepanels>
            <mobilepanel minwidth="200" uniqueid="Main">
               <components>
                  <mobiledeck uniqueid="sk-22H3S1-78" showsavecancel="true" showloadmore="false" searchmethod="server" searchbox="true" tokenizesearch="true" createrecords="true" precision="1" minwidth="400" model="ContactData" mode="read" emptysearchbehavior="query">
                     <components>
                        <mobilefield id="Name" valuehalign="" type="">
                           <renderconditions logictype="and" onhidedatabehavior="keep"/>
                           <enableconditions logictype="and"/>
                        </mobilefield>
                        <mobilefield id="MobilePhone" valuehalign="" type="">
                           <renderconditions logictype="and" onhidedatabehavior="keep"/>
                           <enableconditions logictype="and"/>
                        </mobilefield>
                        <mobilefield id="AccountId" valuehalign="" type="" optionsource="">
                           <searchfields/>
                           <filters/>
                           <renderconditions logictype="and" onhidedatabehavior="keep"/>
                           <enableconditions logictype="and"/>
                        </mobilefield>
                     </components>
                     <searchfields/>
                     <aftersaveactions/>
                     <renderconditions logictype="and"/>
                     <conditions/>
                     <cardinteractions>
                        <interaction type="doubletap">
                           <actions>
                              <action type="setCondition" model="StakeholderPicker" value="{{Id}}"/>
                              <action type="requeryModel" model="StakeholderPicker" behavior="standard"/>
                              <action type="setMainPanel"/>
                           </actions>
                        </interaction>
                        <interaction type="tap">
                           <actions>
                              <action type="setCondition" model="ContactPicker" value="{{Id}}"/>
                              <action type="requeryModel" model="ContactPicker" behavior="standard"/>
                           </actions>
                        </interaction>
                     </cardinteractions>
                  </mobiledeck>
               </components>
            </mobilepanel>
            <mobilepanel minwidth="200" uniqueid="Nav">
               <components>
                  <mobiledeck uniqueid="sk-22XHKo-219" showsavecancel="false" showloadmore="false" searchmethod="server" searchbox="true" tokenizesearch="true" createrecords="false" precision="1" minwidth="400" model="StakeholderPicker" mode="read" emptysearchbehavior="query">
                     <components>
                        <mobilefield id="Name" valuehalign="" type="">
                           <renderconditions logictype="and" onhidedatabehavior="keep"/>
                           <enableconditions logictype="and"/>
                           <label>Stakeholder Category</label>
                        </mobilefield>
                        <mobilegrid uniqueid="sk-22Xd7I-272" precision="2" minwidth="200">
                           <divisions>
                              <division size="1" type="flex">
                                 <components>
                                    <mobilebutton label="Filter" style="nav" uniqueid="sk-22Xi0j-280" icon="fa-filter">
                                       <actions>
                                          <action type="setCondition" model="ContactData" condition="RecordTypeName" value="{{RecordType.Name}}"/>
                                          <action type="requeryModel" model="ContactData" behavior="standard">
                                             <onerroractions/>
                                          </action>
                                          <action type="setMainPanel" panel="Main"/>
                                       </actions>
                                       <renderconditions logictype="and"/>
                                       <enableconditions logictype="and"/>
                                    </mobilebutton>
                                 </components>
                                 <renderconditions logictype="and"/>
                              </division>
                              <division size="1" type="flex">
                                 <components>
                                    <mobilebutton label="Reset" style="nav" uniqueid="sk-22XnfL-283" icon="sk-icon-cancel">
                                       <actions>
                                          <action type="deactivateCondition" model="ContactData" condition="RecordTypeName"/>
                                          <action type="requeryModel" model="ContactData" behavior="standard"/>
                                          <action type="setMainPanel" panel="Main"/>
                                       </actions>
                                       <renderconditions logictype="and"/>
                                       <enableconditions logictype="and"/>
                                    </mobilebutton>
                                 </components>
                                 <renderconditions logictype="and"/>
                              </division>
                           </divisions>
                        </mobilegrid>
                     </components>
                     <searchfields/>
                     <aftersaveactions/>
                     <renderconditions logictype="and"/>
                     <conditions/>
                     <title>Stakeholder Category</title>
                     <cardinteractions>
                        <interaction type="tap">
                           <actions/>
                        </interaction>
                     </cardinteractions>
                  </mobiledeck>
               </components>
            </mobilepanel>
         </mobilepanels>
         <mobilenavs>
            <mobilenav uniqueid="topNav">
               <components>
                  <mobilegrid uniqueid="sk-22JL05-89" precision="4" minwidth="100">
                     <divisions>
                        <division size="1" type="flex">
                           <components>
                              <mobilebutton label="Category" style="nav" uniqueid="sk-22WbjW-139">
                                 <actions>
                                    <action type="toggleLeftPanel" panel="Nav"/>
                                 </actions>
                                 <renderconditions logictype="and"/>
                                 <enableconditions logictype="and"/>
                              </mobilebutton>
                           </components>
                           <renderconditions logictype="and"/>
                        </division>
                        <division size="2" type="flex">
                           <components>
                              <mobiletitle uniqueid="sk-22ZVPK-122">
                                 <contents>Stakeholder Engagement</contents>
                                 <renderconditions logictype="and"/>
                              </mobiletitle>
                           </components>
                           <renderconditions logictype="and"/>
                        </division>
                        <division size="1" type="flex">
                           <components>
                              <mobilebutton label="Setup" style="nav" uniqueid="sk-22aNIz-131">
                                 <actions>
                                    <action type="toggleSetupMenu"/>
                                 </actions>
                                 <renderconditions logictype="and"/>
                                 <enableconditions logictype="and"/>
                              </mobilebutton>
                           </components>
                           <renderconditions logictype="and"/>
                        </division>
                     </divisions>
                  </mobilegrid>
               </components>
            </mobilenav>
         </mobilenavs>
      </skuidmobile>
   </components>
   <resources>
      <labels/>
      <javascript/>
      <css/>
   </resources>
</skuidpage>
Photo of Rob Hatch

Rob Hatch, Official Rep

  • 44,006 Points 20k badge 2x thumb
Here is the key item.  Your contact picker model needs some adjustment. You currently have it configured to retrieve 100 rows of existing data.  This creates 100 entries in your sidebar,  and means that if you change value in one of those rows,  you might be saving data in addition to filtering your main panel. 

You need to set the model properties as follows. 
- Load Data on Page load - OFF
- Create Dafault Row if none found - ON
- Number of Rows returned - 1

Then you need to make sure that the user never has the chance to save that model.  Make all components read only...

You are close.  So close. 
Photo of Matt Sones

Matt Sones, Champion

  • 31,478 Points 20k badge 2x thumb
I was going to add:

"And in the advanced model settings, you can set Prevent user from leaving this page if model has unsaved changes - OFF, so your users don't get unsaved changes warnings."

But apparently that setting isn't available on mobile models.
Photo of Adam Sellers

Adam Sellers

  • 100 Points 100 badge 2x thumb
Hi guys, thanks for the help - but this is still not working.. it's showing a single row now, however no drop down list appearing in that row. 

I'm trying to filter the list of contacts on the available record types for that object. I have another model, StakeholderPicker, that has a condition on the RecordType object to only return sObject type Contact, and active record types. 

My condition on the Contacts model is filterable as RecordType.Name and this field is the return field value in the stakeholder picker model. Is this condition (on the contact model) the only thing that references the Stakeholder picker model? 

Also, in the button where i set and activate the model i use the condition in the Contact model and what does the Value field do? I have this as {{RecordType.Name}} at the moment and this is defined in the condition on the Contacts model. 

Again, page is below. 

<skuidpage unsavedchangeswarning="" personalizationmode="server">   <models>
      <model id="ContactData" limit="500" query="true" createrowifnonefound="false" adapter="" doclone="" sobject="Contact" orderby="">
         <fields>
            <field id="AccountId"/>
            <field id="Account.Name"/>
            <field id="Activity_Indicator__c"/>
            <field id="Activity_Indicator_partner__c"/>
            <field id="Assistant_Email__c"/>
            <field id="AssistantName"/>
            <field id="AssistantPhone"/>
            <field id="Name"/>
            <field id="Gender__c"/>
            <field id="LastActivityDate"/>
            <field id="MobilePhone"/>
            <field id="NRL_Clubs__c"/>
            <field id="Email"/>
            <field id="Stakeholder_Category__c"/>
            <field id="RecordType.Name"/>
         </fields>
         <conditions>
            <condition type="fieldvalue" value="" enclosevalueinquotes="true" operator="=" state="filterableoff" field="RecordType.Name" inactive="true" name="RecordTypeName"/>
         </conditions>
      </model>
      <model id="StakeholderPicker" limit="1" query="false" createrowifnonefound="true" adapter="" doclone="" sobject="RecordType">
         <fields>
            <field id="Name"/>
         </fields>
         <conditions>
            <condition type="fieldvalue" value="Contact" operator="=" state="" field="SobjectType" enclosevalueinquotes="true"/>
            <condition type="fieldvalue" value="true" enclosevalueinquotes="false" operator="=" state="" field="IsActive"/>
         </conditions>
      </model>
   </models>
   <components>
      <skuidmobile>
         <mobilepanels>
            <mobilepanel minwidth="200" uniqueid="Main">
               <components>
                  <mobiledeck uniqueid="sk-22H3S1-78" showsavecancel="true" showloadmore="false" searchmethod="server" searchbox="true" tokenizesearch="true" createrecords="true" precision="1" minwidth="400" model="ContactData" mode="read" emptysearchbehavior="query">
                     <components>
                        <mobilefield id="Name" valuehalign="" type="">
                           <renderconditions logictype="and" onhidedatabehavior="keep"/>
                           <enableconditions logictype="and"/>
                        </mobilefield>
                        <mobilefield id="MobilePhone" valuehalign="" type="">
                           <renderconditions logictype="and" onhidedatabehavior="keep"/>
                           <enableconditions logictype="and"/>
                        </mobilefield>
                        <mobilefield id="AccountId" valuehalign="" type="" optionsource="">
                           <searchfields/>
                           <filters/>
                           <renderconditions logictype="and" onhidedatabehavior="keep"/>
                           <enableconditions logictype="and"/>
                        </mobilefield>
                     </components>
                     <searchfields/>
                     <aftersaveactions/>
                     <renderconditions logictype="and"/>
                     <conditions/>
                     <cardinteractions>
                        <interaction type="doubletap">
                           <actions>
                              <action type="setCondition" model="StakeholderPicker" value="{{Name}}"/>
                              <action type="requeryModel" model="StakeholderPicker" behavior="standard"/>
                              <action type="setMainPanel"/>
                           </actions>
                        </interaction>
                        <interaction type="tap">
                           <actions>
                              <action type="setCondition" model="StakeholderPicker" value="{{Name}}"/>
                              <action type="requeryModel" model="ContactData" behavior="standard"/>
                           </actions>
                        </interaction>
                     </cardinteractions>
                  </mobiledeck>
               </components>
            </mobilepanel>
            <mobilepanel minwidth="200" uniqueid="Nav">
               <components>
                  <mobiledeck uniqueid="sk-22XHKo-219" showsavecancel="false" showloadmore="false" searchmethod="server" searchbox="true" tokenizesearch="true" createrecords="false" precision="1" minwidth="400" model="StakeholderPicker" mode="read" emptysearchbehavior="query">
                     <components>
                        <mobilefield id="Name" valuehalign="" type="">
                           <renderconditions logictype="and" onhidedatabehavior="keep"/>
                           <enableconditions logictype="and"/>
                           <label>Stakeholder Category</label>
                        </mobilefield>
                        <mobilegrid uniqueid="sk-22Xd7I-272" precision="2" minwidth="200">
                           <divisions>
                              <division size="1" type="flex">
                                 <components>
                                    <mobilebutton label="Filter" style="nav" uniqueid="sk-22Xi0j-280" icon="fa-filter">
                                       <actions>
                                          <action type="setCondition" model="ContactData" condition="RecordTypeName" value="{{RecordType.Name}}"/>
                                          <action type="requeryModel" model="ContactData" behavior="standard">
                                             <onerroractions/>
                                          </action>
                                          <action type="setMainPanel" panel="Main"/>
                                       </actions>
                                       <renderconditions logictype="and"/>
                                       <enableconditions logictype="and"/>
                                    </mobilebutton>
                                 </components>
                                 <renderconditions logictype="and"/>
                              </division>
                              <division size="1" type="flex">
                                 <components>
                                    <mobilebutton label="Reset" style="nav" uniqueid="sk-22XnfL-283" icon="sk-icon-cancel">
                                       <actions>
                                          <action type="deactivateCondition" model="ContactData" condition="RecordTypeName"/>
                                          <action type="requeryModel" model="ContactData" behavior="standard"/>
                                          <action type="setMainPanel" panel="Main"/>
                                       </actions>
                                       <renderconditions logictype="and"/>
                                       <enableconditions logictype="and"/>
                                    </mobilebutton>
                                 </components>
                                 <renderconditions logictype="and"/>
                              </division>
                           </divisions>
                        </mobilegrid>
                     </components>
                     <searchfields/>
                     <aftersaveactions/>
                     <renderconditions logictype="and"/>
                     <conditions/>
                     <title>Stakeholder Category</title>
                     <cardinteractions>
                        <interaction type="tap">
                           <actions/>
                        </interaction>
                     </cardinteractions>
                  </mobiledeck>
               </components>
            </mobilepanel>
         </mobilepanels>
         <mobilenavs>
            <mobilenav uniqueid="topNav">
               <components>
                  <mobilegrid uniqueid="sk-22JL05-89" precision="4" minwidth="100">
                     <divisions>
                        <division size="1" type="flex">
                           <components>
                              <mobilebutton label="Category" style="nav" uniqueid="sk-22WbjW-139">
                                 <actions>
                                    <action type="toggleLeftPanel" panel="Nav"/>
                                 </actions>
                                 <renderconditions logictype="and"/>
                                 <enableconditions logictype="and"/>
                              </mobilebutton>
                           </components>
                           <renderconditions logictype="and"/>
                        </division>
                        <division size="2" type="flex">
                           <components>
                              <mobiletitle uniqueid="sk-22ZVPK-122">
                                 <contents>Stakeholder Engagement</contents>
                                 <renderconditions logictype="and"/>
                              </mobiletitle>
                           </components>
                           <renderconditions logictype="and"/>
                        </division>
                        <division size="1" type="flex">
                           <components>
                              <mobilebutton label="Setup" style="nav" uniqueid="sk-22aNIz-131">
                                 <actions>
                                    <action type="toggleSetupMenu"/>
                                 </actions>
                                 <renderconditions logictype="and"/>
                                 <enableconditions logictype="and"/>
                              </mobilebutton>
                           </components>
                           <renderconditions logictype="and"/>
                        </division>
                     </divisions>
                  </mobilegrid>
               </components>
            </mobilenav>
         </mobilenavs>
      </skuidmobile>
   </components>
   <resources>
      <labels/>
      <javascript/>
      <css/>
   </resources>
</skuidpage>
Photo of Rob Hatch

Rob Hatch, Official Rep

  • 44,006 Points 20k badge 2x thumb
Ok. I think you are trying to get a dropdown list of record types available for a particular contact.  And then filter the list of contacts on the basis of the selected record type. In this case, don't build your model on the record type object.  Build it on the Contact object.  (Creating an default row, Loading one row and not ever saving the record).  Add the record type selection field from contact to your page.  It will appear as multiple values.