Commit 353c0e4f authored by Sebastian Kummer's avatar Sebastian Kummer

Merge pull request #269 in ZP/z-push from develop to release/2.3

* commit 'e729b422':
  ZP-952 Fixed variable name.
  ZP-899 Add sensitivity of appointment to rocompare, print body/description in the notification email.
  ZP-950 Changed method to determine ZP_VERSION so it contains the branch, tag, offset and commit id, fixed access description.
  ZP-952 Don't try to convert folderid if this is a hierarchy notification.
  ZP-951 Do not compare for type, as key(false) returns 0 (integer).
  ZP-899 Extended EvaluateAndCompare(), added STREAMER_RONOTIFY to Streamer to define which properties should be compared, updated copyright dates for SyncObjects.
parents 2066c35c e729b422
......@@ -81,7 +81,7 @@ on **DATE** at **TIME** you've tried to save a data in the folder '**FOLDERNAME*
This operation was not successful, as you lack write access to this folder.
Your data has been dropped and replaced with the original data on your device to ensure data integrity.
Below is a copy of the data you tried to save. If you want your changes to be stored permanently you should forward this email to a person with write access to this folder asking to perform these changes again."
Below is a copy of the data you tried to save. If you want your changes to be stored permanently you should forward this email to a person with write access to this folder asking to perform these changes again.
**DIFFERENCES**
If you have questions about this email, please contact your e-mail administrator.
......
......@@ -512,7 +512,10 @@ class ReplyBackImExporter implements IImportChanges, IExportChanges {
// get the differences between the two objects
$data = substr(get_class($oldmessage), 4) . "\r\n";
$dataarray = $message->EvaluateAndCompare($oldmessage, @constant('READ_ONLY_NOTIFY_YOURDATA'));
// get the suppported fields as we need them to determine the ghosted properties
$supportedFields = ZPush::GetDeviceManager()->GetSupportedFields(ZPush::GetDeviceManager()->GetFolderIdForBackendId($folderid));
$dataarray = $oldmessage->EvaluateAndCompare($message, @constant('READ_ONLY_NOTIFY_YOURDATA'), $supportedFields);
foreach($dataarray as $key => $value) {
$value = str_replace("\r", "", $value);
$value = str_replace("\n", str_pad("\r\n",25), $value);
......
......@@ -52,6 +52,7 @@ class Streamer implements Serializable {
const STREAMER_ARRAY = 2;
const STREAMER_TYPE = 3;
const STREAMER_PROP = 4;
const STREAMER_RONOTIFY = 5;
const STREAMER_TYPE_DATE = 1;
const STREAMER_TYPE_HEX = 2;
const STREAMER_TYPE_DATE_DASHES = 3;
......
......@@ -594,19 +594,21 @@ class SyncCollections implements Iterator {
$validNotifications = false;
foreach ($notifications as $backendFolderId) {
// the backend will notify on the backend folderid
$folderid = ZPush::GetDeviceManager()->GetFolderIdForBackendId($backendFolderId);
// Check hierarchy notifications
if ($folderid === IBackend::HIERARCHYNOTIFICATION) {
if ($backendFolderId === IBackend::HIERARCHYNOTIFICATION) {
// wait two seconds before validating this notification, because it could potentially be made by the mobile and we need some time to update the states.
sleep(2);
// check received hierarchy notifications by exporting
if ($this->countHierarchyChange(true))
if ($this->countHierarchyChange(true)) {
throw new StatusException("SyncCollections->CheckForChanges(): HierarchySync required.", self::HIERARCHY_CHANGED);
}
}
else {
// the backend will notify on the backend folderid
$folderid = ZPush::GetDeviceManager()->GetFolderIdForBackendId($backendFolderId);
// check if the notification on the folder is within our filter
else if ($this->CountChange($folderid)) {
if ($this->CountChange($folderid)) {
ZLog::Write(LOGLEVEL_DEBUG, sprintf("SyncCollections->CheckForChanges(): Notification received on folder '%s'", $folderid));
$validNotifications = true;
$this->waitingTime = time()-$started;
......@@ -615,6 +617,7 @@ class SyncCollections implements Iterator {
ZLog::Write(LOGLEVEL_DEBUG, sprintf("SyncCollections->CheckForChanges(): Notification received on folder '%s', but it is not relevant", $folderid));
}
}
}
if ($validNotifications)
return true;
}
......@@ -884,7 +887,7 @@ class SyncCollections implements Iterator {
* @return boolean
*/
public function valid() {
return (key($this->collections) !== null && key($this->collections) !== false);
return (key($this->collections) != null && key($this->collections) != false);
}
/**
......
This diff is collapsed.
......@@ -10,7 +10,7 @@
*
* Created : 05.09.2011
*
* Copyright 2007 - 2013 Zarafa Deutschland GmbH
* Copyright 2007 - 2016 Zarafa Deutschland GmbH
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
......@@ -55,21 +55,29 @@ class SyncAppointmentException extends SyncAppointment {
$this->mapping += array(
SYNC_POOMCAL_DELETED => array ( self::STREAMER_VAR => "deleted",
self::STREAMER_CHECKS => array( self::STREAMER_CHECK_ZEROORONE => self::STREAMER_CHECK_SETZERO)),
self::STREAMER_CHECKS => array( self::STREAMER_CHECK_ZEROORONE => self::STREAMER_CHECK_SETZERO),
self::STREAMER_RONOTIFY => true),
SYNC_POOMCAL_EXCEPTIONSTARTTIME => array ( self::STREAMER_VAR => "exceptionstarttime",
self::STREAMER_TYPE => self::STREAMER_TYPE_DATE,
self::STREAMER_CHECKS => array( self::STREAMER_CHECK_REQUIRED => self::STREAMER_CHECK_SETONE)),
self::STREAMER_CHECKS => array( self::STREAMER_CHECK_REQUIRED => self::STREAMER_CHECK_SETONE),
self::STREAMER_RONOTIFY => true),
);
// some parameters are not required in an exception, others are not allowed to be set in SyncAppointmentExceptions
$this->mapping[SYNC_POOMCAL_TIMEZONE][self::STREAMER_CHECKS] = array();
$this->mapping[SYNC_POOMCAL_TIMEZONE][self::STREAMER_RONOTIFY] = true;
$this->mapping[SYNC_POOMCAL_DTSTAMP][self::STREAMER_CHECKS] = array();
$this->mapping[SYNC_POOMCAL_STARTTIME][self::STREAMER_CHECKS] = array(self::STREAMER_CHECK_CMPLOWER => SYNC_POOMCAL_ENDTIME);
$this->mapping[SYNC_POOMCAL_STARTTIME][self::STREAMER_RONOTIFY] = true;
$this->mapping[SYNC_POOMCAL_SUBJECT][self::STREAMER_CHECKS] = array();
$this->mapping[SYNC_POOMCAL_SUBJECT][self::STREAMER_RONOTIFY] = true;
$this->mapping[SYNC_POOMCAL_ENDTIME][self::STREAMER_CHECKS] = array(self::STREAMER_CHECK_CMPHIGHER => SYNC_POOMCAL_STARTTIME);
$this->mapping[SYNC_POOMCAL_ENDTIME][self::STREAMER_RONOTIFY] = true;
$this->mapping[SYNC_POOMCAL_BUSYSTATUS][self::STREAMER_CHECKS] = array(self::STREAMER_CHECK_ONEVALUEOF => array(0,1,2,3,4) );
$this->mapping[SYNC_POOMCAL_BUSYSTATUS][self::STREAMER_RONOTIFY] = true;
$this->mapping[SYNC_POOMCAL_REMINDER][self::STREAMER_CHECKS] = array(self::STREAMER_CHECK_CMPHIGHER => -1);
$this->mapping[SYNC_POOMCAL_REMINDER][self::STREAMER_RONOTIFY] = true;
$this->mapping[SYNC_POOMCAL_EXCEPTIONS][self::STREAMER_CHECKS] = array(self::STREAMER_CHECK_NOTALLOWED => true);
}
......
......@@ -10,7 +10,7 @@
*
* Created : 05.09.2011
*
* Copyright 2007 - 2013 Zarafa Deutschland GmbH
* Copyright 2007 - 2016 Zarafa Deutschland GmbH
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
......@@ -56,7 +56,8 @@ class SyncAttachment extends SyncObject {
function SyncAttachment() {
$mapping = array(
SYNC_POOMMAIL_ATTMETHOD => array ( self::STREAMER_VAR => "attmethod"),
SYNC_POOMMAIL_ATTMETHOD => array ( self::STREAMER_VAR => "attmethod",
self::STREAMER_RONOTIFY => true),
SYNC_POOMMAIL_ATTSIZE => array ( self::STREAMER_VAR => "attsize",
self::STREAMER_CHECKS => array( self::STREAMER_CHECK_REQUIRED => self::STREAMER_CHECK_SETZERO,
self::STREAMER_CHECK_CMPHIGHER => -1 )),
......@@ -68,7 +69,8 @@ class SyncAttachment extends SyncObject {
self::STREAMER_CHECKS => array( self::STREAMER_CHECK_REQUIRED => self::STREAMER_CHECK_SETEMPTY)),
SYNC_POOMMAIL_ATTOID => array ( self::STREAMER_VAR => "attoid"),
SYNC_POOMMAIL_ATTREMOVED => array ( self::STREAMER_VAR => "attremoved"),
SYNC_POOMMAIL_ATTREMOVED => array ( self::STREAMER_VAR => "attremoved",
self::STREAMER_RONOTIFY => true),
);
parent::SyncObject($mapping);
......
......@@ -10,7 +10,7 @@
*
* Created : 05.09.2011
*
* Copyright 2007 - 2013 Zarafa Deutschland GmbH
* Copyright 2007 - 2016 Zarafa Deutschland GmbH
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
......@@ -53,15 +53,19 @@ class SyncAttendee extends SyncObject {
function SyncAttendee() {
$mapping = array(
SYNC_POOMCAL_EMAIL => array ( self::STREAMER_VAR => "email",
self::STREAMER_CHECKS => array( self::STREAMER_CHECK_REQUIRED => self::STREAMER_CHECK_SETEMPTY)),
self::STREAMER_CHECKS => array( self::STREAMER_CHECK_REQUIRED => self::STREAMER_CHECK_SETEMPTY),
self::STREAMER_RONOTIFY => true),
SYNC_POOMCAL_NAME => array ( self::STREAMER_VAR => "name",
self::STREAMER_CHECKS => array( self::STREAMER_CHECK_REQUIRED => self::STREAMER_CHECK_SETEMPTY) )
self::STREAMER_CHECKS => array( self::STREAMER_CHECK_REQUIRED => self::STREAMER_CHECK_SETEMPTY),
self::STREAMER_RONOTIFY => true)
);
if (Request::GetProtocolVersion() >= 12.0) {
$mapping[SYNC_POOMCAL_ATTENDEESTATUS] = array ( self::STREAMER_VAR => "attendeestatus");
$mapping[SYNC_POOMCAL_ATTENDEETYPE] = array ( self::STREAMER_VAR => "attendeetype");
$mapping[SYNC_POOMCAL_ATTENDEESTATUS] = array ( self::STREAMER_VAR => "attendeestatus",
self::STREAMER_RONOTIFY => true);
$mapping[SYNC_POOMCAL_ATTENDEETYPE] = array ( self::STREAMER_VAR => "attendeetype",
self::STREAMER_RONOTIFY => true);
}
parent::SyncObject($mapping);
......
......@@ -9,7 +9,7 @@
*
* Created : 09.09.2011
*
* Copyright 2007 - 2013 Zarafa Deutschland GmbH
* Copyright 2007 - 2016 Zarafa Deutschland GmbH
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
......@@ -57,7 +57,8 @@ class SyncBaseBody extends SyncObject {
SYNC_AIRSYNCBASE_ESTIMATEDDATASIZE => array (self::STREAMER_VAR => "estimatedDataSize"),
SYNC_AIRSYNCBASE_TRUNCATED => array (self::STREAMER_VAR => "truncated"),
SYNC_AIRSYNCBASE_DATA => array (self::STREAMER_VAR => "data",
self::STREAMER_TYPE => self::STREAMER_TYPE_STREAM_ASPLAIN),
self::STREAMER_TYPE => self::STREAMER_TYPE_STREAM_ASPLAIN,
self::STREAMER_RONOTIFY => true),
);
if(Request::GetProtocolVersion() >= 14.0) {
$mapping[SYNC_AIRSYNCBASE_PREVIEW] = array (self::STREAMER_VAR => "preview");
......
This diff is collapsed.
......@@ -10,7 +10,7 @@
*
* Created : 05.09.2011
*
* Copyright 2007 - 2013 Zarafa Deutschland GmbH
* Copyright 2007 - 2016 Zarafa Deutschland GmbH
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
......@@ -102,12 +102,16 @@ class SyncMail extends SyncObject {
SYNC_POOMMAIL_FROM => array ( self::STREAMER_VAR => "from",
self::STREAMER_CHECKS => array( self::STREAMER_CHECK_LENGTHMAX => 32768,
self::STREAMER_CHECK_EMAIL => "" )),
self::STREAMER_CHECK_EMAIL => "" ),
self::STREAMER_RONOTIFY => true),
SYNC_POOMMAIL_SUBJECT => array ( self::STREAMER_VAR => "subject"),
SYNC_POOMMAIL_THREADTOPIC => array ( self::STREAMER_VAR => "threadtopic"),
SYNC_POOMMAIL_SUBJECT => array ( self::STREAMER_VAR => "subject",
self::STREAMER_RONOTIFY => true),
SYNC_POOMMAIL_THREADTOPIC => array ( self::STREAMER_VAR => "threadtopic",
self::STREAMER_RONOTIFY => true),
SYNC_POOMMAIL_DATERECEIVED => array ( self::STREAMER_VAR => "datereceived",
self::STREAMER_TYPE => self::STREAMER_TYPE_DATE_DASHES),
self::STREAMER_TYPE => self::STREAMER_TYPE_DATE_DASHES,
self::STREAMER_RONOTIFY => true),
SYNC_POOMMAIL_DISPLAYTO => array ( self::STREAMER_VAR => "displayto"),
......@@ -121,7 +125,8 @@ class SyncMail extends SyncObject {
self::STREAMER_CHECK_ONEVALUEOF => array(0,1,2) )),
SYNC_POOMMAIL_READ => array ( self::STREAMER_VAR => "read",
self::STREAMER_CHECKS => array( self::STREAMER_CHECK_ONEVALUEOF => array(0,1) )),
self::STREAMER_CHECKS => array( self::STREAMER_CHECK_ONEVALUEOF => array(0,1) ),
self::STREAMER_RONOTIFY => true),
SYNC_POOMMAIL_ATTACHMENTS => array ( self::STREAMER_VAR => "attachments",
self::STREAMER_TYPE => "SyncAttachment",
......@@ -170,7 +175,8 @@ class SyncMail extends SyncObject {
$mapping[SYNC_POOMMAIL_FLAG] = array ( self::STREAMER_VAR => "flag",
self::STREAMER_TYPE => "SyncMailFlags",
self::STREAMER_PROP => self::STREAMER_TYPE_SEND_EMPTY);
self::STREAMER_PROP => self::STREAMER_TYPE_SEND_EMPTY,
self::STREAMER_RONOTIFY => true);
$mapping[SYNC_AIRSYNCBASE_NATIVEBODYTYPE] = array ( self::STREAMER_VAR => "nativebodytype");
......@@ -191,7 +197,8 @@ class SyncMail extends SyncObject {
$mapping[SYNC_POOMMAIL2_RECEIVEDASBCC] = array ( self::STREAMER_VAR => "receivedasbcc");
$mapping[SYNC_POOMMAIL2_SENDER] = array ( self::STREAMER_VAR => "sender");
$mapping[SYNC_POOMMAIL_CATEGORIES] = array ( self::STREAMER_VAR => "categories",
self::STREAMER_ARRAY => SYNC_POOMMAIL_CATEGORY);
self::STREAMER_ARRAY => SYNC_POOMMAIL_CATEGORY,
self::STREAMER_RONOTIFY => true);
//TODO bodypart, accountid, rightsmanagementlicense
}
......
......@@ -9,7 +9,7 @@
*
* Created : 09.09.2011
*
* Copyright 2007 - 2013 Zarafa Deutschland GmbH
* Copyright 2007 - 2016 Zarafa Deutschland GmbH
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
......@@ -62,35 +62,48 @@ class SyncMailFlags extends SyncObject {
function SyncMailFlags() {
$mapping = array(
SYNC_POOMTASKS_SUBJECT => array ( self::STREAMER_VAR => "subject"),
SYNC_POOMMAIL_FLAGSTATUS => array ( self::STREAMER_VAR => "flagstatus"),
SYNC_POOMMAIL_FLAGTYPE => array ( self::STREAMER_VAR => "flagtype"),
SYNC_POOMTASKS_SUBJECT => array ( self::STREAMER_VAR => "subject",
self::STREAMER_RONOTIFY => true),
SYNC_POOMMAIL_FLAGSTATUS => array ( self::STREAMER_VAR => "flagstatus",
self::STREAMER_RONOTIFY => true),
SYNC_POOMMAIL_FLAGTYPE => array ( self::STREAMER_VAR => "flagtype",
self::STREAMER_RONOTIFY => true),
SYNC_POOMTASKS_DATECOMPLETED => array ( self::STREAMER_VAR => "datecompleted",
self::STREAMER_TYPE => self::STREAMER_TYPE_DATE_DASHES),
self::STREAMER_TYPE => self::STREAMER_TYPE_DATE_DASHES,
self::STREAMER_RONOTIFY => true),
SYNC_POOMMAIL_COMPLETETIME => array ( self::STREAMER_VAR => "completetime",
self::STREAMER_TYPE => self::STREAMER_TYPE_DATE_DASHES),
self::STREAMER_TYPE => self::STREAMER_TYPE_DATE_DASHES,
self::STREAMER_RONOTIFY => true),
SYNC_POOMTASKS_STARTDATE => array ( self::STREAMER_VAR => "startdate",
self::STREAMER_TYPE => self::STREAMER_TYPE_DATE_DASHES),
self::STREAMER_TYPE => self::STREAMER_TYPE_DATE_DASHES,
self::STREAMER_RONOTIFY => true),
SYNC_POOMTASKS_DUEDATE => array ( self::STREAMER_VAR => "duedate",
self::STREAMER_TYPE => self::STREAMER_TYPE_DATE_DASHES),
self::STREAMER_TYPE => self::STREAMER_TYPE_DATE_DASHES,
self::STREAMER_RONOTIFY => true),
SYNC_POOMTASKS_UTCSTARTDATE => array ( self::STREAMER_VAR => "utcstartdate",
self::STREAMER_TYPE => self::STREAMER_TYPE_DATE_DASHES),
self::STREAMER_TYPE => self::STREAMER_TYPE_DATE_DASHES,
self::STREAMER_RONOTIFY => true),
SYNC_POOMTASKS_UTCDUEDATE => array ( self::STREAMER_VAR => "utcduedate",
self::STREAMER_TYPE => self::STREAMER_TYPE_DATE_DASHES),
self::STREAMER_TYPE => self::STREAMER_TYPE_DATE_DASHES,
self::STREAMER_RONOTIFY => true),
SYNC_POOMTASKS_REMINDERSET => array ( self::STREAMER_VAR => "reminderset"),
SYNC_POOMTASKS_REMINDERSET => array ( self::STREAMER_VAR => "reminderset",
self::STREAMER_RONOTIFY => true),
SYNC_POOMTASKS_REMINDERTIME => array ( self::STREAMER_VAR => "remindertime",
self::STREAMER_TYPE => self::STREAMER_TYPE_DATE_DASHES),
self::STREAMER_TYPE => self::STREAMER_TYPE_DATE_DASHES,
self::STREAMER_RONOTIFY => true),
SYNC_POOMTASKS_ORDINALDATE => array ( self::STREAMER_VAR => "ordinaldate",
self::STREAMER_TYPE => self::STREAMER_TYPE_DATE_DASHES),
self::STREAMER_TYPE => self::STREAMER_TYPE_DATE_DASHES,
self::STREAMER_RONOTIFY => true),
SYNC_POOMTASKS_SUBORDINALDATE => array ( self::STREAMER_VAR => "subordinaldate"),
SYNC_POOMTASKS_SUBORDINALDATE => array ( self::STREAMER_VAR => "subordinaldate",
self::STREAMER_RONOTIFY => true),
);
parent::SyncObject($mapping);
......
......@@ -10,7 +10,7 @@
*
* Created : 16.01.2012
*
* Copyright 2007 - 2013 Zarafa Deutschland GmbH
* Copyright 2007 - 2016 Zarafa Deutschland GmbH
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
......@@ -72,17 +72,22 @@ class SyncNote extends SyncObject {
function SyncNote() {
$mapping = array(
SYNC_AIRSYNCBASE_BODY => array ( self::STREAMER_VAR => "asbody",
self::STREAMER_TYPE => "SyncBaseBody"),
self::STREAMER_TYPE => "SyncBaseBody",
self::STREAMER_RONOTIFY => true),
SYNC_NOTES_CATEGORIES => array ( self::STREAMER_VAR => "categories",
self::STREAMER_ARRAY => SYNC_NOTES_CATEGORY),
self::STREAMER_ARRAY => SYNC_NOTES_CATEGORY,
self::STREAMER_RONOTIFY => true),
SYNC_NOTES_LASTMODIFIEDDATE => array ( self::STREAMER_VAR => "lastmodified",
self::STREAMER_TYPE => self::STREAMER_TYPE_DATE),
self::STREAMER_TYPE => self::STREAMER_TYPE_DATE,
self::STREAMER_RONOTIFY => true),
SYNC_NOTES_MESSAGECLASS => array ( self::STREAMER_VAR => "messageclass"),
SYNC_NOTES_MESSAGECLASS => array ( self::STREAMER_VAR => "messageclass",
self::STREAMER_RONOTIFY => true),
SYNC_NOTES_SUBJECT => array ( self::STREAMER_VAR => "subject"),
SYNC_NOTES_SUBJECT => array ( self::STREAMER_VAR => "subject",
self::STREAMER_RONOTIFY => true),
SYNC_NOTES_IGNORE_COLOR => array ( self::STREAMER_VAR => "Color",
self::STREAMER_TYPE => self::STREAMER_TYPE_IGNORE),
......
This diff is collapsed.
......@@ -11,7 +11,7 @@
*
* Created : 05.09.2011
*
* Copyright 2007 - 2013 Zarafa Deutschland GmbH
* Copyright 2007 - 2016 Zarafa Deutschland GmbH
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
......@@ -69,18 +69,22 @@ class SyncRecurrence extends SyncObject {
// 6 = Recurs yearly on the nth day
SYNC_POOMCAL_TYPE => array ( self::STREAMER_VAR => "type",
self::STREAMER_CHECKS => array( self::STREAMER_CHECK_REQUIRED => self::STREAMER_CHECK_SETZERO,
self::STREAMER_CHECK_ONEVALUEOF => array(0,1,2,3,5,6) )),
self::STREAMER_CHECK_ONEVALUEOF => array(0,1,2,3,5,6) ),
self::STREAMER_RONOTIFY => true),
SYNC_POOMCAL_UNTIL => array ( self::STREAMER_VAR => "until",
self::STREAMER_TYPE => self::STREAMER_TYPE_DATE),
self::STREAMER_TYPE => self::STREAMER_TYPE_DATE,
self::STREAMER_RONOTIFY => true),
SYNC_POOMCAL_OCCURRENCES => array ( self::STREAMER_VAR => "occurrences",
self::STREAMER_CHECKS => array( self::STREAMER_CHECK_CMPHIGHER => 0,
self::STREAMER_CHECK_CMPLOWER => 1000 )),
self::STREAMER_CHECK_CMPLOWER => 1000 ),
self::STREAMER_RONOTIFY => true),
SYNC_POOMCAL_INTERVAL => array ( self::STREAMER_VAR => "interval",
self::STREAMER_CHECKS => array( self::STREAMER_CHECK_CMPHIGHER => 0,
self::STREAMER_CHECK_CMPLOWER => 1000 )),
self::STREAMER_CHECK_CMPLOWER => 1000 ),
self::STREAMER_RONOTIFY => true),
// DayOfWeek values
// 1 = Sunday
......@@ -95,28 +99,33 @@ class SyncRecurrence extends SyncObject {
// As this is a bitmask, actually all values 0 > x < 128 are allowed
SYNC_POOMCAL_DAYOFWEEK => array ( self::STREAMER_VAR => "dayofweek",
self::STREAMER_CHECKS => array( self::STREAMER_CHECK_CMPHIGHER => 0,
self::STREAMER_CHECK_CMPLOWER => 128 )),
self::STREAMER_CHECK_CMPLOWER => 128 ),
self::STREAMER_RONOTIFY => true),
// DayOfMonth values
// 1-31 representing the day
SYNC_POOMCAL_DAYOFMONTH => array ( self::STREAMER_VAR => "dayofmonth",
self::STREAMER_CHECKS => array( self::STREAMER_CHECK_CMPHIGHER => 0,
self::STREAMER_CHECK_CMPLOWER => 32 )),
self::STREAMER_CHECK_CMPLOWER => 32 ),
self::STREAMER_RONOTIFY => true),
// WeekOfMonth
// 1-4 = Y st/nd/rd/th week of month
// 5 = last week of month
SYNC_POOMCAL_WEEKOFMONTH => array ( self::STREAMER_VAR => "weekofmonth",
self::STREAMER_CHECKS => array( self::STREAMER_CHECK_ONEVALUEOF => array(1,2,3,4,5) )),
self::STREAMER_CHECKS => array( self::STREAMER_CHECK_ONEVALUEOF => array(1,2,3,4,5) ),
self::STREAMER_RONOTIFY => true),
// MonthOfYear
// 1-12 representing the month
SYNC_POOMCAL_MONTHOFYEAR => array ( self::STREAMER_VAR => "monthofyear",
self::STREAMER_CHECKS => array( self::STREAMER_CHECK_ONEVALUEOF => array(1,2,3,4,5,6,7,8,9,10,11,12) )),
self::STREAMER_CHECKS => array( self::STREAMER_CHECK_ONEVALUEOF => array(1,2,3,4,5,6,7,8,9,10,11,12) ),
self::STREAMER_RONOTIFY => true),
);
if(Request::GetProtocolVersion() >= 14.0) {
$mapping[SYNC_POOMCAL_CALENDARTYPE] = array ( self::STREAMER_VAR => "calendartype");
$mapping[SYNC_POOMCAL_CALENDARTYPE] = array ( self::STREAMER_VAR => "calendartype",
self::STREAMER_RONOTIFY => true);
}
parent::SyncObject($mapping);
......
This diff is collapsed.
......@@ -10,7 +10,7 @@
*
* Created : 05.09.2011
*
* Copyright 2007 - 2013 Zarafa Deutschland GmbH
* Copyright 2007 - 2016 Zarafa Deutschland GmbH
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
......@@ -64,7 +64,8 @@ class SyncTaskRecurrence extends SyncObject {
function SyncTaskRecurrence() {
$mapping = array (
SYNC_POOMTASKS_START => array ( self::STREAMER_VAR => "start",
self::STREAMER_TYPE => self::STREAMER_TYPE_DATE),
self::STREAMER_TYPE => self::STREAMER_TYPE_DATE,
self::STREAMER_RONOTIFY => true),
// Recurrence type
// 0 = Recurs daily
......@@ -75,22 +76,28 @@ class SyncTaskRecurrence extends SyncObject {
// 6 = Recurs yearly on the nth day
SYNC_POOMTASKS_TYPE => array ( self::STREAMER_VAR => "type",
self::STREAMER_CHECKS => array( self::STREAMER_CHECK_REQUIRED => self::STREAMER_CHECK_SETZERO,
self::STREAMER_CHECK_ONEVALUEOF => array(0,1,2,3,5,6) )),
self::STREAMER_CHECK_ONEVALUEOF => array(0,1,2,3,5,6) ),
self::STREAMER_RONOTIFY => true),
SYNC_POOMTASKS_UNTIL => array ( self::STREAMER_VAR => "until",
self::STREAMER_TYPE => self::STREAMER_TYPE_DATE ),
self::STREAMER_TYPE => self::STREAMER_TYPE_DATE,
self::STREAMER_RONOTIFY => true),
SYNC_POOMTASKS_OCCURRENCES => array ( self::STREAMER_VAR => "occurrences",
self::STREAMER_CHECKS => array( self::STREAMER_CHECK_CMPHIGHER => 0,
self::STREAMER_CHECK_CMPLOWER => 1000 )),
self::STREAMER_CHECK_CMPLOWER => 1000 ),
self::STREAMER_RONOTIFY => true),
SYNC_POOMTASKS_INTERVAL => array ( self::STREAMER_VAR => "interval",
self::STREAMER_CHECKS => array( self::STREAMER_CHECK_CMPHIGHER => 0,
self::STREAMER_CHECK_CMPLOWER => 1000 )),
self::STREAMER_CHECK_CMPLOWER => 1000 ),
self::STREAMER_RONOTIFY => true),
//TODO: check iOS5 sends deadoccur inside of the recurrence
SYNC_POOMTASKS_DEADOCCUR => array ( self::STREAMER_VAR => "deadoccur"),
SYNC_POOMTASKS_REGENERATE => array ( self::STREAMER_VAR => "regenerate"),
SYNC_POOMTASKS_DEADOCCUR => array ( self::STREAMER_VAR => "deadoccur",
self::STREAMER_RONOTIFY => true),
SYNC_POOMTASKS_REGENERATE => array ( self::STREAMER_VAR => "regenerate",
self::STREAMER_RONOTIFY => true),
// DayOfWeek values
// 1 = Sunday
......@@ -104,28 +111,33 @@ class SyncTaskRecurrence extends SyncObject {
// 127 = The last day of the month. Value valid only in monthly or yearly recurrences.
SYNC_POOMTASKS_DAYOFWEEK => array ( self::STREAMER_VAR => "dayofweek",
self::STREAMER_CHECKS => array( self::STREAMER_CHECK_CMPHIGHER => 0,
self::STREAMER_CHECK_CMPLOWER => 128 )),
self::STREAMER_CHECK_CMPLOWER => 128 ),
self::STREAMER_RONOTIFY => true),
// DayOfMonth values
// 1-31 representing the day
SYNC_POOMTASKS_DAYOFMONTH => array ( self::STREAMER_VAR => "dayofmonth",
self::STREAMER_CHECKS => array( self::STREAMER_CHECK_CMPHIGHER => 0,
self::STREAMER_CHECK_CMPLOWER => 32 )),
self::STREAMER_CHECK_CMPLOWER => 32 ),
self::STREAMER_RONOTIFY => true),
// WeekOfMonth
// 1-4 = Y st/nd/rd/th week of month
// 5 = last week of month
SYNC_POOMTASKS_WEEKOFMONTH => array ( self::STREAMER_VAR => "weekofmonth",
self::STREAMER_CHECKS => array( self::STREAMER_CHECK_ONEVALUEOF => array(1,2,3,4,5) )),
self::STREAMER_CHECKS => array( self::STREAMER_CHECK_ONEVALUEOF => array(1,2,3,4,5) ),
self::STREAMER_RONOTIFY => true),
// MonthOfYear
// 1-12 representing the month
SYNC_POOMTASKS_MONTHOFYEAR => array ( self::STREAMER_VAR => "monthofyear",
self::STREAMER_CHECKS => array( self::STREAMER_CHECK_ONEVALUEOF => array(1,2,3,4,5,6,7,8,9,10,11,12) )),
self::STREAMER_CHECKS => array( self::STREAMER_CHECK_ONEVALUEOF => array(1,2,3,4,5,6,7,8,9,10,11,12) ),
self::STREAMER_RONOTIFY => true),
);
if(Request::GetProtocolVersion() >= 14.0) {
$mapping[SYNC_POOMTASKS_CALENDARTYPE] = array ( self::STREAMER_VAR => "calendartype");
$mapping[SYNC_POOMTASKS_CALENDARTYPE] = array ( self::STREAMER_VAR => "calendartype",
self::STREAMER_RONOTIFY => true);
}
parent::SyncObject($mapping);
......
......@@ -1296,11 +1296,11 @@ class TimezoneUtil {
}
/**
* Pack timezone info for Sync
* Pack timezone info for Sync.
*
* @param array $tz
*
* @access private
* @access public
* @return string
*/
static public function GetSyncBlobFromTZ($tz) {
......
......@@ -42,9 +42,11 @@
************************************************/
if (!defined("ZPUSH_VERSION")) {
$commit = exec("type git && git log --date=short --pretty=format:'%h/%ad' -1");
if(preg_match("/^[\da-f]+\/\d{4}-\d{2}-\d{2}$/i", $commit)) {
define("ZPUSH_VERSION", "GIT " . $commit);
$path = escapeshellarg(dirname(realpath($_SERVER['SCRIPT_FILENAME'])));
$branch = trim(exec("hash git && cd $path >/dev/null 2>&1 && git branch --no-color 2>/dev/null | sed -e '/^[^*]/d' -e \"s/* \(.*\)/\\1/\""));
$version = exec("hash git && cd $path >/dev/null 2>&1 && git describe --always &2>/dev/null");
if ($branch && $version) {
define("ZPUSH_VERSION", $branch .'-'. $version);
}
else {
define("ZPUSH_VERSION", "GIT");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment