push-firmware.js 1.93 KB
/*
 * ADOBE CONFIDENTIAL
 *
 * Copyright 2015 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, dcc) {
    'use strict';

    var ACTIVATOR = '.screens-dcc-actions-Device-pushfirmware-activator';

    var ui = $(window).adaptTo('foundation-ui');

    function pushAndUpdateUI(deviceId) {
        ui.wait();

        dcc.mobileapps.clearAndUpdateConfigs()
          .then(function() {
              return dcc.playerCommands.sendCommandToDevice(deviceId, dcc.playerCommands.COMMANDS.FIRMWARE_UPDATE);
          })
          .then(function() {
              $('.foundation-content').adaptTo('foundation-content').refresh();
              return Promise.resolve();
          })
          .catch(function(error) {
              console.error('Firmware update failed', error);
              ui.notify(null, i18n.get('Firmware update failed'), 'error');
          })
          .then(function() {
              ui.clearWait();
          });
    }

    $(document).on('click', ACTIVATOR, function(ev) {
        // Only handles Push Firmware in DisplayDashboard.
        // Push Firmware in DeviceDashboard is handled in device-status.js
        if ($('.screens-DisplayDashboard').length > 0) {
            pushAndUpdateUI($(ev.currentTarget).closest('.screens-Device').data('deviceId'));
        }
    });

}(window, document, Granite.$, Granite.I18n, window.CQ.screens.dcc));