mirror of https://github.com/laurent22/joplin.git
50 lines
1.3 KiB
JavaScript
50 lines
1.3 KiB
JavaScript
const { _ } = require("lib/locale");
|
|
const { bridge } = require("electron").remote.require("./bridge");
|
|
const InteropService = require("lib/services/InteropService");
|
|
|
|
class InteropServiceHelper {
|
|
static async export(dispatch, module, options = null) {
|
|
if (!options) options = {};
|
|
|
|
let path = null;
|
|
|
|
if (module.target === "file") {
|
|
path = bridge().showSaveDialog({
|
|
filters: [{ name: module.description, extensions: [module.fileExtension] }],
|
|
});
|
|
} else {
|
|
path = bridge().showOpenDialog({
|
|
properties: ["openDirectory", "createDirectory"],
|
|
});
|
|
}
|
|
|
|
if (!path || (Array.isArray(path) && !path.length)) return;
|
|
|
|
if (Array.isArray(path)) path = path[0];
|
|
|
|
dispatch({
|
|
type: "WINDOW_COMMAND",
|
|
name: "showModalMessage",
|
|
message: _('Exporting to "%s" as "%s" format. Please wait...', path, module.format),
|
|
});
|
|
|
|
const exportOptions = {};
|
|
exportOptions.path = path;
|
|
exportOptions.format = module.format;
|
|
if (options.sourceFolderIds) exportOptions.sourceFolderIds = options.sourceFolderIds;
|
|
if (options.sourceNoteIds) exportOptions.sourceNoteIds = options.sourceNoteIds;
|
|
|
|
const service = new InteropService();
|
|
const result = await service.export(exportOptions);
|
|
|
|
console.info("Export result: ", result);
|
|
|
|
dispatch({
|
|
type: "WINDOW_COMMAND",
|
|
name: "hideModalMessage",
|
|
});
|
|
}
|
|
}
|
|
|
|
module.exports = InteropServiceHelper;
|