Skip to content
This repository has been archived by the owner on Dec 27, 2023. It is now read-only.

Commit

Permalink
feature(Felamimail): fill dst cache after msg move
Browse files Browse the repository at this point in the history
Change-Id: Iac2c44f996a877810d531dc5a898c05ef41ca4c7
Reviewed-on: http://gerrit.tine20.com/customers/18569
Reviewed-by: Philipp Schüle <p.schuele@metaways.de>
Tested-by: Philipp Schüle <p.schuele@metaways.de>
  • Loading branch information
corneliusweiss authored and pschuele committed Nov 26, 2020
1 parent 66057df commit cc5c1c9
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 31 deletions.
15 changes: 7 additions & 8 deletions tine20/Felamimail/css/Felamimail.css
Expand Up @@ -230,20 +230,19 @@
}

.felamimail-node-statusbox-progress {
width: 16px;
height: 16px;
margin-top: 1px;
width: 14px;
height: 14px;
margin-top: 2px;
background-repeat: no-repeat;
vertical-align: top;
margin-right: 5px;
}

.felamimail-node-statusbox-progress-pie {
background-image:url(../../images/progress-pie.gif);
}

.felamimail-node-statusbox-progress-loading {
background-image:url(../../library/ExtJS/resources/images/default/tree/loading.gif);
background-size: contain;
width: 17px;
height: 17px;
margin-top: 1px;
}

.ext-gecko .felamimail-node-statusbox-unread {
Expand Down
27 changes: 7 additions & 20 deletions tine20/Felamimail/js/GridPanel.js
Expand Up @@ -915,8 +915,7 @@ Tine.Felamimail.GridPanel = Ext.extend(Tine.widgets.grid.GridPanel, {

var sm = this.getGrid().getSelectionModel(),
filter = sm.getSelectionFilter(),
msgsIds = [],
foldersNeedUpdate = false;
msgsIds = [];

if (sm.isFilterSelect) {
var msgs = this.getStore(),
Expand All @@ -935,37 +934,23 @@ Tine.Felamimail.GridPanel = Ext.extend(Tine.widgets.grid.GridPanel, {
if (currFolder) {
currFolder.set('cache_unreadcount', currFolder.get('cache_unreadcount') - diff);
currFolder.set('cache_totalcount', currFolder.get('cache_totalcount') - 1);
if (sm.isFilterSelect && sm.getCount() > 50 && currFolder.get('cache_status') !== 'pending') {
Tine.log.debug('Tine.Felamimail.GridPanel::moveOrDeleteMessages - Set cache status to pending for folder ' + currFolder.get('globalname'));
currFolder.set('cache_status', 'pending');
foldersNeedUpdate = true;
}
currFolder.set('cache_status', 'pending');
currFolder.commit();
}
if (folder) {
increaseUnreadCountInTargetFolder += diff;
}
increaseUnreadCountInTargetFolder += diff;

msgsIds.push(msg.id);
if (! keepOriginalMessages) {
this.getStore().remove(msg);
}
}, this);

if (folder && increaseUnreadCountInTargetFolder > 0) {
if (folder) {
// update unread count of target folder (only when moving)
folder.set('cache_unreadcount', folder.get('cache_unreadcount') + increaseUnreadCountInTargetFolder);
if (foldersNeedUpdate) {
Tine.log.debug('Tine.Felamimail.GridPanel::moveOrDeleteMessages - Set cache status to pending for target folder ' + folder.get('globalname'));
folder.set('cache_status', 'pending');
}
folder.set('cache_status', 'pending');
folder.commit();
}

if (foldersNeedUpdate) {
Tine.log.debug('Tine.Felamimail.GridPanel::moveOrDeleteMessages - update message cache for "pending" folders');
this.app.checkMailsDelayedTask.delay(1000);
}

if (! keepOriginalMessages) {
this.deleteQueue = this.deleteQueue.concat(msgsIds);
Expand All @@ -974,6 +959,8 @@ Tine.Felamimail.GridPanel = Ext.extend(Tine.widgets.grid.GridPanel, {
sm.selectRecords([nextRecord]);
}

this.app.checkMailsDelayedTask.delay(1000);

var callbackFn = this.onAfterDelete.createDelegate(this, [msgsIds]);

if (folder !== null || toTrash) {
Expand Down
11 changes: 8 additions & 3 deletions tine20/Felamimail/js/TreePanel.js
Expand Up @@ -531,7 +531,13 @@ Ext.extend(Tine.Felamimail.TreePanel, Ext.tree.TreePanel, {

if (node.id && node.id != '/' && node.attributes.globalname != '') {
var folder = this.app.getFolderStore().getById(node.id);
this.app.checkMailsDelayedTask.delay(0);
if (folder) {
if (folder.get('cache_status') === 'pending') {
this.app.checkMails(folder, Ext.emptyFn);
}
// lasy wait for selection change
_.delay(() => {this.updateFolderStatus(folder);}, 100);
}
}
},

Expand Down Expand Up @@ -769,11 +775,10 @@ Ext.extend(Tine.Felamimail.TreePanel, Ext.tree.TreePanel, {
var progressEl = Ext.get(Ext.DomQuery.selectNode('img[class^=felamimail-node-statusbox-progress]', nodeEl));
progressEl.removeClass(['felamimail-node-statusbox-progress-pie', 'felamimail-node-statusbox-progress-loading']);
if (! Ext.isNumber(progress)) {
progressEl.setStyle('background-position', 0 + 'px');
progressEl.addClass('felamimail-node-statusbox-progress-loading');
} else {
progressEl.setStyle('background-position', progress + '%');
progressEl.addClass('felamimail-node-statusbox-progress-pie');
progressEl.addClass('felamimail-node-statusbox-progress-pie-' + progress);
}
progressEl.setVisible(isSelected && cacheStatus !== 'complete' && cacheStatus !== 'disconnect' && progress !== 100 && lastCacheStatus !== 'complete');
}
Expand Down
14 changes: 14 additions & 0 deletions tine20/Tinebase/css/Tinebase.css
Expand Up @@ -1137,6 +1137,7 @@ textarea.x-form-invalid,
div.x-btn-wait,
.x-item-disabled .x-tbar-loading + div,
.tinebase-download-link-anim .tinebase-download-link-wait,
.felamimail-node-statusbox-progress-loading,
.x-item-disabled .x-tbar-loading {
animation-name: loading-animation;
animation-duration: 1000ms;
Expand Down Expand Up @@ -1176,13 +1177,26 @@ div.x-btn-wait,
.x-item-disabled div.x-tbar-loading,
div.x-btn-wait,
.tinebase-download-link-anim .tinebase-download-link-wait,
.felamimail-node-statusbox-progress-loading,
.x-btn-wait + div {
box-sizing: border-box;
border: 2px solid #ccc !important;
border-top: 2px solid #2196f3 !important;
border-radius: 100%;
}

.x-pie-0 { background-image: url(../../images/icon-set/icon_pie_0percent.svg); }
.x-pie-10 { background-image: url(../../images/icon-set/icon_pie_10percent.svg); }
.x-pie-20 { background-image: url(../../images/icon-set/icon_pie_20percent.svg); }
.x-pie-30 { background-image: url(../../images/icon-set/icon_pie_30percent.svg); }
.x-pie-40 { background-image: url(../../images/icon-set/icon_pie_40percent.svg); }
.x-pie-50 { background-image: url(../../images/icon-set/icon_pie_50percent.svg); }
.x-pie-60 { background-image: url(../../images/icon-set/icon_pie_60percent.svg); }
.x-pie-70 { background-image: url(../../images/icon-set/icon_pie_70percent.svg); }
.x-pie-80 { background-image: url(../../images/icon-set/icon_pie_80percent.svg); }
.x-pie-90 { background-image: url(../../images/icon-set/icon_pie_90percent.svg); }
.x-pie-100 { background-image: url(../../images/icon-set/icon_pie_100percent.svg); }

.x-btn-medium.x-btn-icon-medium-top div.x-btn-wait {
width: 28px;
height: 28px;
Expand Down

0 comments on commit cc5c1c9

Please sign in to comment.