channelassignmentfields.js 1.64 KB
/*
 * ADOBE CONFIDENTIAL
 *
 * Copyright 2017 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(document, $) {
    'use strict';

    var CHANNEL_ASSIGNMENT_DIALOG_SELECTOR = '.screens-dcc-actions-assignchannel-dialog';
    var LOCKABLE_FIELDS_SELECTOR = '[name="./role"],[name="./sling:resourceType"],[name="./path"],[name="./name"]';

    // Disable and hide fields we don't want the customer to edit
    $(document).on('coral-overlay:beforeopen', CHANNEL_ASSIGNMENT_DIALOG_SELECTOR, function(ev) {
        var $form = $('.coral-Form', ev.currentTarget);

        // Lock the fields if we are editing the assignment (i.e. the action doesn't end in '/')
        var lockFields = !$form.attr('action').match(/\/$/);
        if (!lockFields) {
            return;
        }
        $(LOCKABLE_FIELDS_SELECTOR, $form).each(function(idx, el) { // eslint-disable-line max-nested-callbacks
            $(el).closest('.coral-Form-field').adaptTo('foundation-field').setDisabled(true);
        }).parents('.coral-Form-fieldwrapper,.u-coral-clearFix').toggle(false);
    });

}(document, Granite.$));