(fix) changes to contacts are now propagated to lists (fixes #850, #4301, #4617)

pull/249/head
Ludovic Marcotte 2019-02-18 15:27:34 -05:00
parent aac0ec9a6a
commit 7c3df9f650
7 changed files with 44 additions and 12 deletions

1
NEWS
View File

@ -19,6 +19,7 @@ Bug fixes
- [web] fixed saving of email address for external calendar notifications (#4630)
- [core] ignore transparent events in time conflict validation (#4539)
- [core] fixed yearly recurrence calculator when starting from previous year
- [core] changes to contacts are now propagated to lists (#850, #4301, #4617)
4.0.5 (2019-01-09)
------------------

View File

@ -1,8 +1,6 @@
/* NGVCardReference.m - this file is part of NGCards
*
* Copyright (C) 2008 Inverse inc.
*
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
* Copyright (C) 2008-2019 Inverse inc.
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View File

@ -1,8 +1,6 @@
/* NGVList.h - this file is part of NGCards
*
* Copyright (C) 2008 Inverse inc.
*
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
* Copyright (C) 2008-2019 Inverse inc.
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View File

@ -1,8 +1,6 @@
/* NGVList.m - this file is part of NGCards
*
* Copyright (C) 2008 Inverse inc.
*
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
* Copyright (C) 2008-2019 Inverse inc.
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View File

@ -1,6 +1,6 @@
/* SOGoContactGCSEntry.m - this file is part of SOGo
*
* Copyright (C) 2006-2017 Inverse inc.
* Copyright (C) 2006-2019 Inverse inc.
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -21,9 +21,15 @@
#import <Foundation/NSDictionary.h>
#import <Foundation/NSString.h>
#import <NGCards/NGVCardReference.h>
#import <NGCards/NGVList.h>
#import <EOControl/EOQualifier.h>
#import "NGVCard+SOGo.h"
#import "SOGoContactEntryPhoto.h"
#import "SOGoContactGCSFolder.h"
#import "SOGoContactGCSList.h"
#import "SOGoContactGCSEntry.h"
@ -182,7 +188,14 @@
- (NSException *) saveComponent: (NGVCard *) newCard
baseVersion: (unsigned int) newVersion
{
NSArray *lists, *references;
NGVCardReference *reference;
SOGoContactGCSList *list;
EOQualifier *qualifier;
NSException *ex;
NGVList *vlist;
int i, j;
// We make sure new cards always have a UID - see #3819
if (![[newCard uid] length])
@ -192,6 +205,30 @@
[card release];
card = nil;
// We now check if we must update lisst where this contact is present
qualifier = [EOQualifier qualifierWithQualifierFormat: @"c_component = 'vlist'"];
lists = [[self container] lookupContactsWithQualifier: qualifier];
for (i = 0; i < [lists count]; i++)
{
list = [[self container] lookupName: [[lists objectAtIndex: i] objectForKey: @"c_name"]
inContext: context
acquire: NO];
vlist = [list vList];
references = [vlist cardReferences];
for (j = 0; j < [references count]; j++)
{
reference = [references objectAtIndex: j];
if ([[self nameInContainer] isEqualToString: [reference reference]])
{
[reference setFn: [newCard fn]];
[reference setEmail: [newCard preferredEMail]];
[list save];
}
}
}
return ex;
}

View File

@ -1,5 +1,5 @@
/*
Copyright (C) 2006-2017 Inverse inc.
Copyright (C) 2006-2019 Inverse inc.
This file is part of SOGo.

View File

@ -1,6 +1,6 @@
/* SOGoContactGCSList.m - this file is part of SOGo
*
* Copyright (C) 2008-2014 Inverse inc.
* Copyright (C) 2008-2019 Inverse inc.
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by