sequenceserver 2.0.0 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of sequenceserver might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/lib/sequenceserver/api_errors.rb +24 -2
- data/lib/sequenceserver/blast/job.rb +41 -7
- data/lib/sequenceserver/blast/report.rb +36 -30
- data/lib/sequenceserver/config.rb +49 -27
- data/lib/sequenceserver/job.rb +13 -3
- data/lib/sequenceserver/job_remover.rb +25 -29
- data/lib/sequenceserver/refinements.rb +15 -0
- data/lib/sequenceserver/routes.rb +69 -7
- data/lib/sequenceserver/sequence.rb +8 -7
- data/lib/sequenceserver/sys.rb +2 -2
- data/lib/sequenceserver/version.rb +1 -1
- data/lib/sequenceserver/zip_file_generator.rb +56 -0
- data/lib/sequenceserver.rb +1 -0
- data/public/config.js +149 -143
- data/public/css/sequenceserver.css +44 -3
- data/public/css/sequenceserver.min.css +3 -3
- data/public/js/alignment_exporter.js +16 -8
- data/public/js/circos.js +370 -234
- data/public/js/cloud_share_modal.js +216 -0
- data/public/js/databases.js +144 -0
- data/public/js/databases_tree.js +42 -113
- data/public/js/dnd.js +164 -0
- data/public/js/error_modal.js +4 -11
- data/public/js/exporter.js +7 -3
- data/public/js/form.js +260 -0
- data/public/js/grapher.js +113 -106
- data/public/js/hit.js +80 -67
- data/public/js/hits_overview.js +2 -2
- data/public/js/hsp.js +343 -288
- data/public/js/jquery_world.js +4 -4
- data/public/js/mailto.js +36 -0
- data/public/js/options.js +84 -0
- data/public/js/query.js +319 -59
- data/public/js/report.js +315 -269
- data/public/js/report_root.js +75 -0
- data/public/js/search.js +28 -1011
- data/public/js/search_button.js +195 -0
- data/public/js/sequence.js +2409 -2411
- data/public/js/sequence_modal.js +152 -159
- data/public/js/share_url.js +23 -0
- data/public/js/sidebar.js +262 -83
- data/public/js/tests/database.spec.js +60 -0
- data/public/js/tests/mock_data/databases.json +91 -0
- data/public/js/tests/mock_data/long_response.json +269 -0
- data/public/js/tests/mock_data/short_response.json +2240 -0
- data/public/js/tests/report.spec.js +99 -0
- data/public/js/tests/search_button.spec.js +14 -0
- data/public/js/tests/search_query.spec.js +41 -0
- data/public/packages/circosJS@1.7.0.js +1640 -0
- data/public/packages/jquery-ui@1.11.4.js +16624 -0
- data/public/sequenceserver-report.min.js +2425 -19
- data/public/sequenceserver-search.min.js +2337 -15
- data/public/vendor/github/jspm/nodelibs-assert@0.1.0/index.js +2 -0
- data/public/vendor/github/jspm/{nodelibs-buffer@0.1.0 → nodelibs-assert@0.1.0}/package.json +1 -1
- data/public/vendor/github/jspm/nodelibs-assert@0.1.0.js +1 -0
- data/public/vendor/github/jspm/nodelibs-buffer@0.1.1/package.json +6 -0
- data/public/vendor/github/jspm/nodelibs-buffer@0.1.1.js +1 -0
- data/public/vendor/github/jspm/{nodelibs-process@0.1.1 → nodelibs-process@0.1.2}/package.json +2 -2
- data/public/vendor/github/jspm/nodelibs-process@0.1.2.js +1 -0
- data/public/vendor/github/jspm/nodelibs-vm@0.1.0/index.js +2 -0
- data/public/vendor/github/jspm/nodelibs-vm@0.1.0/package.json +6 -0
- data/public/vendor/github/jspm/nodelibs-vm@0.1.0.js +1 -0
- data/public/vendor/npm/assert@1.5.0/CHANGELOG.md +8 -0
- data/public/vendor/npm/assert@1.5.0/README.md +105 -0
- data/public/vendor/npm/assert@1.5.0/assert.js +327 -0
- data/public/vendor/npm/assert@1.5.0/package.json +32 -0
- data/public/vendor/npm/assert@1.5.0/test.js +288 -0
- data/public/vendor/npm/assert@1.5.0.js +1 -0
- data/public/vendor/npm/{base64-js@0.0.8/LICENSE.MIT → base64-js@1.5.1/LICENSE} +1 -1
- data/public/vendor/npm/{base64-js@0.0.8 → base64-js@1.5.1}/README.md +10 -7
- data/public/vendor/npm/base64-js@1.5.1/base64js.min.js +3 -0
- data/public/vendor/npm/base64-js@1.5.1/index.d.ts +3 -0
- data/public/vendor/npm/base64-js@1.5.1/index.js +151 -0
- data/public/vendor/npm/base64-js@1.5.1/package.json +47 -0
- data/public/vendor/npm/base64-js@1.5.1.js +1 -0
- data/public/vendor/npm/buffer@5.7.1/AUTHORS.md +70 -0
- data/public/vendor/npm/{buffer@3.4.3 → buffer@5.7.1}/README.md +111 -41
- data/public/vendor/npm/buffer@5.7.1/index.d.ts +186 -0
- data/public/vendor/npm/buffer@5.7.1/index.js +1817 -0
- data/public/vendor/npm/buffer@5.7.1/package.json +96 -0
- data/public/vendor/npm/buffer@5.7.1.js +1 -0
- data/public/vendor/npm/core-util-is@1.0.3/LICENSE +19 -0
- data/public/vendor/npm/core-util-is@1.0.3/lib/util.js +64 -0
- data/public/vendor/npm/{core-util-is@1.0.1 → core-util-is@1.0.3}/package.json +13 -1
- data/public/vendor/npm/core-util-is@1.0.3.js +1 -0
- data/public/vendor/npm/events@1.0.2/tests/add-listeners.js +2 -2
- data/public/vendor/npm/events@1.0.2/tests/check-listener-leaks.js +3 -3
- data/public/vendor/npm/events@1.0.2/tests/common.js +1 -1
- data/public/vendor/npm/events@1.0.2/tests/index.js +13 -13
- data/public/vendor/npm/events@1.0.2/tests/listeners-side-effects.js +2 -2
- data/public/vendor/npm/events@1.0.2/tests/listeners.js +2 -2
- data/public/vendor/npm/events@1.0.2/tests/max-listeners.js +2 -2
- data/public/vendor/npm/events@1.0.2/tests/modify-in-emit.js +2 -2
- data/public/vendor/npm/events@1.0.2/tests/num-args.js +2 -2
- data/public/vendor/npm/events@1.0.2/tests/once.js +2 -2
- data/public/vendor/npm/events@1.0.2/tests/remove-all-listeners.js +3 -3
- data/public/vendor/npm/events@1.0.2/tests/remove-listeners.js +3 -3
- data/public/vendor/npm/events@1.0.2/tests/set-max-listeners-side-effects.js +2 -2
- data/public/vendor/npm/events@1.0.2/tests/subclass.js +3 -3
- data/public/vendor/npm/events@1.0.2.js +1 -1
- data/public/vendor/npm/ieee754@1.2.1/LICENSE +11 -0
- data/public/vendor/npm/{ieee754@1.1.6 → ieee754@1.2.1}/README.md +12 -8
- data/public/vendor/npm/ieee754@1.2.1/index.d.ts +10 -0
- data/public/vendor/npm/{ieee754@1.1.6 → ieee754@1.2.1}/index.js +6 -6
- data/public/vendor/npm/ieee754@1.2.1/package.json +52 -0
- data/public/vendor/npm/ieee754@1.2.1.js +1 -0
- data/public/vendor/npm/{is-array@1.0.1 → indexof@0.0.1}/Makefile +3 -3
- data/public/vendor/npm/indexof@0.0.1/Readme.md +15 -0
- data/public/vendor/npm/indexof@0.0.1/component.json +10 -0
- data/public/vendor/npm/indexof@0.0.1/index.js +11 -0
- data/public/vendor/npm/indexof@0.0.1/package.json +12 -0
- data/public/vendor/npm/indexof@0.0.1.js +1 -0
- data/public/vendor/npm/inherits@2.0.1/inherits.js +1 -1
- data/public/vendor/npm/inherits@2.0.1.js +1 -1
- data/public/vendor/npm/isarray@0.0.1.js +1 -1
- data/public/vendor/npm/js-tokens@4.0.0/index.js +23 -0
- data/public/vendor/npm/js-tokens@4.0.0/package.json +30 -0
- data/public/vendor/npm/js-tokens@4.0.0.js +1 -0
- data/public/vendor/npm/loose-envify@1.4.0/LICENSE +21 -0
- data/public/vendor/npm/loose-envify@1.4.0/README.md +45 -0
- data/public/vendor/npm/loose-envify@1.4.0/cli.js +12 -0
- data/public/vendor/npm/loose-envify@1.4.0/custom.js +3 -0
- data/public/vendor/npm/loose-envify@1.4.0/index.js +5 -0
- data/public/vendor/npm/loose-envify@1.4.0/loose-envify.js +33 -0
- data/public/vendor/npm/loose-envify@1.4.0/package.json +36 -0
- data/public/vendor/npm/loose-envify@1.4.0/replace.js +52 -0
- data/public/vendor/npm/loose-envify@1.4.0.js +1 -0
- data/public/vendor/npm/object-assign@4.1.1/index.js +90 -0
- data/public/vendor/npm/object-assign@4.1.1/package.json +42 -0
- data/public/vendor/npm/object-assign@4.1.1.js +1 -0
- data/public/vendor/npm/path-browserify@0.0.0/index.js +1 -1
- data/public/vendor/npm/path-browserify@0.0.0.js +1 -1
- data/public/vendor/npm/{process@0.10.1 → process@0.11.10}/README.md +4 -1
- data/public/vendor/npm/process@0.11.10/browser.js +184 -0
- data/public/vendor/npm/{process@0.10.1 → process@0.11.10}/package.json +10 -1
- data/public/vendor/npm/process@0.11.10/test.js +185 -0
- data/public/vendor/npm/process@0.11.10.js +1 -0
- data/public/vendor/npm/react-dom@18.0.0/LICENSE +21 -0
- data/public/vendor/npm/react-dom@18.0.0/README.md +50 -0
- data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server-legacy.browser.development.js +4771 -0
- data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server-legacy.browser.production.min.js +85 -0
- data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server-legacy.node.development.js +4813 -0
- data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server-legacy.node.production.min.js +1705 -0
- data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server.browser.development.js +4746 -0
- data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server.browser.production.min.js +90 -0
- data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server.node.development.js +4714 -0
- data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server.node.production.min.js +1746 -0
- data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-test-utils.development.js +1017 -0
- data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-test-utils.production.min.js +617 -0
- data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom.development.js +20092 -0
- data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom.production.min.js +322 -0
- data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom.profiling.min.js +364 -0
- data/public/vendor/npm/react-dom@18.0.0/client.js +27 -0
- data/public/vendor/npm/react-dom@18.0.0/index.js +23 -0
- data/public/vendor/npm/react-dom@18.0.0/package.json +62 -0
- data/public/vendor/npm/react-dom@18.0.0/profiling.js +23 -0
- data/public/vendor/npm/react-dom@18.0.0/server.browser.js +19 -0
- data/public/vendor/npm/react-dom@18.0.0/server.js +3 -0
- data/public/vendor/npm/react-dom@18.0.0/server.node.js +19 -0
- data/public/vendor/npm/react-dom@18.0.0/test-utils.js +9 -0
- data/public/vendor/npm/react-dom@18.0.0/umd/react-dom-server-legacy.browser.development.js +4770 -0
- data/public/vendor/npm/react-dom@18.0.0/umd/react-dom-server-legacy.browser.production.min.js +72 -0
- data/public/vendor/npm/react-dom@18.0.0/umd/react-dom-server.browser.development.js +4745 -0
- data/public/vendor/npm/react-dom@18.0.0/umd/react-dom-server.browser.production.min.js +74 -0
- data/public/vendor/npm/react-dom@18.0.0/umd/react-dom-test-utils.development.js +1013 -0
- data/public/vendor/npm/react-dom@18.0.0/umd/react-dom-test-utils.production.min.js +625 -0
- data/public/vendor/npm/react-dom@18.0.0/umd/react-dom.development.js +20106 -0
- data/public/vendor/npm/react-dom@18.0.0/umd/react-dom.production.min.js +269 -0
- data/public/vendor/npm/react-dom@18.0.0/umd/react-dom.profiling.min.js +285 -0
- data/public/vendor/npm/react-dom@18.0.0.js +1 -0
- data/public/vendor/npm/react@18.0.0/LICENSE +21 -0
- data/public/vendor/npm/react@18.0.0/README.md +13 -0
- data/public/vendor/npm/react@18.0.0/cjs/react-jsx-dev-runtime.development.js +837 -0
- data/public/vendor/npm/react@18.0.0/cjs/react-jsx-dev-runtime.production.min.js +10 -0
- data/public/vendor/npm/react@18.0.0/cjs/react-jsx-dev-runtime.profiling.min.js +10 -0
- data/public/vendor/npm/react@18.0.0/cjs/react-jsx-runtime.development.js +849 -0
- data/public/vendor/npm/react@18.0.0/cjs/react-jsx-runtime.production.min.js +38 -0
- data/public/vendor/npm/react@18.0.0/cjs/react-jsx-runtime.profiling.min.js +38 -0
- data/public/vendor/npm/react@18.0.0/cjs/react.development.js +1746 -0
- data/public/vendor/npm/react@18.0.0/cjs/react.production.min.js +26 -0
- data/public/vendor/npm/react@18.0.0/cjs/react.shared-subset.development.js +10 -0
- data/public/vendor/npm/react@18.0.0/cjs/react.shared-subset.production.min.js +12 -0
- data/public/vendor/npm/react@18.0.0/index.js +9 -0
- data/public/vendor/npm/react@18.0.0/jsx-dev-runtime.js +9 -0
- data/public/vendor/npm/react@18.0.0/jsx-runtime.js +9 -0
- data/public/vendor/npm/react@18.0.0/package.json +47 -0
- data/public/vendor/npm/react@18.0.0/react.shared-subset.js +9 -0
- data/public/vendor/npm/react@18.0.0/umd/react.development.js +2186 -0
- data/public/vendor/npm/react@18.0.0/umd/react.production.min.js +33 -0
- data/public/vendor/npm/react@18.0.0/umd/react.profiling.min.js +33 -0
- data/public/vendor/npm/react@18.0.0.js +1 -0
- data/public/vendor/npm/readable-stream@1.1.14/LICENSE +18 -0
- data/public/vendor/npm/readable-stream@1.1.14/duplex.js +2 -0
- data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/lib/_stream_duplex.js +5 -5
- data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/lib/_stream_passthrough.js +3 -3
- data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/lib/_stream_readable.js +10 -10
- data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/lib/_stream_transform.js +4 -4
- data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/lib/_stream_writable.js +6 -6
- data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/package.json +1 -1
- data/public/vendor/npm/readable-stream@1.1.14/passthrough.js +2 -0
- data/public/vendor/npm/readable-stream@1.1.14/readable.js +13 -0
- data/public/vendor/npm/readable-stream@1.1.14/transform.js +2 -0
- data/public/vendor/npm/readable-stream@1.1.14/writable.js +2 -0
- data/public/vendor/npm/readable-stream@1.1.14.js +1 -0
- data/public/vendor/npm/scheduler@0.21.0/LICENSE +21 -0
- data/public/vendor/npm/scheduler@0.21.0/README.md +9 -0
- data/public/vendor/npm/scheduler@0.21.0/cjs/scheduler-unstable_mock.development.js +530 -0
- data/public/vendor/npm/scheduler@0.21.0/cjs/scheduler-unstable_mock.production.min.js +20 -0
- data/public/vendor/npm/scheduler@0.21.0/cjs/scheduler-unstable_post_task.development.js +153 -0
- data/public/vendor/npm/scheduler@0.21.0/cjs/scheduler-unstable_post_task.production.min.js +14 -0
- data/public/vendor/npm/scheduler@0.21.0/cjs/scheduler.development.js +444 -0
- data/public/vendor/npm/scheduler@0.21.0/cjs/scheduler.production.min.js +19 -0
- data/public/vendor/npm/scheduler@0.21.0/index.js +9 -0
- data/public/vendor/npm/scheduler@0.21.0/package.json +36 -0
- data/public/vendor/npm/scheduler@0.21.0/umd/scheduler-unstable_mock.development.js +701 -0
- data/public/vendor/npm/scheduler@0.21.0/umd/scheduler-unstable_mock.production.min.js +21 -0
- data/public/vendor/npm/scheduler@0.21.0/umd/scheduler.development.js +154 -0
- data/public/vendor/npm/scheduler@0.21.0/umd/scheduler.production.min.js +148 -0
- data/public/vendor/npm/scheduler@0.21.0/umd/scheduler.profiling.min.js +148 -0
- data/public/vendor/npm/scheduler@0.21.0/unstable_mock.js +9 -0
- data/public/vendor/npm/scheduler@0.21.0/unstable_post_task.js +9 -0
- data/public/vendor/npm/scheduler@0.21.0.js +1 -0
- data/public/vendor/npm/stream-browserify@1.0.0/index.js +7 -7
- data/public/vendor/npm/stream-browserify@1.0.0/test/buf.js +5 -5
- data/public/vendor/npm/stream-browserify@1.0.0.js +1 -1
- data/public/vendor/npm/string_decoder@0.10.31/index.js +2 -2
- data/public/vendor/npm/string_decoder@0.10.31.js +1 -1
- data/public/vendor/npm/util@0.10.3/support/isBuffer.js +1 -1
- data/public/vendor/npm/util@0.10.3/test/browser/inspect.js +2 -2
- data/public/vendor/npm/util@0.10.3/test/browser/is.js +3 -3
- data/public/vendor/npm/util@0.10.3/test/node/debug.js +4 -4
- data/public/vendor/npm/util@0.10.3/test/node/format.js +2 -2
- data/public/vendor/npm/util@0.10.3/test/node/inspect.js +3 -3
- data/public/vendor/npm/util@0.10.3/test/node/log.js +3 -3
- data/public/vendor/npm/util@0.10.3/test/node/util.js +3 -3
- data/public/vendor/npm/util@0.10.3/util.js +3 -3
- data/public/vendor/npm/util@0.10.3.js +1 -1
- data/public/vendor/npm/vm-browserify@0.0.4/LICENSE +18 -0
- data/public/vendor/npm/vm-browserify@0.0.4/example/run/bundle.js +376 -0
- data/public/vendor/npm/vm-browserify@0.0.4/example/run/entry.js +6 -0
- data/public/vendor/npm/vm-browserify@0.0.4/example/run/index.html +9 -0
- data/public/vendor/npm/vm-browserify@0.0.4/example/run/server.js +6 -0
- data/public/vendor/npm/vm-browserify@0.0.4/index.js +139 -0
- data/public/vendor/npm/vm-browserify@0.0.4/package.json +46 -0
- data/public/vendor/npm/vm-browserify@0.0.4/readme.markdown +67 -0
- data/public/vendor/npm/vm-browserify@0.0.4/test/vm.js +34 -0
- data/public/vendor/npm/vm-browserify@0.0.4.js +1 -0
- data/public/vendor/npm/webshim@1.15.8/Gruntfile.js +4 -4
- data/public/vendor/npm/webshim@1.15.8/build/combobuild.js +2 -2
- data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/color-picker.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/combos/10.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/combos/11.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/combos/17.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/combos/5.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/combos/6.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/combos/9.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/es6.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/excanvas.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/form-number-date-ui.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/moxie/js/moxie-html4.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/moxie/js/moxie-swf.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/sizzle.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/js-webshim/minified/shims/es6.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/src/shims/color-picker.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/src/shims/combos/10.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/src/shims/combos/11.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/src/shims/combos/17.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/src/shims/combos/5.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/src/shims/combos/6.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/src/shims/combos/9.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/src/shims/es6.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/src/shims/excanvas.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/src/shims/form-number-date-ui.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/src/shims/moxie/js/moxie-html4.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/src/shims/moxie/js/moxie-swf.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/src/shims/sizzle.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/tests/dist/jquery.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/tests/jquery/unit/core.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/tests/jquery/unit/event.js +1388 -711
- data/public/vendor/npm/webshim@1.15.8/tests/qunit/qunit.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/tests/test-ext/jquery-1-custom.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/tests/test-ext/jquery-2-custom.js +1 -1
- data/public/vendor/npm/webshim@1.15.8/tests/test-ext/punycode.js +1 -1
- data/public/vendor/system-polyfills.js +865 -1
- data/views/blastn_options.erb +291 -0
- data/views/blastp_options.erb +288 -0
- data/views/blastx_options.erb +318 -0
- data/views/error.erb +12 -0
- data/views/layout.erb +2 -30
- data/views/report.erb +0 -8
- data/views/search.erb +16 -9
- data/views/tblastn_options.erb +266 -0
- data/views/tblastx_options.erb +291 -0
- metadata +318 -439
- data/public/vendor/github/jspm/nodelibs-buffer@0.1.0.js +0 -1
- data/public/vendor/github/jspm/nodelibs-module@0.1.0/index.js +0 -1
- data/public/vendor/github/jspm/nodelibs-module@0.1.0.js +0 -1
- data/public/vendor/github/jspm/nodelibs-process@0.1.1.js +0 -1
- data/public/vendor/npm/amdefine@1.0.0/LICENSE +0 -58
- data/public/vendor/npm/amdefine@1.0.0/README.md +0 -171
- data/public/vendor/npm/amdefine@1.0.0/amdefine.js +0 -200
- data/public/vendor/npm/amdefine@1.0.0/intercept.js +0 -24
- data/public/vendor/npm/amdefine@1.0.0/package.json +0 -16
- data/public/vendor/npm/amdefine@1.0.0.js +0 -1
- data/public/vendor/npm/base62@0.1.1/LICENSE +0 -20
- data/public/vendor/npm/base62@0.1.1/Readme.md +0 -30
- data/public/vendor/npm/base62@0.1.1/base62.js +0 -28
- data/public/vendor/npm/base62@0.1.1/package.json +0 -21
- data/public/vendor/npm/base62@0.1.1/test/test.js +0 -13
- data/public/vendor/npm/base62@0.1.1.js +0 -1
- data/public/vendor/npm/base64-js@0.0.8/lib/b64.js +0 -125
- data/public/vendor/npm/base64-js@0.0.8/package.json +0 -34
- data/public/vendor/npm/base64-js@0.0.8/test/convert.js +0 -39
- data/public/vendor/npm/base64-js@0.0.8/test/url-safe.js +0 -15
- data/public/vendor/npm/base64-js@0.0.8.js +0 -1
- data/public/vendor/npm/buffer@3.4.3/index.js +0 -1533
- data/public/vendor/npm/buffer@3.4.3/package.json +0 -67
- data/public/vendor/npm/buffer@3.4.3/test/_polyfill.js +0 -152
- data/public/vendor/npm/buffer@3.4.3/test/base64.js +0 -33
- data/public/vendor/npm/buffer@3.4.3/test/basic.js +0 -58
- data/public/vendor/npm/buffer@3.4.3/test/compare.js +0 -53
- data/public/vendor/npm/buffer@3.4.3/test/constructor.js +0 -132
- data/public/vendor/npm/buffer@3.4.3/test/deprecated.js +0 -21
- data/public/vendor/npm/buffer@3.4.3/test/from-string.js +0 -105
- data/public/vendor/npm/buffer@3.4.3/test/methods.js +0 -109
- data/public/vendor/npm/buffer@3.4.3/test/node/README.txt +0 -1
- data/public/vendor/npm/buffer@3.4.3/test/node/test-buffer-ascii.js +0 -20
- data/public/vendor/npm/buffer@3.4.3/test/node/test-buffer-bytelength.js +0 -38
- data/public/vendor/npm/buffer@3.4.3/test/node/test-buffer-concat.js +0 -26
- data/public/vendor/npm/buffer@3.4.3/test/node/test-buffer-indexof.js +0 -78
- data/public/vendor/npm/buffer@3.4.3/test/node/test-buffer-inspect.js +0 -31
- data/public/vendor/npm/buffer@3.4.3/test/node/test-buffer.js +0 -804
- data/public/vendor/npm/buffer@3.4.3/test/node-es6/README.txt +0 -1
- data/public/vendor/npm/buffer@3.4.3/test/node-es6/test-buffer-arraybuffer.js +0 -37
- data/public/vendor/npm/buffer@3.4.3/test/node-es6/test-buffer-iterator.js +0 -32
- data/public/vendor/npm/buffer@3.4.3/test/slice.js +0 -33
- data/public/vendor/npm/buffer@3.4.3/test/static.js +0 -32
- data/public/vendor/npm/buffer@3.4.3/test/to-string.js +0 -106
- data/public/vendor/npm/buffer@3.4.3/test/write.js +0 -90
- data/public/vendor/npm/buffer@3.4.3.js +0 -1
- data/public/vendor/npm/core-util-is@1.0.1/float.patch +0 -604
- data/public/vendor/npm/core-util-is@1.0.1/lib/util.js +0 -66
- data/public/vendor/npm/core-util-is@1.0.1/util.js +0 -66
- data/public/vendor/npm/core-util-is@1.0.1.js +0 -1
- data/public/vendor/npm/envify@3.4.0/README.md +0 -145
- data/public/vendor/npm/envify@3.4.0/bin/envify +0 -17
- data/public/vendor/npm/envify@3.4.0/custom.js +0 -33
- data/public/vendor/npm/envify@3.4.0/index.js +0 -4
- data/public/vendor/npm/envify@3.4.0/package.json +0 -35
- data/public/vendor/npm/envify@3.4.0/visitors.js +0 -33
- data/public/vendor/npm/envify@3.4.0.js +0 -1
- data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/bin/esparse.js +0 -90
- data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/bin/esvalidate.js +0 -145
- data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/esprima.js +0 -6191
- data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/package.json +0 -72
- data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/test/compat.js +0 -167
- data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/test/reflect.js +0 -421
- data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/test/run.js +0 -34
- data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/test/runner.js +0 -418
- data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/test/test.js +0 -34730
- data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb.js +0 -1
- data/public/vendor/npm/ieee754@1.1.6/LICENSE +0 -56
- data/public/vendor/npm/ieee754@1.1.6/package.json +0 -34
- data/public/vendor/npm/ieee754@1.1.6/test/basic.js +0 -20
- data/public/vendor/npm/ieee754@1.1.6.js +0 -1
- data/public/vendor/npm/is-array@1.0.1/History.md +0 -11
- data/public/vendor/npm/is-array@1.0.1/Readme.md +0 -27
- data/public/vendor/npm/is-array@1.0.1/component.json +0 -13
- data/public/vendor/npm/is-array@1.0.1/index.js +0 -33
- data/public/vendor/npm/is-array@1.0.1/package.json +0 -10
- data/public/vendor/npm/is-array@1.0.1/test/test.html +0 -46
- data/public/vendor/npm/is-array@1.0.1.js +0 -1
- data/public/vendor/npm/jstransform@10.1.0/LICENSE +0 -201
- data/public/vendor/npm/jstransform@10.1.0/README.md +0 -98
- data/public/vendor/npm/jstransform@10.1.0/jestEnvironment.js +0 -3
- data/public/vendor/npm/jstransform@10.1.0/jestPreprocessor.js +0 -8
- data/public/vendor/npm/jstransform@10.1.0/package.json +0 -52
- data/public/vendor/npm/jstransform@10.1.0/polyfill/Object.es6.js +0 -54
- data/public/vendor/npm/jstransform@10.1.0/src/__tests__/jstransform-test.js +0 -246
- data/public/vendor/npm/jstransform@10.1.0/src/__tests__/jstransform-utils-test.js +0 -31
- data/public/vendor/npm/jstransform@10.1.0/src/docblock.js +0 -86
- data/public/vendor/npm/jstransform@10.1.0/src/jstransform.js +0 -180
- data/public/vendor/npm/jstransform@10.1.0/src/utils.js +0 -386
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-arrow-function-visitors-test.js +0 -57
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-call-spread-visitors-test.js +0 -46
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-class-visitors-test.js +0 -463
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-destructuring-visitors-test.js +0 -144
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-es7-object-integration-test.js +0 -40
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-object-concise-method-visitors-test.js +0 -47
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-object-short-notation-visitors-test.js +0 -33
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-rest-param-visitors-test.js +0 -119
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-template-visitors-test.js +0 -138
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es7-rest-property-helpers-test.js +0 -47
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es7-spread-property-visitors-test.js +0 -90
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/gen/generate-type-syntax-test.js +0 -40
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/gen/type-syntax-test.rec.js +0 -846
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/reserved-words-test.js +0 -40
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-alias-syntax-test.js +0 -34
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-class-syntax-test.js +0 -105
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-function-syntax-test.js +0 -126
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-interface-syntax-test.js +0 -29
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-object-method-syntax-test.js +0 -65
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-pattern-syntax-test.js +0 -45
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-syntax-test.js +0 -46
- data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-variable-declaration-syntax-test.js +0 -102
- data/public/vendor/npm/jstransform@10.1.0/visitors/es6-arrow-function-visitors.js +0 -66
- data/public/vendor/npm/jstransform@10.1.0/visitors/es6-call-spread-visitors.js +0 -72
- data/public/vendor/npm/jstransform@10.1.0/visitors/es6-class-visitors.js +0 -316
- data/public/vendor/npm/jstransform@10.1.0/visitors/es6-destructuring-visitors.js +0 -135
- data/public/vendor/npm/jstransform@10.1.0/visitors/es6-object-concise-method-visitors.js +0 -28
- data/public/vendor/npm/jstransform@10.1.0/visitors/es6-object-short-notation-visitors.js +0 -12
- data/public/vendor/npm/jstransform@10.1.0/visitors/es6-rest-param-visitors.js +0 -45
- data/public/vendor/npm/jstransform@10.1.0/visitors/es6-template-visitors.js +0 -90
- data/public/vendor/npm/jstransform@10.1.0/visitors/es7-rest-property-helpers.js +0 -80
- data/public/vendor/npm/jstransform@10.1.0/visitors/es7-spread-property-visitors.js +0 -56
- data/public/vendor/npm/jstransform@10.1.0/visitors/reserved-words-helper.js +0 -74
- data/public/vendor/npm/jstransform@10.1.0/visitors/reserved-words-visitors.js +0 -30
- data/public/vendor/npm/jstransform@10.1.0/visitors/type-syntax.js +0 -118
- data/public/vendor/npm/jstransform@10.1.0.js +0 -1
- data/public/vendor/npm/process@0.10.1/browser.js +0 -58
- data/public/vendor/npm/process@0.10.1.js +0 -1
- data/public/vendor/npm/qs@2.4.1/test/stringify.js +0 -162
- data/public/vendor/npm/react@0.13.3/README.md +0 -20
- data/public/vendor/npm/react@0.13.3/addons.js +0 -2
- data/public/vendor/npm/react@0.13.3/dist/JSXTransformer.js +0 -11346
- data/public/vendor/npm/react@0.13.3/dist/react-with-addons.js +0 -10483
- data/public/vendor/npm/react@0.13.3/dist/react-with-addons.min.js +0 -7297
- data/public/vendor/npm/react@0.13.3/dist/react.js +0 -9468
- data/public/vendor/npm/react@0.13.3/dist/react.min.js +0 -6764
- data/public/vendor/npm/react@0.13.3/lib/AutoFocusMixin.js +0 -9
- data/public/vendor/npm/react@0.13.3/lib/BeforeInputEventPlugin.js +0 -197
- data/public/vendor/npm/react@0.13.3/lib/CSSCore.js +0 -39
- data/public/vendor/npm/react@0.13.3/lib/CSSProperty.js +0 -123
- data/public/vendor/npm/react@0.13.3/lib/CSSPropertyOperations.js +0 -103
- data/public/vendor/npm/react@0.13.3/lib/CallbackQueue.js +0 -43
- data/public/vendor/npm/react@0.13.3/lib/ChangeEventPlugin.js +0 -174
- data/public/vendor/npm/react@0.13.3/lib/ClientReactRootIndex.js +0 -23
- data/public/vendor/npm/react@0.13.3/lib/DOMChildrenOperations.js +0 -57
- data/public/vendor/npm/react@0.13.3/lib/DOMProperty.js +0 -96
- data/public/vendor/npm/react@0.13.3/lib/DOMPropertyOperations.js +0 -99
- data/public/vendor/npm/react@0.13.3/lib/Danger.js +0 -67
- data/public/vendor/npm/react@0.13.3/lib/DefaultEventPluginOrder.js +0 -5
- data/public/vendor/npm/react@0.13.3/lib/EnterLeaveEventPlugin.js +0 -69
- data/public/vendor/npm/react@0.13.3/lib/EventConstants.js +0 -55
- data/public/vendor/npm/react@0.13.3/lib/EventListener.js +0 -34
- data/public/vendor/npm/react@0.13.3/lib/EventPluginHub.js +0 -103
- data/public/vendor/npm/react@0.13.3/lib/EventPluginRegistry.js +0 -115
- data/public/vendor/npm/react@0.13.3/lib/EventPluginUtils.js +0 -121
- data/public/vendor/npm/react@0.13.3/lib/EventPropagators.js +0 -62
- data/public/vendor/npm/react@0.13.3/lib/ExecutionEnvironment.js +0 -42
- data/public/vendor/npm/react@0.13.3/lib/FallbackCompositionState.js +0 -45
- data/public/vendor/npm/react@0.13.3/lib/HTMLDOMPropertyConfig.js +0 -155
- data/public/vendor/npm/react@0.13.3/lib/LinkedStateMixin.js +0 -8
- data/public/vendor/npm/react@0.13.3/lib/LinkedValueUtils.js +0 -74
- data/public/vendor/npm/react@0.13.3/lib/LocalEventTrapMixin.js +0 -26
- data/public/vendor/npm/react@0.13.3/lib/MobileSafariClickEventPlugin.js +0 -17
- data/public/vendor/npm/react@0.13.3/lib/Object.assign.js +0 -47
- data/public/vendor/npm/react@0.13.3/lib/PooledClass.js +0 -75
- data/public/vendor/npm/react@0.13.3/lib/React.js +0 -93
- data/public/vendor/npm/react@0.13.3/lib/ReactBrowserComponentMixin.js +0 -7
- data/public/vendor/npm/react@0.13.3/lib/ReactBrowserEventEmitter.js +0 -136
- data/public/vendor/npm/react@0.13.3/lib/ReactCSSTransitionGroup.js +0 -34
- data/public/vendor/npm/react@0.13.3/lib/ReactCSSTransitionGroupChild.js +0 -92
- data/public/vendor/npm/react@0.13.3/lib/ReactChildReconciler.js +0 -57
- data/public/vendor/npm/react@0.13.3/lib/ReactChildren.js +0 -67
- data/public/vendor/npm/react@0.13.3/lib/ReactClass.js +0 -338
- data/public/vendor/npm/react@0.13.3/lib/ReactComponent.js +0 -50
- data/public/vendor/npm/react@0.13.3/lib/ReactComponentBrowserEnvironment.js +0 -14
- data/public/vendor/npm/react@0.13.3/lib/ReactComponentEnvironment.js +0 -19
- data/public/vendor/npm/react@0.13.3/lib/ReactComponentWithPureRenderMixin.js +0 -7
- data/public/vendor/npm/react@0.13.3/lib/ReactCompositeComponent.js +0 -374
- data/public/vendor/npm/react@0.13.3/lib/ReactContext.js +0 -27
- data/public/vendor/npm/react@0.13.3/lib/ReactCurrentOwner.js +0 -32
- data/public/vendor/npm/react@0.13.3/lib/ReactDOM.js +0 -146
- data/public/vendor/npm/react@0.13.3/lib/ReactDOMButton.js +0 -35
- data/public/vendor/npm/react@0.13.3/lib/ReactDOMComponent.js +0 -267
- data/public/vendor/npm/react@0.13.3/lib/ReactDOMForm.js +0 -21
- data/public/vendor/npm/react@0.13.3/lib/ReactDOMIDOperations.js +0 -63
- data/public/vendor/npm/react@0.13.3/lib/ReactDOMIframe.js +0 -20
- data/public/vendor/npm/react@0.13.3/lib/ReactDOMImg.js +0 -21
- data/public/vendor/npm/react@0.13.3/lib/ReactDOMInput.js +0 -94
- data/public/vendor/npm/react@0.13.3/lib/ReactDOMOption.js +0 -23
- data/public/vendor/npm/react@0.13.3/lib/ReactDOMSelect.js +0 -112
- data/public/vendor/npm/react@0.13.3/lib/ReactDOMSelection.js +0 -103
- data/public/vendor/npm/react@0.13.3/lib/ReactDOMTextComponent.js +0 -38
- data/public/vendor/npm/react@0.13.3/lib/ReactDOMTextarea.js +0 -70
- data/public/vendor/npm/react@0.13.3/lib/ReactDefaultBatchingStrategy.js +0 -37
- data/public/vendor/npm/react@0.13.3/lib/ReactDefaultInjection.js +0 -93
- data/public/vendor/npm/react@0.13.3/lib/ReactDefaultPerf.js +0 -183
- data/public/vendor/npm/react@0.13.3/lib/ReactDefaultPerfAnalysis.js +0 -145
- data/public/vendor/npm/react@0.13.3/lib/ReactElement.js +0 -151
- data/public/vendor/npm/react@0.13.3/lib/ReactElementValidator.js +0 -218
- data/public/vendor/npm/react@0.13.3/lib/ReactEmptyComponent.js +0 -47
- data/public/vendor/npm/react@0.13.3/lib/ReactErrorUtils.js +0 -30
- data/public/vendor/npm/react@0.13.3/lib/ReactEventEmitterMixin.js +0 -12
- data/public/vendor/npm/react@0.13.3/lib/ReactEventListener.js +0 -93
- data/public/vendor/npm/react@0.13.3/lib/ReactFragment.js +0 -110
- data/public/vendor/npm/react@0.13.3/lib/ReactInjection.js +0 -27
- data/public/vendor/npm/react@0.13.3/lib/ReactInputSelection.js +0 -75
- data/public/vendor/npm/react@0.13.3/lib/ReactInstanceHandles.js +0 -113
- data/public/vendor/npm/react@0.13.3/lib/ReactInstanceMap.js +0 -47
- data/public/vendor/npm/react@0.13.3/lib/ReactLifeCycle.js +0 -9
- data/public/vendor/npm/react@0.13.3/lib/ReactLink.js +0 -16
- data/public/vendor/npm/react@0.13.3/lib/ReactMarkupChecksum.js +0 -17
- data/public/vendor/npm/react@0.13.3/lib/ReactMount.js +0 -347
- data/public/vendor/npm/react@0.13.3/lib/ReactMultiChild.js +0 -190
- data/public/vendor/npm/react@0.13.3/lib/ReactMultiChildUpdateTypes.js +0 -10
- data/public/vendor/npm/react@0.13.3/lib/ReactNativeComponent.js +0 -53
- data/public/vendor/npm/react@0.13.3/lib/ReactOwner.js +0 -21
- data/public/vendor/npm/react@0.13.3/lib/ReactPerf.js +0 -42
- data/public/vendor/npm/react@0.13.3/lib/ReactPropTransferer.js +0 -40
- data/public/vendor/npm/react@0.13.3/lib/ReactPropTypeLocationNames.js +0 -13
- data/public/vendor/npm/react@0.13.3/lib/ReactPropTypeLocations.js +0 -9
- data/public/vendor/npm/react@0.13.3/lib/ReactPropTypes.js +0 -225
- data/public/vendor/npm/react@0.13.3/lib/ReactPutListenerQueue.js +0 -31
- data/public/vendor/npm/react@0.13.3/lib/ReactReconcileTransaction.js +0 -66
- data/public/vendor/npm/react@0.13.3/lib/ReactReconciler.js +0 -44
- data/public/vendor/npm/react@0.13.3/lib/ReactRef.js +0 -36
- data/public/vendor/npm/react@0.13.3/lib/ReactRootIndex.js +0 -29
- data/public/vendor/npm/react@0.13.3/lib/ReactServerRendering.js +0 -44
- data/public/vendor/npm/react@0.13.3/lib/ReactServerRenderingTransaction.js +0 -47
- data/public/vendor/npm/react@0.13.3/lib/ReactStateSetters.js +0 -104
- data/public/vendor/npm/react@0.13.3/lib/ReactTestUtils.js +0 -249
- data/public/vendor/npm/react@0.13.3/lib/ReactTransitionChildMapping.js +0 -53
- data/public/vendor/npm/react@0.13.3/lib/ReactTransitionEvents.js +0 -68
- data/public/vendor/npm/react@0.13.3/lib/ReactTransitionGroup.js +0 -140
- data/public/vendor/npm/react@0.13.3/lib/ReactUpdateQueue.js +0 -107
- data/public/vendor/npm/react@0.13.3/lib/ReactUpdates.js +0 -139
- data/public/vendor/npm/react@0.13.3/lib/ReactWithAddons.js +0 -30
- data/public/vendor/npm/react@0.13.3/lib/SVGDOMPropertyConfig.js +0 -76
- data/public/vendor/npm/react@0.13.3/lib/SelectEventPlugin.js +0 -91
- data/public/vendor/npm/react@0.13.3/lib/ServerReactRootIndex.js +0 -29
- data/public/vendor/npm/react@0.13.3/lib/SimpleEventPlugin.js +0 -287
- data/public/vendor/npm/react@0.13.3/lib/SyntheticClipboardEvent.js +0 -11
- data/public/vendor/npm/react@0.13.3/lib/SyntheticCompositionEvent.js +0 -9
- data/public/vendor/npm/react@0.13.3/lib/SyntheticDragEvent.js +0 -9
- data/public/vendor/npm/react@0.13.3/lib/SyntheticEvent.js +0 -90
- data/public/vendor/npm/react@0.13.3/lib/SyntheticFocusEvent.js +0 -9
- data/public/vendor/npm/react@0.13.3/lib/SyntheticInputEvent.js +0 -9
- data/public/vendor/npm/react@0.13.3/lib/SyntheticKeyboardEvent.js +0 -43
- data/public/vendor/npm/react@0.13.3/lib/SyntheticMouseEvent.js +0 -38
- data/public/vendor/npm/react@0.13.3/lib/SyntheticTouchEvent.js +0 -19
- data/public/vendor/npm/react@0.13.3/lib/SyntheticUIEvent.js +0 -29
- data/public/vendor/npm/react@0.13.3/lib/SyntheticWheelEvent.js +0 -18
- data/public/vendor/npm/react@0.13.3/lib/Transaction.js +0 -90
- data/public/vendor/npm/react@0.13.3/lib/ViewportMetrics.js +0 -27
- data/public/vendor/npm/react@0.13.3/lib/accumulateInto.js +0 -26
- data/public/vendor/npm/react@0.13.3/lib/adler32.js +0 -32
- data/public/vendor/npm/react@0.13.3/lib/camelize.js +0 -30
- data/public/vendor/npm/react@0.13.3/lib/camelizeStyleName.js +0 -8
- data/public/vendor/npm/react@0.13.3/lib/cloneWithProps.js +0 -20
- data/public/vendor/npm/react@0.13.3/lib/containsNode.js +0 -20
- data/public/vendor/npm/react@0.13.3/lib/createArrayFromMixed.js +0 -15
- data/public/vendor/npm/react@0.13.3/lib/createFullPageComponent.js +0 -22
- data/public/vendor/npm/react@0.13.3/lib/createNodesFromMarkup.js +0 -39
- data/public/vendor/npm/react@0.13.3/lib/cx.js +0 -20
- data/public/vendor/npm/react@0.13.3/lib/dangerousStyleValue.js +0 -19
- data/public/vendor/npm/react@0.13.3/lib/emptyFunction.js +0 -32
- data/public/vendor/npm/react@0.13.3/lib/emptyObject.js +0 -9
- data/public/vendor/npm/react@0.13.3/lib/escapeTextContentForBrowser.js +0 -38
- data/public/vendor/npm/react@0.13.3/lib/findDOMNode.js +0 -31
- data/public/vendor/npm/react@0.13.3/lib/flattenChildren.js +0 -25
- data/public/vendor/npm/react@0.13.3/lib/focusNode.js +0 -27
- data/public/vendor/npm/react@0.13.3/lib/forEachAccumulated.js +0 -29
- data/public/vendor/npm/react@0.13.3/lib/getActiveElement.js +0 -27
- data/public/vendor/npm/react@0.13.3/lib/getEventCharCode.js +0 -50
- data/public/vendor/npm/react@0.13.3/lib/getEventKey.js +0 -72
- data/public/vendor/npm/react@0.13.3/lib/getEventModifierState.js +0 -45
- data/public/vendor/npm/react@0.13.3/lib/getEventTarget.js +0 -29
- data/public/vendor/npm/react@0.13.3/lib/getIteratorFn.js +0 -42
- data/public/vendor/npm/react@0.13.3/lib/getMarkupWrap.js +0 -73
- data/public/vendor/npm/react@0.13.3/lib/getNodeForCharacterOffset.js +0 -73
- data/public/vendor/npm/react@0.13.3/lib/getReactRootElementInContainer.js +0 -33
- data/public/vendor/npm/react@0.13.3/lib/getTextContentAccessor.js +0 -11
- data/public/vendor/npm/react@0.13.3/lib/getUnboundedScrollPosition.js +0 -38
- data/public/vendor/npm/react@0.13.3/lib/hyphenate.js +0 -31
- data/public/vendor/npm/react@0.13.3/lib/hyphenateStyleName.js +0 -8
- data/public/vendor/npm/react@0.13.3/lib/instantiateReactComponent.js +0 -55
- data/public/vendor/npm/react@0.13.3/lib/invariant.js +0 -26
- data/public/vendor/npm/react@0.13.3/lib/isEventSupported.js +0 -24
- data/public/vendor/npm/react@0.13.3/lib/isNode.js +0 -25
- data/public/vendor/npm/react@0.13.3/lib/isTextInputElement.js +0 -41
- data/public/vendor/npm/react@0.13.3/lib/isTextNode.js +0 -6
- data/public/vendor/npm/react@0.13.3/lib/joinClasses.js +0 -39
- data/public/vendor/npm/react@0.13.3/lib/keyMirror.js +0 -18
- data/public/vendor/npm/react@0.13.3/lib/keyOf.js +0 -34
- data/public/vendor/npm/react@0.13.3/lib/mapObject.js +0 -51
- data/public/vendor/npm/react@0.13.3/lib/memoizeStringOnly.js +0 -31
- data/public/vendor/npm/react@0.13.3/lib/onlyChild.js +0 -11
- data/public/vendor/npm/react@0.13.3/lib/performance.js +0 -8
- data/public/vendor/npm/react@0.13.3/lib/performanceNow.js +0 -7
- data/public/vendor/npm/react@0.13.3/lib/quoteAttributeValueForBrowser.js +0 -7
- data/public/vendor/npm/react@0.13.3/lib/setInnerHTML.js +0 -40
- data/public/vendor/npm/react@0.13.3/lib/setTextContent.js +0 -16
- data/public/vendor/npm/react@0.13.3/lib/shallowEqual.js +0 -42
- data/public/vendor/npm/react@0.13.3/lib/shouldUpdateReactComponent.js +0 -51
- data/public/vendor/npm/react@0.13.3/lib/toArray.js +0 -21
- data/public/vendor/npm/react@0.13.3/lib/traverseAllChildren.js +0 -104
- data/public/vendor/npm/react@0.13.3/lib/update.js +0 -78
- data/public/vendor/npm/react@0.13.3/lib/warning.js +0 -34
- data/public/vendor/npm/react@0.13.3/package.json +0 -34
- data/public/vendor/npm/react@0.13.3/react.js +0 -2
- data/public/vendor/npm/react@0.13.3.js +0 -1
- data/public/vendor/npm/readable-stream@1.1.13/duplex.js +0 -2
- data/public/vendor/npm/readable-stream@1.1.13/passthrough.js +0 -2
- data/public/vendor/npm/readable-stream@1.1.13/readable.js +0 -8
- data/public/vendor/npm/readable-stream@1.1.13/transform.js +0 -2
- data/public/vendor/npm/readable-stream@1.1.13/writable.js +0 -2
- data/public/vendor/npm/readable-stream@1.1.13.js +0 -1
- data/public/vendor/npm/source-map@0.1.31/CHANGELOG.md +0 -112
- data/public/vendor/npm/source-map@0.1.31/LICENSE +0 -28
- data/public/vendor/npm/source-map@0.1.31/Makefile.dryice.js +0 -89
- data/public/vendor/npm/source-map@0.1.31/README.md +0 -434
- data/public/vendor/npm/source-map@0.1.31/build/assert-shim.js +0 -58
- data/public/vendor/npm/source-map@0.1.31/build/mini-require.js +0 -154
- data/public/vendor/npm/source-map@0.1.31/build/prefix-source-map.jsm +0 -20
- data/public/vendor/npm/source-map@0.1.31/build/prefix-utils.jsm +0 -18
- data/public/vendor/npm/source-map@0.1.31/build/suffix-browser.js +0 -8
- data/public/vendor/npm/source-map@0.1.31/build/suffix-source-map.jsm +0 -6
- data/public/vendor/npm/source-map@0.1.31/build/suffix-utils.jsm +0 -21
- data/public/vendor/npm/source-map@0.1.31/build/test-prefix.js +0 -10
- data/public/vendor/npm/source-map@0.1.31/build/test-suffix.js +0 -5
- data/public/vendor/npm/source-map@0.1.31/lib/source-map/array-set.js +0 -49
- data/public/vendor/npm/source-map@0.1.31/lib/source-map/base64-vlq.js +0 -56
- data/public/vendor/npm/source-map@0.1.31/lib/source-map/base64.js +0 -44
- data/public/vendor/npm/source-map@0.1.31/lib/source-map/binary-search.js +0 -83
- data/public/vendor/npm/source-map@0.1.31/lib/source-map/source-map-consumer.js +0 -238
- data/public/vendor/npm/source-map@0.1.31/lib/source-map/source-map-generator.js +0 -231
- data/public/vendor/npm/source-map@0.1.31/lib/source-map/source-node.js +0 -234
- data/public/vendor/npm/source-map@0.1.31/lib/source-map/util.js +0 -207
- data/public/vendor/npm/source-map@0.1.31/lib/source-map.js +0 -4
- data/public/vendor/npm/source-map@0.1.31/package.json +0 -52
- data/public/vendor/npm/source-map@0.1.31/test/run-tests.js +0 -50
- data/public/vendor/npm/source-map@0.1.31/test/source-map/test-api.js +0 -19
- data/public/vendor/npm/source-map@0.1.31/test/source-map/test-array-set.js +0 -84
- data/public/vendor/npm/source-map@0.1.31/test/source-map/test-base64-vlq.js +0 -17
- data/public/vendor/npm/source-map@0.1.31/test/source-map/test-base64.js +0 -26
- data/public/vendor/npm/source-map@0.1.31/test/source-map/test-binary-search.js +0 -37
- data/public/vendor/npm/source-map@0.1.31/test/source-map/test-dog-fooding.js +0 -76
- data/public/vendor/npm/source-map@0.1.31/test/source-map/test-source-map-consumer.js +0 -426
- data/public/vendor/npm/source-map@0.1.31/test/source-map/test-source-map-generator.js +0 -480
- data/public/vendor/npm/source-map@0.1.31/test/source-map/test-source-node.js +0 -307
- data/public/vendor/npm/source-map@0.1.31/test/source-map/util.js +0 -84
- data/public/vendor/npm/source-map@0.1.31.js +0 -1
- data/public/vendor/npm/through@2.3.8/LICENSE.APACHE2 +0 -15
- data/public/vendor/npm/through@2.3.8/LICENSE.MIT +0 -24
- data/public/vendor/npm/through@2.3.8/index.js +0 -93
- data/public/vendor/npm/through@2.3.8/package.json +0 -36
- data/public/vendor/npm/through@2.3.8/readme.markdown +0 -64
- data/public/vendor/npm/through@2.3.8/test/async.js +0 -26
- data/public/vendor/npm/through@2.3.8/test/auto-destroy.js +0 -26
- data/public/vendor/npm/through@2.3.8/test/buffering.js +0 -57
- data/public/vendor/npm/through@2.3.8/test/end.js +0 -37
- data/public/vendor/npm/through@2.3.8/test/index.js +0 -98
- data/public/vendor/npm/through@2.3.8/test.js +0 -2
- data/public/vendor/npm/through@2.3.8.js +0 -1
- data/views/_options.erb +0 -156
- /data/public/vendor/github/jspm/{nodelibs-buffer@0.1.0 → nodelibs-buffer@0.1.1}/index.js +0 -0
- /data/public/vendor/github/jspm/{nodelibs-process@0.1.1 → nodelibs-process@0.1.2}/index.js +0 -0
- /data/public/vendor/npm/{readable-stream@1.1.13 → assert@1.5.0}/LICENSE +0 -0
- /data/public/vendor/npm/{buffer@3.4.3 → buffer@5.7.1}/LICENSE +0 -0
- /data/public/vendor/npm/{core-util-is@1.0.1 → core-util-is@1.0.3}/README.md +0 -0
- /data/public/vendor/npm/{process@0.10.1 → process@0.11.10}/LICENSE +0 -0
- /data/public/vendor/npm/{process@0.10.1 → process@0.11.10}/index.js +0 -0
- /data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/README.md +0 -0
- /data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/float.patch +0 -0
data/public/js/sidebar.js
CHANGED
@@ -1,27 +1,161 @@
|
|
1
|
-
import
|
1
|
+
import { Component } from 'react';
|
2
2
|
import _ from 'underscore';
|
3
3
|
|
4
4
|
import downloadFASTA from './download_fasta';
|
5
|
-
import
|
5
|
+
import asMailtoHref from './mailto';
|
6
|
+
import CloudShareModal from './cloud_share_modal';
|
6
7
|
|
8
|
+
/**
|
9
|
+
* checks whether code is being run by jest
|
10
|
+
*/
|
11
|
+
// eslint-disable-next-line no-undef
|
12
|
+
const isTestMode = () => process.env.JEST_WORKER_ID !== undefined || process.env.NODE_ENV === 'test';
|
7
13
|
/**
|
8
14
|
* Renders links for downloading hit information in different formats.
|
9
15
|
* Renders links for navigating to each query.
|
10
16
|
*/
|
11
|
-
export default
|
17
|
+
export default class extends Component {
|
18
|
+
|
19
|
+
constructor(props) {
|
20
|
+
super(props);
|
21
|
+
this.downloadFastaOfAll = this.downloadFastaOfAll.bind(this);
|
22
|
+
this.downloadFastaOfSelected = this.downloadFastaOfSelected.bind(this);
|
23
|
+
this.topPanelJSX = this.topPanelJSX.bind(this);
|
24
|
+
this.summaryString = this.summaryString.bind(this);
|
25
|
+
this.indexJSX = this.indexJSX.bind(this);
|
26
|
+
this.downloadsPanelJSX = this.downloadsPanelJSX.bind(this);
|
27
|
+
this.handleQueryIndexChange = this.handleQueryIndexChange.bind(this);
|
28
|
+
this.isElementInViewPort = this.isElementInViewPort.bind(this);
|
29
|
+
this.setVisibleQueryIndex = this.setVisibleQueryIndex.bind(this);
|
30
|
+
this.debounceScrolling = this.debounceScrolling.bind(this);
|
31
|
+
this.scrollListener = this.scrollListener.bind(this);
|
32
|
+
this.copyURL = this.copyURL.bind(this);
|
33
|
+
this.shareCloudInit = this.shareCloudInit.bind(this);
|
34
|
+
this.sharingPanelJSX = this.sharingPanelJSX.bind(this);
|
35
|
+
this.timeout = null;
|
36
|
+
this.queryElems = [];
|
37
|
+
this.state = {
|
38
|
+
queryIndex: 1
|
39
|
+
};
|
40
|
+
}
|
41
|
+
|
42
|
+
componentDidMount() {
|
43
|
+
/**
|
44
|
+
* Fixes tooltips in the sidebar, allows tooltip display on click
|
45
|
+
*/
|
46
|
+
$(function () {
|
47
|
+
$('.sidebar [data-toggle="tooltip"]').tooltip({ placement: 'right' });
|
48
|
+
$('#copyURL').tooltip({ title: 'Copied!', trigger: 'click', placement: 'right', delay: 0 });
|
49
|
+
});
|
50
|
+
|
51
|
+
//keep track of the current queryIndex so it doesn't get lost on page reload
|
52
|
+
const urlMatch = window.location.href.match(/#Query_(\d+)/);
|
53
|
+
if (urlMatch && urlMatch.length > 1) {
|
54
|
+
const queryNumber = +urlMatch[1];
|
55
|
+
const index = this.props.data.queries.findIndex(query => query.number === queryNumber);
|
56
|
+
this.setState({ queryIndex: index + 1 });
|
57
|
+
}
|
58
|
+
window.addEventListener('scroll', this.scrollListener);
|
59
|
+
$('a[href^="#Query_"]').on('click', this.animateAnchorElements);
|
60
|
+
}
|
61
|
+
componentWillUnmount() {
|
62
|
+
window.removeEventListener('scroll', this.scrollListener);
|
63
|
+
}
|
64
|
+
componentDidUpdate(prevProps) {
|
65
|
+
if (this.props.allQueriesLoaded && !prevProps.allQueriesLoaded) {
|
66
|
+
/**
|
67
|
+
* storing all query elements in this variable once they all become available so we don't have to fetch them all over again
|
68
|
+
*/
|
69
|
+
this.queryElems = Array.from(document.querySelectorAll('.resultn'));
|
70
|
+
}
|
71
|
+
}
|
72
|
+
|
73
|
+
|
12
74
|
/**
|
13
|
-
*
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
75
|
+
* to avoid unnecessary computations, we debounce the scroll listener so it only fires after user has stopped scrolling for some milliseconds
|
76
|
+
*/
|
77
|
+
scrollListener() {
|
78
|
+
this.debounceScrolling(this.setVisibleQueryIndex, 500);
|
79
|
+
}
|
80
|
+
|
81
|
+
debounceScrolling(callback, timer) {
|
82
|
+
if (this.timeout) {
|
83
|
+
clearTimeout(this.timeout);
|
84
|
+
}
|
85
|
+
this.timeout = setTimeout(callback, timer);
|
86
|
+
}
|
20
87
|
|
88
|
+
/**
|
89
|
+
* This method makes the page aware of what query is visible so that clicking previous / next button at any point
|
90
|
+
* navigates to the proper query
|
91
|
+
*/
|
92
|
+
setVisibleQueryIndex() {
|
93
|
+
const queryElems = this.queryElems.length ? this.queryElems : Array.from(document.querySelectorAll('.resultn'));
|
94
|
+
const hits = Array.from(document.querySelectorAll('.hit[id^=Query_]'));
|
95
|
+
// get the first visible element and marks it as the current query
|
96
|
+
const topmostEl = queryElems.find(this.isElementInViewPort) || hits.find(this.isElementInViewPort);
|
97
|
+
if (topmostEl) {
|
98
|
+
const queryIndex = Number(topmostEl.id.match(/Query_(\d+)/)[1]);
|
99
|
+
let hash = `#Query_${queryIndex}`;
|
100
|
+
// if we can guarantee that the browser can handle change in url hash without the page jumping,
|
101
|
+
// then we update the url hash after scroll. else, hash is only updated on click of next or prev button
|
102
|
+
if (window.history.pushState) {
|
103
|
+
window.history.pushState(null, null, hash);
|
104
|
+
}
|
105
|
+
this.setState({ queryIndex });
|
106
|
+
}
|
107
|
+
}
|
108
|
+
animateAnchorElements(e) {
|
109
|
+
// allow normal behavior in test mode to prevent warnings or errors from jquery
|
110
|
+
if (isTestMode()) return;
|
111
|
+
e.preventDefault();
|
112
|
+
$('html, body').animate({
|
113
|
+
scrollTop: $(this.hash).offset().top
|
114
|
+
}, 300);
|
115
|
+
if (window.history.pushState) {
|
116
|
+
window.history.pushState(null, null, this.hash);
|
117
|
+
} else {
|
118
|
+
window.location.hash = this.hash;
|
119
|
+
}
|
120
|
+
}
|
121
|
+
isElementInViewPort(elem) {
|
122
|
+
const { top, left, right, bottom } = elem.getBoundingClientRect();
|
123
|
+
return (
|
124
|
+
top >= 0 &&
|
125
|
+
left >= 0 &&
|
126
|
+
bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
|
127
|
+
right <= (window.innerWidth || document.documentElement.clientWidth)
|
128
|
+
);
|
129
|
+
}
|
130
|
+
/**
|
131
|
+
* Clear sessionStorage - useful to initiate a new search in the same tab.
|
132
|
+
* Passing sessionStorage.clear directly as onclick callback didn't work
|
133
|
+
* (on macOS Chrome).
|
134
|
+
*/
|
135
|
+
clearSession() {
|
136
|
+
sessionStorage.clear();
|
137
|
+
}
|
138
|
+
/**
|
139
|
+
*
|
140
|
+
* handle next and previous query button clicks
|
141
|
+
*/
|
142
|
+
handleQueryIndexChange(nextQuery) {
|
143
|
+
if (nextQuery < 1 || nextQuery > this.props.data.queries.length) return;
|
144
|
+
const anchorEl = document.createElement('a');
|
145
|
+
//indexing at [nextQuery - 1] because array is 0-indexed
|
146
|
+
anchorEl.setAttribute('href', '#Query_' + this.props.data.queries[nextQuery - 1].number);
|
147
|
+
anchorEl.setAttribute('hidden', true);
|
148
|
+
document.body.appendChild(anchorEl);
|
149
|
+
// add smooth scrolling animation with jquery
|
150
|
+
$(anchorEl).on('click', this.animateAnchorElements);
|
151
|
+
anchorEl.click();
|
152
|
+
document.body.removeChild(anchorEl);
|
153
|
+
this.setState({ queryIndex: nextQuery });
|
154
|
+
}
|
21
155
|
/**
|
22
156
|
* Event-handler for downloading fasta of all hits.
|
23
157
|
*/
|
24
|
-
downloadFastaOfAll
|
158
|
+
downloadFastaOfAll() {
|
25
159
|
var sequence_ids = [];
|
26
160
|
this.props.data.queries.forEach(
|
27
161
|
(query) => query.hits.forEach(
|
@@ -29,91 +163,61 @@ export default React.createClass({
|
|
29
163
|
var database_ids = this.props.data.querydb.map((querydb) => querydb.id);
|
30
164
|
downloadFASTA(sequence_ids, database_ids);
|
31
165
|
return false;
|
32
|
-
}
|
166
|
+
}
|
33
167
|
|
34
168
|
/**
|
35
169
|
* Handles downloading fasta of selected hits.
|
36
170
|
*/
|
37
|
-
downloadFastaOfSelected
|
171
|
+
downloadFastaOfSelected() {
|
38
172
|
var sequence_ids = $('.hit-links :checkbox:checked').map(function () {
|
39
173
|
return this.value;
|
40
174
|
}).get();
|
41
175
|
var database_ids = _.map(this.props.data.querydb, _.iteratee('id'));
|
42
176
|
downloadFASTA(sequence_ids, database_ids);
|
43
177
|
return false;
|
44
|
-
}
|
178
|
+
}
|
45
179
|
|
46
|
-
downloadAlignmentOfAll: function() {
|
47
|
-
// Get number of hits and array of all hsps.
|
48
|
-
var num_hits = 0;
|
49
|
-
var hsps_arr = [];
|
50
|
-
this.props.data.queries.forEach(
|
51
|
-
(query) => query.hits.forEach(
|
52
|
-
(hit) => {
|
53
|
-
num_hits++;
|
54
|
-
hit.hsps.forEach((hsp) => {
|
55
|
-
hsp.query_id = query.id;
|
56
|
-
hsp.hit_id = hit.id;
|
57
|
-
hsps_arr.push(hsp);
|
58
|
-
});
|
59
|
-
}
|
60
|
-
)
|
61
|
-
);
|
62
180
|
|
63
|
-
var aln_exporter = new AlignmentExporter();
|
64
|
-
var file_name = `alignment-${num_hits}_hits`;
|
65
|
-
aln_exporter.export_alignments(hsps_arr, file_name);
|
66
|
-
return false;
|
67
|
-
},
|
68
181
|
|
69
|
-
downloadAlignmentOfSelected: function () {
|
70
|
-
var sequence_ids = $('.hit-links :checkbox:checked').map(function () {
|
71
|
-
return this.value;
|
72
|
-
}).get();
|
73
|
-
var hsps_arr = [];
|
74
|
-
var aln_exporter = new AlignmentExporter();
|
75
|
-
console.log('check '+sequence_ids.toString());
|
76
|
-
_.each(this.props.data.queries, _.bind(function (query) {
|
77
|
-
_.each(query.hits, function (hit) {
|
78
|
-
if (_.indexOf(sequence_ids, hit.id) != -1) {
|
79
|
-
_.each(hit.hsps, function (hsp) {
|
80
|
-
hsp.hit_id = hit.id;
|
81
|
-
hsp.query_id = query.id;
|
82
|
-
hsps_arr.push(hsp);
|
83
|
-
});
|
84
|
-
}
|
85
|
-
});
|
86
|
-
}, this));
|
87
|
-
aln_exporter.export_alignments(hsps_arr, 'alignment-'+sequence_ids.length+'_hits');
|
88
|
-
return false;
|
89
|
-
},
|
90
182
|
|
183
|
+
/**
|
184
|
+
* Handles copying the URL into the user's clipboard. Modified from: https://stackoverflow.com/a/49618964/18117380
|
185
|
+
* Hides the 'Copied!' tooltip after 3 seconds
|
186
|
+
*/
|
91
187
|
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
);
|
100
|
-
|
188
|
+
copyURL() {
|
189
|
+
var element = document.createElement('input');
|
190
|
+
var url = window.location.href;
|
191
|
+
document.body.appendChild(element);
|
192
|
+
element.value = url;
|
193
|
+
element.select();
|
194
|
+
document.execCommand('copy');
|
195
|
+
document.body.removeChild(element);
|
196
|
+
|
197
|
+
setTimeout(function () {
|
198
|
+
$('#copyURL')._tooltip('destroy');
|
199
|
+
}, 3000);
|
200
|
+
}
|
101
201
|
|
102
|
-
|
202
|
+
shareCloudInit() {
|
203
|
+
this.refs.cloudShareModal.show();
|
204
|
+
}
|
205
|
+
|
206
|
+
topPanelJSX() {
|
103
207
|
var path = location.pathname.split('/');
|
104
208
|
// Get job id.
|
105
209
|
var job_id = path.pop();
|
106
210
|
// Deriving rootURL this way is required for subURI deployments
|
107
211
|
// - we cannot just send to '/'.
|
108
212
|
var rootURL = path.join('/');
|
109
|
-
|
110
213
|
return (
|
111
214
|
<div className="sidebar-top-panel">
|
112
215
|
<div className="section-header-sidebar">
|
113
216
|
<h4>
|
114
|
-
{
|
217
|
+
{this.summaryString()}
|
115
218
|
</h4>
|
116
219
|
</div>
|
220
|
+
{this.props.data.queries.length > 12 && this.queryIndexButtons()}
|
117
221
|
<div>
|
118
222
|
<a href={`${rootURL}/?job_id=${job_id}`}>
|
119
223
|
<i className="fa fa-pencil"></i> Edit search
|
@@ -124,12 +228,12 @@ export default React.createClass({
|
|
124
228
|
<i className="fa fa-file-o"></i> New search
|
125
229
|
</a>
|
126
230
|
</div>
|
127
|
-
{
|
231
|
+
{this.props.shouldShowIndex && this.indexJSX()}
|
128
232
|
</div>
|
129
233
|
);
|
130
|
-
}
|
234
|
+
}
|
131
235
|
|
132
|
-
summaryString
|
236
|
+
summaryString() {
|
133
237
|
var program = this.props.data.program;
|
134
238
|
var numqueries = this.props.data.queries.length;
|
135
239
|
var numquerydb = this.props.data.querydb.length;
|
@@ -139,12 +243,31 @@ export default React.createClass({
|
|
139
243
|
numqueries + ' ' + (numqueries > 1 ? 'queries' : 'query') + ', ' +
|
140
244
|
numquerydb + ' ' + (numquerydb > 1 ? 'databases' : 'database')
|
141
245
|
);
|
142
|
-
}
|
246
|
+
}
|
247
|
+
|
248
|
+
queryIndexButtons() {
|
249
|
+
const buttonStyle = {
|
250
|
+
outline: 'none', border: 'none', background: 'none'
|
251
|
+
};
|
252
|
+
const buttonClasses = 'btn-link nowrap-ellipsis hover-bold';
|
253
|
+
|
254
|
+
const handlePreviousBtnClick = () => this.handleQueryIndexChange(this.state.queryIndex - 1);
|
255
|
+
const handleNextBtnClick = () => this.handleQueryIndexChange(this.state.queryIndex + 1);
|
143
256
|
|
144
|
-
|
257
|
+
// eslint-disable-next-line no-unused-vars
|
258
|
+
const NavButton = ({ text, onClick }) => (
|
259
|
+
<button className={buttonClasses} onClick={onClick} style={buttonStyle}>{text}</button>
|
260
|
+
);
|
261
|
+
return <div style={{ display: 'flex', width: '100%', margin: '7px 0' }}>
|
262
|
+
{this.state.queryIndex > 1 && <NavButton text="Previous Query" onClick={handlePreviousBtnClick} />}
|
263
|
+
{this.state.queryIndex > 1 && this.state.queryIndex < this.props.data.queries.length && <span className="line">|</span>}
|
264
|
+
{this.state.queryIndex < this.props.data.queries.length && <NavButton onClick={handleNextBtnClick} text="Next Query" />}
|
265
|
+
</div>;
|
266
|
+
}
|
267
|
+
indexJSX() {
|
145
268
|
return <ul className="nav hover-reset active-bold"> {
|
146
|
-
_.map(this.props.data.queries, (query)=> {
|
147
|
-
return <li key={'Side_bar_'+query.id}>
|
269
|
+
_.map(this.props.data.queries, (query) => {
|
270
|
+
return <li key={'Side_bar_' + query.id}>
|
148
271
|
<a className="btn-link nowrap-ellipsis hover-bold"
|
149
272
|
title={'Query= ' + query.id + ' ' + query.title}
|
150
273
|
href={'#Query_' + query.number}>
|
@@ -154,9 +277,9 @@ export default React.createClass({
|
|
154
277
|
})
|
155
278
|
}
|
156
279
|
</ul>;
|
157
|
-
}
|
280
|
+
}
|
158
281
|
|
159
|
-
downloadsPanelJSX
|
282
|
+
downloadsPanelJSX() {
|
160
283
|
return (
|
161
284
|
<div className="downloads">
|
162
285
|
<div className="section-header-sidebar">
|
@@ -182,14 +305,12 @@ export default React.createClass({
|
|
182
305
|
</li>
|
183
306
|
}
|
184
307
|
<li>
|
185
|
-
<a href="#" className={`btn-link download-alignment-of-all ${!this.props.atLeastOneHit && 'disabled'}`}
|
186
|
-
onClick={this.downloadAlignmentOfAll}>
|
308
|
+
<a href="#" className={`btn-link download-alignment-of-all ${!this.props.atLeastOneHit && 'disabled'}`}>
|
187
309
|
Alignment of all hits
|
188
310
|
</a>
|
189
311
|
</li>
|
190
312
|
<li>
|
191
|
-
<a href="#" className="btn-link download-alignment-of-selected disabled"
|
192
|
-
onClick={this.downloadAlignmentOfSelected}>
|
313
|
+
<a href="#" className="btn-link download-alignment-of-selected disabled">
|
193
314
|
Alignment of <span className="text-bold"></span> selected hit(s)
|
194
315
|
</a>
|
195
316
|
</li>
|
@@ -229,6 +350,64 @@ export default React.createClass({
|
|
229
350
|
</ul>
|
230
351
|
</div>
|
231
352
|
);
|
232
|
-
}
|
233
|
-
|
353
|
+
}
|
354
|
+
|
355
|
+
sharingPanelJSX() {
|
356
|
+
return (
|
357
|
+
<div className="sharing-panel">
|
358
|
+
<div className="section-header-sidebar">
|
359
|
+
<h4>
|
360
|
+
Share results
|
361
|
+
</h4>
|
362
|
+
</div>
|
363
|
+
<ul className="nav">
|
364
|
+
{!this.props.cloudSharingEnabled &&
|
365
|
+
<li>
|
366
|
+
<a id="copyURL" className="btn-link copy-URL cursor-pointer" data-toggle="tooltip"
|
367
|
+
onClick={this.copyURL}>
|
368
|
+
<i className="fa fa-copy"></i> Copy URL to clipboard
|
369
|
+
</a>
|
370
|
+
</li>
|
371
|
+
}
|
372
|
+
{!this.props.cloudSharingEnabled &&
|
373
|
+
<li>
|
374
|
+
<a id="sendEmail" className="btn-link email-URL cursor-pointer" data-toggle="tooltip"
|
375
|
+
title="Send by email" href={asMailtoHref(this.props.data.querydb, this.props.data.program, this.props.data.queries.length, window.location.href)}
|
376
|
+
target="_blank" rel="noopener noreferrer">
|
377
|
+
<i className="fa fa-envelope"></i> Send by email
|
378
|
+
</a>
|
379
|
+
</li>
|
380
|
+
}
|
381
|
+
{this.props.cloudSharingEnabled &&
|
382
|
+
<li>
|
383
|
+
<button className="btn-link cloud-Post cursor-pointer" data-toggle="tooltip"
|
384
|
+
title="Upload results to SequenceServer Cloud where it will become accessable
|
385
|
+
to everyone who has a link." onClick={this.shareCloudInit}>
|
386
|
+
<i className="fa fa-cloud"></i> Share to cloud
|
387
|
+
</button>
|
388
|
+
</li>
|
389
|
+
}
|
390
|
+
</ul>
|
391
|
+
{
|
392
|
+
<CloudShareModal
|
393
|
+
ref="cloudShareModal"
|
394
|
+
querydb={this.props.data.querydb}
|
395
|
+
program={this.props.data.program}
|
396
|
+
queryLength={this.props.data.queries.length}
|
397
|
+
/>
|
398
|
+
}
|
399
|
+
</div>
|
400
|
+
);
|
401
|
+
}
|
402
|
+
|
403
|
+
render() {
|
404
|
+
return (
|
405
|
+
<div className="sidebar">
|
406
|
+
{this.topPanelJSX()}
|
407
|
+
{this.downloadsPanelJSX()}
|
408
|
+
{this.sharingPanelJSX()}
|
409
|
+
</div>
|
410
|
+
);
|
411
|
+
}
|
412
|
+
}
|
234
413
|
|
@@ -0,0 +1,60 @@
|
|
1
|
+
/* eslint-disable no-unused-vars */
|
2
|
+
/* eslint-disable no-undef */
|
3
|
+
import { render, screen, fireEvent, waitFor, findByText, getByText } from '@testing-library/react';
|
4
|
+
import { Databases } from '../databases';
|
5
|
+
import data from './mock_data/databases.json';
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
describe('DATABASES COMPONENT', () => {
|
10
|
+
test('should render unique database categories', () => {
|
11
|
+
render(<Databases databases={data.database} />);
|
12
|
+
expect(screen.getByRole('heading', { name: /nucleotide databases/i })).toBeInTheDocument();
|
13
|
+
expect(screen.getByRole('heading', { name: /protein databases/i })).toBeInTheDocument();
|
14
|
+
});
|
15
|
+
|
16
|
+
test('should list databases under respective categories', () => {
|
17
|
+
const { container } = render(<Databases databases={data.database} />);
|
18
|
+
expect(container.querySelector('.databases.nucleotide').children).toHaveLength(3);
|
19
|
+
expect(container.querySelector('.databases.protein').children).toHaveLength(4);
|
20
|
+
|
21
|
+
});
|
22
|
+
|
23
|
+
test('clicking select all on a database should select all its children', () => {
|
24
|
+
const { container } = render(<Databases databases={data.database} onDatabaseTypeChanged={() => { }} />);
|
25
|
+
|
26
|
+
// select all nucleotide databases
|
27
|
+
const nucleotideSelectAllBtn = screen.getByRole('heading', { name: /nucleotide databases/i }).parentElement.querySelector('button');
|
28
|
+
fireEvent.click(nucleotideSelectAllBtn);
|
29
|
+
const nucleotideCheckboxes = container.querySelector('.databases.nucleotide').querySelectorAll('input[type=checkbox]');
|
30
|
+
|
31
|
+
// all nucleotide databases should be checked
|
32
|
+
nucleotideCheckboxes.forEach((checkbox) => {
|
33
|
+
expect(checkbox).toBeChecked();
|
34
|
+
});
|
35
|
+
|
36
|
+
// select all protein databases
|
37
|
+
const proteinSelectAllBtn = screen.getByRole('heading', { name: /protein databases/i }).parentElement.querySelector('button');
|
38
|
+
fireEvent.click(proteinSelectAllBtn);
|
39
|
+
const proteinCheckboxes = container.querySelector('.databases.nucleotide').querySelectorAll('input[type=checkbox]');
|
40
|
+
// all protein databases should be checked
|
41
|
+
proteinCheckboxes.forEach((checkbox) => {
|
42
|
+
expect(checkbox).toBeChecked();
|
43
|
+
});
|
44
|
+
});
|
45
|
+
|
46
|
+
test('checking any item of a database type should disable other database type', () => {
|
47
|
+
const mockFunction = jest.fn(() => { });
|
48
|
+
const { container } = render(<Databases databases={data.database} onDatabaseTypeChanged={mockFunction} />);
|
49
|
+
|
50
|
+
//select a proteinn database
|
51
|
+
fireEvent.click(screen.getByRole('checkbox', { name: /2020-11 Swiss-Prot insecta/i }));
|
52
|
+
// function has to be called when database has been selected
|
53
|
+
expect(mockFunction).toHaveBeenCalled();
|
54
|
+
// all nucleotide databses should be disabled
|
55
|
+
const nucleotideCheckboxes = container.querySelector('.databases.nucleotide').querySelectorAll('input[type=checkbox]');
|
56
|
+
nucleotideCheckboxes.forEach(checkbox => {
|
57
|
+
expect(checkbox).toBeDisabled();
|
58
|
+
});
|
59
|
+
});
|
60
|
+
});
|
@@ -0,0 +1,91 @@
|
|
1
|
+
{
|
2
|
+
"query": null,
|
3
|
+
"database": [
|
4
|
+
{
|
5
|
+
"name": "/spec/database/v5/funky_ids/funky_ids.fa",
|
6
|
+
"title": "funky ids (v5)",
|
7
|
+
"type": "nucleotide",
|
8
|
+
"nsequences": "8",
|
9
|
+
"ncharacters": "312",
|
10
|
+
"updated_on": "Aug 13, 2020 11:23 AM",
|
11
|
+
"format": "5",
|
12
|
+
"categories": ["funky_ids"],
|
13
|
+
"id": "b71a337accf1e099aace6c859fba5e99"
|
14
|
+
},
|
15
|
+
|
16
|
+
{
|
17
|
+
"name": "/spec/database/v5/sample/genome/Solenopsis_invicta/Solenopsis_invicta_gnG_subset.fasta",
|
18
|
+
"title": "Solenopsis invicta gnG subset",
|
19
|
+
"type": "nucleotide",
|
20
|
+
"nsequences": "8",
|
21
|
+
"ncharacters": "39185542",
|
22
|
+
"updated_on": "Jun 17, 2020 4:51 PM",
|
23
|
+
"format": "5",
|
24
|
+
"categories": ["sample", "genome", "Solenopsis_invicta"],
|
25
|
+
"id": "c0bb1dadfeda93ea1f53732109df0959"
|
26
|
+
},
|
27
|
+
|
28
|
+
{
|
29
|
+
"name": "/spec/database/v5/sample/proteins/Solenopsis_invicta/Sinvicta2-2-3.prot.subset.fasta",
|
30
|
+
"title": "Sinvicta 2-2-3 prot subset",
|
31
|
+
"type": "protein",
|
32
|
+
"nsequences": "1189",
|
33
|
+
"ncharacters": "280047",
|
34
|
+
"updated_on": "Jun 17, 2020 4:52 PM",
|
35
|
+
"format": "5",
|
36
|
+
"categories": ["sample", "proteins", "Solenopsis_invicta"],
|
37
|
+
"id": "900b87a3e7a4d1f3034b97483231f520"
|
38
|
+
},
|
39
|
+
{
|
40
|
+
"name": "/spec/database/v5/sample/proteins/uniprot/2020-11-Swiss-Prot_insecta.fasta",
|
41
|
+
"title": " 2020-11 Swiss-Prot insecta",
|
42
|
+
"type": "protein",
|
43
|
+
"nsequences": "9383",
|
44
|
+
"ncharacters": "4062633",
|
45
|
+
"updated_on": "Nov 25, 2020 12:45 PM",
|
46
|
+
"format": "5",
|
47
|
+
"categories": ["sample", "proteins", "uniprot"],
|
48
|
+
"id": "fe5c9f0ac98f8d06e8099327c3d14523"
|
49
|
+
},
|
50
|
+
{
|
51
|
+
"name": "/spec/database/v5/sample/transcripts/Solenopsis_invicta/Sinvicta2-2-3.cdna.subset.fasta",
|
52
|
+
"title": "Sinvicta 2-2-3 cdna subset",
|
53
|
+
"type": "nucleotide",
|
54
|
+
"nsequences": "473",
|
55
|
+
"ncharacters": "287752",
|
56
|
+
"updated_on": "Jun 17, 2020 4:52 PM",
|
57
|
+
"format": "5",
|
58
|
+
"categories": ["sample", "transcripts", "Solenopsis_invicta"],
|
59
|
+
"id": "045f6f2637f2776f95c93ed2f62ebc51"
|
60
|
+
},
|
61
|
+
{
|
62
|
+
"name": "/spec/database/v5/using_blastdb_aliastool/2020-11-Swiss-Prot_insecta_subset_taxid_102803",
|
63
|
+
"title": "2020-11-Swiss-Prot insecta (subset taxid 102803)",
|
64
|
+
"type": "protein",
|
65
|
+
"nsequences": "1",
|
66
|
+
"ncharacters": "253",
|
67
|
+
"updated_on": "Nov 25, 2020 12:45 PM",
|
68
|
+
"format": "5",
|
69
|
+
"categories": ["using_blastdb_aliastool"],
|
70
|
+
"id": "7ad2f50353978114c971d50edf92584e"
|
71
|
+
},
|
72
|
+
{
|
73
|
+
"name": "/spec/database/v5/without_parse_seqids/without_parse_seqids.fa",
|
74
|
+
"title": "without_parse_seqids.fa",
|
75
|
+
"type": "protein",
|
76
|
+
"nsequences": "2",
|
77
|
+
"ncharacters": "385",
|
78
|
+
"updated_on": "Jun 2, 2021 10:37 AM",
|
79
|
+
"format": "5",
|
80
|
+
"categories": ["without_parse_seqids"],
|
81
|
+
"id": "0bb59948ffac3563fc32b6d0272789bb"
|
82
|
+
}
|
83
|
+
],
|
84
|
+
"options": {
|
85
|
+
"blastn": { "default": ["-task blastn", "-evalue 1e-5"] },
|
86
|
+
"blastp": { "default": ["-evalue 1e-5"] },
|
87
|
+
"blastx": { "default": ["-evalue 1e-5"] },
|
88
|
+
"tblastx": { "default": ["-evalue 1e-5"] },
|
89
|
+
"tblastn": { "default": ["-evalue 1e-5"] }
|
90
|
+
}
|
91
|
+
}
|