mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-22 16:03:47 +01:00
handle problems with select-all on flag, move and delete
This commit is contained in:
parent
5d8c57f1bd
commit
07d1ba39a6
@ -3315,7 +3315,7 @@ $this->partID = $partID;
|
|||||||
|
|
||||||
if (!empty($content))
|
if (!empty($content))
|
||||||
{
|
{
|
||||||
error_log(__METHOD__.__LINE__.array2string($content));
|
//error_log(__METHOD__.__LINE__.array2string($content));
|
||||||
if ($content['divImportArea']['vfsfile'])
|
if ($content['divImportArea']['vfsfile'])
|
||||||
{
|
{
|
||||||
$file = $content['divImportArea']['vfsfile'] = array(
|
$file = $content['divImportArea']['vfsfile'] = array(
|
||||||
@ -3398,6 +3398,8 @@ $this->partID = $partID;
|
|||||||
$alert_msg .= $e->getMessage();
|
$alert_msg .= $e->getMessage();
|
||||||
}
|
}
|
||||||
//_debug_array($Body);
|
//_debug_array($Body);
|
||||||
|
//error_log(__METHOD__.__LINE__.array2string($Header));
|
||||||
|
//error_log(__METHOD__.__LINE__.array2string($Body));
|
||||||
$this->mail_bo->openConnection();
|
$this->mail_bo->openConnection();
|
||||||
if (empty($_folder))
|
if (empty($_folder))
|
||||||
{
|
{
|
||||||
@ -4367,6 +4369,8 @@ $this->partID = $partID;
|
|||||||
{
|
{
|
||||||
if(mail_bo::$debug) error_log(__METHOD__."->".$_flag.':'.array2string($_messageList));
|
if(mail_bo::$debug) error_log(__METHOD__."->".$_flag.':'.array2string($_messageList));
|
||||||
$alreadyFlagged=false;
|
$alreadyFlagged=false;
|
||||||
|
$flag2check='';
|
||||||
|
$filter2toggle = $query = array();
|
||||||
if ($_messageList=='all' || !empty($_messageList['msg']))
|
if ($_messageList=='all' || !empty($_messageList['msg']))
|
||||||
{
|
{
|
||||||
if (isset($_messageList['all']) && $_messageList['all'])
|
if (isset($_messageList['all']) && $_messageList['all'])
|
||||||
@ -4394,14 +4398,16 @@ $this->partID = $partID;
|
|||||||
// flags read,flagged,label1,label2,label3,label4,label5 can be toggled: handle this when all mails in a folder
|
// flags read,flagged,label1,label2,label3,label4,label5 can be toggled: handle this when all mails in a folder
|
||||||
// should be affected serverside. here.
|
// should be affected serverside. here.
|
||||||
$messageList = $messageListForToggle = array();
|
$messageList = $messageListForToggle = array();
|
||||||
if (in_array($_flag,array('read','flagged','label1','label2','label3','label4','label5')))
|
$flag2check = ($_flag=='read'?'seen':$_flag);
|
||||||
|
if (in_array($_flag,array('read','flagged','label1','label2','label3','label4','label5')) &&
|
||||||
|
!($flag2check==$query['filter'] || stripos($query['filter'],$flag2check)!==false))
|
||||||
{
|
{
|
||||||
$filter2toggle['status'] = array('un'.$_flag);
|
$filter2toggle['status'] = array('un'.$_flag);
|
||||||
if ($query['filter'])
|
if ($query['filter'] && $query['filter']!='any')
|
||||||
{
|
{
|
||||||
$filter2toggle['status'][] = $query['filter'];
|
$filter2toggle['status'][] = $query['filter'];
|
||||||
}
|
}
|
||||||
$_sR = $this->mail_bo->getSortedList(
|
$_sRt = $this->mail_bo->getSortedList(
|
||||||
$folder,
|
$folder,
|
||||||
$sort=0,
|
$sort=0,
|
||||||
$reverse=1,
|
$reverse=1,
|
||||||
@ -4409,9 +4415,9 @@ $this->partID = $partID;
|
|||||||
$rByUid=true,
|
$rByUid=true,
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
$messageListForToggle = $_sR['match']->ids;
|
$messageListForToggle = $_sRt['match']->ids;
|
||||||
$filter['status'] = array($_flag);
|
$filter['status'] = array($_flag);
|
||||||
if ($query['filter'])
|
if ($query['filter'] && $query['filter'] !='any')
|
||||||
{
|
{
|
||||||
$filter['status'][] = $query['filter'];
|
$filter['status'][] = $query['filter'];
|
||||||
}
|
}
|
||||||
@ -4439,7 +4445,10 @@ $this->partID = $partID;
|
|||||||
$alreadyFlagged=true;
|
$alreadyFlagged=true;
|
||||||
//unset($_messageList['all']);
|
//unset($_messageList['all']);
|
||||||
}
|
}
|
||||||
elseif (!in_array($_flag,array('read','flagged','label1','label2','label3','label4','label5')) && !empty($filter))
|
elseif (!empty($filter) &&
|
||||||
|
(!in_array($_flag,array('read','flagged','label1','label2','label3','label4','label5')) ||
|
||||||
|
(in_array($_flag,array('read','flagged','label1','label2','label3','label4','label5')) &&
|
||||||
|
($flag2check==$query['filter'] || stripos($query['filter'],$flag2check)!==false))))
|
||||||
{
|
{
|
||||||
$_sR = $this->mail_bo->getSortedList(
|
$_sR = $this->mail_bo->getSortedList(
|
||||||
$folder,
|
$folder,
|
||||||
@ -4455,6 +4464,7 @@ $this->partID = $partID;
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
//error_log(__METHOD__.__LINE__." $_flag all ".array2string($filter));
|
||||||
$alreadyFlagged=true;
|
$alreadyFlagged=true;
|
||||||
$uidA = self::splitRowID($_messageList['msg'][0]);
|
$uidA = self::splitRowID($_messageList['msg'][0]);
|
||||||
$folder = $uidA['folder']; // all messages in one set are supposed to be within the same folder
|
$folder = $uidA['folder']; // all messages in one set are supposed to be within the same folder
|
||||||
@ -4474,6 +4484,7 @@ $this->partID = $partID;
|
|||||||
$hA = self::splitRowID($rowID);
|
$hA = self::splitRowID($rowID);
|
||||||
$messageList[] = $hA['msgUID'];
|
$messageList[] = $hA['msgUID'];
|
||||||
}
|
}
|
||||||
|
//error_log(__METHOD__.__LINE__." $_flag in $folder:".array2string(((isset($_messageList['all']) && $_messageList['all']) ? 'all':$messageList)));
|
||||||
$this->mail_bo->flagMessages($_flag, ((isset($_messageList['all']) && $_messageList['all']) ? 'all':$messageList),$folder);
|
$this->mail_bo->flagMessages($_flag, ((isset($_messageList['all']) && $_messageList['all']) ? 'all':$messageList),$folder);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -4493,7 +4504,14 @@ $this->partID = $partID;
|
|||||||
if ($_sendJsonResponse)
|
if ($_sendJsonResponse)
|
||||||
{
|
{
|
||||||
$response = egw_json_response::get();
|
$response = egw_json_response::get();
|
||||||
$response->call('egw.message',lang('flagged %1 messages as %2 in %3',(isset($_messageList['all']) && $_messageList['all']?lang('all'):count($_messageList['msg'])),lang($_flag),$folder));
|
if ($query['filter'] && ($flag2check==$query['filter'] || stripos($query['filter'],$flag2check)!==false))
|
||||||
|
{
|
||||||
|
$response->call('egw.refresh',lang('flagged %1 messages as %2 in %3',(isset($_messageList['all']) && $_messageList['all']?lang('all'):count($_messageList['msg'])),lang($_flag),$folder),'mail');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$response->call('egw.message',lang('flagged %1 messages as %2 in %3',(isset($_messageList['all']) && $_messageList['all']?lang('all'):count($_messageList['msg'])),lang($_flag),$folder));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4526,13 +4544,14 @@ $this->partID = $partID;
|
|||||||
emailadmin_imapbase::$supportsORinQuery = egw_cache::getCache(egw_cache::INSTANCE,'email','supportsORinQuery'.trim($GLOBALS['egw_info']['user']['account_id']), null, array(), 60*60*10);
|
emailadmin_imapbase::$supportsORinQuery = egw_cache::getCache(egw_cache::INSTANCE,'email','supportsORinQuery'.trim($GLOBALS['egw_info']['user']['account_id']), null, array(), 60*60*10);
|
||||||
if (!isset(emailadmin_imapbase::$supportsORinQuery[$this->mail_bo->profileID])) emailadmin_imapbase::$supportsORinQuery[$this->mail_bo->profileID]=true;
|
if (!isset(emailadmin_imapbase::$supportsORinQuery[$this->mail_bo->profileID])) emailadmin_imapbase::$supportsORinQuery[$this->mail_bo->profileID]=true;
|
||||||
}
|
}
|
||||||
$filter = array('filterName' => (emailadmin_imapbase::$supportsORinQuery[$this->mail_bo->profileID]?lang('quicksearch'):lang('subject')),'type' => ($query['filter2']?$query['filter2']:(emailadmin_imapbase::$supportsORinQuery[$this->mail_bo->profileID]?'quick':'subject')),'string' => $query['search'],'status' => 'any');
|
$filter = array('filterName' => (emailadmin_imapbase::$supportsORinQuery[$this->mail_bo->profileID]?lang('quicksearch'):lang('subject')),'type' => ($query['filter2']?$query['filter2']:(emailadmin_imapbase::$supportsORinQuery[$this->mail_bo->profileID]?'quick':'subject')),'string' => $query['search'],'status' => (!empty($query['filter'])?$query['filter']:'any'));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$filter = array();
|
$filter = array();
|
||||||
}
|
}
|
||||||
$messageList = array();
|
$messageList = array();
|
||||||
|
//error_log(__METHOD__.__LINE__."->".print_r($filter,true).' folder:'.$folder.' Method:'.$_forceDeleteMethod);
|
||||||
$_sR = $this->mail_bo->getSortedList(
|
$_sR = $this->mail_bo->getSortedList(
|
||||||
$folder,
|
$folder,
|
||||||
$sort=0,
|
$sort=0,
|
||||||
@ -4647,7 +4666,7 @@ $this->partID = $partID;
|
|||||||
emailadmin_imapbase::$supportsORinQuery = egw_cache::getCache(egw_cache::INSTANCE,'email','supportsORinQuery'.trim($GLOBALS['egw_info']['user']['account_id']), null, array(), 60*60*10);
|
emailadmin_imapbase::$supportsORinQuery = egw_cache::getCache(egw_cache::INSTANCE,'email','supportsORinQuery'.trim($GLOBALS['egw_info']['user']['account_id']), null, array(), 60*60*10);
|
||||||
if (!isset(emailadmin_imapbase::$supportsORinQuery[$this->mail_bo->profileID])) emailadmin_imapbase::$supportsORinQuery[$this->mail_bo->profileID]=true;
|
if (!isset(emailadmin_imapbase::$supportsORinQuery[$this->mail_bo->profileID])) emailadmin_imapbase::$supportsORinQuery[$this->mail_bo->profileID]=true;
|
||||||
}
|
}
|
||||||
$filter = array('filterName' => (emailadmin_imapbase::$supportsORinQuery[$this->mail_bo->profileID]?lang('quicksearch'):lang('subject')),'type' => ($query['filter2']?$query['filter2']:(emailadmin_imapbase::$supportsORinQuery[$this->mail_bo->profileID]?'quick':'subject')),'string' => $query['search'],'status' => 'any');
|
$filter = array('filterName' => (emailadmin_imapbase::$supportsORinQuery[$this->mail_bo->profileID]?lang('quicksearch'):lang('subject')),'type' => ($query['filter2']?$query['filter2']:(emailadmin_imapbase::$supportsORinQuery[$this->mail_bo->profileID]?'quick':'subject')),'string' => $query['search'],'status' => (!empty($query['filter'])?$query['filter']:'any'));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user