cq.screens.dcc.openLink.js 1.81 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) {
    'use strict';

    function computeUrl(url, item) {
        var $item = $(item);
        return URITemplate.expand(url, {
            item: $item.data('link')
                || $item.find('[data-link]').data('link')
        });
    }

    // deletes entries of a collection with the sling post servlet
    $(window).adaptTo('foundation-registry').register('foundation.collection.action.action', {
        name: 'cq.screens.dcc.openLink',
        handler: function(name, el, config, collection, selections) {
            var winMode = $('meta[name="user.preferences.winmode"]', document.head).prop('content');

            var url;
            if (winMode === 'single') {
                var first = selections[0];
                if (first) {
                    url = computeUrl(config.data.href, first);

                    window.location.href = url;
                }
            } else {
                selections.forEach(function(item) {
                    url = computeUrl(config.data.href, item);

                    window.open(url);
                });
            }
        }
    });

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