Skip to content

Commit

Permalink
(fix) changes to contacts are now propagated to lists (fixes #850, #4…
Browse files Browse the repository at this point in the history
…301, #4617)
  • Loading branch information
extrafu committed Feb 18, 2019
1 parent aac0ec9 commit 7c3df9f
Show file tree
Hide file tree
Showing 7 changed files with 44 additions and 12 deletions.
1 change: 1 addition & 0 deletions NEWS
Expand Up @@ -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)
------------------
Expand Down
4 changes: 1 addition & 3 deletions SOPE/NGCards/NGVCardReference.m
@@ -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
Expand Down
4 changes: 1 addition & 3 deletions SOPE/NGCards/NGVList.h
@@ -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
Expand Down
4 changes: 1 addition & 3 deletions SOPE/NGCards/NGVList.m
@@ -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
Expand Down
39 changes: 38 additions & 1 deletion SoObjects/Contacts/SOGoContactGCSEntry.m
@@ -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
Expand All @@ -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"

Expand Down Expand Up @@ -182,7 +188,14 @@ - (NSException *) saveComponent: (NGVCard *) newCard
- (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])
Expand All @@ -192,6 +205,30 @@ - (NSException *) saveComponent: (NGVCard *) newCard
[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;
}

Expand Down
2 changes: 1 addition & 1 deletion SoObjects/Contacts/SOGoContactGCSFolder.m
@@ -1,5 +1,5 @@
/*
Copyright (C) 2006-2017 Inverse inc.
Copyright (C) 2006-2019 Inverse inc.
This file is part of SOGo.
Expand Down
2 changes: 1 addition & 1 deletion SoObjects/Contacts/SOGoContactGCSList.m
@@ -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
Expand Down

0 comments on commit 7c3df9f

Please sign in to comment.