mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-10-05 20:10:33 +00:00
(feat) can now copy selected cards
This commit is contained in:
@@ -408,16 +408,17 @@
|
||||
|
||||
- (id <WOActionResults>) copyAction
|
||||
{
|
||||
WORequest *request;
|
||||
id <WOActionResults> response;
|
||||
NSString *destinationFolderId;
|
||||
NSArray *contactsId;
|
||||
NSDictionary *data;
|
||||
NSException *ex;
|
||||
|
||||
request = [context request];
|
||||
data = [[[context request] contentAsString] objectFromJSONString];
|
||||
contactsId = [data objectForKey: @"uids"];
|
||||
destinationFolderId = [data objectForKey: @"folder"];
|
||||
|
||||
if ((destinationFolderId = [request formValueForKey: @"folder"]) &&
|
||||
(contactsId = [request formValuesForKey: @"uid"]))
|
||||
if (destinationFolderId && [contactsId count])
|
||||
ex = [self _moveContacts: contactsId
|
||||
toFolder: destinationFolderId
|
||||
andKeepCopy: YES];
|
||||
@@ -436,16 +437,17 @@
|
||||
|
||||
- (id <WOActionResults>) moveAction
|
||||
{
|
||||
WORequest *request;
|
||||
id <WOActionResults> response;
|
||||
NSString *destinationFolderId;
|
||||
NSDictionary *data;
|
||||
NSArray *contactsId;
|
||||
NSException *ex;
|
||||
|
||||
request = [context request];
|
||||
data = [[[context request] contentAsString] objectFromJSONString];
|
||||
contactsId = [data objectForKey: @"uids"];
|
||||
destinationFolderId = [data objectForKey: @"folder"];
|
||||
|
||||
if ((destinationFolderId = [request formValueForKey: @"folder"])
|
||||
&& (contactsId = [request formValuesForKey: @"uid"]))
|
||||
if (destinationFolderId && [contactsId count])
|
||||
ex = [self _moveContacts: contactsId
|
||||
toFolder: destinationFolderId
|
||||
andKeepCopy: NO];
|
||||
|
||||
@@ -343,6 +343,24 @@
|
||||
<md-button class="sg-icon-button" ng-click="addressbook.confirmDeleteSelectedCards()">
|
||||
<md-icon>delete</md-icon>
|
||||
</md-button>
|
||||
<md-menu>
|
||||
<md-button class="sg-icon-button" label:aria-label="Copy contacts" ng-click="$mdOpenMenu()">
|
||||
<md-tooltip md-direction="left"><var:string label:value="Copy To"/></md-tooltip>
|
||||
<md-icon>content_copy</md-icon>
|
||||
</md-button>
|
||||
<md-menu-content width="4">
|
||||
<md-menu-item>
|
||||
<md-button class="md-primary" ng-disabled="true">AddressBooks</md-button>
|
||||
</md-menu-item>
|
||||
<md-menu-divider><!-- divider --></md-menu-divider>
|
||||
<md-menu-item ng-repeat="folder in app.service.$addressbooks track by folder.id"
|
||||
ng-hide="addressbook.selectedFolder.id == folder.id">
|
||||
<md-button ng-click="addressbook.copySelectedCards(folder.id)">
|
||||
<span ng-class="'sg-child-level-' + folder.level">{{folder.name}}</span>
|
||||
</md-button>
|
||||
</md-menu-item>
|
||||
</md-menu-content>
|
||||
</md-menu>
|
||||
<md-menu>
|
||||
<md-button class="sg-icon-button" label:aria-label="More messages options" ng-click="$mdOpenMenu()">
|
||||
<md-icon>more_vert</md-icon>
|
||||
|
||||
@@ -454,6 +454,17 @@
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* @function $copyCards
|
||||
* @memberof AddressBook.prototype
|
||||
* @desc Copy multiple cards from addressbook to an other one.
|
||||
* @return a promise of the HTTP operation
|
||||
*/
|
||||
AddressBook.prototype.$copyCards = function(cards, folder) {
|
||||
var uids = _.map(cards, function(card) { return card.id; });
|
||||
return AddressBook.$$resource.post(this.id, 'copy', {uids: uids, folder: folder});
|
||||
};
|
||||
|
||||
/**
|
||||
* @function $save
|
||||
* @memberof AddressBook.prototype
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
vm.unselectCards = unselectCards;
|
||||
vm.confirmDeleteSelectedCards = confirmDeleteSelectedCards;
|
||||
vm.saveSelectedCards = saveSelectedCards;
|
||||
vm.copySelectedCards = copySelectedCards;
|
||||
vm.selectAll = selectAll;
|
||||
vm.sort = sort;
|
||||
vm.sortedBy = sortedBy;
|
||||
@@ -94,6 +95,15 @@
|
||||
window.location.href = ApplicationBaseURL + '/' + vm.selectedFolder.id + '/export?uid=' + selectedUIDs.join('&uid=');
|
||||
}
|
||||
|
||||
function copySelectedCards(folder) {
|
||||
var selectedCards = _.filter(vm.selectedFolder.cards, function(card) { return card.selected; });
|
||||
vm.selectedFolder.$copyCards(selectedCards, folder).then(function() {
|
||||
// TODO: refresh target addressbook?
|
||||
}, function(error) {
|
||||
Dialog.alert(l('Error'), error);
|
||||
});
|
||||
}
|
||||
|
||||
function selectAll() {
|
||||
_.each(vm.selectedFolder.cards, function(card) {
|
||||
card.selected = true;
|
||||
|
||||
Reference in New Issue
Block a user