diff --git a/public/js/cloud_share_modal.js b/public/js/cloud_share_modal.js index de30113b..635c67ed 100644 --- a/public/js/cloud_share_modal.js +++ b/public/js/cloud_share_modal.js @@ -84,7 +84,7 @@ export default class CloudShareModal extends React.Component { renderResults() { const { shareableurl } = this.state; - return ; + return ; } renderError() { diff --git a/public/js/mailto.js b/public/js/mailto.js index 5c956b61..9d60ece0 100644 --- a/public/js/mailto.js +++ b/public/js/mailto.js @@ -1,27 +1,39 @@ -export default function asMailtoHref(querydb, program, numQueries, url, isOpenAccess) { +export default function asMailtoHref(querydb, program, queries, url, isOpenAccess) { const dbsArr = formatDatabases(querydb); - const mailto = composeEmail(dbsArr, program, numQueries, url, isOpenAccess); + const mailto = composeEmail(dbsArr, program, queries, url, isOpenAccess); return encodeEmail(mailto); } -function formatDatabases(querydb) { - return querydb +function listTop15Items (objArr, key){ + return objArr .slice(0, 15) - .map(db => ' ' + db.title); + .map(obj => `- ${obj[key]}`) + .join('\n'); +} + +function formatDatabases(querydb) { + return 'Databases:\n' + listTop15Items(querydb, 'title'); } -function composeEmail(dbsArr, program, numQueries, url, isOpenAccess) { +function listQueryIdentifiers(queries){ + return 'Queries:\n' + listTop15Items(queries, 'id'); +} + +function composeEmail(dbsArr, program, queries, url, isOpenAccess) { const upperProgram = program.toUpperCase(); const accessStatement = isOpenAccess ? '' : 'The link will work if you have access to that particular SequenceServer instance.'; - + const queryIdentifiers = listQueryIdentifiers(queries); return `mailto:?subject=SequenceServer ${upperProgram} analysis results &body=Hello, - Here is a link to my recent ${upperProgram} analysis of ${numQueries} sequences. + Here is a link to my recent ${upperProgram} analysis of ${queries.length} sequences. ${url} + + Below is a breakdown of the databases and queries used (up to 15 are shown for each). - The following databases were used (up to 15 are shown): - ${dbsArr} - + ${dbsArr} + + ${queryIdentifiers} + ${accessStatement} Thank you for using SequenceServer, and please remember to cite our paper. diff --git a/public/js/share_url.js b/public/js/share_url.js index 86d65061..73b047e0 100644 --- a/public/js/share_url.js +++ b/public/js/share_url.js @@ -1,7 +1,7 @@ import { useState } from 'react'; import asMailtoHref from './mailto'; -const ShareURLComponent = ({ querydb, program, queryLength, url }) => { +const ShareURLComponent = ({ querydb, program, queries, url }) => { const [copied, setCopied] = useState(false); const copyToClipboard = () => { @@ -14,7 +14,7 @@ const ShareURLComponent = ({ querydb, program, queryLength, url }) => {
- Share via email + Share via email
); diff --git a/public/js/sidebar.js b/public/js/sidebar.js index c4bb9517..f2f4a0f3 100644 --- a/public/js/sidebar.js +++ b/public/js/sidebar.js @@ -361,24 +361,22 @@ export default class extends Component {