AEM 6 - Touch UI Add new Action to Assets Action Bar

Goal


Adding a new menu item to the Assets console Action bar, for creating unique folders

Demo | Package Install



Solution


1) Login to CRXDE Lite (http://localhost:4502/crx/de) and create folder /apps/create-random-asset-folder

2 Create node /apps/create-random-asset-folder/clientlib of type cq:ClientLibraryFolder and add a String property categories with value cq.gui.damadmin.admin

3) Create file (nt:file) /apps/create-random-asset-folder/clientlib/js.txt and add

                       create-folder.js

4) Create file (nt:file) /apps/create-random-asset-folder/clientlib/create-folder.js and add the following code.

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

    var CREATE_FOLDER_ACTIVATOR = ".cq-damadmin-admin-actions-createfolder-activator";
    var UNIQUE_FOLDER_ELEMENT_ID = "experience-aem-unique-folder-create";

    //code picked up from the internet
    var getUniqueFolderName = function(){
        var d = new Date().getTime();

        return 'xxxx-xxxx-xxxx-xxxx'.replace(/[x]/g, function(c) {
            var r = (d + Math.random() * 16) % 16 | 0;
            d = Math.floor(d / 16);
            return (c == 'x' ? r : (r & 0x7 | 0x8)).toString(16);
        });
    };

    var createFolder = function(parentPath) {
        var options = {
            "./jcr:primaryType": "sling:OrderedFolder",
            "./jcr:content/jcr:primaryType": "nt:unstructured",
            "_charset_": "utf-8"
        };

        return $.ajax({
            url: parentPath + "/" + getUniqueFolderName(),
            data: options,
            type: 'POST'
        });
    };

    $(document).on("foundation-contentloaded", function(e){
        if($("#" + UNIQUE_FOLDER_ELEMENT_ID).length > 0 ){
            return;
        }

        var $cFolder = $(CREATE_FOLDER_ACTIVATOR);

        if($cFolder.length == 0){
            return;
        }

        $cFolder.after($($cFolder[0].outerHTML).attr("id", UNIQUE_FOLDER_ELEMENT_ID)
            .css("opacity", ".5").removeAttr("href").attr("title", "Create Unique Folder").click(function(){
                var parentPath = $(".foundation-content-path").data("foundationContentPath");

                createFolder(parentPath).done(function(){
                    $(".foundation-content").adaptTo("foundation-content").refresh();
                });
            }));
    })
})(document, Granite.$);

1 comment:

  1. Looking for reliable management assignment help australia? Our expert academic writers specialise in delivering high-quality solutions for students pursuing management courses across Australian universities. From strategic management, business planning, and leadership theories to human resource management, operations, and project management, we cover all areas with precision. Each assignment is thoroughly researched, properly structured, and referenced as per university guidelines to help you score top grades. With timely delivery, 100% original content, and round-the-clock support, our management assignment help service in Australia ensures you overcome academic challenges with ease and excel in your studies.

    ReplyDelete