Friday, June 29, 2018
AEM 62 Touch UI Sort Components by Title in Insert New Component Dialog
AEM 62 Touch UI Sort Components by Title in Insert New Component Dialog
Goal
Sort the components alphabetically in Insert New Component dialog of Touch UI Editor
Demo | Package Install | GitHub
Product
Extension
Solution
1) Login to CRXDE Lite, create folder (nt:folder) /apps/eaem-touch-parsys-insert-comp-sort-title
2) Create clientlib (type cq:ClientLibraryFolder) /apps/eaem-touch-parsys-insert-comp-sort-title/clientlib and set property categories of String[] type to cq.authoring.dialog and dependencies to underscore
3) Create file ( type nt:file ) /apps/eaem-touch-parsys-insert-comp-sort-title/clientlib/js.txt, add the following
sort-components.js
4) Create file ( type nt:file ) /apps/eaem-touch-parsys-insert-comp-sort-title/clientlib/sort-components.js, add the following code
(function ($document, gAuthor) {
$(extendComponentInsert);
function extendComponentInsert(){
gAuthor.edit.ToolbarActions.INSERT.handler = function eaemOpenInsertDialog(executeDlgFn){
return function (editable) {
gAuthor.components.allowedComponents.sort(sortFn);
executeDlgFn.call(this, editable);
}
}(gAuthor.edit.ToolbarActions.INSERT.handler);
}
function sortFn(comp1, comp2){
try{
return comp1.componentConfig.title.localeCompare(comp2.componentConfig.title)
}catch(err){
console.log("Error doing compare", err);
}
}
})($(document), Granite.author);