From 6cc0e6ca0d78bc7f88712c79a3b0614f5c0cb0bb Mon Sep 17 00:00:00 2001 From: Drew Regitsky Date: Tue, 12 Jan 2016 14:09:24 -0800 Subject: [PATCH] fix(templates): insert template no longer overwrites signature --- .../composer-templates/lib/template-picker.jsx | 2 +- .../composer-templates/lib/template-store.es6 | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/internal_packages/composer-templates/lib/template-picker.jsx b/internal_packages/composer-templates/lib/template-picker.jsx index e8e2c7d4f..2b24d5609 100644 --- a/internal_packages/composer-templates/lib/template-picker.jsx +++ b/internal_packages/composer-templates/lib/template-picker.jsx @@ -84,7 +84,7 @@ class TemplatePicker extends React.Component { const footerComponents = [
Save Draft as Template...
, -
Open Templates Folder...
, +
Manage Templates...
, ]; return ( diff --git a/internal_packages/composer-templates/lib/template-store.es6 b/internal_packages/composer-templates/lib/template-store.es6 index c3ecd33d8..2c1c982b2 100644 --- a/internal_packages/composer-templates/lib/template-store.es6 +++ b/internal_packages/composer-templates/lib/template-store.es6 @@ -106,7 +106,10 @@ class TemplateStore extends NylasStore { DraftStore.sessionForClientId(draftClientId).then((session) => { const draft = session.draft(); 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('
'); + draftContents = sigIndex>-1 ? draftContents.slice(0,sigIndex) : draftContents; if (!draftName || draftName.length === 0) { this._displayError('Give your draft a subject to name your template.'); } @@ -242,7 +245,7 @@ class TemplateStore extends NylasStore { } _onInsertTemplateId({templateId, draftClientId} = {}) { - this.getTemplateContents(templateId, (body) => { + this.getTemplateContents(templateId, (template_body) => { DraftStore.sessionForClientId(draftClientId).then((session)=> { let proceed = true; if (!session.draft().pristine) { @@ -255,7 +258,11 @@ class TemplateStore extends NylasStore { } if (proceed) { - const draftHtml = QuotedHTMLTransformer.appendQuotedHTML(body, session.draft().body); + let draftContents = QuotedHTMLTransformer.removeQuotedHTML(session.draft().body); + const sigIndex = draftContents.indexOf('
'); + const signature = sigIndex>-1 ? draftContents.slice(sigIndex) : ""; + + const draftHtml = QuotedHTMLTransformer.appendQuotedHTML(template_body+signature, session.draft().body); session.changes.add({body: draftHtml}); } });