forked from extern/egroupware
try to improve speed and refresh behavior
This commit is contained in:
parent
b59524c4f6
commit
f4254b5281
@ -978,7 +978,7 @@ class mail_bo
|
|||||||
{
|
{
|
||||||
return $retValue;
|
return $retValue;
|
||||||
}
|
}
|
||||||
$subscribedFolders = $this->icServer->listsubscribedMailboxes('', $_folderName);
|
$subscribedFolders = $this->icServer->listSubscribedMailboxes('', $_folderName);
|
||||||
if(is_array($subscribedFolders) && count($subscribedFolders) == 1) {
|
if(is_array($subscribedFolders) && count($subscribedFolders) == 1) {
|
||||||
$retValue['subscribed'] = true;
|
$retValue['subscribed'] = true;
|
||||||
}
|
}
|
||||||
@ -1827,6 +1827,20 @@ class mail_bo
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* fetchUnSubscribedFolders: get unsubscribed IMAP folder list
|
||||||
|
*
|
||||||
|
* returns an array of unsubscribed IMAP folder names.
|
||||||
|
*
|
||||||
|
* @return array with folder names. eg.: 1 => INBOX/TEST
|
||||||
|
*/
|
||||||
|
function fetchUnSubscribedFolders()
|
||||||
|
{
|
||||||
|
$unSubscribedMailboxes = $this->icServer->listUnSubscribedMailboxes();
|
||||||
|
//error_log(__MEtHOD__.__LINE__.array2string($unSubscribedMailboxes));
|
||||||
|
return $unSubscribedMailboxes;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* get IMAP folder objects
|
* get IMAP folder objects
|
||||||
*
|
*
|
||||||
@ -1898,10 +1912,10 @@ class mail_bo
|
|||||||
|
|
||||||
if(is_array($singleNameSpace)) {
|
if(is_array($singleNameSpace)) {
|
||||||
// fetch and sort the subscribed folders
|
// fetch and sort the subscribed folders
|
||||||
$subscribedMailboxes = $this->icServer->listsubscribedMailboxes($foldersNameSpace[$type]['prefix']);
|
$subscribedMailboxes = $this->icServer->listSubscribedMailboxes($foldersNameSpace[$type]['prefix']);
|
||||||
if (empty($subscribedMailboxes) && $type == 'shared')
|
if (empty($subscribedMailboxes) && $type == 'shared')
|
||||||
{
|
{
|
||||||
$subscribedMailboxes = $this->icServer->listsubscribedMailboxes('',0);
|
$subscribedMailboxes = $this->icServer->listSubscribedMailboxes('',0);
|
||||||
}
|
}
|
||||||
|
|
||||||
//echo "subscribedMailboxes";_debug_array($subscribedMailboxes);
|
//echo "subscribedMailboxes";_debug_array($subscribedMailboxes);
|
||||||
|
@ -276,7 +276,7 @@ class mail_ui
|
|||||||
$sel_options[self::$nm_index]['foldertree'] = $this->getFolderTree(false);
|
$sel_options[self::$nm_index]['foldertree'] = $this->getFolderTree(false);
|
||||||
//$zendtime = microtime(true) - $zstarttime;
|
//$zendtime = microtime(true) - $zstarttime;
|
||||||
//error_log(__METHOD__.__LINE__. " time used: ".$zendtime);
|
//error_log(__METHOD__.__LINE__. " time used: ".$zendtime);
|
||||||
|
//$this->mail_bo->fetchUnSubscribedFolders();
|
||||||
//$sessionFolder = $this->mail_bo->sessionData['mailbox'];// already set and tested this earlier
|
//$sessionFolder = $this->mail_bo->sessionData['mailbox'];// already set and tested this earlier
|
||||||
//if ($this->mail_bo->folderExists($sessionFolder))
|
//if ($this->mail_bo->folderExists($sessionFolder))
|
||||||
//{
|
//{
|
||||||
@ -697,7 +697,7 @@ class mail_ui
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$oA['im0'] = "MailFolderPlain.png"; // one Level
|
$oA['im0'] = "MailFolderPlain.png"; // one Level
|
||||||
$oA['im1'] = "folderOpen.gif";
|
$oA['im1'] = "folderOpen.gif";
|
||||||
$oA['im2'] = "MailFolderClosed.png"; // has Children
|
$oA['im2'] = "MailFolderClosed.png"; // has Children
|
||||||
}
|
}
|
||||||
@ -1150,6 +1150,13 @@ class mail_ui
|
|||||||
'group' => ++$group,
|
'group' => ++$group,
|
||||||
'onExecute' => 'javaScript:app.mail.mail_delete',
|
'onExecute' => 'javaScript:app.mail.mail_delete',
|
||||||
),
|
),
|
||||||
|
/*
|
||||||
|
'select_all' => array(
|
||||||
|
'caption' => 'Select all',
|
||||||
|
'group' => ++$group,
|
||||||
|
'shortcut' => egw_keymanager::shortcut(egw_keymanager::A, false, true),
|
||||||
|
),
|
||||||
|
*/
|
||||||
'drag_mail' => array(
|
'drag_mail' => array(
|
||||||
'dragType' => array('mail','file'),
|
'dragType' => array('mail','file'),
|
||||||
'type' => 'drag',
|
'type' => 'drag',
|
||||||
@ -1323,6 +1330,8 @@ unset($query['actions']);
|
|||||||
//error_log(__METHOD__.__LINE__.array2string($rows));
|
//error_log(__METHOD__.__LINE__.array2string($rows));
|
||||||
$endtime = microtime(true) - $starttime;
|
$endtime = microtime(true) - $starttime;
|
||||||
//error_log(__METHOD__.__LINE__. " time used: ".$endtime.' for Folder:'.$_folderName.' Start:'.$query['start'].' NumRows:'.$query['num_rows']);
|
//error_log(__METHOD__.__LINE__. " time used: ".$endtime.' for Folder:'.$_folderName.' Start:'.$query['start'].' NumRows:'.$query['num_rows']);
|
||||||
|
$response = egw_json_response::get();
|
||||||
|
$response->call('app.mail.mail_refreshFolderStatus',array('_nodeID'=>$_profileID.self::$delimiter.$_folderName,'mode'=>null,'_refreshGridArea'=>false),'mail');
|
||||||
|
|
||||||
return $rowsFetched['messages'];
|
return $rowsFetched['messages'];
|
||||||
}
|
}
|
||||||
@ -3528,7 +3537,7 @@ $success=true;
|
|||||||
$_newName = $namePart;
|
$_newName = $namePart;
|
||||||
$oldParentFolder = implode($del,$pA);
|
$oldParentFolder = implode($del,$pA);
|
||||||
$parentFolder = $_newLocation;
|
$parentFolder = $_newLocation;
|
||||||
if (strtoupper($folderName)!= 'INBOX')
|
if (strtoupper($folderName)!= 'INBOX' && (strlen($parentFolder)>strlen($folderName) && strpos($parentFolder,$folderName)===false))
|
||||||
{
|
{
|
||||||
//error_log(__METHOD__.__LINE__."$folderName, $parentFolder, $_newName");
|
//error_log(__METHOD__.__LINE__."$folderName, $parentFolder, $_newName");
|
||||||
$oldFolderInfo = $this->mail_bo->getFolderStatus($folderName,false);
|
$oldFolderInfo = $this->mail_bo->getFolderStatus($folderName,false);
|
||||||
@ -3612,8 +3621,8 @@ $success=true;
|
|||||||
$profileID.self::$delimiter.$oldParentFolder=>$oldFolderInfo['shortDisplayName'],
|
$profileID.self::$delimiter.$oldParentFolder=>$oldFolderInfo['shortDisplayName'],
|
||||||
$profileID.self::$delimiter.$parentFolder=>$folderInfo['shortDisplayName']);
|
$profileID.self::$delimiter.$parentFolder=>$folderInfo['shortDisplayName']);
|
||||||
// if we move the folder within the same parent-branch of the tree, there is no need no refresh the upper part
|
// if we move the folder within the same parent-branch of the tree, there is no need no refresh the upper part
|
||||||
if (strpos($profileID.self::$delimiter.$parentFolder,$profileID.self::$delimiter.$oldParentFolder)!==false) unset($refreshData[$profileID.self::$delimiter.$parentFolder]);
|
if (strlen($parentFolder)>strlen($oldParentFolder) && strpos($parentFolder,$oldParentFolder)!==false) unset($refreshData[$profileID.self::$delimiter.$parentFolder]);
|
||||||
if (count($refreshData)>1 && strpos($profileID.self::$delimiter.$oldParentFolder,$profileID.self::$delimiter.$parentFolder)!==false) unset($refreshData[$profileID.self::$delimiter.$oldParentFolder]);
|
if (count($refreshData)>1 && strlen($oldParentFolder)>strlen($parentFolder) && strpos($oldParentFolder,$parentFolder)!==false) unset($refreshData[$profileID.self::$delimiter.$oldParentFolder]);
|
||||||
$response->call('app.mail.mail_reloadNode',$refreshData,'mail');
|
$response->call('app.mail.mail_reloadNode',$refreshData,'mail');
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -677,10 +677,10 @@ app.classes.mail = AppJS.extend(
|
|||||||
window.clearTimeout(this.mail_doTimedRefresh);
|
window.clearTimeout(this.mail_doTimedRefresh);
|
||||||
}
|
}
|
||||||
if(_refreshTimeOut > 9999) {//we do not set _refreshTimeOut's less than 10 seconds
|
if(_refreshTimeOut > 9999) {//we do not set _refreshTimeOut's less than 10 seconds
|
||||||
var self = this;
|
//var self = this;
|
||||||
this.mail_doTimedRefresh = window.setInterval(function() {
|
//this.mail_doTimedRefresh = window.setInterval(function() {
|
||||||
self.mail_refreshFolderStatus.call(self,undefined,undefined,true);
|
// self.mail_refreshFolderStatus.call(self,undefined,undefined,true);
|
||||||
},_refreshTimeOut);
|
//},_refreshTimeOut);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -691,6 +691,12 @@ app.classes.mail = AppJS.extend(
|
|||||||
* @param mode
|
* @param mode
|
||||||
*/
|
*/
|
||||||
mail_refreshFolderStatus: function(_nodeID,mode,_refreshGridArea) {
|
mail_refreshFolderStatus: function(_nodeID,mode,_refreshGridArea) {
|
||||||
|
if (typeof _nodeID != 'undefined' && typeof _nodeID[_nodeID] != 'undefined' && _nodeID[_nodeID])
|
||||||
|
{
|
||||||
|
_refreshGridArea = _nodeID[_refreshGridArea];
|
||||||
|
mode = _nodeID[mode];
|
||||||
|
_nodeID = _nodeID[_nodeID];
|
||||||
|
}
|
||||||
var nodeToRefresh = 0;
|
var nodeToRefresh = 0;
|
||||||
var mode2use = "none";
|
var mode2use = "none";
|
||||||
if (typeof _refreshGridArea == 'undefined') _refreshGridArea=true;
|
if (typeof _refreshGridArea == 'undefined') _refreshGridArea=true;
|
||||||
|
Loading…
Reference in New Issue
Block a user