'use strict'; define( [ 'backgrid' ], function (Backgrid) { return Backgrid.Cell.extend({ className: 'download-report-cell', events: { 'click': '_onClick' }, _onClick: function () { if (!this.model.get('downloadAllowed')) { return; } var self = this; this.$el.html(''); //Using success callback instead of promise so it //gets called before the sync event is triggered this.model.save(null, { success: function () { self.model.set('queued', true); }}); }, render: function () { this.$el.empty(); if (this.model.get('queued')) { this.$el.html(''); } else if (this.model.get('downloadAllowed')) { this.$el.html(''); } else { this.className = 'no-download-report-cell'; } return this; } }); });