forked from extern/egroupware
first shot at show all folders menu action on tree
This commit is contained in:
parent
458648bf8b
commit
903245f550
@ -2008,24 +2008,40 @@ class mail_bo
|
|||||||
|
|
||||||
// fetch and sort all folders
|
// fetch and sort all folders
|
||||||
//echo $type.'->'.$foldersNameSpace[$type]['prefix'].'->'.($type=='shared'?0:2)."<br>";
|
//echo $type.'->'.$foldersNameSpace[$type]['prefix'].'->'.($type=='shared'?0:2)."<br>";
|
||||||
$allMailboxesExt = $this->icServer->getMailboxes($foldersNameSpace[$type]['prefix'],2,true);
|
try
|
||||||
if( PEAR::isError($allMailboxesExt) )
|
|
||||||
{
|
{
|
||||||
error_log(__METHOD__.__LINE__.' Failed to retrieve all Boxes:'.$allMailboxesExt->message);
|
$allMailboxesExt = $this->icServer->getMailboxes($foldersNameSpace[$type]['prefix'],2,true);
|
||||||
|
}
|
||||||
|
catch (Exception $e)
|
||||||
|
{
|
||||||
|
error_log(__METHOD__.__LINE__.' Failed to retrieve all Boxes:'.$e->getMessage());
|
||||||
$allMailboxesExt = array();
|
$allMailboxesExt = array();
|
||||||
}
|
}
|
||||||
if (empty($allMailboxesExt) && $type == 'shared')
|
if (empty($allMailboxesExt) && $type == 'shared')
|
||||||
{
|
{
|
||||||
$allMailboxesExt = $this->icServer->getMailboxes('',0,true);
|
try
|
||||||
|
{
|
||||||
|
$allMailboxesExt = $this->icServer->getMailboxes('',0,true);
|
||||||
|
}
|
||||||
|
catch (Exception $e)
|
||||||
|
{
|
||||||
|
$allMailboxesExt = array();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ($prefix_present=='forced' && $type=='personal') // you cannot trust dovecots assumed prefix
|
if ($prefix_present=='forced' && $type=='personal') // you cannot trust dovecots assumed prefix
|
||||||
{
|
{
|
||||||
$allMailboxesExtAll = $this->icServer->getMailboxes('',0,true);
|
try
|
||||||
|
{
|
||||||
|
$allMailboxesExtAll = $this->icServer->getMailboxes('',0,true);
|
||||||
|
}
|
||||||
|
catch (Exception $e)
|
||||||
|
{
|
||||||
|
$allMailboxesExtAll=array();
|
||||||
|
}
|
||||||
foreach ($allMailboxesExtAll as $kaMEA => $aMEA)
|
foreach ($allMailboxesExtAll as $kaMEA => $aMEA)
|
||||||
{
|
{
|
||||||
if( PEAR::isError($aMEA) ) continue;
|
|
||||||
if (!in_array($aMEA,$allMailboxesExt)) $allMailboxesExt[] = $aMEA;
|
if (!in_array($aMEA,$allMailboxesExt)) $allMailboxesExt[] = $aMEA;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2187,6 +2203,8 @@ class mail_bo
|
|||||||
#echo "$folderName failed to be here <br>";
|
#echo "$folderName failed to be here <br>";
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (isset($folders[$folderName])) continue;
|
||||||
|
if (isset($autoFolderObjects[$folderName])) continue;
|
||||||
$folderParts = explode($delimiter, $folderName);
|
$folderParts = explode($delimiter, $folderName);
|
||||||
$shortName = array_pop($folderParts);
|
$shortName = array_pop($folderParts);
|
||||||
|
|
||||||
@ -2227,6 +2245,7 @@ class mail_bo
|
|||||||
} else {
|
} else {
|
||||||
$folders[$folderName] = $folderObject;
|
$folders[$folderName] = $folderObject;
|
||||||
}
|
}
|
||||||
|
//error_log(__METHOD__.__LINE__.':'.$folderObject->folderName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3487,6 +3487,45 @@ blockquote[type=cite] {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* reload node
|
||||||
|
*
|
||||||
|
* @param string _folderName folder to reload
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
function ajax_reloadNode($_folderName,$_subscribedOnly=true)
|
||||||
|
{
|
||||||
|
translation::add_app('mail');
|
||||||
|
$decodedFolderName = $this->mail_bo->decodeEntityFolderName($_folderName);
|
||||||
|
$del = $this->mail_bo->getHierarchyDelimiter(false);
|
||||||
|
$oA = array();
|
||||||
|
list($profileID,$folderName) = explode(self::$delimiter,$decodedFolderName,2);
|
||||||
|
if ($profileID != $this->mail_bo->profileID) return; // only current connection
|
||||||
|
$parentFolder=(!empty($folderName)?$folderName:'INBOX');
|
||||||
|
$folderInfo = $this->mail_bo->getFolderStatus($parentFolder,false);
|
||||||
|
if ($folderInfo['unseen'])
|
||||||
|
{
|
||||||
|
$folderInfo['shortDisplayName'] = $folderInfo['shortDisplayName'].' ('.$folderInfo['unseen'].')';
|
||||||
|
}
|
||||||
|
if ($folderInfo['unseen']==0 && $folderInfo['shortDisplayName'])
|
||||||
|
{
|
||||||
|
$folderInfo['shortDisplayName'] = $folderInfo['shortDisplayName'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$refreshData = array(
|
||||||
|
$profileID.self::$delimiter.$parentFolder=>$folderInfo['shortDisplayName']);
|
||||||
|
|
||||||
|
// Send full info back in the response
|
||||||
|
$response = egw_json_response::get();
|
||||||
|
foreach($refreshData as $folder => &$name)
|
||||||
|
{
|
||||||
|
$name = $this->getFolderTree(true, $folder, $_subscribedOnly);
|
||||||
|
}
|
||||||
|
$response->call('app.mail.mail_reloadNode',$refreshData);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* move folder
|
* move folder
|
||||||
*
|
*
|
||||||
|
@ -2570,9 +2570,13 @@ app.classes.mail = AppJS.extend(
|
|||||||
*/
|
*/
|
||||||
all_folders: function(_action,_senders)
|
all_folders: function(_action,_senders)
|
||||||
{
|
{
|
||||||
var mailbox = _senders[0].id.split('::');
|
//console.log(_action,_senders);
|
||||||
acc_id = mailbox[0];
|
this.lock_tree();
|
||||||
egw.json('mail.mail_ui.ajax_foldertree',[acc_id,!_action.checked])
|
var mailbox = _senders[0].id.split('::');
|
||||||
|
acc_id = mailbox[0];
|
||||||
|
egw.json('mail.mail_ui.ajax_reloadNode',[acc_id,!_action.checked], jQuery.proxy(function() {
|
||||||
|
this.unlock_tree();
|
||||||
|
},this))
|
||||||
.sendRequest();
|
.sendRequest();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user