Goal
Show asset thumbnails in Pathbrowser picker granite/ui/components/coral/foundation/form/pathbrowser
Demo | Package Install | Github
Product
Extension
Solution
1) Login to CRXDE Lite, create folder (nt:folder) /apps/eaem-touchui-pathbrowser-picker-show-preview
2) Create clientlib (type cq:ClientLibraryFolder) /apps/eaem-touchui-pathbrowser-picker-show-preview/clientlib and set property categories of String type to cq.authoring.dialog.all and dependencies String[] to underscore
3) Create file ( type nt:file ) /apps/eaem-touchui-pathbrowser-picker-show-preview/clientlib/js.txt, add the following
show-preview.js
4) Create file (type nt:file) /apps/eaem-touchui-pathbrowser-picker-show-preview/clientlib/show-preview.js, add the following code
(function ($, $document, gAuthor) {
if(!gAuthor){
return;
}
$document.on('dialog-ready', handlePathBrowser);
function handlePathBrowser(){
var $cuiPathBrowser = $(".coral-PathBrowser");
if(_.isEmpty($cuiPathBrowser)){
return;
}
//handle picker columns
$cuiPathBrowser.each(extendPicker);
}
function extendPicker(index, cuiPathBrowser){
cuiPathBrowser = $(cuiPathBrowser).data("pathBrowser");
var cuiPicker = cuiPathBrowser.$picker.data("picker");
cuiPathBrowser.$button.on("click", function() {
setTimeout(function(){
if(!cuiPicker.columnView){
console.log("EAEM - could not initialize column view");
return;
}
extendColumnView(cuiPicker.columnView);
}, 200);
});
}
function extendColumnView(columnView){
function handler(event, href, data){
if(_.isEmpty(href) || _.isEmpty(data)){
return;
}
var $item, assetPath, thumbHtml,
columnData = columnView._data[href];
if(_.isEmpty(columnData)){
return;
}
var $columnData = $(columnData), $items = $columnData.find(".coral-ColumnView-item");
$items.each(function(index, item){
$item = $(item);
assetPath = $item.data("value");
if(_.isEmpty(assetPath)){
return;
}
thumbHtml = getThumbHtml(assetPath);
if(!thumbHtml){
return;
}
$item.find(".coral-ColumnView-icon").html(thumbHtml);
});
columnView._data[href] = $columnData[0].outerHTML;
}
columnView.$element.on('coral-columnview-load', handler);
}
function getThumbHtml(assetPath){
var assetExt = getStringAfterLastDot(assetPath);
if(!assetExt){
return "";
}
return '<img class="foundation-collection-item-thumbnail" src="'
+ assetPath + '/_jcr_content/renditions/cq5dam.thumbnail.48.48.png" width="40px" height="40px" style="margin-right:10px" '
+ 'alt="' + getStringAfterLastSlash(assetPath) + '">';
}
function getStringAfterLastSlash(str){
if(!str || (str.indexOf("/") == -1)){
return "";
}
return str.substr(str.lastIndexOf("/") + 1);
}
function getStringAfterLastDot(str){
if(!str || (str.indexOf(".") == -1)){
return "";
}
return str.substr(str.lastIndexOf(".") + 1);
}
}(jQuery, jQuery(document), Granite.author));
No comments:
Post a Comment