Add task to download RFC2822 for “Show Original” #300

This commit is contained in:
Ben Gotow 2017-11-07 01:32:54 +01:00
parent 4e119e5ead
commit 66a56abe0f
5 changed files with 33 additions and 15 deletions

View file

@ -1,6 +1,6 @@
/* eslint global-require: 0 */
import { remote } from 'electron';
import { React, PropTypes, Actions } from 'mailspring-exports';
import { React, PropTypes, Actions, TaskQueue, GetMessageRFC2822Task } from 'mailspring-exports';
import { RetinaImg, ButtonDropdown, Menu } from 'mailspring-component-kit';
export default class MessageControls extends React.Component {
@ -94,18 +94,22 @@ export default class MessageControls extends React.Component {
menu.popup(remote.getCurrentWindow());
};
_onShowOriginal = () => {
// const fs = require('fs');
// const path = require('path');
// const BrowserWindow = remote.BrowserWindow;
// const app = remote.app;
// const tmpfile = path.join(app.getPath('temp'), this.props.message.id);
// bg todo
// .then((body) =>
// fs.writeFile tmpfile, body, =>
// window = new BrowserWindow(width: 800, height: 600, title: "${@props.message.subject} - RFC822")
// window.loadURL('file://'+tmpfile)
// )
_onShowOriginal = async () => {
const { message } = this.props;
const filepath = require('path').join(remote.app.getPath('temp'), message.id);
const task = new GetMessageRFC2822Task({
messageId: message.id,
accountId: message.accountId,
filepath,
});
Actions.queueTask(task);
await TaskQueue.waitForPerformRemote(task);
const win = new remote.BrowserWindow({
width: 800,
height: 600,
title: `${message.subject} - RFC822`,
});
win.loadURL(`file://${filepath}`);
};
_onLogData = () => {

View file

@ -172,7 +172,7 @@ export default class MessageItemBody extends React.Component {
/>
{this._renderBody()}
<ConditionalQuotedTextControl
body={this.props.message.body}
body={this.props.message.body || ''}
onClick={this._onToggleQuotedText}
/>
</span>

View file

@ -0,0 +1,13 @@
import Task from './task';
import Attributes from '../attributes';
export default class GetMessageRFC2822Task extends Task {
static attributes = Object.assign({}, Task.attributes, {
messageId: Attributes.String({
modelKey: 'messageId',
}),
filepath: Attributes.String({
modelKey: 'filepath',
}),
});
}

View file

@ -102,6 +102,7 @@ lazyLoadAndRegisterTask(`SyncbackEventTask`, 'syncback-event-task');
lazyLoadAndRegisterTask(`DestroyCategoryTask`, 'destroy-category-task');
lazyLoadAndRegisterTask(`SyncbackCategoryTask`, 'syncback-category-task');
lazyLoadAndRegisterTask(`SyncbackMetadataTask`, 'syncback-metadata-task');
lazyLoadAndRegisterTask(`GetMessageRFC2822Task`, 'get-message-rfc2822-task');
lazyLoadAndRegisterTask(`ExpungeAllInFolderTask`, 'expunge-all-in-folder-task');
lazyLoadAndRegisterTask(`ChangeRoleMappingTask`, 'change-role-mapping-task');
lazyLoadAndRegisterTask(`SendFeatureUsageEventTask`, 'send-feature-usage-event-task');

@ -1 +1 @@
Subproject commit dea346716738d81b7dd028e9060431b4c75669cf
Subproject commit ebbd9cf98658ec674e50d6ccd1ee8e3b4ac75d97