Tuesday, August 7, 2018

AEM 61 TouchUI Assets Console show node name instead of dc title or jcr title

AEM 61 TouchUI Assets Console show node name instead of dc title or jcr title


Goal


In all 3 views (card, list, column) of Touch UI Assets Console, show the node name (filename) and NOT dc:title for assets or jcr:title for folders

For AEM 62 check this post

Demo | Package Install


Product



Extension



Solution


1) Login to CRXDE Lite, create folder (nt:folder) /apps/touchui-assets-show-filenames

2) Create clientlib (type cq:ClientLibraryFolder/apps/touchui-assets-show-filenames/clientlib, set a property categories of String type to granite.ui.foundation.admin and dependencies of type String[] to underscore

3) Create file ( type nt:file ) /apps/touchui-assets-show-filenames/clientlib/js.txt, add the following

                         show-file-name.js

4) Create file ( type nt:file ) /apps/touchui-assets-show-filenames/clientlib/show-file-name.js, add the following code

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

var DAM_ADMIN_CHILD_PAGES = "cq-damadmin-admin-childpages",
LOAD_EVENT = "coral-columnview-load",
FOUNDATION_LAYOUT_CARD = ".foundation-layout-card",
NS_COLUMNS = ".foundation-layout-columns";

$document.on("foundation-mode-change", function(e, mode, group){
//not assets console, return
if(group != DAM_ADMIN_CHILD_PAGES){
return;
}

showFileName();

var $collection = $(".foundation-collection[data-foundation-mode-group=" + group + "]");

//for column view
$collection.on(LOAD_EVENT, function(){
setTimeout( showFileName ,200);
});

//for column view select
$collection.on("coral-columnview-item-select" + NS_COLUMNS, showFileName);

if (!$collection.is(FOUNDATION_LAYOUT_CARD)) {
return;
}

var $scrollContainer = $collection.parent();

//for card view scroll
$scrollContainer.on("scroll" + FOUNDATION_LAYOUT_CARD, _.throttle(function(){
var paging = $collection.data("foundation-layout-card.internal.paging");

if(!paging.isLoading){
return;
}

var INTERVAL = setInterval(function(){
if(paging.isLoading){
return;
}

clearInterval(INTERVAL);

showFileName();
}, 250);
}, 100));
});

function showFileName(){
var $articles = $("article"), $article, name;

$articles.each(function(index, article){
$article = $(article);

name = getStringAfterLastSlash($article.data("path"));

$article.find("h4").html(name);
$article.find(".coral-ColumnView-label").html(name);
});
}

function getStringAfterLastSlash(str){
if(!str || (str.indexOf("/") == -1)){
return "";
}

return str.substr(str.lastIndexOf("/") + 1);
}
})(jQuery, jQuery(document));



visit link download