What if I want my users to still have access to List Views?

I love using Skuid to replace my objects’ Tab pages, but I want some of my org’s users to be able to access the standard Salesforce List View for some objects. I am not sure how to make this happen. Can we have Skuid for our Tab pages and still allow some users to see and create new List Views?

Yes, you can have the best of both worlds! To accomplish this, you can use Skuid to override your object(s)’ Tab standard action, but leave the List action untouched. That way your users can still navigate over to an object’s List Views and create new views just as they did before. To help users navigate over to the List Views page, where they will be able to browse and modify existing List Views, as well as create new List Views, add the following Action (either as a Global Action on a Table or a Page Title Action) to the Skuid page that you are using to override your Skuid tab page: Action Label: “Go to List Views”, type: “Redirect”, URL: “/{{Model.KeyPrefix}}” This will take them to the List Views page for the object in context.

What if I have a button that is only displayed on the list view of Salesforce. How do I use that button with in a table in Skuid?

Hey Zach…how would this work for Salesforce1?

In Salesforce1, you’ll need to use the S1 JavaScript API to perform the navigation, and you’ll need to know the Id of the List View that you want to send the user to.

This API requires that you pass in the Id of the List View you want to start the user on, though, so rather than hard-coding the Id, I recommend querying the “ListView” object using a Skuid Model to grab the List View you’d like to go to. Assuming you have a Model called “ListView” in your Skuid Page, and you’ve requested the Id, SobjectType, and Name fields on it, and you’ve added Conditions to the Model to get the desired List View from the desired SobjectType, you can use a Snippet like the following to grab the first row in this Model, and then navigate the user to the corresponding list view:

var listViewModel = skuid.$M(‘ListView’),
listViewRow = listViewModel ? listViewModel.getFirstRow() : null;
if (sforce && sforce.one && listViewRow) {
sforce.one.navigateToList(listViewRow.Id15,listViewRow.Name,listViewRow.SobjectType);
}