link-schedule.js 2.83 KB
/*
 * ADOBE CONFIDENTIAL
 *
 * Copyright 2012 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, document, $, i18n) {
    'use strict';

    var MODAL_SELECTOR = '.screens-dcc-actions-assignschedule-dialog';

    // Ajax submit the schedule linking form
    $(document).on('submit', MODAL_SELECTOR, function(e) {
        // Ignore if the omnisearch overlay is shown
        if ($('coral-overlay[open]').length) {
            return true;
        }

        e.preventDefault();

        var $modal = $(MODAL_SELECTOR);
        var $form = $modal.find('.coral-Form');
        var ui = $(window).adaptTo('foundation-ui');
        var $name = $('input[name=":nameHint"]', $form);
        var $path = $('input[name="./path"]', $form);
        var $schedulerTitle = $path.val().substr($path.val().lastIndexOf('/') + 1);

        $name.val($schedulerTitle);

        $(MODAL_SELECTOR).get(0).hide();

        function done(data, textStatus, jqXHR) {
            var content = $('.foundation-content').adaptTo('foundation-content');
            content.refresh();
            ui.notify(null, i18n.get('Schedule assigned.'), 'success');
        }

        function fail(jqXHR) {
            var message = $('#Message', jqXHR.responseText).text();
            ui.alert(i18n.get('Error'), message, 'error');
        }

        $.ajax({
            method: 'post',
            url: Granite.HTTP.externalize($form.attr('action')),
            data: $form.serialize()
        }).done(done).fail(fail);
    });

    // Add cache busting parameter to the dialog src to make sure its data is updated after a modification
    // Remove once GRANITE-14378 has been tackled
    $(document).on('foundation-contentloaded', function(ev) {
        function eachCreateActivator(idx, el) {
            var action = $(el).data('foundationCollectionAction');
            action.data.src = action.data.src.replace(/[?&]t=\d+/, '');
            action.data.src += (action.data.src.match(/\?.*/) ? '&' : '?') + 't=' + Date.now();
            $(el).data('foundationCollectionAction', action);
        }
        if ($('.screens-DisplayDashboard').length) {
            var $el = $('.screens-dcc-actions-ScheduleLink-create-activator');
            $el.each(eachCreateActivator);
        }
    });

}(window, document, Granite.$, Granite.I18n));