'use strict'; define( [ 'flight/lib/component' ], function(defineComponent) { return defineComponent(mailControls); function mailControls() { this.defaultAttrs({ //selectors actionControlsSelector: 'button.mail-action', deleteControlSelector: '#delete_mail', moveControlSelector: '#move_mail', forwardControlSelector: '#forward', replyControlSelector: '#reply', singleItemActionSelector: 'button.single-item' }); this.disableAll = function() { this.select('actionControlsSelector').attr('disabled', 'disabled'); }; this.restyleOnSelectionChange = function(ev, data) { if (data.selectedIds.length > 1) { this.select('actionControlsSelector').not('button.single-item').removeAttr('disabled'); this.select('singleItemActionSelector').attr('disabled', 'disabled'); } else if (data.selectedIds.length == 1) { this.select('actionControlsSelector').removeAttr('disabled'); } else { this.disableAll(); } }; this.deleteMail = function(ev, data) { this.trigger('uiDeleteMail'); }; this.moveMail = function(ev, data) { this.trigger('uiMoveMail'); }; this.forwardMail = function(ev, data) { this.trigger('uiForwardMail'); }; this.replyToMail = function(ev, data) { this.trigger('uiReplyToMail'); }; this.after('initialize', function() { this.on('.mail-action', 'click', { 'deleteControlSelector': this.deleteMail, 'moveControlSelector': this.moveMail, 'forwardControlSelector': this.forwardMail, 'replyControlSelector': this.replyToMail }); this.on(document, 'uiMailItemSelectionChanged', this.restyleOnSelectionChange); this.on(document, 'uiFolderSelectionChanged', this.disableAll); }); } } );