Quantcast
Channel: Experiencing Adobe Experience Manager (AEM, CQ)
Viewing all articles
Browse latest Browse all 525

AEM 61 SP1 - TouchUI set User Default Search Keyword in Asset Finder

$
0
0

Goal


Set the user's search keyword and results in Asset Finder when loading TouchUI authoring editorhttp://localhost:4502/editor.html

Demo | Package Install


Keyword in User Profile

          Set the property searchKeyword in user's profile manually or by extending user editor - check this post



TouchUI Editor with Keyword and Results



Solution


1) Login to CRXDE Lite (http://localhost:4502/crx/de) and create folder /apps/touchui-asset-finder-set-search-text

2) Create node /apps/touchui-asset-finder-set-search-text/clientlib of type cq:ClientLibraryFolder and add a String property categories with value cq.authoring.editor.hook.assetfinder

3) Create file (nt:file) /apps/touchui-asset-finder-set-search-text/clientlib/js.txt and add

                       set-search-text.js

4) Create file (nt:file) /apps/touchui-asset-finder-set-search-text/clientlib/set-search-text.js and add the following code

(function ($, $document) {
"use strict";

//id "assetfinder-filter" and "assetsearch" are defined in
///libs/wcm/core/content/editor/jcr:content/sidepanels/edit/items/assetsTab/items/filterPanel/items/views/items/search/items/searchpanel
var ASSET_FINDER_FILTER = "#assetfinder-filter",
KEYWORD_SELECTOR = "#assetsearch",
ASSET_FINDER_CONTAINER = ".assetfinder-content-container",
PROFILE_SEARCH_KEYWORD = "searchKeyword";

$document.on('cq-layer-activated', getDefaultKeyword);

function getDefaultKeyword(ev){
if ( ev.layer !== 'Edit' ) {
return;
}

//Granite.author.ContentFrame.contentWindow.CQ.shared.User.getUserPropsUrl()
$.ajax("/libs/cq/security/userinfo.json").done(function(data){
$.ajax(data.home + ".1.json").done(searchWithKeyword);
});
}

function searchWithKeyword(data){
if(!data || !data.profile || !data.profile[PROFILE_SEARCH_KEYWORD]){
return;
}

var $assetFinderFilter = $(ASSET_FINDER_FILTER),
$assetFinderContainer = $(ASSET_FINDER_CONTAINER),
$assetFinderKeyword = $assetFinderFilter.find(KEYWORD_SELECTOR);

$assetFinderKeyword.val(data.profile[PROFILE_SEARCH_KEYWORD]);

$assetFinderContainer.trigger({
type: "loadAssets",
append: false
})
}
})(jQuery, jQuery(document));




Viewing all articles
Browse latest Browse all 525

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>