'use strict';

define(
    [
        'marionette',
        'Commands/CommandController'
    ], function (Marionette, CommandController) {
        return Marionette.ItemView.extend({
            template: 'System/Update/UpdateItemViewTemplate',

            events: {
                'click .x-install-update': '_installUpdate'
            },

            initialize: function () {
                this.updating = false;
            },

            _installUpdate: function () {
                if (this.updating) {
                    return;
                }

                this.updating = true;
                var self = this;

                var promise = CommandController.Execute('installUpdate', { updatePackage: this.model.toJSON() });

                promise.done(function () {
                    window.setTimeout(function () {
                        self.updating = false;
                    }, 5000);
                });


            }
        });
    });
