Implement "notify by email" checkbox in share dialog

This commit is contained in:
Vincent Petry 2015-09-14 18:03:44 +02:00
parent e0a2004f4c
commit aeee19b3f2
2 changed files with 40 additions and 3 deletions

View File

@ -84,7 +84,8 @@
events: {
'click .unshare': 'onUnshare',
'click .permissions': 'onPermissionChange',
'click .showCruds': 'onCrudsToggle'
'click .showCruds': 'onCrudsToggle',
'click .mailNotification': 'onSendMailNotification'
},
initialize: function(options) {
@ -279,11 +280,19 @@
this.model.setPermissions(shareType, shareWith, permissions);
},
onCrudsToggle: function(event) {
onCrudsToggle: function() {
this.$el.find('.cruds').toggleClass('hidden');
return false;
}
},
onSendMailNotification: function(event) {
var $target = $(event.target);
var $li = $(event.target).closest('li');
var shareType = $li.data('share-type');
var shareWith = $li.attr('data-share-with');
this.model.sendNotificationForShare(shareType, shareWith, $target.is(':checked'));
}
});
OC.Share.ShareDialogShareeListView = ShareDialogShareeListView;

View File

@ -465,6 +465,34 @@
return share.share_mail_send === '1';
},
/**
* Sends an email notification for the given share
*
* @param {int} shareType share type
* @param {string} shareWith recipient
* @param {bool} state whether to set the notification flag or remove it
*/
sendNotificationForShare: function(shareType, shareWith, state) {
var itemType = this.get('itemType');
var itemSource = this.get('itemSource');
$.post(
OC.generateUrl('core/ajax/share.php'),
{
action: state ? 'informRecipients' : 'informRecipientsDisabled',
recipient: shareWith,
shareType: shareType,
itemSource: itemSource,
itemType: itemType
},
function(result) {
if (result.status !== 'success') {
OC.dialogs.alert(t('core', result.data.message), t('core', 'Warning'));
}
}
);
},
/**
* @returns {boolean}
*/