(feat) "Materialization" of the IMIP handling template

This commit is contained in:
Ludovic Marcotte
2015-06-03 19:42:30 -04:00
committed by Francis Lachapelle
parent fb992db5ad
commit 8124faa6d4
13 changed files with 453 additions and 220 deletions
@@ -291,6 +291,25 @@
return Message.$$resource.post(this.$mailbox.$id(), 'addOrRemoveLabel', data);
};
/**
* @function $imipAction
* @memberof Message.prototype
* @desc Perform IMIP actions on the current message.
* @param {string} path - the path of the IMIP calendar part
* @param {string} action - the the IMIP action to perform
* @param {object} data - the delegation info
*/
Message.prototype.$imipAction = function(path, action, data) {
var _this = this;
Message.$$resource.post([this.id, path].join('/'), action, data).then(function(data) {
Message.$timeout(function() {
_this.$reload();
}, function() {
// TODO: show toast
});
});
};
/**
* @function $markAsFlaggedOrUnflagged
* @memberof Message.prototype
@@ -0,0 +1,54 @@
/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
(function() {
'use strict';
/**
* sgIMIP - A directive to handle IMIP actions on emails
* @memberof SOGo.MailerUI
* @ngInject
* @example:
*/
function sgImip() {
return {
restrict: 'A',
link: link,
controller: controller
};
function link(scope, iElement, attrs, ctrl) {
ctrl.pathToAttachment = attrs.sgImipPath;
}
controller.$inject = ['$scope', 'User'];
function controller($scope, User) {
var vm = this;
$scope.delegateInvitation = false;
$scope.delegatedTo = '';
$scope.searchText = '';
$scope.userFilter = function($query) {
return User.$filter($query);
};
$scope.iCalendarAction = function(action) {
var data;
if (action == 'delegate') {
data = {receiveUpdates: false,
delegatedTo: $scope.delegatedTo.c_email};
}
$scope.message.$imipAction(vm.pathToAttachment, action, data);
};
}
}
angular
.module('SOGo.MailerUI')
.directive('sgImip', sgImip);
})();