fix(templates): insert template no longer overwrites signature

This commit is contained in:
Drew Regitsky 2016-01-12 14:09:24 -08:00
parent 54f464d999
commit b035b0ba73
2 changed files with 11 additions and 4 deletions

View file

@ -84,7 +84,7 @@ class TemplatePicker extends React.Component {
const footerComponents = [ const footerComponents = [
<div className="item" key="new" onMouseDown={this._onNewTemplate}>Save Draft as Template...</div>, <div className="item" key="new" onMouseDown={this._onNewTemplate}>Save Draft as Template...</div>,
<div className="item" key="manage" onMouseDown={this._onManageTemplates}>Open Templates Folder...</div>, <div className="item" key="manage" onMouseDown={this._onManageTemplates}>Manage Templates...</div>,
]; ];
return ( return (

View file

@ -106,7 +106,10 @@ class TemplateStore extends NylasStore {
DraftStore.sessionForClientId(draftClientId).then((session) => { DraftStore.sessionForClientId(draftClientId).then((session) => {
const draft = session.draft(); const draft = session.draft();
const draftName = name ? name : draft.subject.replace(TemplateStore.INVALID_TEMPLATE_NAME_REGEX, ''); const draftName = name ? name : draft.subject.replace(TemplateStore.INVALID_TEMPLATE_NAME_REGEX, '');
const draftContents = contents ? contents : QuotedHTMLTransformer.removeQuotedHTML(draft.body); let draftContents = contents ? contents : QuotedHTMLTransformer.removeQuotedHTML(draft.body);
const sigIndex = draftContents.indexOf('<div class="nylas-n1-signature">');
draftContents = sigIndex>-1 ? draftContents.slice(0,sigIndex) : draftContents;
if (!draftName || draftName.length === 0) { if (!draftName || draftName.length === 0) {
this._displayError('Give your draft a subject to name your template.'); this._displayError('Give your draft a subject to name your template.');
} }
@ -242,7 +245,7 @@ class TemplateStore extends NylasStore {
} }
_onInsertTemplateId({templateId, draftClientId} = {}) { _onInsertTemplateId({templateId, draftClientId} = {}) {
this.getTemplateContents(templateId, (body) => { this.getTemplateContents(templateId, (template_body) => {
DraftStore.sessionForClientId(draftClientId).then((session)=> { DraftStore.sessionForClientId(draftClientId).then((session)=> {
let proceed = true; let proceed = true;
if (!session.draft().pristine) { if (!session.draft().pristine) {
@ -255,7 +258,11 @@ class TemplateStore extends NylasStore {
} }
if (proceed) { if (proceed) {
const draftHtml = QuotedHTMLTransformer.appendQuotedHTML(body, session.draft().body); let draftContents = QuotedHTMLTransformer.removeQuotedHTML(session.draft().body);
const sigIndex = draftContents.indexOf('<div class="nylas-n1-signature">');
const signature = sigIndex>-1 ? draftContents.slice(sigIndex) : "";
const draftHtml = QuotedHTMLTransformer.appendQuotedHTML(template_body+signature, session.draft().body);
session.changes.add({body: draftHtml}); session.changes.add({body: draftHtml});
} }
}); });