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;
|
||||
}
|
||||
$subscribedFolders = $this->icServer->listsubscribedMailboxes('', $_folderName);
|
||||
$subscribedFolders = $this->icServer->listSubscribedMailboxes('', $_folderName);
|
||||
if(is_array($subscribedFolders) && count($subscribedFolders) == 1) {
|
||||
$retValue['subscribed'] = true;
|
||||
}
|
||||
@ -1827,6 +1827,20 @@ class mail_bo
|
||||
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
|
||||
*
|
||||
@ -1898,10 +1912,10 @@ class mail_bo
|
||||
|
||||
if(is_array($singleNameSpace)) {
|
||||
// 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')
|
||||
{
|
||||
$subscribedMailboxes = $this->icServer->listsubscribedMailboxes('',0);
|
||||
$subscribedMailboxes = $this->icServer->listSubscribedMailboxes('',0);
|
||||
}
|
||||
|
||||
//echo "subscribedMailboxes";_debug_array($subscribedMailboxes);
|
||||
|
@ -276,7 +276,7 @@ class mail_ui
|
||||
$sel_options[self::$nm_index]['foldertree'] = $this->getFolderTree(false);
|
||||
//$zendtime = microtime(true) - $zstarttime;
|
||||
//error_log(__METHOD__.__LINE__. " time used: ".$zendtime);
|
||||
|
||||
//$this->mail_bo->fetchUnSubscribedFolders();
|
||||
//$sessionFolder = $this->mail_bo->sessionData['mailbox'];// already set and tested this earlier
|
||||
//if ($this->mail_bo->folderExists($sessionFolder))
|
||||
//{
|
||||
@ -697,7 +697,7 @@ class mail_ui
|
||||
}
|
||||
else
|
||||
{
|
||||
$oA['im0'] = "MailFolderPlain.png"; // one Level
|
||||
$oA['im0'] = "MailFolderPlain.png"; // one Level
|
||||
$oA['im1'] = "folderOpen.gif";
|
||||
$oA['im2'] = "MailFolderClosed.png"; // has Children
|
||||
}
|
||||
@ -1150,6 +1150,13 @@ class mail_ui
|
||||
'group' => ++$group,
|
||||
'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(
|
||||
'dragType' => array('mail','file'),
|
||||
'type' => 'drag',
|
||||
@ -1323,6 +1330,8 @@ unset($query['actions']);
|
||||
//error_log(__METHOD__.__LINE__.array2string($rows));
|
||||
$endtime = microtime(true) - $starttime;
|
||||
//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'];
|
||||
}
|
||||
@ -3528,7 +3537,7 @@ $success=true;
|
||||
$_newName = $namePart;
|
||||
$oldParentFolder = implode($del,$pA);
|
||||
$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");
|
||||
$oldFolderInfo = $this->mail_bo->getFolderStatus($folderName,false);
|
||||
@ -3612,8 +3621,8 @@ $success=true;
|
||||
$profileID.self::$delimiter.$oldParentFolder=>$oldFolderInfo['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 (strpos($profileID.self::$delimiter.$parentFolder,$profileID.self::$delimiter.$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 (strlen($parentFolder)>strlen($oldParentFolder) && strpos($parentFolder,$oldParentFolder)!==false) unset($refreshData[$profileID.self::$delimiter.$parentFolder]);
|
||||
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');
|
||||
|
||||
}
|
||||
|
@ -677,10 +677,10 @@ app.classes.mail = AppJS.extend(
|
||||
window.clearTimeout(this.mail_doTimedRefresh);
|
||||
}
|
||||
if(_refreshTimeOut > 9999) {//we do not set _refreshTimeOut's less than 10 seconds
|
||||
var self = this;
|
||||
this.mail_doTimedRefresh = window.setInterval(function() {
|
||||
self.mail_refreshFolderStatus.call(self,undefined,undefined,true);
|
||||
},_refreshTimeOut);
|
||||
//var self = this;
|
||||
//this.mail_doTimedRefresh = window.setInterval(function() {
|
||||
// self.mail_refreshFolderStatus.call(self,undefined,undefined,true);
|
||||
//},_refreshTimeOut);
|
||||
}
|
||||
},
|
||||
|
||||
@ -691,6 +691,12 @@ app.classes.mail = AppJS.extend(
|
||||
* @param mode
|
||||
*/
|
||||
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 mode2use = "none";
|
||||
if (typeof _refreshGridArea == 'undefined') _refreshGridArea=true;
|
||||
|
Loading…
Reference in New Issue
Block a user