mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-09-02 05:59:21 +03:00
Sieve filters (interface)
This commit is contained in:
parent
68cc322bd5
commit
02ba68868f
12 changed files with 129 additions and 30 deletions
|
|
@ -2063,7 +2063,6 @@ class Actions
|
|||
*/
|
||||
public function DoFiltersSave()
|
||||
{
|
||||
sleep(1);
|
||||
$aIncFilters = $this->GetActionParam('Filters', array());
|
||||
|
||||
$aFilters = array();
|
||||
|
|
|
|||
|
|
@ -217,9 +217,9 @@ class Filter
|
|||
$this->sActionValue = isset($aFilter['ActionValue']) ? $aFilter['ActionValue'] : '';
|
||||
$this->sActionValueSecond = isset($aFilter['ActionValueSecond']) ? $aFilter['ActionValueSecond'] : '';
|
||||
|
||||
$this->bMarkAsRead = isset($aFilter['MarkAsRead']) ? $aFilter['MarkAsRead'] : false;
|
||||
$this->bSkipOthers = isset($aFilter['SkipOthers']) ? $aFilter['SkipOthers'] : false;
|
||||
$this->bKeepForward = isset($aFilter['KeepForward']) ? $aFilter['KeepForward'] : true;
|
||||
$this->bMarkAsRead = isset($aFilter['MarkAsRead']) ? '1' === (string) $aFilter['MarkAsRead'] : false;
|
||||
$this->bSkipOthers = isset($aFilter['SkipOthers']) ? '1' === (string) $aFilter['SkipOthers'] : false;
|
||||
$this->bKeepForward = isset($aFilter['KeepForward']) ? '1' === (string) $aFilter['KeepForward'] : true;
|
||||
|
||||
$this->aConditions = \RainLoop\Providers\Filters\Classes\FilterCondition::CollectionFromJSON(
|
||||
isset($aFilter['Conditions']) ? $aFilter['Conditions'] : array());
|
||||
|
|
|
|||
|
|
@ -180,7 +180,11 @@ class SieveStorage implements \RainLoop\Providers\Filters\FiltersInterface
|
|||
$sTab = '';
|
||||
}
|
||||
|
||||
if ($oFilter->MarkAsRead())
|
||||
if ($oFilter->MarkAsRead() && \in_array($oFilter->ActionType(), array(
|
||||
\RainLoop\Providers\Filters\Enumerations\ActionType::NONE,
|
||||
\RainLoop\Providers\Filters\Enumerations\ActionType::MOVE_TO,
|
||||
\RainLoop\Providers\Filters\Enumerations\ActionType::FORWARD
|
||||
)))
|
||||
{
|
||||
$aCapa['imap4flags'] = true;
|
||||
$aResult[] = $sTab.'addflag "\\\\Seen";';
|
||||
|
|
@ -353,6 +357,6 @@ class SieveStorage implements \RainLoop\Providers\Filters\FiltersInterface
|
|||
*/
|
||||
private function quote($sValue)
|
||||
{
|
||||
return \str_replace('"', '\\"', \trim($sValue));
|
||||
return \str_replace(array('\\', '"'), array('\\\\', '\\"'), \trim($sValue));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue