Skip to content

Instantly share code, notes, and snippets.

@cmaggiulli
Created July 22, 2018 22:21
Show Gist options
  • Save cmaggiulli/d545e0b8eac0f2b59d4075d1a81ecb15 to your computer and use it in GitHub Desktop.
Save cmaggiulli/d545e0b8eac0f2b59d4075d1a81ecb15 to your computer and use it in GitHub Desktop.
Lifeay search container jusing JavaScript SDK
<aui:script use="aui-base,escape,liferay-search-container">
var assetSelectorHandle = A.getBody().delegate('click',
function(event) {
event.preventDefault();
var searchContainerName = '<portlet:namespace/>assetLinksSearchContainer';
var searchContainer = Liferay.SearchContainer.get(searchContainerName);
var searchContainerData = searchContainer.getData();
if (searchContainerData) {
searchContainerData = searchContainerData.split(',');
}
else {
searchContainerData = [];
}
Liferay.Util.selectEntity(
{
dialog: {
constrain: true,
modal: true
},
eventName: '<%= inputAssetLinksDisplayContext.getEventName() %>',
id: '<%= inputAssetLinksDisplayContext.getEventName() %>' + event.currentTarget.attr('id'),
selectedData: searchContainerData,
title: event.currentTarget.attr('data-title'),
uri: event.currentTarget.attr('data-href')
},
function(event) {
var entityId = event.entityid;
var entryLink = '<a class="modify-link" data-rowId="' + entityId + '" href="javascript:;"><%= UnicodeFormatter.toString(removeLinkIcon) %></a>';
searchContainer.addRow([event.assettype, A.Escape.html(event.assettitle), A.Escape.html(event.groupdescriptivename), entryLink], entityId);
searchContainer.updateDataStore();
}
);
},
'.asset-selector a'
);
var clearAssetSelectorHandle = function(event) {
if (event.portletId === '<%= portletDisplay.getId() %>') {
assetSelectorHandle.detach();
Liferay.detach('destroyPortlet', clearAssetSelectorHandle);
}
};
Liferay.on('destroyPortlet', clearAssetSelectorHandle);
</aui:script>
<aui:script use="liferay-search-container">
var searchContainer = Liferay.SearchContainer.get('<portlet:namespace/>assetLinksSearchContainer');
searchContainer.get('contentBox').delegate(
'click',
function(event) {
var link = event.currentTarget;
var tr = link.ancestor('tr');
searchContainer.deleteRow(tr, link.getAttribute('data-rowId'));
},
'.modify-link'
);
</aui:script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment