cq.screens.dcc.properties.js 1.88 KB
/*
 * ADOBE CONFIDENTIAL
 *
 * Copyright 2016 Adobe Systems Incorporated
 * All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and may be covered by U.S. and Foreign Patents,
 * patents in process, and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 */
(function(window, $, URITemplate, HTTP) {
    'use strict';

    // Opens the properties of a given page
    var PROPERTIES_PATH = '/screens/properties.html{?item*}&returnPage={+returnPage}';
    $(window).adaptTo('foundation-registry').register('foundation.collection.action.action', {
        name: 'cq.screens.dcc.properties',
        handler: function(name, el, config, collection, selections) {
            var paths = selections.map(function(v) {
                return $(v).data('foundationCollectionItemId');
            });

            if (paths.length !== 1) {
                return;
            }

            var returnPage = config.data ? HTTP.internalize(config.data.returnPage) : null;

            // if the path is alreayd pointing to "jcr:content"
            // we will point it to the parent page
            if (paths[0].match('.*/jcr:content|/_jcr_content[./]?$')) {
                paths[0] = paths[0].substr(0, paths[0].lastIndexOf('/'));
            }

            var url = URITemplate.expand(PROPERTIES_PATH, {
                item: paths[0],
                returnPage: returnPage
            });

            location.href = HTTP.externalize(url);
        }
    });

}(window, Granite.$, Granite.URITemplate, Granite.HTTP));