* InfoLog/CalDAV/eSync: deleted entries where not taken into account for ctag generation, causing deletes only to sync after other modifications

This commit is contained in:
Ralf Becker 2012-09-24 08:53:41 +00:00
parent e69918f583
commit 7a3d4f99ed
2 changed files with 4 additions and 1 deletions

View File

@ -1079,6 +1079,8 @@ class infolog_bo
'start' => 0, 'start' => 0,
'num_rows' => 1, 'num_rows' => 1,
); );
// we need to query deleted entries too for a ctag!
$filter['filter'] .= '+deleted';
$result =& $this->search($filter); $result =& $this->search($filter);

View File

@ -278,7 +278,7 @@ class infolog_so
*/ */
function statusFilter($filter = '',$prefix_and=true) function statusFilter($filter = '',$prefix_and=true)
{ {
preg_match('/(done|open|offer|deleted)/',$filter,$vars); preg_match('/(done|open|offer|deleted|\+deleted)/',$filter,$vars);
$filter = $vars[1]; $filter = $vars[1];
switch ($filter) switch ($filter)
@ -287,6 +287,7 @@ class infolog_so
case 'open': $filter = "NOT (info_status IN ('done','billed','cancelled','deleted','template','nonactive','archive'))"; break; case 'open': $filter = "NOT (info_status IN ('done','billed','cancelled','deleted','template','nonactive','archive'))"; break;
case 'offer': $filter = "info_status = 'offer'"; break; case 'offer': $filter = "info_status = 'offer'"; break;
case 'deleted': $filter = "info_status = 'deleted'"; break; case 'deleted': $filter = "info_status = 'deleted'"; break;
case '+deleted':$filter = "NOT (info_status IN ('template','nonactive','archive'))"; break;
default: $filter = "NOT (info_status IN ('deleted','template','nonactive','archive'))"; break; default: $filter = "NOT (info_status IN ('deleted','template','nonactive','archive'))"; break;
} }
return ($prefix_and ? ' AND ' : '').$filter; return ($prefix_and ? ' AND ' : '').$filter;