QuickList Component
The QuickList Component is a versatile UI element in Zuora Quotes, offering features like column sorting, pagination, and multi-select capabilities, along with support for various plug-ins to enhance functionality.
The QuickList is a lightweight global UI component that includes the following features:
-
Sorting on each column in the result table
-
Pagination with configurable page size
-
Single-select or multi-select across multiple pages
-
Expandable rows to show a sub list
-
Admin configuration page in Zuora Config to manage the QuickList component instances
The QuickList component is available in the Versions 6.2 and later of Zuora Quotes.
The QuickList component supports the following plug-ins:
-
IFilterPlugin: For integrating with the QuickFilter component
-
ISearchPlugin: For integrating with the QuickSearch component
-
IAllowedRecodPlugin: For specifying rate plan IDs that you want to display in Guided Product Selectors
The following image shows a QuickList component instance in the single-select mode, sorted by Account Name.
The following image shows a QuickList component instance in the multi-select mode with embedded list (sub-list).
See QuickList Component Settings for creating and managing the QuickList instances in Zuora Config.
QuickList Component Attributes
|
Attribute |
Type |
Required? |
Description |
|---|---|---|---|
|
contextIds |
Map <Object, Object> |
Optional |
The context Ids associated with this particular list. If you are using the "List Filter Admin" segmentation in this list with dynamic values to be retrieved through a context, pass in the context IDs here. |
|
listName |
String |
Required |
The unique list name registered in Zuora Config |
QuickList Component Plugins
The QuickList component supports the following plug-ins :
-
zqu.QuickListController.IFilterPlugin
-
zqu.QuickListController.ISearchPlugin
-
zqu.QuickListController.IAllowedRecordPlugin
-
zqu.QuickListController.IHierarchyAllowedRecordPlugin
The plug-ins are instantiated when the QuickList component is instantiated for the first time and are re-instantiated when the QuickList component is redrawn.
zqu.QuickListController.IFilterPlugin
Implement the custom IFilterPlugin to integrate the QuickList component with the QuickFilter component. The plug-in filters down the result set in the QuickList instance.
Interface Class Signature
global interface IFilterPlugin { String getAdditionalFilters ( Map<String, List<String>> localFragments, Map<String, String> contextIds, Map<String, String> params); }
zqu.QuickListController.ISearchPlugin
Implement the custom ISearchPlugin to integrate the QuickList component with the QuickSearch component.
Interface Class Signature
global interface ISearchPlugin { String getSoslSearchString ( Map<String, List<String>> localStorageFragments, Map<String, String> params); }
zqu.QuicListController.IAllowedRecordPlugin
Implement the custom IAllowedRecordPlugin to control which rate plan IDs are displayed in the Guided Product Selectors.
Interface Class Signature
global interface IAllowedRecordPlugin { Set<Id> getAllowedRecordIds( Map<Object, Object> contextIds, Map<String, String> pluginParams); }
ContextIds contains the key/value pairs of the Guided Selling Step context and the IDs, e.g. Quote and the Quote ID if the context is set to "Quote" for the Guided Selling Step.
PluginParams contains the associated field set name and the SObject name specified in the Zuora Config QuickList setting .
If the context of the Guided Selling Step is set to be the current flow , the IAllowedRecordPlugin returns the IDs of the selected rate plans in the current Guided Selling Flow.
See Allowed Records Plugin Example for a sample use case.
zqu.QuickListController.IHierarchyAllowedRecordPlugin
Implement the custom IHierarchyAllowedRecordPlugin to control which products and rate plans are displayed in the Lightning Guided Product Selector.
The IHierarchyAllowedRecordPlugin is supported in Lightning Guided Product Selector only.
Interface Class Signature
global interface IHierarchyAllowedRecordPlugin {
zqu.QuickListController.PluginResult getAllowedRecords( Map<Object, Object> contextIds,
Map<String, String> pluginParams);
}
contextIds contains the key/value pairs of the Guided Selling Step context and the IDs, e.g. Quote and the Quote ID if the context is set to "Quote" for the Guided Selling Step.
pluginParams should be empty.
The plugin returns zqu.QuickListController.PluginResult which contains a list of zqu.QuickListController.PluginRecord .
Each zqu.QuickListController.PluginRecord is a product record and contains the following:
-
relatedObjectIds: product Rate Plan ids -
recordId: product id
Sample Code
global class sampleAllowedRecordPlugin implements zqu.QuickListController.IHierarchyAllowedRecordPlugin {
global zqu.QuickListController.PluginResult getAllowedRecords
(Map<Object, Object> contextIds, Map<String, String> pluginParams){
zqu.QuickListController.PluginResult result =
new zqu.QuickListController.PluginResult();
zqu.QuickListController.PluginRecord record =
new zqu.QuickListController.PluginRecord();
record.recordId = '01to0000001tjqQAAQ';
record.relatedObjectIds = new Map<String, List<ID>>
{'zqu__productrateplan__c' => new List<ID>
{'a0Io000000kUsgZEAS', 'a0Io000000kUsgaEAC', 'a0Io000000kUsgcEAC'}};
result.records = new List<zqu.QuickListController.PluginRecord>();
result.records.add(record);
return result;
}
}
Refer examples on Use case examples for QuickList component.