mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-05-26 05:45:24 +00:00
merge of '70051a0aa508a30cbd35bb7376efce8a3d826fba'
and 'cf0bf1453ddf93b100f4c44465b8b4ede251cf8e' Monotone-Parent: 70051a0aa508a30cbd35bb7376efce8a3d826fba Monotone-Parent: cf0bf1453ddf93b100f4c44465b8b4ede251cf8e Monotone-Revision: c0c2dbe64a9eb612995c7e7a7f9136a8f379a460 Monotone-Author: flachapelle@inverse.ca Monotone-Date: 2011-07-13T16:07:26 Monotone-Branch: ca.inverse.sogo
This commit is contained in:
@@ -7,6 +7,11 @@
|
||||
* UI/WebServerResources/generic.js (_showAlertDialog): added fade
|
||||
effect when showing or hiding a dialog box.
|
||||
|
||||
2011-07-13 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||
|
||||
* OpenChange/MAPIStoreSOGo.m (sogo_op_get_fid_by_name): removed
|
||||
obsolete method.
|
||||
|
||||
2011-07-12 Francis Lachapelle <flachapelle@inverse.ca>
|
||||
|
||||
* UI/MailerUI/UIxMailFolderActions.m (-batchDeleteAction): we
|
||||
@@ -29,6 +34,14 @@
|
||||
|
||||
2011-07-12 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||
|
||||
* OpenChange/MAPIStoreFSMessage.m
|
||||
(+getAvailableProperties:inMemCtx:): added memCtx parameter.
|
||||
|
||||
* OpenChange/MAPIStoreSOGo.m: (sogo_op_get_table_property)
|
||||
(sogo_op_get_available_table_properties)
|
||||
(sogo_op_set_restrictions,sogo_op_set_sort_order): removed
|
||||
obsolete methods.
|
||||
|
||||
* OpenChange/MAPIStoreCalendarMessageTable.m,
|
||||
OpenChange/MAPIStoreContactsMessageTable.m,
|
||||
OpenChange/MAPIStoreFAIMessageTable.m,
|
||||
|
||||
@@ -107,26 +107,6 @@
|
||||
withTableType: (uint8_t) tableType
|
||||
inMemCtx: (TALLOC_CTX *) memCtx;
|
||||
|
||||
- (int) getFID: (uint64_t *) fid
|
||||
byName: (const char *) foldername
|
||||
inParentFID: (uint64_t) parent_fid;
|
||||
|
||||
- (int) setRestrictions: (const struct mapi_SRestriction *) res
|
||||
withFID: (uint64_t) fid
|
||||
andTableType: (uint8_t) tableType
|
||||
getTableStatus: (uint8_t *) tableStatus;
|
||||
- (int) setSortOrder: (const struct SSortOrderSet *) set
|
||||
withFID: (uint64_t) fid andTableType: (uint8_t) type
|
||||
getTableStatus: (uint8_t *) tableStatus;
|
||||
|
||||
- (enum MAPISTATUS) getTableProperty: (void **) data
|
||||
withTag: (enum MAPITAGS) proptag
|
||||
atPosition: (uint32_t) pos
|
||||
withTableType: (uint8_t) tableType
|
||||
andQueryType: (enum table_query_type) queryType
|
||||
inFID: (uint64_t) fid
|
||||
inMemCtx: (TALLOC_CTX *) memCtx;
|
||||
|
||||
- (int) mkDir: (struct SRow *) aRow
|
||||
withFID: (uint64_t) fid
|
||||
inParentFID: (uint64_t) parentFID;
|
||||
@@ -153,9 +133,6 @@
|
||||
inRow: (struct SRow *) aRow
|
||||
withMID: (uint64_t) fmid
|
||||
inMemCtx: (TALLOC_CTX *) memCtx;
|
||||
- (int) getAvailableProperties: (struct SPropTagArray **) propertiesP
|
||||
ofTableType: (uint8_t) type
|
||||
inMemCtx: (TALLOC_CTX *) memCtx;
|
||||
- (int) setPropertiesWithFMID: (uint64_t) fmid
|
||||
ofTableType: (uint8_t) tableType
|
||||
inRow: (struct SRow *) aRow;
|
||||
|
||||
@@ -644,123 +644,6 @@ _prepareContextClass (struct mapistore_context *newMemCtx,
|
||||
// [self logWithFormat: @"%@ --> %@", resStr, MAPIStringForRestrictionState (state)];
|
||||
// }
|
||||
|
||||
- (int) setRestrictions: (const struct mapi_SRestriction *) res
|
||||
withFID: (uint64_t) fid
|
||||
andTableType: (uint8_t) tableType
|
||||
getTableStatus: (uint8_t *) tableStatus
|
||||
{
|
||||
MAPIStoreTable *table;
|
||||
|
||||
[self errorWithFormat: @"%s: obsolete method", __FUNCTION__];
|
||||
|
||||
table = [self _tableForFID: fid andTableType: tableType];
|
||||
[table setRestrictions: res];
|
||||
// FIXME: we should not flush the caches if the restrictions matches
|
||||
[table cleanupCaches];
|
||||
|
||||
return MAPISTORE_SUCCESS;
|
||||
}
|
||||
|
||||
- (int) setSortOrder: (const struct SSortOrderSet *) set
|
||||
withFID: (uint64_t) fid andTableType: (uint8_t) type
|
||||
getTableStatus: (uint8_t *) tableStatus
|
||||
{
|
||||
MAPIStoreTable *table;
|
||||
|
||||
[self errorWithFormat: @"%s: obsolete method", __FUNCTION__];
|
||||
|
||||
table = [self _tableForFID: fid andTableType: type];
|
||||
[table setSortOrder: set];
|
||||
[table cleanupCaches];
|
||||
|
||||
return MAPISTORE_SUCCESS;
|
||||
}
|
||||
|
||||
- (enum MAPISTATUS) getTableProperty: (void **) data
|
||||
withTag: (enum MAPITAGS) propTag
|
||||
atPosition: (uint32_t) pos
|
||||
withTableType: (uint8_t) tableType
|
||||
andQueryType: (enum table_query_type) queryType
|
||||
inFID: (uint64_t) fid
|
||||
inMemCtx: (TALLOC_CTX *) memCtx
|
||||
{
|
||||
NSString *folderURL;
|
||||
MAPIStoreTable *table;
|
||||
MAPIStoreObject *object;
|
||||
const char *propName;
|
||||
int rc;
|
||||
|
||||
// [self errorWithFormat: @"%s: obsolete method", __FUNCTION__];
|
||||
|
||||
folderURL = [mapping urlFromID: fid];
|
||||
if (folderURL)
|
||||
{
|
||||
table = [self _tableForFID: fid andTableType: tableType];
|
||||
*data = NULL;
|
||||
object = [table childAtRowID: pos forQueryType: queryType];
|
||||
if (object)
|
||||
{
|
||||
rc = [object getProperty: data withTag: propTag inMemCtx: memCtx];
|
||||
if (rc == MAPISTORE_ERR_NOT_FOUND)
|
||||
rc = MAPI_E_NOT_FOUND;
|
||||
else if (rc == MAPISTORE_ERR_NO_MEMORY)
|
||||
rc = MAPI_E_NOT_ENOUGH_MEMORY;
|
||||
else if (rc == MAPISTORE_SUCCESS && *data == NULL)
|
||||
{
|
||||
propName = get_proptag_name (propTag);
|
||||
if (!propName)
|
||||
propName = "<unknown>";
|
||||
|
||||
[self errorWithFormat: @"both 'success' and NULL data"
|
||||
@" returned for proptag %s(0x%.8x)",
|
||||
propName, propTag];
|
||||
rc = MAPI_E_NOT_FOUND;
|
||||
}
|
||||
}
|
||||
else
|
||||
rc = MAPI_E_INVALID_OBJECT;
|
||||
}
|
||||
else
|
||||
{
|
||||
[self errorWithFormat: @"No url found for FID: %lld", fid];
|
||||
rc = MAPI_E_INVALID_OBJECT;
|
||||
}
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
- (int) getAvailableProperties: (struct SPropTagArray **) propertiesP
|
||||
ofTableType: (uint8_t) type
|
||||
inMemCtx: (TALLOC_CTX *) memCtx
|
||||
{
|
||||
int rc = MAPISTORE_SUCCESS;
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case MAPISTORE_FOLDER_TABLE:
|
||||
[[baseFolder class] getAvailableProperties: propertiesP inMemCtx: memCtx];
|
||||
break;
|
||||
case MAPISTORE_MESSAGE_TABLE:
|
||||
[[baseFolder messageClass] getAvailableProperties: propertiesP inMemCtx: memCtx];
|
||||
break;
|
||||
case MAPISTORE_FAI_TABLE:
|
||||
[MAPIStoreFAIMessage getAvailableProperties: propertiesP inMemCtx: memCtx];
|
||||
break;
|
||||
case MAPISTORE_RULE_TABLE:
|
||||
[self errorWithFormat: @"%s: rules not handled yet",
|
||||
__PRETTY_FUNCTION__];
|
||||
rc = MAPISTORE_ERROR;
|
||||
break;
|
||||
case MAPISTORE_ATTACHMENT_TABLE:
|
||||
[self errorWithFormat: @"%s: attachments not handled yet",
|
||||
__PRETTY_FUNCTION__];
|
||||
rc = MAPISTORE_ERROR;
|
||||
break;
|
||||
}
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
- (int) openMessage: (struct mapistore_message *) msg
|
||||
withMID: (uint64_t) mid
|
||||
inFID: (uint64_t) fid
|
||||
@@ -1102,16 +985,6 @@ _prepareContextClass (struct mapistore_context *newMemCtx,
|
||||
return rc;
|
||||
}
|
||||
|
||||
- (int) getFID: (uint64_t *) fid
|
||||
byName: (const char *) foldername
|
||||
inParentFID: (uint64_t) parent_fid
|
||||
{
|
||||
[self logWithFormat: @"METHOD '%s' (%d) -- foldername: %s, parent_fid: %lld",
|
||||
__FUNCTION__, __LINE__, foldername, parent_fid];
|
||||
|
||||
return MAPISTORE_ERROR;
|
||||
}
|
||||
|
||||
- (int) setPropertiesWithFMID: (uint64_t) fmid
|
||||
ofTableType: (uint8_t) tableType
|
||||
inRow: (struct SRow *) aRow
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
@implementation MAPIStoreFSMessage
|
||||
|
||||
+ (int) getAvailableProperties: (struct SPropTagArray **) propertiesP
|
||||
inMemCtx: (TALLOC_CTX *) memCtx
|
||||
{
|
||||
struct SPropTagArray *properties;
|
||||
NSUInteger count;
|
||||
@@ -45,7 +46,7 @@
|
||||
0x683f0102, 0x68410003, 0x68420102,
|
||||
0x68450102, 0x68460003 };
|
||||
|
||||
properties = talloc_zero (NULL, struct SPropTagArray);
|
||||
properties = talloc_zero (memCtx, struct SPropTagArray);
|
||||
properties->cValues = MAPIStoreSupportedPropertiesCount + 8;
|
||||
properties->aulPropTag = talloc_array (NULL, enum MAPITAGS,
|
||||
MAPIStoreSupportedPropertiesCount + 8);
|
||||
|
||||
@@ -234,31 +234,6 @@ sogo_get_path(void *private_data, TALLOC_CTX *mem_ctx,
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int
|
||||
sogo_op_get_fid_by_name(void *private_data, uint64_t parent_fid, const char* foldername, uint64_t *fid)
|
||||
{
|
||||
NSAutoreleasePool *pool;
|
||||
sogo_context *cContext;
|
||||
MAPIStoreContext *context;
|
||||
int rc;
|
||||
|
||||
DEBUG (5, ("[SOGo: %s:%d]\n", __FUNCTION__, __LINE__));
|
||||
|
||||
pool = [NSAutoreleasePool new];
|
||||
|
||||
cContext = private_data;
|
||||
context = cContext->objcContext;
|
||||
[context setupRequest];
|
||||
|
||||
rc = [context getFID: fid byName: foldername inParentFID: parent_fid];
|
||||
|
||||
[context tearDownRequest];
|
||||
[pool release];
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
\details Create a folder in the sogo backend
|
||||
|
||||
@@ -426,68 +401,6 @@ sogo_op_readdir_count(void *private_data,
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
sogo_op_get_table_property(void *private_data,
|
||||
TALLOC_CTX *mem_ctx,
|
||||
uint64_t fid,
|
||||
uint8_t table_type,
|
||||
enum table_query_type query_type,
|
||||
uint32_t pos,
|
||||
uint32_t proptag,
|
||||
void **data)
|
||||
{
|
||||
NSAutoreleasePool *pool;
|
||||
sogo_context *cContext;
|
||||
MAPIStoreContext *context;
|
||||
int rc;
|
||||
|
||||
// DEBUG (5, ("[SOGo: %s:%d]\n", __FUNCTION__, __LINE__));
|
||||
|
||||
pool = [NSAutoreleasePool new];
|
||||
|
||||
cContext = private_data;
|
||||
context = cContext->objcContext;
|
||||
[context setupRequest];
|
||||
|
||||
rc = [context getTableProperty: data withTag: proptag atPosition: pos
|
||||
withTableType: table_type andQueryType: query_type
|
||||
inFID: fid inMemCtx: mem_ctx];
|
||||
|
||||
[context tearDownRequest];
|
||||
[pool release];
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int
|
||||
sogo_op_get_available_table_properties(void *private_data, TALLOC_CTX *mem_ctx,
|
||||
uint8_t type,
|
||||
struct SPropTagArray **propertiesP)
|
||||
{
|
||||
NSAutoreleasePool *pool;
|
||||
sogo_context *cContext;
|
||||
MAPIStoreContext *context;
|
||||
int rc;
|
||||
|
||||
DEBUG (5, ("[SOGo: %s:%d]\n", __FUNCTION__, __LINE__));
|
||||
|
||||
pool = [NSAutoreleasePool new];
|
||||
|
||||
cContext = private_data;
|
||||
context = cContext->objcContext;
|
||||
[context setupRequest];
|
||||
|
||||
rc = [context getAvailableProperties: propertiesP
|
||||
ofTableType: type
|
||||
inMemCtx: mem_ctx];
|
||||
|
||||
[context tearDownRequest];
|
||||
[pool release];
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int
|
||||
sogo_op_openmessage(void *private_data,
|
||||
TALLOC_CTX *mem_ctx,
|
||||
@@ -718,74 +631,6 @@ sogo_op_deletemessage(void *private_data,
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int
|
||||
sogo_op_set_restrictions (void *private_data, uint64_t fid, uint8_t type,
|
||||
struct mapi_SRestriction *res, uint8_t *tableStatus)
|
||||
{
|
||||
NSAutoreleasePool *pool;
|
||||
sogo_context *cContext;
|
||||
MAPIStoreContext *context;
|
||||
int rc;
|
||||
|
||||
DEBUG (5, ("[SOGo: %s:%d]\n", __FUNCTION__, __LINE__));
|
||||
|
||||
pool = [NSAutoreleasePool new];
|
||||
|
||||
cContext = private_data;
|
||||
context = cContext->objcContext;
|
||||
if (context)
|
||||
{
|
||||
[context setupRequest];
|
||||
|
||||
rc = [context setRestrictions: res
|
||||
withFID: fid andTableType: type
|
||||
getTableStatus: tableStatus];
|
||||
|
||||
[context tearDownRequest];
|
||||
[pool release];
|
||||
}
|
||||
else
|
||||
{
|
||||
NSLog (@" UNEXPECTED WEIRDNESS: RECEIVED NO CONTEXT");
|
||||
rc = MAPI_E_NOT_FOUND;
|
||||
}
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int
|
||||
sogo_op_set_sort_order (void *private_data, uint64_t fid, uint8_t type,
|
||||
struct SSortOrderSet *set, uint8_t *tableStatus)
|
||||
{
|
||||
NSAutoreleasePool *pool;
|
||||
sogo_context *cContext;
|
||||
MAPIStoreContext *context;
|
||||
int rc;
|
||||
|
||||
DEBUG (5, ("[SOGo: %s:%d]\n", __FUNCTION__, __LINE__));
|
||||
|
||||
pool = [NSAutoreleasePool new];
|
||||
|
||||
cContext = private_data;
|
||||
context = cContext->objcContext;
|
||||
if (context)
|
||||
{
|
||||
[context setupRequest];
|
||||
rc = [context setSortOrder: set
|
||||
withFID: fid andTableType: type
|
||||
getTableStatus: tableStatus];
|
||||
[context tearDownRequest];
|
||||
[pool release];
|
||||
}
|
||||
else
|
||||
{
|
||||
NSLog (@" UNEXPECTED WEIRDNESS: RECEIVED NO CONTEXT");
|
||||
rc = MAPI_E_NOT_FOUND;
|
||||
}
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
/**
|
||||
proof of concept
|
||||
*/
|
||||
@@ -1228,17 +1073,12 @@ int mapistore_init_backend(void)
|
||||
backend.release_record = sogo_release_record;
|
||||
|
||||
backend.get_path = sogo_get_path;
|
||||
backend.op_get_fid_by_name = sogo_op_get_fid_by_name;
|
||||
|
||||
backend.op_mkdir = sogo_op_mkdir;
|
||||
backend.op_rmdir = sogo_op_rmdir;
|
||||
backend.op_opendir = sogo_op_opendir;
|
||||
backend.op_closedir = sogo_op_closedir;
|
||||
backend.op_readdir_count = sogo_op_readdir_count;
|
||||
backend.op_get_table_property = sogo_op_get_table_property;
|
||||
backend.op_get_available_table_properties = sogo_op_get_available_table_properties;
|
||||
backend.op_set_restrictions = sogo_op_set_restrictions;
|
||||
backend.op_set_sort_order = sogo_op_set_sort_order;
|
||||
backend.op_openmessage = sogo_op_openmessage;
|
||||
backend.op_createmessage = sogo_op_createmessage;
|
||||
backend.op_modifyrecipients = sogo_op_modifyrecipients;
|
||||
|
||||
Reference in New Issue
Block a user