mirror of
https://gitlab.com/davical-project/davical.git
synced 2026-05-20 01:44:15 +00:00
Fix bug handling multiple prop-filter clauses.
This commit is contained in:
parent
06dcb0b166
commit
5e3ed8dedc
@ -206,7 +206,7 @@ function SqlFilterFragment( $filter, $components, $property = null, $parameter =
|
|||||||
$propertyname = $v->GetAttribute("name");
|
$propertyname = $v->GetAttribute("name");
|
||||||
switch( $propertyname ) {
|
switch( $propertyname ) {
|
||||||
case 'PERCENT-COMPLETE':
|
case 'PERCENT-COMPLETE':
|
||||||
$property = 'percent_complete';
|
$subproperty = 'percent_complete';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'UID':
|
case 'UID':
|
||||||
@ -224,7 +224,7 @@ function SqlFilterFragment( $filter, $components, $property = null, $parameter =
|
|||||||
case 'DTEND':
|
case 'DTEND':
|
||||||
case 'DUE':
|
case 'DUE':
|
||||||
case 'PRIORITY':
|
case 'PRIORITY':
|
||||||
$property = strtolower($propertyname);
|
$subproperty = strtolower($propertyname);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'COMPLETED': /** @todo this should be moved into the properties supported in SQL. */
|
case 'COMPLETED': /** @todo this should be moved into the properties supported in SQL. */
|
||||||
@ -233,12 +233,14 @@ function SqlFilterFragment( $filter, $components, $property = null, $parameter =
|
|||||||
dbg_error_log("calquery", "Could not handle 'prop-filter' on %s in SQL", $propertyname );
|
dbg_error_log("calquery", "Could not handle 'prop-filter' on %s in SQL", $propertyname );
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if ( isset($subproperty) ) {
|
||||||
$subfilter = $v->GetContent();
|
$subfilter = $v->GetContent();
|
||||||
$success = SqlFilterFragment( $subfilter, $components, $property, $parameter );
|
$success = SqlFilterFragment( $subfilter, $components, $subproperty, $parameter );
|
||||||
if ( $success === false ) continue; else {
|
if ( $success === false ) continue; else {
|
||||||
$sql .= $success['sql'];
|
$sql .= $success['sql'];
|
||||||
$params = array_merge( $params, $success['params'] );
|
$params = array_merge( $params, $success['params'] );
|
||||||
}
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'urn:ietf:params:xml:ns:caldav:param-filter':
|
case 'urn:ietf:params:xml:ns:caldav:param-filter':
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user