mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-06-26 12:51:52 +02:00
being able to conditionally trigger quotaDisplayRefresh on mail_refreshFolderStatus; use new lock_tree/unlock_tree on changeFolder
This commit is contained in:
parent
93ae56a9f2
commit
2eb18c1d4e
@ -534,40 +534,7 @@ class mail_ui
|
|||||||
_debug_array($preferences);
|
_debug_array($preferences);
|
||||||
//error_log(__METHOD__.__LINE__.' ImapServerId:'.$imapServer->ImapServerId.' Prefs:'.array2string($preferences->preferences));
|
//error_log(__METHOD__.__LINE__.' ImapServerId:'.$imapServer->ImapServerId.' Prefs:'.array2string($preferences->preferences));
|
||||||
//error_log(__METHOD__.__LINE__.' ImapServerObject:'.array2string($imapServer));
|
//error_log(__METHOD__.__LINE__.' ImapServerObject:'.array2string($imapServer));
|
||||||
if (is_object($preferences)) $activeIdentity =& $preferences->getIdentity($icServerID, true);
|
|
||||||
//_debug_array($activeIdentity);
|
|
||||||
$maxMessages = 50;
|
|
||||||
|
|
||||||
// retrieve data for/from user defined accounts
|
|
||||||
$selectedID = 0;
|
|
||||||
if (count($preferences->ic_server)) {
|
|
||||||
foreach ($preferences->ic_server as $tmpkey => $accountData)
|
|
||||||
{
|
|
||||||
if ($tmpkey==0) continue;
|
|
||||||
$identity =& $preferences->identities[$tmpkey];
|
|
||||||
$icServer =& $accountData;
|
|
||||||
//_debug_array($identity);
|
|
||||||
//_debug_array($icServer);
|
|
||||||
//error_log(__METHOD__.__LINE__.' Userdefined Profiles ImapServerId:'.$icServer->ImapServerId);
|
|
||||||
if (empty($icServer->host)) continue;
|
|
||||||
$identities[$identity->id]=$identity->realName.' '.$identity->organization.' <'.$identity->emailAddress.'>';
|
|
||||||
if (!empty($identity->default)) $identities[$identity->id] = $identities[$identity->id].'<b>('.lang('selected').')</b>';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (count($identities)>0)
|
|
||||||
{
|
|
||||||
echo "<hr /><h3 style='color:red'>".lang('available personal EMail-Accounts/Profiles')."</h3>";
|
|
||||||
_debug_array($identities);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (empty($imapServer->host) && count($identities)==0 && $preferences->userDefinedAccounts)
|
|
||||||
{
|
|
||||||
// redirect to new personal account
|
|
||||||
egw::redirect_link('/index.php',array('menuaction'=>'felamimail.uipreferences.editAccountData',
|
|
||||||
'accountID'=>"new",
|
|
||||||
'msg' => lang("There is no IMAP Server configured.")." - ".lang("Please configure access to an existing individual IMAP account."),
|
|
||||||
));
|
|
||||||
}
|
|
||||||
common::egw_footer();
|
common::egw_footer();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1372,7 +1339,13 @@ unset($query['actions']);
|
|||||||
|
|
||||||
$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']);
|
||||||
|
//ajax_get_rows
|
||||||
|
//error_log(__METHOD__.__LINE__.' MenuactionCalled:'.$_GET['menuaction'].'->'.function_backtrace());
|
||||||
|
if (stripos($_GET['menuaction'],'ajax_get_rows')!==false)
|
||||||
|
{
|
||||||
|
$response = egw_json_response::get();
|
||||||
|
$response->call('app.mail.unlock_tree');
|
||||||
|
}
|
||||||
return $rowsFetched['messages'];
|
return $rowsFetched['messages'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -697,7 +697,7 @@ app.classes.mail = AppJS.extend(
|
|||||||
* @param _nodeID
|
* @param _nodeID
|
||||||
* @param mode
|
* @param mode
|
||||||
*/
|
*/
|
||||||
mail_refreshFolderStatus: function(_nodeID,mode,_refreshGridArea) {
|
mail_refreshFolderStatus: function(_nodeID,mode,_refreshGridArea,_refreshQuotaDisplay) {
|
||||||
if (typeof _nodeID != 'undefined' && typeof _nodeID[_nodeID] != 'undefined' && _nodeID[_nodeID])
|
if (typeof _nodeID != 'undefined' && typeof _nodeID[_nodeID] != 'undefined' && _nodeID[_nodeID])
|
||||||
{
|
{
|
||||||
_refreshGridArea = _nodeID[_refreshGridArea];
|
_refreshGridArea = _nodeID[_refreshGridArea];
|
||||||
@ -707,6 +707,7 @@ app.classes.mail = AppJS.extend(
|
|||||||
var nodeToRefresh = 0;
|
var nodeToRefresh = 0;
|
||||||
var mode2use = "none";
|
var mode2use = "none";
|
||||||
if (typeof _refreshGridArea == 'undefined') _refreshGridArea=true;
|
if (typeof _refreshGridArea == 'undefined') _refreshGridArea=true;
|
||||||
|
if (typeof _refreshQuotaDisplay == 'undefined') _refreshQuotaDisplay=true;
|
||||||
if (_nodeID) nodeToRefresh = _nodeID;
|
if (_nodeID) nodeToRefresh = _nodeID;
|
||||||
if (mode) {
|
if (mode) {
|
||||||
if (mode == "forced") {mode2use = mode;}
|
if (mode == "forced") {mode2use = mode;}
|
||||||
@ -720,12 +721,15 @@ app.classes.mail = AppJS.extend(
|
|||||||
this.mail_queueRefreshFolderList(activeFolders);
|
this.mail_queueRefreshFolderList(activeFolders);
|
||||||
if (_refreshGridArea)
|
if (_refreshGridArea)
|
||||||
{
|
{
|
||||||
this.mail_refreshQuotaDisplay();
|
|
||||||
// maybe to use the mode forced as trigger for grid reload and using the grids own autorefresh
|
// maybe to use the mode forced as trigger for grid reload and using the grids own autorefresh
|
||||||
// would solve the refresh issue more accurately
|
// would solve the refresh issue more accurately
|
||||||
//if (mode == "forced") this.mail_refreshMessageGrid();
|
//if (mode == "forced") this.mail_refreshMessageGrid();
|
||||||
this.mail_refreshMessageGrid();
|
this.mail_refreshMessageGrid();
|
||||||
}
|
}
|
||||||
|
if (_refreshQuotaDisplay)
|
||||||
|
{
|
||||||
|
this.mail_refreshQuotaDisplay();
|
||||||
|
}
|
||||||
//the two lines below are not working yet.
|
//the two lines below are not working yet.
|
||||||
//var no =tree_wdg.getSelectedNode();
|
//var no =tree_wdg.getSelectedNode();
|
||||||
//tree_wdg.focusItem(no.id);
|
//tree_wdg.focusItem(no.id);
|
||||||
@ -1054,7 +1058,7 @@ app.classes.mail = AppJS.extend(
|
|||||||
.sendRequest(true);
|
.sendRequest(true);
|
||||||
// since the json reply is using egw_refresh, we should not need to call refreshFolderStatus
|
// since the json reply is using egw_refresh, we should not need to call refreshFolderStatus
|
||||||
// as the actions thereof are now bound to run after grid refresh
|
// as the actions thereof are now bound to run after grid refresh
|
||||||
//this.mail_refreshFolderStatus();
|
//this.mail_g();
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1102,6 +1106,7 @@ app.classes.mail = AppJS.extend(
|
|||||||
var nm = _widget.getRoot().getWidgetById(this.nm_index);
|
var nm = _widget.getRoot().getWidgetById(this.nm_index);
|
||||||
if(nm)
|
if(nm)
|
||||||
{
|
{
|
||||||
|
this.lock_tree();
|
||||||
// Changing dataset entirely, force a reset
|
// Changing dataset entirely, force a reset
|
||||||
nm.controller.reset();
|
nm.controller.reset();
|
||||||
nm.applyFilters({'selectedFolder': folder});
|
nm.applyFilters({'selectedFolder': folder});
|
||||||
@ -1122,7 +1127,7 @@ app.classes.mail = AppJS.extend(
|
|||||||
if (profileChange == false) egw_message(myMsg);
|
if (profileChange == false) egw_message(myMsg);
|
||||||
|
|
||||||
//mail_refreshMessageGrid();// its done in refreshFolderStatus already
|
//mail_refreshMessageGrid();// its done in refreshFolderStatus already
|
||||||
this.mail_refreshFolderStatus(folder,'forced');
|
this.mail_refreshFolderStatus(folder,'forced',false,false);
|
||||||
this.mail_refreshQuotaDisplay(server[0]);
|
this.mail_refreshQuotaDisplay(server[0]);
|
||||||
this.mail_fetchCurrentlyFocussed(null,true);
|
this.mail_fetchCurrentlyFocussed(null,true);
|
||||||
this.mail_preview();
|
this.mail_preview();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user