You've already forked lazarus-ccr
TvPlanIt: Fix leaving orphan events, tasks and contacts in a json datastore when a resource is deleted.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@8951 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -28,6 +28,9 @@ type
|
||||
|
||||
protected
|
||||
{ ancestor methods }
|
||||
procedure InternalPurgeContacts(Res: TVpResource); override;
|
||||
procedure InternalPurgeEvents(Res: TVpResource); override;
|
||||
procedure InternalPurgeTasks(Res: TVpResource); override;
|
||||
procedure Loaded; override;
|
||||
procedure SetConnected(const Value: boolean); override;
|
||||
|
||||
@ -68,6 +71,8 @@ type
|
||||
procedure PostTasks; override;
|
||||
procedure PostResources; override;
|
||||
|
||||
procedure PurgeResource(Res: TVpResource); override;
|
||||
|
||||
procedure SetResourceByName(Value: String); override;
|
||||
|
||||
published
|
||||
@ -241,6 +246,21 @@ begin
|
||||
until UniqueID(Result) and (Result <> -1);
|
||||
end;
|
||||
|
||||
procedure TVpJSONDataStore.InternalPurgeContacts(Res: TVpResource);
|
||||
begin
|
||||
Res.Contacts.ClearContacts;
|
||||
end;
|
||||
|
||||
procedure TVpJSONDataStore.InternalPurgeEvents(Res: TVpResource);
|
||||
begin
|
||||
Res.Schedule.ClearEvents;
|
||||
end;
|
||||
|
||||
procedure TVpJSONDataStore.InternalPurgeTasks(Res: TVpResource);
|
||||
begin
|
||||
Res.Tasks.ClearTasks;
|
||||
end;
|
||||
|
||||
function TVpJSONDatastore.JSONToContact(AObj: TJSONObject;
|
||||
AResource: TVpResource): TVpContact;
|
||||
var
|
||||
@ -497,6 +517,15 @@ begin
|
||||
RefreshTasks;
|
||||
end;
|
||||
|
||||
procedure TVpJSONDataStore.PurgeResource(Res: TVpResource);
|
||||
begin
|
||||
PurgeEvents(Res);
|
||||
PurgeContacts(Res);
|
||||
PurgeTasks(Res);
|
||||
Res.Deleted := true;
|
||||
inherited PurgeResource(Res);
|
||||
end;
|
||||
|
||||
procedure TVpJSONDatastore.ReadJSON;
|
||||
begin
|
||||
case FStoreType of
|
||||
|
Reference in New Issue
Block a user