'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);
});
}
}
);