mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-13 03:27:39 +03:00
Resolve Nextcloud save issue and added mockup code for files browser
https://github.com/the-djmaze/snappymail/issues/96#issuecomment-1282589485
This commit is contained in:
parent
640f75da8d
commit
a41afb17ad
4 changed files with 61 additions and 3 deletions
|
|
@ -4,8 +4,8 @@ class NextcloudPlugin extends \RainLoop\Plugins\AbstractPlugin
|
||||||
{
|
{
|
||||||
const
|
const
|
||||||
NAME = 'Nextcloud',
|
NAME = 'Nextcloud',
|
||||||
VERSION = '2.3',
|
VERSION = '2.4',
|
||||||
RELEASE = '2022-10-18',
|
RELEASE = '2022-10-19',
|
||||||
CATEGORY = 'Integrations',
|
CATEGORY = 'Integrations',
|
||||||
DESCRIPTION = 'Integrate with Nextcloud v20+',
|
DESCRIPTION = 'Integrate with Nextcloud v20+',
|
||||||
REQUIRED = '2.19.0';
|
REQUIRED = '2.19.0';
|
||||||
|
|
@ -21,6 +21,8 @@ class NextcloudPlugin extends \RainLoop\Plugins\AbstractPlugin
|
||||||
$this->addJs('js/message.js');
|
$this->addJs('js/message.js');
|
||||||
$this->addHook('json.attachments', 'DoAttachmentsActions');
|
$this->addHook('json.attachments', 'DoAttachmentsActions');
|
||||||
$this->addJsonHook('NextcloudSaveMsg', 'NextcloudSaveMsg');
|
$this->addJsonHook('NextcloudSaveMsg', 'NextcloudSaveMsg');
|
||||||
|
|
||||||
|
$this->addTemplate('templates/PopupsNextcloudFiles.html');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@
|
||||||
* TODO: op select screen to show browseFiles result
|
* TODO: op select screen to show browseFiles result
|
||||||
* Then the user can select which Nextcloud folder to save to
|
* Then the user can select which Nextcloud folder to save to
|
||||||
*/
|
*/
|
||||||
browseFiles();
|
// browseFiles();
|
||||||
|
|
||||||
rl.pluginRemoteRequest(
|
rl.pluginRemoteRequest(
|
||||||
(iError, data) => {
|
(iError, data) => {
|
||||||
|
|
|
||||||
|
|
@ -87,9 +87,53 @@
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class NextcloudFilesPopupView extends rl.pluginPopupView {
|
||||||
|
constructor() {
|
||||||
|
super('NextcloudFiles');
|
||||||
|
this.addObservables({
|
||||||
|
folder: '',
|
||||||
|
files: false
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
onShow(files, fResolve) {
|
||||||
|
this.files(!!files);
|
||||||
|
this.fResolve = fResolve;
|
||||||
|
}
|
||||||
|
|
||||||
|
select() {
|
||||||
|
this.close();
|
||||||
|
this.fResolve(this.folder());
|
||||||
|
}
|
||||||
|
|
||||||
|
onClose() {
|
||||||
|
this.close();
|
||||||
|
this.fResolve();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
rl.ncFiles = new class {
|
rl.ncFiles = new class {
|
||||||
async getDirectoryContents(path) {
|
async getDirectoryContents(path) {
|
||||||
return await fetchFiles(propertyRequestBody, path);
|
return await fetchFiles(propertyRequestBody, path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
selectFolder() {
|
||||||
|
return new Promise(resolve => {
|
||||||
|
NextcloudFilesPopupView.showModal([
|
||||||
|
false,
|
||||||
|
folder => resolve(folder),
|
||||||
|
]);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
selectFiles() {
|
||||||
|
return new Promise(resolve => {
|
||||||
|
NextcloudFilesPopupView.showModal([
|
||||||
|
true,
|
||||||
|
files => resolve(files),
|
||||||
|
]);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})(window.rl);
|
})(window.rl);
|
||||||
|
|
|
||||||
12
plugins/nextcloud/templates/PopupsNextcloudFiles.html
Normal file
12
plugins/nextcloud/templates/PopupsNextcloudFiles.html
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
<header>
|
||||||
|
<a class="close" href="#" data-bind="click: close">×</a>
|
||||||
|
<h3 data-i18n="NEXTCLOUD/BROWSE"></h3>
|
||||||
|
</header>
|
||||||
|
<div class="modal-body form-horizontal">
|
||||||
|
TODO: built tree of directories and optional files
|
||||||
|
In case of directories: radiobutton to select one OR click selects
|
||||||
|
In case of files: checkbox to select (multiple)
|
||||||
|
</div>
|
||||||
|
<footer>
|
||||||
|
<a class="btn" data-bind="command: select" data-i18n="NEXTCLOUD/SELECT"></a>
|
||||||
|
</footer>
|
||||||
Loading…
Add table
Add a link
Reference in a new issue