mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-09-03 14:37:02 +03:00
Activate simple Nextcloud directory selector popup #96
This commit is contained in:
parent
5abc6a3034
commit
f53dab1baa
5 changed files with 131 additions and 66 deletions
|
|
@ -1,12 +1,5 @@
|
|||
(rl => {
|
||||
|
||||
function browseFiles(path = '/')
|
||||
{
|
||||
rl.ncFiles.getDirectoryContents(path).then(elemList => {
|
||||
console.dir(elemList);
|
||||
}).catch(err => console.error(err))
|
||||
}
|
||||
|
||||
addEventListener('rl-view-model.create', e => {
|
||||
if ('MailMessageView' === e.detail.viewModelTemplateID) {
|
||||
let view = e.detail;
|
||||
|
|
@ -19,48 +12,49 @@
|
|||
.filter(v => v);
|
||||
if (hashes.length) {
|
||||
view.saveNextcloudLoading(true);
|
||||
rl.fetchJSON('./?/Json/&q[]=/0/', {}, {
|
||||
Action: 'AttachmentsActions',
|
||||
Do: 'nextcloud',
|
||||
Hashes: hashes
|
||||
})
|
||||
.then(result => {
|
||||
view.saveNextcloudLoading(false);
|
||||
if (result?.Result) {
|
||||
// success
|
||||
} else {
|
||||
view.saveNextcloudError(true);
|
||||
rl.ncFiles.selectFolder().then(folder => {
|
||||
if (folder) {
|
||||
rl.fetchJSON('./?/Json/&q[]=/0/', {}, {
|
||||
Action: 'AttachmentsActions',
|
||||
Do: 'nextcloud',
|
||||
Hashes: hashes,
|
||||
NcFolder: folder
|
||||
})
|
||||
.then(result => {
|
||||
view.saveNextcloudLoading(false);
|
||||
if (result?.Result) {
|
||||
// success
|
||||
} else {
|
||||
view.saveNextcloudError(true);
|
||||
}
|
||||
})
|
||||
.catch(() => {
|
||||
view.saveNextcloudLoading(false);
|
||||
view.saveNextcloudError(true);
|
||||
});
|
||||
}
|
||||
})
|
||||
.catch(() => {
|
||||
view.saveNextcloudLoading(false);
|
||||
view.saveNextcloudError(true);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
view.nextcloudSaveMsg = () => {
|
||||
let msg = view.message();
|
||||
|
||||
/**
|
||||
* TODO: op select screen to show browseFiles result
|
||||
* Then the user can select which Nextcloud folder to save to
|
||||
*/
|
||||
// browseFiles();
|
||||
|
||||
rl.pluginRemoteRequest(
|
||||
(iError, data) => {
|
||||
console.dir({
|
||||
iError:iError,
|
||||
data:data
|
||||
});
|
||||
},
|
||||
'NextcloudSaveMsg',
|
||||
{
|
||||
'msgHash': msg.requestHash,
|
||||
'filename': msg.subject()
|
||||
}
|
||||
);
|
||||
rl.ncFiles.selectFolder().then(folder => {
|
||||
let msg = view.message();
|
||||
folder && rl.pluginRemoteRequest(
|
||||
(iError, data) => {
|
||||
console.dir({
|
||||
iError:iError,
|
||||
data:data
|
||||
});
|
||||
},
|
||||
'NextcloudSaveMsg',
|
||||
{
|
||||
'msgHash': msg.requestHash,
|
||||
'folder': folder,
|
||||
'filename': msg.subject()
|
||||
}
|
||||
);
|
||||
});
|
||||
};
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -96,14 +96,39 @@
|
|||
});
|
||||
}
|
||||
|
||||
onShow(files, fResolve) {
|
||||
this.files(!!files);
|
||||
this.fResolve = fResolve;
|
||||
onBuild(dom) {
|
||||
this.tree = dom.querySelector('#sm-nc-files-tree');
|
||||
this.tree.addEventListener('click', event => {
|
||||
let li = event.target.closest('li');
|
||||
if (li.item_name) {
|
||||
this.close();
|
||||
this.fResolve(li.item_name);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
select() {
|
||||
this.close();
|
||||
this.fResolve(this.folder());
|
||||
// Happens after showModal()
|
||||
beforeShow(files, fResolve) {
|
||||
this.files(!!files);
|
||||
this.fResolve = fResolve;
|
||||
|
||||
this.tree.innerHTML = '';
|
||||
fetchFiles(propertyRequestBody, '/').then(items => {
|
||||
items.forEach(item => {
|
||||
if (item.isFile) {
|
||||
if (files) {
|
||||
// TODO show files
|
||||
}
|
||||
} else {
|
||||
let li = document.createElement('li'),
|
||||
a = document.createElement('a');
|
||||
li.item_name = item.name;
|
||||
a.append('- ' + item.name.replace(/^\/+/, ''));
|
||||
li.append(a);
|
||||
this.tree.append(li);
|
||||
}
|
||||
});
|
||||
}).catch(err => console.error(err))
|
||||
}
|
||||
|
||||
onClose() {
|
||||
|
|
@ -111,6 +136,14 @@
|
|||
this.fResolve();
|
||||
return false;
|
||||
}
|
||||
/*
|
||||
onShow() {} // Happens after showModal()
|
||||
beforeShow() {} // Happens before showModal()
|
||||
afterShow() {} // Happens after showModal() animation transitionend
|
||||
onHide() {} // Happens before animation transitionend
|
||||
afterHide() {} // Happens after animation transitionend
|
||||
close() {}
|
||||
*/
|
||||
}
|
||||
|
||||
rl.ncFiles = new class {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue