Sha256: d2c53a2b9ac3177b9c77fb951cc16e134589acd4674859d2d9b4f3a211f931c1

Contents?: true

Size: 1.14 KB

Versions: 7

Compression:

Stored size: 1.14 KB

Contents

export default function asMailtoHref(querydb, program, numQueries, url, isOpenAccess) {
    const dbsArr = formatDatabases(querydb);
    const mailto = composeEmail(dbsArr, program, numQueries, url, isOpenAccess);
    return encodeEmail(mailto);
}

function formatDatabases(querydb) {
    return querydb
        .slice(0, 15)
        .map(db => ' ' + db.title);
}

function composeEmail(dbsArr, program, numQueries, url, isOpenAccess) {
    const upperProgram = program.toUpperCase();
    const accessStatement = isOpenAccess ? '' : 'The link will work if you have access to that particular SequenceServer instance.';

    return `mailto:?subject=SequenceServer ${upperProgram} analysis results &body=Hello,

        Here is a link to my recent ${upperProgram} analysis of ${numQueries} sequences.
            ${url}

        The following databases were used (up to 15 are shown):
            ${dbsArr}

        ${accessStatement}

        Thank you for using SequenceServer, and please remember to cite our paper.

        Best regards,

        https://sequenceserver.com`;
}

function encodeEmail(mailto) {
    return encodeURI(mailto).replace(/(%20){2,}/g, '');
}

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
sequenceserver-3.1.2 public/js/mailto.js
sequenceserver-3.1.1 public/js/mailto.js
sequenceserver-3.1.0 public/js/mailto.js
sequenceserver-3.0.1 public/js/mailto.js
sequenceserver-3.0 public/js/mailto.js
sequenceserver-2.2.0 public/js/mailto.js
sequenceserver-2.1.0 public/js/mailto.js