mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-08-30 20:49:20 +03:00
Improved drag&drop of local EML files
This commit is contained in:
parent
a6bf2abaff
commit
d706793e56
3 changed files with 80 additions and 57 deletions
32
dev/External/User/ko.js
vendored
32
dev/External/User/ko.js
vendored
|
|
@ -6,14 +6,11 @@ import { doc, elementById, addEventsListeners, dropdowns } from 'Common/Globals'
|
|||
import { dropdownsDetectVisibility } from 'Common/UtilsUser';
|
||||
import { EmailAddressesComponent } from 'Component/EmailAddresses';
|
||||
import { ThemeStore } from 'Stores/Theme';
|
||||
import { moveMessagesToFolder } from 'Common/Folders';
|
||||
import { moveMessagesToFolder, dropFilesInFolder } from 'Common/Folders';
|
||||
import { setExpandedFolder } from 'Model/FolderCollection';
|
||||
import { FolderUserStore } from 'Stores/User/Folder';
|
||||
import { MessagelistUserStore } from 'Stores/User/Messagelist';
|
||||
|
||||
import { Settings } from 'Common/Globals';
|
||||
import { serverRequest } from 'Common/Links';
|
||||
|
||||
const rlContentType = 'snappymail/action',
|
||||
|
||||
// In Chrome we have no access to dataTransfer.getData unless it's the 'drop' event
|
||||
|
|
@ -66,32 +63,7 @@ const rlContentType = 'snappymail/action',
|
|||
if (dragMessages() && 'copyMove' == e.dataTransfer.effectAllowed) {
|
||||
moveMessagesToFolder(FolderUserStore.currentFolderFullName(), dragData.data, folder.fullName, e.ctrlKey);
|
||||
} else if (e.dataTransfer.types.includes('Files')) {
|
||||
let files = 0,
|
||||
fn = () => {
|
||||
0 == --files
|
||||
&& FolderUserStore.currentFolderFullName() == folder.fullName
|
||||
&& MessagelistUserStore.reload(true, true);
|
||||
};
|
||||
for (const file of e.dataTransfer.files) {
|
||||
if ('message/rfc822' === file.type) {
|
||||
++files;
|
||||
let data = new FormData;
|
||||
data.append('Folder', folder.fullName);
|
||||
data.append('AppendFile', file);
|
||||
data.XToken = Settings.app('token');
|
||||
fetch(serverRequest('Append'), {
|
||||
method: 'POST',
|
||||
mode: 'same-origin',
|
||||
cache: 'no-cache',
|
||||
redirect: 'error',
|
||||
referrerPolicy: 'no-referrer',
|
||||
credentials: 'same-origin',
|
||||
body: data
|
||||
})
|
||||
.then(fn)
|
||||
.catch(fn);
|
||||
}
|
||||
}
|
||||
dropFilesInFolder(folder.fullName, e.dataTransfer.files);
|
||||
}
|
||||
},
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue