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);


Hi Sreekanth, If I have to show a list of particular components inside a parsys of a component. How can I achieve the same in 6.5 ? on which file or events I have to do the customisation. I can't achieve it using design "/etc/designs//jcr:content" since this parsys is getting generated dynamically. Can you help me with that . I want to restict the list of a components for a particular parsys.
ReplyDeleteThis doesn't work when we double click on parsys for the first time but works when we click on + icon.
ReplyDelete