sequenceserver 2.0.0 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (667) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sequenceserver/api_errors.rb +24 -2
  3. data/lib/sequenceserver/blast/job.rb +41 -7
  4. data/lib/sequenceserver/blast/report.rb +36 -30
  5. data/lib/sequenceserver/config.rb +49 -27
  6. data/lib/sequenceserver/job.rb +13 -3
  7. data/lib/sequenceserver/job_remover.rb +25 -29
  8. data/lib/sequenceserver/refinements.rb +15 -0
  9. data/lib/sequenceserver/routes.rb +69 -7
  10. data/lib/sequenceserver/sequence.rb +8 -7
  11. data/lib/sequenceserver/sys.rb +2 -2
  12. data/lib/sequenceserver/version.rb +1 -1
  13. data/lib/sequenceserver/zip_file_generator.rb +56 -0
  14. data/lib/sequenceserver.rb +1 -0
  15. data/public/config.js +149 -143
  16. data/public/css/sequenceserver.css +44 -3
  17. data/public/css/sequenceserver.min.css +3 -3
  18. data/public/js/alignment_exporter.js +16 -8
  19. data/public/js/circos.js +370 -234
  20. data/public/js/cloud_share_modal.js +216 -0
  21. data/public/js/databases.js +144 -0
  22. data/public/js/databases_tree.js +42 -113
  23. data/public/js/dnd.js +164 -0
  24. data/public/js/error_modal.js +4 -11
  25. data/public/js/exporter.js +7 -3
  26. data/public/js/form.js +260 -0
  27. data/public/js/grapher.js +113 -106
  28. data/public/js/hit.js +80 -67
  29. data/public/js/hits_overview.js +2 -2
  30. data/public/js/hsp.js +343 -288
  31. data/public/js/jquery_world.js +4 -4
  32. data/public/js/mailto.js +36 -0
  33. data/public/js/options.js +84 -0
  34. data/public/js/query.js +319 -59
  35. data/public/js/report.js +315 -269
  36. data/public/js/report_root.js +75 -0
  37. data/public/js/search.js +28 -1011
  38. data/public/js/search_button.js +195 -0
  39. data/public/js/sequence.js +2409 -2411
  40. data/public/js/sequence_modal.js +152 -159
  41. data/public/js/share_url.js +23 -0
  42. data/public/js/sidebar.js +262 -83
  43. data/public/js/tests/database.spec.js +60 -0
  44. data/public/js/tests/mock_data/databases.json +91 -0
  45. data/public/js/tests/mock_data/long_response.json +269 -0
  46. data/public/js/tests/mock_data/short_response.json +2240 -0
  47. data/public/js/tests/report.spec.js +99 -0
  48. data/public/js/tests/search_button.spec.js +14 -0
  49. data/public/js/tests/search_query.spec.js +41 -0
  50. data/public/packages/circosJS@1.7.0.js +1640 -0
  51. data/public/packages/jquery-ui@1.11.4.js +16624 -0
  52. data/public/sequenceserver-report.min.js +2425 -19
  53. data/public/sequenceserver-search.min.js +2337 -15
  54. data/public/vendor/github/jspm/nodelibs-assert@0.1.0/index.js +2 -0
  55. data/public/vendor/github/jspm/{nodelibs-buffer@0.1.0 → nodelibs-assert@0.1.0}/package.json +1 -1
  56. data/public/vendor/github/jspm/nodelibs-assert@0.1.0.js +1 -0
  57. data/public/vendor/github/jspm/nodelibs-buffer@0.1.1/package.json +6 -0
  58. data/public/vendor/github/jspm/nodelibs-buffer@0.1.1.js +1 -0
  59. data/public/vendor/github/jspm/{nodelibs-process@0.1.1 → nodelibs-process@0.1.2}/package.json +2 -2
  60. data/public/vendor/github/jspm/nodelibs-process@0.1.2.js +1 -0
  61. data/public/vendor/github/jspm/nodelibs-vm@0.1.0/index.js +2 -0
  62. data/public/vendor/github/jspm/nodelibs-vm@0.1.0/package.json +6 -0
  63. data/public/vendor/github/jspm/nodelibs-vm@0.1.0.js +1 -0
  64. data/public/vendor/npm/assert@1.5.0/CHANGELOG.md +8 -0
  65. data/public/vendor/npm/assert@1.5.0/README.md +105 -0
  66. data/public/vendor/npm/assert@1.5.0/assert.js +327 -0
  67. data/public/vendor/npm/assert@1.5.0/package.json +32 -0
  68. data/public/vendor/npm/assert@1.5.0/test.js +288 -0
  69. data/public/vendor/npm/assert@1.5.0.js +1 -0
  70. data/public/vendor/npm/{base64-js@0.0.8/LICENSE.MIT → base64-js@1.5.1/LICENSE} +1 -1
  71. data/public/vendor/npm/{base64-js@0.0.8 → base64-js@1.5.1}/README.md +10 -7
  72. data/public/vendor/npm/base64-js@1.5.1/base64js.min.js +3 -0
  73. data/public/vendor/npm/base64-js@1.5.1/index.d.ts +3 -0
  74. data/public/vendor/npm/base64-js@1.5.1/index.js +151 -0
  75. data/public/vendor/npm/base64-js@1.5.1/package.json +47 -0
  76. data/public/vendor/npm/base64-js@1.5.1.js +1 -0
  77. data/public/vendor/npm/buffer@5.7.1/AUTHORS.md +70 -0
  78. data/public/vendor/npm/{buffer@3.4.3 → buffer@5.7.1}/README.md +111 -41
  79. data/public/vendor/npm/buffer@5.7.1/index.d.ts +186 -0
  80. data/public/vendor/npm/buffer@5.7.1/index.js +1817 -0
  81. data/public/vendor/npm/buffer@5.7.1/package.json +96 -0
  82. data/public/vendor/npm/buffer@5.7.1.js +1 -0
  83. data/public/vendor/npm/core-util-is@1.0.3/LICENSE +19 -0
  84. data/public/vendor/npm/core-util-is@1.0.3/lib/util.js +64 -0
  85. data/public/vendor/npm/{core-util-is@1.0.1 → core-util-is@1.0.3}/package.json +13 -1
  86. data/public/vendor/npm/core-util-is@1.0.3.js +1 -0
  87. data/public/vendor/npm/events@1.0.2/tests/add-listeners.js +2 -2
  88. data/public/vendor/npm/events@1.0.2/tests/check-listener-leaks.js +3 -3
  89. data/public/vendor/npm/events@1.0.2/tests/common.js +1 -1
  90. data/public/vendor/npm/events@1.0.2/tests/index.js +13 -13
  91. data/public/vendor/npm/events@1.0.2/tests/listeners-side-effects.js +2 -2
  92. data/public/vendor/npm/events@1.0.2/tests/listeners.js +2 -2
  93. data/public/vendor/npm/events@1.0.2/tests/max-listeners.js +2 -2
  94. data/public/vendor/npm/events@1.0.2/tests/modify-in-emit.js +2 -2
  95. data/public/vendor/npm/events@1.0.2/tests/num-args.js +2 -2
  96. data/public/vendor/npm/events@1.0.2/tests/once.js +2 -2
  97. data/public/vendor/npm/events@1.0.2/tests/remove-all-listeners.js +3 -3
  98. data/public/vendor/npm/events@1.0.2/tests/remove-listeners.js +3 -3
  99. data/public/vendor/npm/events@1.0.2/tests/set-max-listeners-side-effects.js +2 -2
  100. data/public/vendor/npm/events@1.0.2/tests/subclass.js +3 -3
  101. data/public/vendor/npm/events@1.0.2.js +1 -1
  102. data/public/vendor/npm/ieee754@1.2.1/LICENSE +11 -0
  103. data/public/vendor/npm/{ieee754@1.1.6 → ieee754@1.2.1}/README.md +12 -8
  104. data/public/vendor/npm/ieee754@1.2.1/index.d.ts +10 -0
  105. data/public/vendor/npm/{ieee754@1.1.6 → ieee754@1.2.1}/index.js +6 -6
  106. data/public/vendor/npm/ieee754@1.2.1/package.json +52 -0
  107. data/public/vendor/npm/ieee754@1.2.1.js +1 -0
  108. data/public/vendor/npm/{is-array@1.0.1 → indexof@0.0.1}/Makefile +3 -3
  109. data/public/vendor/npm/indexof@0.0.1/Readme.md +15 -0
  110. data/public/vendor/npm/indexof@0.0.1/component.json +10 -0
  111. data/public/vendor/npm/indexof@0.0.1/index.js +11 -0
  112. data/public/vendor/npm/indexof@0.0.1/package.json +12 -0
  113. data/public/vendor/npm/indexof@0.0.1.js +1 -0
  114. data/public/vendor/npm/inherits@2.0.1/inherits.js +1 -1
  115. data/public/vendor/npm/inherits@2.0.1.js +1 -1
  116. data/public/vendor/npm/isarray@0.0.1.js +1 -1
  117. data/public/vendor/npm/js-tokens@4.0.0/index.js +23 -0
  118. data/public/vendor/npm/js-tokens@4.0.0/package.json +30 -0
  119. data/public/vendor/npm/js-tokens@4.0.0.js +1 -0
  120. data/public/vendor/npm/loose-envify@1.4.0/LICENSE +21 -0
  121. data/public/vendor/npm/loose-envify@1.4.0/README.md +45 -0
  122. data/public/vendor/npm/loose-envify@1.4.0/cli.js +12 -0
  123. data/public/vendor/npm/loose-envify@1.4.0/custom.js +3 -0
  124. data/public/vendor/npm/loose-envify@1.4.0/index.js +5 -0
  125. data/public/vendor/npm/loose-envify@1.4.0/loose-envify.js +33 -0
  126. data/public/vendor/npm/loose-envify@1.4.0/package.json +36 -0
  127. data/public/vendor/npm/loose-envify@1.4.0/replace.js +52 -0
  128. data/public/vendor/npm/loose-envify@1.4.0.js +1 -0
  129. data/public/vendor/npm/object-assign@4.1.1/index.js +90 -0
  130. data/public/vendor/npm/object-assign@4.1.1/package.json +42 -0
  131. data/public/vendor/npm/object-assign@4.1.1.js +1 -0
  132. data/public/vendor/npm/path-browserify@0.0.0/index.js +1 -1
  133. data/public/vendor/npm/path-browserify@0.0.0.js +1 -1
  134. data/public/vendor/npm/{process@0.10.1 → process@0.11.10}/README.md +4 -1
  135. data/public/vendor/npm/process@0.11.10/browser.js +184 -0
  136. data/public/vendor/npm/{process@0.10.1 → process@0.11.10}/package.json +10 -1
  137. data/public/vendor/npm/process@0.11.10/test.js +185 -0
  138. data/public/vendor/npm/process@0.11.10.js +1 -0
  139. data/public/vendor/npm/react-dom@18.0.0/LICENSE +21 -0
  140. data/public/vendor/npm/react-dom@18.0.0/README.md +50 -0
  141. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server-legacy.browser.development.js +4771 -0
  142. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server-legacy.browser.production.min.js +85 -0
  143. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server-legacy.node.development.js +4813 -0
  144. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server-legacy.node.production.min.js +1705 -0
  145. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server.browser.development.js +4746 -0
  146. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server.browser.production.min.js +90 -0
  147. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server.node.development.js +4714 -0
  148. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server.node.production.min.js +1746 -0
  149. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-test-utils.development.js +1017 -0
  150. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-test-utils.production.min.js +617 -0
  151. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom.development.js +20092 -0
  152. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom.production.min.js +322 -0
  153. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom.profiling.min.js +364 -0
  154. data/public/vendor/npm/react-dom@18.0.0/client.js +27 -0
  155. data/public/vendor/npm/react-dom@18.0.0/index.js +23 -0
  156. data/public/vendor/npm/react-dom@18.0.0/package.json +62 -0
  157. data/public/vendor/npm/react-dom@18.0.0/profiling.js +23 -0
  158. data/public/vendor/npm/react-dom@18.0.0/server.browser.js +19 -0
  159. data/public/vendor/npm/react-dom@18.0.0/server.js +3 -0
  160. data/public/vendor/npm/react-dom@18.0.0/server.node.js +19 -0
  161. data/public/vendor/npm/react-dom@18.0.0/test-utils.js +9 -0
  162. data/public/vendor/npm/react-dom@18.0.0/umd/react-dom-server-legacy.browser.development.js +4770 -0
  163. data/public/vendor/npm/react-dom@18.0.0/umd/react-dom-server-legacy.browser.production.min.js +72 -0
  164. data/public/vendor/npm/react-dom@18.0.0/umd/react-dom-server.browser.development.js +4745 -0
  165. data/public/vendor/npm/react-dom@18.0.0/umd/react-dom-server.browser.production.min.js +74 -0
  166. data/public/vendor/npm/react-dom@18.0.0/umd/react-dom-test-utils.development.js +1013 -0
  167. data/public/vendor/npm/react-dom@18.0.0/umd/react-dom-test-utils.production.min.js +625 -0
  168. data/public/vendor/npm/react-dom@18.0.0/umd/react-dom.development.js +20106 -0
  169. data/public/vendor/npm/react-dom@18.0.0/umd/react-dom.production.min.js +269 -0
  170. data/public/vendor/npm/react-dom@18.0.0/umd/react-dom.profiling.min.js +285 -0
  171. data/public/vendor/npm/react-dom@18.0.0.js +1 -0
  172. data/public/vendor/npm/react@18.0.0/LICENSE +21 -0
  173. data/public/vendor/npm/react@18.0.0/README.md +13 -0
  174. data/public/vendor/npm/react@18.0.0/cjs/react-jsx-dev-runtime.development.js +837 -0
  175. data/public/vendor/npm/react@18.0.0/cjs/react-jsx-dev-runtime.production.min.js +10 -0
  176. data/public/vendor/npm/react@18.0.0/cjs/react-jsx-dev-runtime.profiling.min.js +10 -0
  177. data/public/vendor/npm/react@18.0.0/cjs/react-jsx-runtime.development.js +849 -0
  178. data/public/vendor/npm/react@18.0.0/cjs/react-jsx-runtime.production.min.js +38 -0
  179. data/public/vendor/npm/react@18.0.0/cjs/react-jsx-runtime.profiling.min.js +38 -0
  180. data/public/vendor/npm/react@18.0.0/cjs/react.development.js +1746 -0
  181. data/public/vendor/npm/react@18.0.0/cjs/react.production.min.js +26 -0
  182. data/public/vendor/npm/react@18.0.0/cjs/react.shared-subset.development.js +10 -0
  183. data/public/vendor/npm/react@18.0.0/cjs/react.shared-subset.production.min.js +12 -0
  184. data/public/vendor/npm/react@18.0.0/index.js +9 -0
  185. data/public/vendor/npm/react@18.0.0/jsx-dev-runtime.js +9 -0
  186. data/public/vendor/npm/react@18.0.0/jsx-runtime.js +9 -0
  187. data/public/vendor/npm/react@18.0.0/package.json +47 -0
  188. data/public/vendor/npm/react@18.0.0/react.shared-subset.js +9 -0
  189. data/public/vendor/npm/react@18.0.0/umd/react.development.js +2186 -0
  190. data/public/vendor/npm/react@18.0.0/umd/react.production.min.js +33 -0
  191. data/public/vendor/npm/react@18.0.0/umd/react.profiling.min.js +33 -0
  192. data/public/vendor/npm/react@18.0.0.js +1 -0
  193. data/public/vendor/npm/readable-stream@1.1.14/LICENSE +18 -0
  194. data/public/vendor/npm/readable-stream@1.1.14/duplex.js +2 -0
  195. data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/lib/_stream_duplex.js +5 -5
  196. data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/lib/_stream_passthrough.js +3 -3
  197. data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/lib/_stream_readable.js +10 -10
  198. data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/lib/_stream_transform.js +4 -4
  199. data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/lib/_stream_writable.js +6 -6
  200. data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/package.json +1 -1
  201. data/public/vendor/npm/readable-stream@1.1.14/passthrough.js +2 -0
  202. data/public/vendor/npm/readable-stream@1.1.14/readable.js +13 -0
  203. data/public/vendor/npm/readable-stream@1.1.14/transform.js +2 -0
  204. data/public/vendor/npm/readable-stream@1.1.14/writable.js +2 -0
  205. data/public/vendor/npm/readable-stream@1.1.14.js +1 -0
  206. data/public/vendor/npm/scheduler@0.21.0/LICENSE +21 -0
  207. data/public/vendor/npm/scheduler@0.21.0/README.md +9 -0
  208. data/public/vendor/npm/scheduler@0.21.0/cjs/scheduler-unstable_mock.development.js +530 -0
  209. data/public/vendor/npm/scheduler@0.21.0/cjs/scheduler-unstable_mock.production.min.js +20 -0
  210. data/public/vendor/npm/scheduler@0.21.0/cjs/scheduler-unstable_post_task.development.js +153 -0
  211. data/public/vendor/npm/scheduler@0.21.0/cjs/scheduler-unstable_post_task.production.min.js +14 -0
  212. data/public/vendor/npm/scheduler@0.21.0/cjs/scheduler.development.js +444 -0
  213. data/public/vendor/npm/scheduler@0.21.0/cjs/scheduler.production.min.js +19 -0
  214. data/public/vendor/npm/scheduler@0.21.0/index.js +9 -0
  215. data/public/vendor/npm/scheduler@0.21.0/package.json +36 -0
  216. data/public/vendor/npm/scheduler@0.21.0/umd/scheduler-unstable_mock.development.js +701 -0
  217. data/public/vendor/npm/scheduler@0.21.0/umd/scheduler-unstable_mock.production.min.js +21 -0
  218. data/public/vendor/npm/scheduler@0.21.0/umd/scheduler.development.js +154 -0
  219. data/public/vendor/npm/scheduler@0.21.0/umd/scheduler.production.min.js +148 -0
  220. data/public/vendor/npm/scheduler@0.21.0/umd/scheduler.profiling.min.js +148 -0
  221. data/public/vendor/npm/scheduler@0.21.0/unstable_mock.js +9 -0
  222. data/public/vendor/npm/scheduler@0.21.0/unstable_post_task.js +9 -0
  223. data/public/vendor/npm/scheduler@0.21.0.js +1 -0
  224. data/public/vendor/npm/stream-browserify@1.0.0/index.js +7 -7
  225. data/public/vendor/npm/stream-browserify@1.0.0/test/buf.js +5 -5
  226. data/public/vendor/npm/stream-browserify@1.0.0.js +1 -1
  227. data/public/vendor/npm/string_decoder@0.10.31/index.js +2 -2
  228. data/public/vendor/npm/string_decoder@0.10.31.js +1 -1
  229. data/public/vendor/npm/util@0.10.3/support/isBuffer.js +1 -1
  230. data/public/vendor/npm/util@0.10.3/test/browser/inspect.js +2 -2
  231. data/public/vendor/npm/util@0.10.3/test/browser/is.js +3 -3
  232. data/public/vendor/npm/util@0.10.3/test/node/debug.js +4 -4
  233. data/public/vendor/npm/util@0.10.3/test/node/format.js +2 -2
  234. data/public/vendor/npm/util@0.10.3/test/node/inspect.js +3 -3
  235. data/public/vendor/npm/util@0.10.3/test/node/log.js +3 -3
  236. data/public/vendor/npm/util@0.10.3/test/node/util.js +3 -3
  237. data/public/vendor/npm/util@0.10.3/util.js +3 -3
  238. data/public/vendor/npm/util@0.10.3.js +1 -1
  239. data/public/vendor/npm/vm-browserify@0.0.4/LICENSE +18 -0
  240. data/public/vendor/npm/vm-browserify@0.0.4/example/run/bundle.js +376 -0
  241. data/public/vendor/npm/vm-browserify@0.0.4/example/run/entry.js +6 -0
  242. data/public/vendor/npm/vm-browserify@0.0.4/example/run/index.html +9 -0
  243. data/public/vendor/npm/vm-browserify@0.0.4/example/run/server.js +6 -0
  244. data/public/vendor/npm/vm-browserify@0.0.4/index.js +139 -0
  245. data/public/vendor/npm/vm-browserify@0.0.4/package.json +46 -0
  246. data/public/vendor/npm/vm-browserify@0.0.4/readme.markdown +67 -0
  247. data/public/vendor/npm/vm-browserify@0.0.4/test/vm.js +34 -0
  248. data/public/vendor/npm/vm-browserify@0.0.4.js +1 -0
  249. data/public/vendor/npm/webshim@1.15.8/Gruntfile.js +4 -4
  250. data/public/vendor/npm/webshim@1.15.8/build/combobuild.js +2 -2
  251. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/color-picker.js +1 -1
  252. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/combos/10.js +1 -1
  253. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/combos/11.js +1 -1
  254. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/combos/17.js +1 -1
  255. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/combos/5.js +1 -1
  256. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/combos/6.js +1 -1
  257. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/combos/9.js +1 -1
  258. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/es6.js +1 -1
  259. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/excanvas.js +1 -1
  260. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/form-number-date-ui.js +1 -1
  261. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/moxie/js/moxie-html4.js +1 -1
  262. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/moxie/js/moxie-swf.js +1 -1
  263. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/sizzle.js +1 -1
  264. data/public/vendor/npm/webshim@1.15.8/js-webshim/minified/shims/es6.js +1 -1
  265. data/public/vendor/npm/webshim@1.15.8/src/shims/color-picker.js +1 -1
  266. data/public/vendor/npm/webshim@1.15.8/src/shims/combos/10.js +1 -1
  267. data/public/vendor/npm/webshim@1.15.8/src/shims/combos/11.js +1 -1
  268. data/public/vendor/npm/webshim@1.15.8/src/shims/combos/17.js +1 -1
  269. data/public/vendor/npm/webshim@1.15.8/src/shims/combos/5.js +1 -1
  270. data/public/vendor/npm/webshim@1.15.8/src/shims/combos/6.js +1 -1
  271. data/public/vendor/npm/webshim@1.15.8/src/shims/combos/9.js +1 -1
  272. data/public/vendor/npm/webshim@1.15.8/src/shims/es6.js +1 -1
  273. data/public/vendor/npm/webshim@1.15.8/src/shims/excanvas.js +1 -1
  274. data/public/vendor/npm/webshim@1.15.8/src/shims/form-number-date-ui.js +1 -1
  275. data/public/vendor/npm/webshim@1.15.8/src/shims/moxie/js/moxie-html4.js +1 -1
  276. data/public/vendor/npm/webshim@1.15.8/src/shims/moxie/js/moxie-swf.js +1 -1
  277. data/public/vendor/npm/webshim@1.15.8/src/shims/sizzle.js +1 -1
  278. data/public/vendor/npm/webshim@1.15.8/tests/dist/jquery.js +1 -1
  279. data/public/vendor/npm/webshim@1.15.8/tests/jquery/unit/core.js +1 -1
  280. data/public/vendor/npm/webshim@1.15.8/tests/jquery/unit/event.js +1388 -711
  281. data/public/vendor/npm/webshim@1.15.8/tests/qunit/qunit.js +1 -1
  282. data/public/vendor/npm/webshim@1.15.8/tests/test-ext/jquery-1-custom.js +1 -1
  283. data/public/vendor/npm/webshim@1.15.8/tests/test-ext/jquery-2-custom.js +1 -1
  284. data/public/vendor/npm/webshim@1.15.8/tests/test-ext/punycode.js +1 -1
  285. data/public/vendor/system-polyfills.js +865 -1
  286. data/views/blastn_options.erb +291 -0
  287. data/views/blastp_options.erb +288 -0
  288. data/views/blastx_options.erb +318 -0
  289. data/views/error.erb +12 -0
  290. data/views/layout.erb +2 -30
  291. data/views/report.erb +0 -8
  292. data/views/search.erb +16 -9
  293. data/views/tblastn_options.erb +266 -0
  294. data/views/tblastx_options.erb +291 -0
  295. metadata +318 -439
  296. data/public/vendor/github/jspm/nodelibs-buffer@0.1.0.js +0 -1
  297. data/public/vendor/github/jspm/nodelibs-module@0.1.0/index.js +0 -1
  298. data/public/vendor/github/jspm/nodelibs-module@0.1.0.js +0 -1
  299. data/public/vendor/github/jspm/nodelibs-process@0.1.1.js +0 -1
  300. data/public/vendor/npm/amdefine@1.0.0/LICENSE +0 -58
  301. data/public/vendor/npm/amdefine@1.0.0/README.md +0 -171
  302. data/public/vendor/npm/amdefine@1.0.0/amdefine.js +0 -200
  303. data/public/vendor/npm/amdefine@1.0.0/intercept.js +0 -24
  304. data/public/vendor/npm/amdefine@1.0.0/package.json +0 -16
  305. data/public/vendor/npm/amdefine@1.0.0.js +0 -1
  306. data/public/vendor/npm/base62@0.1.1/LICENSE +0 -20
  307. data/public/vendor/npm/base62@0.1.1/Readme.md +0 -30
  308. data/public/vendor/npm/base62@0.1.1/base62.js +0 -28
  309. data/public/vendor/npm/base62@0.1.1/package.json +0 -21
  310. data/public/vendor/npm/base62@0.1.1/test/test.js +0 -13
  311. data/public/vendor/npm/base62@0.1.1.js +0 -1
  312. data/public/vendor/npm/base64-js@0.0.8/lib/b64.js +0 -125
  313. data/public/vendor/npm/base64-js@0.0.8/package.json +0 -34
  314. data/public/vendor/npm/base64-js@0.0.8/test/convert.js +0 -39
  315. data/public/vendor/npm/base64-js@0.0.8/test/url-safe.js +0 -15
  316. data/public/vendor/npm/base64-js@0.0.8.js +0 -1
  317. data/public/vendor/npm/buffer@3.4.3/index.js +0 -1533
  318. data/public/vendor/npm/buffer@3.4.3/package.json +0 -67
  319. data/public/vendor/npm/buffer@3.4.3/test/_polyfill.js +0 -152
  320. data/public/vendor/npm/buffer@3.4.3/test/base64.js +0 -33
  321. data/public/vendor/npm/buffer@3.4.3/test/basic.js +0 -58
  322. data/public/vendor/npm/buffer@3.4.3/test/compare.js +0 -53
  323. data/public/vendor/npm/buffer@3.4.3/test/constructor.js +0 -132
  324. data/public/vendor/npm/buffer@3.4.3/test/deprecated.js +0 -21
  325. data/public/vendor/npm/buffer@3.4.3/test/from-string.js +0 -105
  326. data/public/vendor/npm/buffer@3.4.3/test/methods.js +0 -109
  327. data/public/vendor/npm/buffer@3.4.3/test/node/README.txt +0 -1
  328. data/public/vendor/npm/buffer@3.4.3/test/node/test-buffer-ascii.js +0 -20
  329. data/public/vendor/npm/buffer@3.4.3/test/node/test-buffer-bytelength.js +0 -38
  330. data/public/vendor/npm/buffer@3.4.3/test/node/test-buffer-concat.js +0 -26
  331. data/public/vendor/npm/buffer@3.4.3/test/node/test-buffer-indexof.js +0 -78
  332. data/public/vendor/npm/buffer@3.4.3/test/node/test-buffer-inspect.js +0 -31
  333. data/public/vendor/npm/buffer@3.4.3/test/node/test-buffer.js +0 -804
  334. data/public/vendor/npm/buffer@3.4.3/test/node-es6/README.txt +0 -1
  335. data/public/vendor/npm/buffer@3.4.3/test/node-es6/test-buffer-arraybuffer.js +0 -37
  336. data/public/vendor/npm/buffer@3.4.3/test/node-es6/test-buffer-iterator.js +0 -32
  337. data/public/vendor/npm/buffer@3.4.3/test/slice.js +0 -33
  338. data/public/vendor/npm/buffer@3.4.3/test/static.js +0 -32
  339. data/public/vendor/npm/buffer@3.4.3/test/to-string.js +0 -106
  340. data/public/vendor/npm/buffer@3.4.3/test/write.js +0 -90
  341. data/public/vendor/npm/buffer@3.4.3.js +0 -1
  342. data/public/vendor/npm/core-util-is@1.0.1/float.patch +0 -604
  343. data/public/vendor/npm/core-util-is@1.0.1/lib/util.js +0 -66
  344. data/public/vendor/npm/core-util-is@1.0.1/util.js +0 -66
  345. data/public/vendor/npm/core-util-is@1.0.1.js +0 -1
  346. data/public/vendor/npm/envify@3.4.0/README.md +0 -145
  347. data/public/vendor/npm/envify@3.4.0/bin/envify +0 -17
  348. data/public/vendor/npm/envify@3.4.0/custom.js +0 -33
  349. data/public/vendor/npm/envify@3.4.0/index.js +0 -4
  350. data/public/vendor/npm/envify@3.4.0/package.json +0 -35
  351. data/public/vendor/npm/envify@3.4.0/visitors.js +0 -33
  352. data/public/vendor/npm/envify@3.4.0.js +0 -1
  353. data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/bin/esparse.js +0 -90
  354. data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/bin/esvalidate.js +0 -145
  355. data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/esprima.js +0 -6191
  356. data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/package.json +0 -72
  357. data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/test/compat.js +0 -167
  358. data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/test/reflect.js +0 -421
  359. data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/test/run.js +0 -34
  360. data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/test/runner.js +0 -418
  361. data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/test/test.js +0 -34730
  362. data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb.js +0 -1
  363. data/public/vendor/npm/ieee754@1.1.6/LICENSE +0 -56
  364. data/public/vendor/npm/ieee754@1.1.6/package.json +0 -34
  365. data/public/vendor/npm/ieee754@1.1.6/test/basic.js +0 -20
  366. data/public/vendor/npm/ieee754@1.1.6.js +0 -1
  367. data/public/vendor/npm/is-array@1.0.1/History.md +0 -11
  368. data/public/vendor/npm/is-array@1.0.1/Readme.md +0 -27
  369. data/public/vendor/npm/is-array@1.0.1/component.json +0 -13
  370. data/public/vendor/npm/is-array@1.0.1/index.js +0 -33
  371. data/public/vendor/npm/is-array@1.0.1/package.json +0 -10
  372. data/public/vendor/npm/is-array@1.0.1/test/test.html +0 -46
  373. data/public/vendor/npm/is-array@1.0.1.js +0 -1
  374. data/public/vendor/npm/jstransform@10.1.0/LICENSE +0 -201
  375. data/public/vendor/npm/jstransform@10.1.0/README.md +0 -98
  376. data/public/vendor/npm/jstransform@10.1.0/jestEnvironment.js +0 -3
  377. data/public/vendor/npm/jstransform@10.1.0/jestPreprocessor.js +0 -8
  378. data/public/vendor/npm/jstransform@10.1.0/package.json +0 -52
  379. data/public/vendor/npm/jstransform@10.1.0/polyfill/Object.es6.js +0 -54
  380. data/public/vendor/npm/jstransform@10.1.0/src/__tests__/jstransform-test.js +0 -246
  381. data/public/vendor/npm/jstransform@10.1.0/src/__tests__/jstransform-utils-test.js +0 -31
  382. data/public/vendor/npm/jstransform@10.1.0/src/docblock.js +0 -86
  383. data/public/vendor/npm/jstransform@10.1.0/src/jstransform.js +0 -180
  384. data/public/vendor/npm/jstransform@10.1.0/src/utils.js +0 -386
  385. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-arrow-function-visitors-test.js +0 -57
  386. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-call-spread-visitors-test.js +0 -46
  387. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-class-visitors-test.js +0 -463
  388. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-destructuring-visitors-test.js +0 -144
  389. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-es7-object-integration-test.js +0 -40
  390. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-object-concise-method-visitors-test.js +0 -47
  391. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-object-short-notation-visitors-test.js +0 -33
  392. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-rest-param-visitors-test.js +0 -119
  393. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-template-visitors-test.js +0 -138
  394. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es7-rest-property-helpers-test.js +0 -47
  395. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es7-spread-property-visitors-test.js +0 -90
  396. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/gen/generate-type-syntax-test.js +0 -40
  397. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/gen/type-syntax-test.rec.js +0 -846
  398. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/reserved-words-test.js +0 -40
  399. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-alias-syntax-test.js +0 -34
  400. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-class-syntax-test.js +0 -105
  401. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-function-syntax-test.js +0 -126
  402. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-interface-syntax-test.js +0 -29
  403. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-object-method-syntax-test.js +0 -65
  404. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-pattern-syntax-test.js +0 -45
  405. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-syntax-test.js +0 -46
  406. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-variable-declaration-syntax-test.js +0 -102
  407. data/public/vendor/npm/jstransform@10.1.0/visitors/es6-arrow-function-visitors.js +0 -66
  408. data/public/vendor/npm/jstransform@10.1.0/visitors/es6-call-spread-visitors.js +0 -72
  409. data/public/vendor/npm/jstransform@10.1.0/visitors/es6-class-visitors.js +0 -316
  410. data/public/vendor/npm/jstransform@10.1.0/visitors/es6-destructuring-visitors.js +0 -135
  411. data/public/vendor/npm/jstransform@10.1.0/visitors/es6-object-concise-method-visitors.js +0 -28
  412. data/public/vendor/npm/jstransform@10.1.0/visitors/es6-object-short-notation-visitors.js +0 -12
  413. data/public/vendor/npm/jstransform@10.1.0/visitors/es6-rest-param-visitors.js +0 -45
  414. data/public/vendor/npm/jstransform@10.1.0/visitors/es6-template-visitors.js +0 -90
  415. data/public/vendor/npm/jstransform@10.1.0/visitors/es7-rest-property-helpers.js +0 -80
  416. data/public/vendor/npm/jstransform@10.1.0/visitors/es7-spread-property-visitors.js +0 -56
  417. data/public/vendor/npm/jstransform@10.1.0/visitors/reserved-words-helper.js +0 -74
  418. data/public/vendor/npm/jstransform@10.1.0/visitors/reserved-words-visitors.js +0 -30
  419. data/public/vendor/npm/jstransform@10.1.0/visitors/type-syntax.js +0 -118
  420. data/public/vendor/npm/jstransform@10.1.0.js +0 -1
  421. data/public/vendor/npm/process@0.10.1/browser.js +0 -58
  422. data/public/vendor/npm/process@0.10.1.js +0 -1
  423. data/public/vendor/npm/qs@2.4.1/test/stringify.js +0 -162
  424. data/public/vendor/npm/react@0.13.3/README.md +0 -20
  425. data/public/vendor/npm/react@0.13.3/addons.js +0 -2
  426. data/public/vendor/npm/react@0.13.3/dist/JSXTransformer.js +0 -11346
  427. data/public/vendor/npm/react@0.13.3/dist/react-with-addons.js +0 -10483
  428. data/public/vendor/npm/react@0.13.3/dist/react-with-addons.min.js +0 -7297
  429. data/public/vendor/npm/react@0.13.3/dist/react.js +0 -9468
  430. data/public/vendor/npm/react@0.13.3/dist/react.min.js +0 -6764
  431. data/public/vendor/npm/react@0.13.3/lib/AutoFocusMixin.js +0 -9
  432. data/public/vendor/npm/react@0.13.3/lib/BeforeInputEventPlugin.js +0 -197
  433. data/public/vendor/npm/react@0.13.3/lib/CSSCore.js +0 -39
  434. data/public/vendor/npm/react@0.13.3/lib/CSSProperty.js +0 -123
  435. data/public/vendor/npm/react@0.13.3/lib/CSSPropertyOperations.js +0 -103
  436. data/public/vendor/npm/react@0.13.3/lib/CallbackQueue.js +0 -43
  437. data/public/vendor/npm/react@0.13.3/lib/ChangeEventPlugin.js +0 -174
  438. data/public/vendor/npm/react@0.13.3/lib/ClientReactRootIndex.js +0 -23
  439. data/public/vendor/npm/react@0.13.3/lib/DOMChildrenOperations.js +0 -57
  440. data/public/vendor/npm/react@0.13.3/lib/DOMProperty.js +0 -96
  441. data/public/vendor/npm/react@0.13.3/lib/DOMPropertyOperations.js +0 -99
  442. data/public/vendor/npm/react@0.13.3/lib/Danger.js +0 -67
  443. data/public/vendor/npm/react@0.13.3/lib/DefaultEventPluginOrder.js +0 -5
  444. data/public/vendor/npm/react@0.13.3/lib/EnterLeaveEventPlugin.js +0 -69
  445. data/public/vendor/npm/react@0.13.3/lib/EventConstants.js +0 -55
  446. data/public/vendor/npm/react@0.13.3/lib/EventListener.js +0 -34
  447. data/public/vendor/npm/react@0.13.3/lib/EventPluginHub.js +0 -103
  448. data/public/vendor/npm/react@0.13.3/lib/EventPluginRegistry.js +0 -115
  449. data/public/vendor/npm/react@0.13.3/lib/EventPluginUtils.js +0 -121
  450. data/public/vendor/npm/react@0.13.3/lib/EventPropagators.js +0 -62
  451. data/public/vendor/npm/react@0.13.3/lib/ExecutionEnvironment.js +0 -42
  452. data/public/vendor/npm/react@0.13.3/lib/FallbackCompositionState.js +0 -45
  453. data/public/vendor/npm/react@0.13.3/lib/HTMLDOMPropertyConfig.js +0 -155
  454. data/public/vendor/npm/react@0.13.3/lib/LinkedStateMixin.js +0 -8
  455. data/public/vendor/npm/react@0.13.3/lib/LinkedValueUtils.js +0 -74
  456. data/public/vendor/npm/react@0.13.3/lib/LocalEventTrapMixin.js +0 -26
  457. data/public/vendor/npm/react@0.13.3/lib/MobileSafariClickEventPlugin.js +0 -17
  458. data/public/vendor/npm/react@0.13.3/lib/Object.assign.js +0 -47
  459. data/public/vendor/npm/react@0.13.3/lib/PooledClass.js +0 -75
  460. data/public/vendor/npm/react@0.13.3/lib/React.js +0 -93
  461. data/public/vendor/npm/react@0.13.3/lib/ReactBrowserComponentMixin.js +0 -7
  462. data/public/vendor/npm/react@0.13.3/lib/ReactBrowserEventEmitter.js +0 -136
  463. data/public/vendor/npm/react@0.13.3/lib/ReactCSSTransitionGroup.js +0 -34
  464. data/public/vendor/npm/react@0.13.3/lib/ReactCSSTransitionGroupChild.js +0 -92
  465. data/public/vendor/npm/react@0.13.3/lib/ReactChildReconciler.js +0 -57
  466. data/public/vendor/npm/react@0.13.3/lib/ReactChildren.js +0 -67
  467. data/public/vendor/npm/react@0.13.3/lib/ReactClass.js +0 -338
  468. data/public/vendor/npm/react@0.13.3/lib/ReactComponent.js +0 -50
  469. data/public/vendor/npm/react@0.13.3/lib/ReactComponentBrowserEnvironment.js +0 -14
  470. data/public/vendor/npm/react@0.13.3/lib/ReactComponentEnvironment.js +0 -19
  471. data/public/vendor/npm/react@0.13.3/lib/ReactComponentWithPureRenderMixin.js +0 -7
  472. data/public/vendor/npm/react@0.13.3/lib/ReactCompositeComponent.js +0 -374
  473. data/public/vendor/npm/react@0.13.3/lib/ReactContext.js +0 -27
  474. data/public/vendor/npm/react@0.13.3/lib/ReactCurrentOwner.js +0 -32
  475. data/public/vendor/npm/react@0.13.3/lib/ReactDOM.js +0 -146
  476. data/public/vendor/npm/react@0.13.3/lib/ReactDOMButton.js +0 -35
  477. data/public/vendor/npm/react@0.13.3/lib/ReactDOMComponent.js +0 -267
  478. data/public/vendor/npm/react@0.13.3/lib/ReactDOMForm.js +0 -21
  479. data/public/vendor/npm/react@0.13.3/lib/ReactDOMIDOperations.js +0 -63
  480. data/public/vendor/npm/react@0.13.3/lib/ReactDOMIframe.js +0 -20
  481. data/public/vendor/npm/react@0.13.3/lib/ReactDOMImg.js +0 -21
  482. data/public/vendor/npm/react@0.13.3/lib/ReactDOMInput.js +0 -94
  483. data/public/vendor/npm/react@0.13.3/lib/ReactDOMOption.js +0 -23
  484. data/public/vendor/npm/react@0.13.3/lib/ReactDOMSelect.js +0 -112
  485. data/public/vendor/npm/react@0.13.3/lib/ReactDOMSelection.js +0 -103
  486. data/public/vendor/npm/react@0.13.3/lib/ReactDOMTextComponent.js +0 -38
  487. data/public/vendor/npm/react@0.13.3/lib/ReactDOMTextarea.js +0 -70
  488. data/public/vendor/npm/react@0.13.3/lib/ReactDefaultBatchingStrategy.js +0 -37
  489. data/public/vendor/npm/react@0.13.3/lib/ReactDefaultInjection.js +0 -93
  490. data/public/vendor/npm/react@0.13.3/lib/ReactDefaultPerf.js +0 -183
  491. data/public/vendor/npm/react@0.13.3/lib/ReactDefaultPerfAnalysis.js +0 -145
  492. data/public/vendor/npm/react@0.13.3/lib/ReactElement.js +0 -151
  493. data/public/vendor/npm/react@0.13.3/lib/ReactElementValidator.js +0 -218
  494. data/public/vendor/npm/react@0.13.3/lib/ReactEmptyComponent.js +0 -47
  495. data/public/vendor/npm/react@0.13.3/lib/ReactErrorUtils.js +0 -30
  496. data/public/vendor/npm/react@0.13.3/lib/ReactEventEmitterMixin.js +0 -12
  497. data/public/vendor/npm/react@0.13.3/lib/ReactEventListener.js +0 -93
  498. data/public/vendor/npm/react@0.13.3/lib/ReactFragment.js +0 -110
  499. data/public/vendor/npm/react@0.13.3/lib/ReactInjection.js +0 -27
  500. data/public/vendor/npm/react@0.13.3/lib/ReactInputSelection.js +0 -75
  501. data/public/vendor/npm/react@0.13.3/lib/ReactInstanceHandles.js +0 -113
  502. data/public/vendor/npm/react@0.13.3/lib/ReactInstanceMap.js +0 -47
  503. data/public/vendor/npm/react@0.13.3/lib/ReactLifeCycle.js +0 -9
  504. data/public/vendor/npm/react@0.13.3/lib/ReactLink.js +0 -16
  505. data/public/vendor/npm/react@0.13.3/lib/ReactMarkupChecksum.js +0 -17
  506. data/public/vendor/npm/react@0.13.3/lib/ReactMount.js +0 -347
  507. data/public/vendor/npm/react@0.13.3/lib/ReactMultiChild.js +0 -190
  508. data/public/vendor/npm/react@0.13.3/lib/ReactMultiChildUpdateTypes.js +0 -10
  509. data/public/vendor/npm/react@0.13.3/lib/ReactNativeComponent.js +0 -53
  510. data/public/vendor/npm/react@0.13.3/lib/ReactOwner.js +0 -21
  511. data/public/vendor/npm/react@0.13.3/lib/ReactPerf.js +0 -42
  512. data/public/vendor/npm/react@0.13.3/lib/ReactPropTransferer.js +0 -40
  513. data/public/vendor/npm/react@0.13.3/lib/ReactPropTypeLocationNames.js +0 -13
  514. data/public/vendor/npm/react@0.13.3/lib/ReactPropTypeLocations.js +0 -9
  515. data/public/vendor/npm/react@0.13.3/lib/ReactPropTypes.js +0 -225
  516. data/public/vendor/npm/react@0.13.3/lib/ReactPutListenerQueue.js +0 -31
  517. data/public/vendor/npm/react@0.13.3/lib/ReactReconcileTransaction.js +0 -66
  518. data/public/vendor/npm/react@0.13.3/lib/ReactReconciler.js +0 -44
  519. data/public/vendor/npm/react@0.13.3/lib/ReactRef.js +0 -36
  520. data/public/vendor/npm/react@0.13.3/lib/ReactRootIndex.js +0 -29
  521. data/public/vendor/npm/react@0.13.3/lib/ReactServerRendering.js +0 -44
  522. data/public/vendor/npm/react@0.13.3/lib/ReactServerRenderingTransaction.js +0 -47
  523. data/public/vendor/npm/react@0.13.3/lib/ReactStateSetters.js +0 -104
  524. data/public/vendor/npm/react@0.13.3/lib/ReactTestUtils.js +0 -249
  525. data/public/vendor/npm/react@0.13.3/lib/ReactTransitionChildMapping.js +0 -53
  526. data/public/vendor/npm/react@0.13.3/lib/ReactTransitionEvents.js +0 -68
  527. data/public/vendor/npm/react@0.13.3/lib/ReactTransitionGroup.js +0 -140
  528. data/public/vendor/npm/react@0.13.3/lib/ReactUpdateQueue.js +0 -107
  529. data/public/vendor/npm/react@0.13.3/lib/ReactUpdates.js +0 -139
  530. data/public/vendor/npm/react@0.13.3/lib/ReactWithAddons.js +0 -30
  531. data/public/vendor/npm/react@0.13.3/lib/SVGDOMPropertyConfig.js +0 -76
  532. data/public/vendor/npm/react@0.13.3/lib/SelectEventPlugin.js +0 -91
  533. data/public/vendor/npm/react@0.13.3/lib/ServerReactRootIndex.js +0 -29
  534. data/public/vendor/npm/react@0.13.3/lib/SimpleEventPlugin.js +0 -287
  535. data/public/vendor/npm/react@0.13.3/lib/SyntheticClipboardEvent.js +0 -11
  536. data/public/vendor/npm/react@0.13.3/lib/SyntheticCompositionEvent.js +0 -9
  537. data/public/vendor/npm/react@0.13.3/lib/SyntheticDragEvent.js +0 -9
  538. data/public/vendor/npm/react@0.13.3/lib/SyntheticEvent.js +0 -90
  539. data/public/vendor/npm/react@0.13.3/lib/SyntheticFocusEvent.js +0 -9
  540. data/public/vendor/npm/react@0.13.3/lib/SyntheticInputEvent.js +0 -9
  541. data/public/vendor/npm/react@0.13.3/lib/SyntheticKeyboardEvent.js +0 -43
  542. data/public/vendor/npm/react@0.13.3/lib/SyntheticMouseEvent.js +0 -38
  543. data/public/vendor/npm/react@0.13.3/lib/SyntheticTouchEvent.js +0 -19
  544. data/public/vendor/npm/react@0.13.3/lib/SyntheticUIEvent.js +0 -29
  545. data/public/vendor/npm/react@0.13.3/lib/SyntheticWheelEvent.js +0 -18
  546. data/public/vendor/npm/react@0.13.3/lib/Transaction.js +0 -90
  547. data/public/vendor/npm/react@0.13.3/lib/ViewportMetrics.js +0 -27
  548. data/public/vendor/npm/react@0.13.3/lib/accumulateInto.js +0 -26
  549. data/public/vendor/npm/react@0.13.3/lib/adler32.js +0 -32
  550. data/public/vendor/npm/react@0.13.3/lib/camelize.js +0 -30
  551. data/public/vendor/npm/react@0.13.3/lib/camelizeStyleName.js +0 -8
  552. data/public/vendor/npm/react@0.13.3/lib/cloneWithProps.js +0 -20
  553. data/public/vendor/npm/react@0.13.3/lib/containsNode.js +0 -20
  554. data/public/vendor/npm/react@0.13.3/lib/createArrayFromMixed.js +0 -15
  555. data/public/vendor/npm/react@0.13.3/lib/createFullPageComponent.js +0 -22
  556. data/public/vendor/npm/react@0.13.3/lib/createNodesFromMarkup.js +0 -39
  557. data/public/vendor/npm/react@0.13.3/lib/cx.js +0 -20
  558. data/public/vendor/npm/react@0.13.3/lib/dangerousStyleValue.js +0 -19
  559. data/public/vendor/npm/react@0.13.3/lib/emptyFunction.js +0 -32
  560. data/public/vendor/npm/react@0.13.3/lib/emptyObject.js +0 -9
  561. data/public/vendor/npm/react@0.13.3/lib/escapeTextContentForBrowser.js +0 -38
  562. data/public/vendor/npm/react@0.13.3/lib/findDOMNode.js +0 -31
  563. data/public/vendor/npm/react@0.13.3/lib/flattenChildren.js +0 -25
  564. data/public/vendor/npm/react@0.13.3/lib/focusNode.js +0 -27
  565. data/public/vendor/npm/react@0.13.3/lib/forEachAccumulated.js +0 -29
  566. data/public/vendor/npm/react@0.13.3/lib/getActiveElement.js +0 -27
  567. data/public/vendor/npm/react@0.13.3/lib/getEventCharCode.js +0 -50
  568. data/public/vendor/npm/react@0.13.3/lib/getEventKey.js +0 -72
  569. data/public/vendor/npm/react@0.13.3/lib/getEventModifierState.js +0 -45
  570. data/public/vendor/npm/react@0.13.3/lib/getEventTarget.js +0 -29
  571. data/public/vendor/npm/react@0.13.3/lib/getIteratorFn.js +0 -42
  572. data/public/vendor/npm/react@0.13.3/lib/getMarkupWrap.js +0 -73
  573. data/public/vendor/npm/react@0.13.3/lib/getNodeForCharacterOffset.js +0 -73
  574. data/public/vendor/npm/react@0.13.3/lib/getReactRootElementInContainer.js +0 -33
  575. data/public/vendor/npm/react@0.13.3/lib/getTextContentAccessor.js +0 -11
  576. data/public/vendor/npm/react@0.13.3/lib/getUnboundedScrollPosition.js +0 -38
  577. data/public/vendor/npm/react@0.13.3/lib/hyphenate.js +0 -31
  578. data/public/vendor/npm/react@0.13.3/lib/hyphenateStyleName.js +0 -8
  579. data/public/vendor/npm/react@0.13.3/lib/instantiateReactComponent.js +0 -55
  580. data/public/vendor/npm/react@0.13.3/lib/invariant.js +0 -26
  581. data/public/vendor/npm/react@0.13.3/lib/isEventSupported.js +0 -24
  582. data/public/vendor/npm/react@0.13.3/lib/isNode.js +0 -25
  583. data/public/vendor/npm/react@0.13.3/lib/isTextInputElement.js +0 -41
  584. data/public/vendor/npm/react@0.13.3/lib/isTextNode.js +0 -6
  585. data/public/vendor/npm/react@0.13.3/lib/joinClasses.js +0 -39
  586. data/public/vendor/npm/react@0.13.3/lib/keyMirror.js +0 -18
  587. data/public/vendor/npm/react@0.13.3/lib/keyOf.js +0 -34
  588. data/public/vendor/npm/react@0.13.3/lib/mapObject.js +0 -51
  589. data/public/vendor/npm/react@0.13.3/lib/memoizeStringOnly.js +0 -31
  590. data/public/vendor/npm/react@0.13.3/lib/onlyChild.js +0 -11
  591. data/public/vendor/npm/react@0.13.3/lib/performance.js +0 -8
  592. data/public/vendor/npm/react@0.13.3/lib/performanceNow.js +0 -7
  593. data/public/vendor/npm/react@0.13.3/lib/quoteAttributeValueForBrowser.js +0 -7
  594. data/public/vendor/npm/react@0.13.3/lib/setInnerHTML.js +0 -40
  595. data/public/vendor/npm/react@0.13.3/lib/setTextContent.js +0 -16
  596. data/public/vendor/npm/react@0.13.3/lib/shallowEqual.js +0 -42
  597. data/public/vendor/npm/react@0.13.3/lib/shouldUpdateReactComponent.js +0 -51
  598. data/public/vendor/npm/react@0.13.3/lib/toArray.js +0 -21
  599. data/public/vendor/npm/react@0.13.3/lib/traverseAllChildren.js +0 -104
  600. data/public/vendor/npm/react@0.13.3/lib/update.js +0 -78
  601. data/public/vendor/npm/react@0.13.3/lib/warning.js +0 -34
  602. data/public/vendor/npm/react@0.13.3/package.json +0 -34
  603. data/public/vendor/npm/react@0.13.3/react.js +0 -2
  604. data/public/vendor/npm/react@0.13.3.js +0 -1
  605. data/public/vendor/npm/readable-stream@1.1.13/duplex.js +0 -2
  606. data/public/vendor/npm/readable-stream@1.1.13/passthrough.js +0 -2
  607. data/public/vendor/npm/readable-stream@1.1.13/readable.js +0 -8
  608. data/public/vendor/npm/readable-stream@1.1.13/transform.js +0 -2
  609. data/public/vendor/npm/readable-stream@1.1.13/writable.js +0 -2
  610. data/public/vendor/npm/readable-stream@1.1.13.js +0 -1
  611. data/public/vendor/npm/source-map@0.1.31/CHANGELOG.md +0 -112
  612. data/public/vendor/npm/source-map@0.1.31/LICENSE +0 -28
  613. data/public/vendor/npm/source-map@0.1.31/Makefile.dryice.js +0 -89
  614. data/public/vendor/npm/source-map@0.1.31/README.md +0 -434
  615. data/public/vendor/npm/source-map@0.1.31/build/assert-shim.js +0 -58
  616. data/public/vendor/npm/source-map@0.1.31/build/mini-require.js +0 -154
  617. data/public/vendor/npm/source-map@0.1.31/build/prefix-source-map.jsm +0 -20
  618. data/public/vendor/npm/source-map@0.1.31/build/prefix-utils.jsm +0 -18
  619. data/public/vendor/npm/source-map@0.1.31/build/suffix-browser.js +0 -8
  620. data/public/vendor/npm/source-map@0.1.31/build/suffix-source-map.jsm +0 -6
  621. data/public/vendor/npm/source-map@0.1.31/build/suffix-utils.jsm +0 -21
  622. data/public/vendor/npm/source-map@0.1.31/build/test-prefix.js +0 -10
  623. data/public/vendor/npm/source-map@0.1.31/build/test-suffix.js +0 -5
  624. data/public/vendor/npm/source-map@0.1.31/lib/source-map/array-set.js +0 -49
  625. data/public/vendor/npm/source-map@0.1.31/lib/source-map/base64-vlq.js +0 -56
  626. data/public/vendor/npm/source-map@0.1.31/lib/source-map/base64.js +0 -44
  627. data/public/vendor/npm/source-map@0.1.31/lib/source-map/binary-search.js +0 -83
  628. data/public/vendor/npm/source-map@0.1.31/lib/source-map/source-map-consumer.js +0 -238
  629. data/public/vendor/npm/source-map@0.1.31/lib/source-map/source-map-generator.js +0 -231
  630. data/public/vendor/npm/source-map@0.1.31/lib/source-map/source-node.js +0 -234
  631. data/public/vendor/npm/source-map@0.1.31/lib/source-map/util.js +0 -207
  632. data/public/vendor/npm/source-map@0.1.31/lib/source-map.js +0 -4
  633. data/public/vendor/npm/source-map@0.1.31/package.json +0 -52
  634. data/public/vendor/npm/source-map@0.1.31/test/run-tests.js +0 -50
  635. data/public/vendor/npm/source-map@0.1.31/test/source-map/test-api.js +0 -19
  636. data/public/vendor/npm/source-map@0.1.31/test/source-map/test-array-set.js +0 -84
  637. data/public/vendor/npm/source-map@0.1.31/test/source-map/test-base64-vlq.js +0 -17
  638. data/public/vendor/npm/source-map@0.1.31/test/source-map/test-base64.js +0 -26
  639. data/public/vendor/npm/source-map@0.1.31/test/source-map/test-binary-search.js +0 -37
  640. data/public/vendor/npm/source-map@0.1.31/test/source-map/test-dog-fooding.js +0 -76
  641. data/public/vendor/npm/source-map@0.1.31/test/source-map/test-source-map-consumer.js +0 -426
  642. data/public/vendor/npm/source-map@0.1.31/test/source-map/test-source-map-generator.js +0 -480
  643. data/public/vendor/npm/source-map@0.1.31/test/source-map/test-source-node.js +0 -307
  644. data/public/vendor/npm/source-map@0.1.31/test/source-map/util.js +0 -84
  645. data/public/vendor/npm/source-map@0.1.31.js +0 -1
  646. data/public/vendor/npm/through@2.3.8/LICENSE.APACHE2 +0 -15
  647. data/public/vendor/npm/through@2.3.8/LICENSE.MIT +0 -24
  648. data/public/vendor/npm/through@2.3.8/index.js +0 -93
  649. data/public/vendor/npm/through@2.3.8/package.json +0 -36
  650. data/public/vendor/npm/through@2.3.8/readme.markdown +0 -64
  651. data/public/vendor/npm/through@2.3.8/test/async.js +0 -26
  652. data/public/vendor/npm/through@2.3.8/test/auto-destroy.js +0 -26
  653. data/public/vendor/npm/through@2.3.8/test/buffering.js +0 -57
  654. data/public/vendor/npm/through@2.3.8/test/end.js +0 -37
  655. data/public/vendor/npm/through@2.3.8/test/index.js +0 -98
  656. data/public/vendor/npm/through@2.3.8/test.js +0 -2
  657. data/public/vendor/npm/through@2.3.8.js +0 -1
  658. data/views/_options.erb +0 -156
  659. /data/public/vendor/github/jspm/{nodelibs-buffer@0.1.0 → nodelibs-buffer@0.1.1}/index.js +0 -0
  660. /data/public/vendor/github/jspm/{nodelibs-process@0.1.1 → nodelibs-process@0.1.2}/index.js +0 -0
  661. /data/public/vendor/npm/{readable-stream@1.1.13 → assert@1.5.0}/LICENSE +0 -0
  662. /data/public/vendor/npm/{buffer@3.4.3 → buffer@5.7.1}/LICENSE +0 -0
  663. /data/public/vendor/npm/{core-util-is@1.0.1 → core-util-is@1.0.3}/README.md +0 -0
  664. /data/public/vendor/npm/{process@0.10.1 → process@0.11.10}/LICENSE +0 -0
  665. /data/public/vendor/npm/{process@0.10.1 → process@0.11.10}/index.js +0 -0
  666. /data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/README.md +0 -0
  667. /data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/float.patch +0 -0
data/public/js/report.js CHANGED
@@ -1,82 +1,25 @@
1
1
  import './jquery_world'; // for custom $.tooltip function
2
- import React from 'react';
2
+ import React, { Component } from 'react';
3
3
  import _ from 'underscore';
4
4
 
5
5
  import Sidebar from './sidebar';
6
6
  import Circos from './circos';
7
- import Query from './query';
7
+ import { ReportQuery } from './query';
8
8
  import Hit from './hit';
9
9
  import HSP from './hsp';
10
+ import AlignmentExporter from './alignment_exporter';
10
11
 
11
- import SequenceModal from './sequence_modal';
12
- import ErrorModal from './error_modal';
13
12
 
14
- /**
15
- * Base component of report page. This component is later rendered into page's
16
- * '#view' element.
17
- */
18
- var Page = React.createClass({
19
- render: function () {
20
- return (
21
- <div>
22
- {/* Provide bootstrap .container element inside the #view for
23
- the Report component to render itself in. */}
24
- <div className="container">
25
- <Report showSequenceModal={ _ => this.showSequenceModal(_) }
26
- getCharacterWidth={ () => this.getCharacterWidth() }
27
- showErrorModal={ (...args) => this.showErrorModal(...args) } />
28
- </div>
29
-
30
- {/* Add a hidden span tag containing chars used in HSPs */}
31
- <pre className="pre-reset hsp-lines" ref="hspChars" hidden>
32
- ABCDEFGHIJKLMNOPQRSTUVWXYZ +-
33
- </pre>
34
-
35
- {/* Required by Grapher for SVG and PNG download */}
36
- <canvas id="png-exporter" hidden></canvas>
37
-
38
- <SequenceModal ref="sequenceModal"
39
- showErrorModal={ (...args) => this.showErrorModal(...args) }/>
40
-
41
- <ErrorModal ref="errorModal" />
42
- </div>
43
- );
44
- },
45
-
46
- componentDidMount: function () {
47
- var job_id = location.pathname.split('/').pop();
48
- sessionStorage.setItem('job_id', job_id);
49
- },
50
-
51
- showSequenceModal: function (url) {
52
- this.refs.sequenceModal.show(url);
53
- },
54
13
 
55
- showErrorModal: function (errorData, beforeShow) {
56
- this.refs.errorModal.show(errorData, beforeShow);
57
- },
58
-
59
- getCharacterWidth: function () {
60
- if (!this.characterWidth) {
61
- var $hspChars = $(React.findDOMNode(this.refs.hspChars));
62
- this.characterWidth = $hspChars.width() / 29;
63
- }
64
- return this.characterWidth;
65
- }
66
- });
67
14
 
68
15
  /**
69
16
  * Renders entire report.
70
17
  *
71
18
  * Composed of Query and Sidebar components.
72
19
  */
73
- var Report = React.createClass({
74
-
75
- // Model //
76
-
77
- getInitialState: function () {
78
- this.fetchResults();
79
-
20
+ class Report extends Component {
21
+ constructor(props) {
22
+ super(props);
80
23
  // Properties below are internal state used to render results in small
81
24
  // slices (see updateState).
82
25
  this.numUpdates = 0;
@@ -84,92 +27,89 @@ var Report = React.createClass({
84
27
  this.nextHit = 0;
85
28
  this.nextHSP = 0;
86
29
  this.maxHSPs = 3; // max HSPs to render in a cycle
87
-
88
- return {
89
- search_id: '',
30
+ this.state = {
31
+ search_id: '',
90
32
  seqserv_version: '',
91
- program: '',
33
+ program: '',
92
34
  program_version: '',
93
- submitted_at: '',
94
- queries: [],
95
- results: [],
96
- querydb: [],
97
- params: [],
98
- stats: []
35
+ submitted_at: '',
36
+ queries: [],
37
+ results: [],
38
+ querydb: [],
39
+ params: [],
40
+ stats: [],
41
+ alignment_blob_url: '',
42
+ allQueriesLoaded: false,
43
+ cloud_sharing_enabled: false,
99
44
  };
100
- },
101
-
45
+ this.prepareAlignmentOfSelectedHits = this.prepareAlignmentOfSelectedHits.bind(this);
46
+ this.prepareAlignmentOfAllHits = this.prepareAlignmentOfAllHits.bind(this);
47
+ this.setStateFromJSON = this.setStateFromJSON.bind(this);
48
+ }
102
49
  /**
103
- * Fetch results.
104
- */
105
- fetchResults: function () {
50
+ * Fetch results.
51
+ */
52
+ fetchResults() {
106
53
  var intervals = [200, 400, 800, 1200, 2000, 3000, 5000];
107
54
  var component = this;
108
55
 
109
- function poll () {
110
- $.getJSON(location.pathname + '.json')
111
- .complete(function (jqXHR) {
112
- switch (jqXHR.status) {
113
- case 202:
114
- var interval;
115
- if (intervals.length === 1) {
116
- interval = intervals[0];
117
- }
118
- else {
119
- interval = intervals.shift();
120
- }
121
- setTimeout(poll, interval);
122
- break;
123
- case 200:
124
- component.setStateFromJSON(jqXHR.responseJSON);
125
- break;
126
- case 404:
127
- case 400:
128
- case 500:
129
- component.props.showErrorModal(jqXHR.responseJSON);
130
- break;
56
+ function poll() {
57
+ $.getJSON(location.pathname + '.json').complete(function (jqXHR) {
58
+ switch (jqXHR.status) {
59
+ case 202:
60
+ var interval;
61
+ if (intervals.length === 1) {
62
+ interval = intervals[0];
63
+ } else {
64
+ interval = intervals.shift();
131
65
  }
132
- });
66
+ setTimeout(poll, interval);
67
+ break;
68
+ case 200:
69
+ component.setStateFromJSON(jqXHR.responseJSON);
70
+ break;
71
+ case 404:
72
+ case 400:
73
+ case 500:
74
+ component.props.showErrorModal(jqXHR.responseJSON);
75
+ break;
76
+ }
77
+ });
133
78
  }
134
79
 
135
80
  poll();
136
- },
81
+ }
137
82
 
138
83
  /**
139
- * Calls setState after any required modification to responseJSON.
140
- */
141
- setStateFromJSON: function(responseJSON) {
84
+ * Calls setState after any required modification to responseJSON.
85
+ */
86
+ setStateFromJSON(responseJSON) {
142
87
  this.lastTimeStamp = Date.now();
143
- this.setState(responseJSON);
144
- },
145
-
146
- // Life-cycle methods //
147
- render: function () {
148
- return this.isResultAvailable() ?
149
- this.resultsJSX() : this.loadingJSX();
150
- },
151
-
88
+ // the callback prepares the download link for all alignments
89
+ this.setState(responseJSON, this.prepareAlignmentOfAllHits);
90
+ }
152
91
  /**
153
- * Called as soon as the page has loaded and the user sees the loading spinner.
154
- * We use this opportunity to setup services that make use of delegated events
155
- * bound to the window, document, or body.
156
- */
157
- componentDidMount: function () {
92
+ * Called as soon as the page has loaded and the user sees the loading spinner.
93
+ * We use this opportunity to setup services that make use of delegated events
94
+ * bound to the window, document, or body.
95
+ */
96
+ componentDidMount() {
97
+ this.fetchResults();
158
98
  // This sets up an event handler which enables users to select text from
159
99
  // hit header without collapsing the hit.
160
100
  this.preventCollapseOnSelection();
161
101
  this.toggleTable();
162
- },
102
+ }
163
103
 
164
104
  /**
165
- * Called for the first time after as BLAST results have been retrieved from
166
- * the server and added to this.state by fetchResults. Only summary overview
167
- * and circos would have been rendered at this point. At this stage we kick
168
- * start iteratively adding 1 HSP to the page every 25 milli-seconds.
169
- */
170
- componentDidUpdate: function () {
171
- // Log to console how long the last update take?
172
- console.log((Date.now() - this.lastTimeStamp)/1000);
105
+ * Called for the first time after as BLAST results have been retrieved from
106
+ * the server and added to this.state by fetchResults. Only summary overview
107
+ * and circos would have been rendered at this point. At this stage we kick
108
+ * start iteratively adding 1 HSP to the page every 25 milli-seconds.
109
+ */
110
+ componentDidUpdate() {
111
+ // Log to console how long the last update take?
112
+ console.log((Date.now() - this.lastTimeStamp) / 1000);
173
113
 
174
114
  // Lock sidebar in its position on the first update.
175
115
  if (this.nextQuery == 0 && this.nextHit == 0 && this.nextHSP == 0) {
@@ -182,16 +122,15 @@ var Report = React.createClass({
182
122
  // the updates giving the browser a chance to respond
183
123
  // to user interactions.
184
124
  setTimeout(() => this.updateState(), 25);
185
- }
186
- else {
125
+ } else {
187
126
  this.componentFinishedUpdating();
188
127
  }
189
- },
128
+ }
190
129
 
191
130
  /**
192
- * Push next slice of results to React for rendering.
193
- */
194
- updateState: function() {
131
+ * Push next slice of results to React for rendering.
132
+ */
133
+ updateState() {
195
134
  var results = [];
196
135
  var numHSPsProcessed = 0;
197
136
  while (this.nextQuery < this.state.queries.length) {
@@ -200,12 +139,18 @@ var Report = React.createClass({
200
139
  // 3 hsps or are rendered in each cycle, but we want to create the
201
140
  // corresponding Query component only the first time we see it.
202
141
  if (this.nextHit == 0 && this.nextHSP == 0) {
203
- results.push(<Query key={'Query_'+query.number} query={query}
204
- program={this.state.program} querydb={this.state.querydb}
205
- showQueryCrumbs={this.state.queries.length > 1}
206
- non_parse_seqids={this.state.non_parse_seqids}
207
- imported_xml={this.state.imported_xml}
208
- veryBig={this.state.veryBig} />);
142
+ results.push(
143
+ <ReportQuery
144
+ key={'Query_' + query.number}
145
+ query={query}
146
+ program={this.state.program}
147
+ querydb={this.state.querydb}
148
+ showQueryCrumbs={this.state.queries.length > 1}
149
+ non_parse_seqids={this.state.non_parse_seqids}
150
+ imported_xml={this.state.imported_xml}
151
+ veryBig={this.state.veryBig}
152
+ />
153
+ );
209
154
  }
210
155
 
211
156
  while (this.nextHit < query.hits.length) {
@@ -214,14 +159,22 @@ var Report = React.createClass({
214
159
  // 10 hsps are rendered in each cycle, but we want to create the
215
160
  // corresponding Hit component only the first time we see it.
216
161
  if (this.nextHSP == 0) {
217
- results.push(<Hit key={'Query_'+query.number+'_Hit_'+hit.number} query={query}
218
- hit={hit} algorithm={this.state.program} querydb={this.state.querydb}
219
- selectHit={this.selectHit} imported_xml={this.state.imported_xml}
220
- non_parse_seqids={this.state.non_parse_seqids}
221
- showQueryCrumbs={this.state.queries.length > 1}
222
- showHitCrumbs={query.hits.length > 1}
223
- veryBig={this.state.veryBig}
224
- {... this.props} />
162
+ results.push(
163
+ <Hit
164
+ key={'Query_' + query.number + '_Hit_' + hit.number}
165
+ query={query}
166
+ hit={hit}
167
+ algorithm={this.state.program}
168
+ querydb={this.state.querydb}
169
+ selectHit={this.selectHit}
170
+ imported_xml={this.state.imported_xml}
171
+ non_parse_seqids={this.state.non_parse_seqids}
172
+ showQueryCrumbs={this.state.queries.length > 1}
173
+ showHitCrumbs={query.hits.length > 1}
174
+ veryBig={this.state.veryBig}
175
+ onChange={this.prepareAlignmentOfSelectedHits}
176
+ {...this.props}
177
+ />
225
178
  );
226
179
  }
227
180
 
@@ -229,9 +182,22 @@ var Report = React.createClass({
229
182
  // Get nextHSP and increment the counter.
230
183
  var hsp = hit.hsps[this.nextHSP++];
231
184
  results.push(
232
- <HSP key={'Query_'+query.number+'_Hit_'+hit.number+'_HSP_'+hsp.number}
233
- query={query} hit={hit} hsp={hsp} algorithm={this.state.program}
234
- showHSPNumbers={hit.hsps.length > 1} {... this.props} />
185
+ <HSP
186
+ key={
187
+ 'Query_' +
188
+ query.number +
189
+ '_Hit_' +
190
+ hit.number +
191
+ '_HSP_' +
192
+ hsp.number
193
+ }
194
+ query={query}
195
+ hit={hit}
196
+ hsp={hsp}
197
+ algorithm={this.state.program}
198
+ showHSPNumbers={hit.hsps.length > 1}
199
+ {...this.props}
200
+ />
235
201
  );
236
202
  numHSPsProcessed++;
237
203
  if (numHSPsProcessed == this.maxHSPs) break;
@@ -259,147 +225,163 @@ var Report = React.createClass({
259
225
  this.lastTimeStamp = Date.now();
260
226
  this.setState({
261
227
  results: this.state.results.concat(results),
262
- veryBig: this.numUpdates >= 250
228
+ veryBig: this.numUpdates >= 250,
263
229
  });
264
- },
230
+ }
265
231
 
266
232
  /**
267
- * Called after all results have been rendered.
268
- */
269
- componentFinishedUpdating: function () {
233
+ * Called after all results have been rendered.
234
+ */
235
+ componentFinishedUpdating() {
236
+ if (this.state.allQueriesLoaded) return;
270
237
  this.shouldShowIndex() && this.setupScrollSpy();
271
- },
238
+ this.setState({ allQueriesLoaded: true });
239
+ }
272
240
 
273
241
  /**
274
- * Returns loading message
275
- */
276
- loadingJSX: function () {
242
+ * Returns loading message
243
+ */
244
+ loadingJSX() {
277
245
  return (
278
- <div
279
- className="row">
280
- <div
281
- className="col-md-6 col-md-offset-3 text-center">
246
+ <div className="row">
247
+ <div className="col-md-6 col-md-offset-3 text-center">
282
248
  <h1>
283
249
  <i className="fa fa-cog fa-spin"></i>&nbsp; BLAST-ing
284
250
  </h1>
285
251
  <p>
286
- <br/>
287
- This can take some time depending on the size of your query and
288
- database(s). The page will update automatically when BLAST is
289
- done.
290
- <br/>
291
- <br/>
292
- You can bookmark the page and come back to it later or share
293
- the link with someone.
252
+ <br />
253
+ This can take some time depending on the size of your query and
254
+ database(s). The page will update automatically when BLAST is done.
255
+ <br />
256
+ <br />
257
+ You can bookmark the page and come back to it later or share the
258
+ link with someone.
294
259
  </p>
295
260
  </div>
296
261
  </div>
297
262
  );
298
- },
263
+ }
299
264
 
300
265
  /**
301
- * Return results JSX.
302
- */
303
- resultsJSX: function () {
266
+ * Return results JSX.
267
+ */
268
+ resultsJSX() {
304
269
  return (
305
- <div className="row">
270
+ <div className="row" id="results">
306
271
  <div className="col-md-3 hidden-sm hidden-xs">
307
- <Sidebar data={this.state}
272
+ <Sidebar
273
+ data={this.state}
308
274
  atLeastOneHit={this.atLeastOneHit()}
309
- shouldShowIndex={this.shouldShowIndex()} />
275
+ shouldShowIndex={this.shouldShowIndex()}
276
+ allQueriesLoaded={this.state.allQueriesLoaded}
277
+ cloudSharingEnabled={this.state.cloud_sharing_enabled}
278
+ />
310
279
  </div>
311
280
  <div className="col-md-9">
312
- { this.overviewJSX() }
313
- { this.circosJSX() }
314
- { this.state.results }
281
+ {this.overviewJSX()}
282
+ {this.circosJSX()}
283
+ {this.state.results}
315
284
  </div>
316
285
  </div>
317
286
  );
318
- },
287
+ }
319
288
 
320
289
  /**
321
- * Renders report overview.
322
- */
323
- overviewJSX: function () {
290
+ * Renders report overview.
291
+ */
292
+ overviewJSX() {
324
293
  return (
325
294
  <div className="overview">
326
295
  <p>
327
- <strong>SequenceServer {this.state.seqserv_version}</strong> using <strong>{this.state.program_version}</strong>
328
- {this.state.submitted_at && `, query submitted on ${this.state.submitted_at}`}
296
+ <strong>SequenceServer {this.state.seqserv_version}</strong> using{' '}
297
+ <strong>{this.state.program_version}</strong>
298
+ {this.state.submitted_at &&
299
+ `, query submitted on ${this.state.submitted_at}`}
329
300
  </p>
330
301
  <p>
331
- <strong> Databases: </strong>{
332
- this.state.querydb.map((db) => { return db.title; }).join(', ')
333
- } ({this.state.stats.nsequences} sequences,&nbsp;
302
+ <strong> Databases: </strong>
303
+ {this.state.querydb
304
+ .map((db) => {
305
+ return db.title;
306
+ })
307
+ .join(', ')}{' '}
308
+ ({this.state.stats.nsequences} sequences,&nbsp;
334
309
  {this.state.stats.ncharacters} characters)
335
310
  </p>
336
311
  <p>
337
- <strong>Parameters: </strong> {
338
- _.map(this.state.params, function (val, key) {
339
- return key + ' ' + val;
340
- }).join(', ')
341
- }
312
+ <strong>Parameters: </strong>{' '}
313
+ {_.map(this.state.params, function (val, key) {
314
+ return key + ' ' + val;
315
+ }).join(', ')}
342
316
  </p>
343
317
  <p>
344
- Please cite: <a href="https://doi.org/10.1093/molbev/msz185">https://doi.org/10.1093/molbev/msz185</a>
318
+ Please cite:{' '}
319
+ <a href="https://doi.org/10.1093/molbev/msz185">
320
+ https://doi.org/10.1093/molbev/msz185
321
+ </a>
345
322
  </p>
346
323
  </div>
347
324
  );
348
- },
325
+ }
349
326
 
350
327
  /**
351
- * Return JSX for circos if we have at least one hit.
352
- */
353
- circosJSX: function () {
354
- return this.atLeastTwoHits()
355
- ? <Circos queries={this.state.queries}
356
- program={this.state.program} collapsed="true"/>
357
- : <span></span>;
358
- },
328
+ * Return JSX for circos if we have at least one hit.
329
+ */
330
+ circosJSX() {
331
+ return this.atLeastTwoHits() ? (
332
+ <Circos
333
+ queries={this.state.queries}
334
+ program={this.state.program}
335
+ collapsed="true"
336
+ />
337
+ ) : (
338
+ <span></span>
339
+ );
340
+ }
359
341
 
360
342
  // Controller //
361
343
 
362
344
  /**
363
- * Returns true if results have been fetched.
364
- *
365
- * A holding message is shown till results are fetched.
366
- */
367
- isResultAvailable: function () {
345
+ * Returns true if results have been fetched.
346
+ *
347
+ * A holding message is shown till results are fetched.
348
+ */
349
+ isResultAvailable() {
368
350
  return this.state.queries.length >= 1;
369
- },
351
+ }
370
352
 
371
353
  /**
372
- * Returns true if we have at least one hit.
373
- */
374
- atLeastOneHit: function () {
375
- return this.state.queries.some(query => query.hits.length > 0);
376
- },
354
+ * Returns true if we have at least one hit.
355
+ */
356
+ atLeastOneHit() {
357
+ return this.state.queries.some((query) => query.hits.length > 0);
358
+ }
377
359
 
378
360
  /**
379
- * Does the report have at least two hits? This is used to determine
380
- * whether Circos should be enabled or not.
381
- */
382
- atLeastTwoHits: function () {
361
+ * Does the report have at least two hits? This is used to determine
362
+ * whether Circos should be enabled or not.
363
+ */
364
+ atLeastTwoHits() {
383
365
  var hit_num = 0;
384
- return this.state.queries.some(query => {
366
+ return this.state.queries.some((query) => {
385
367
  hit_num += query.hits.length;
386
368
  return hit_num > 1;
387
369
  });
388
- },
370
+ }
389
371
 
390
372
  /**
391
- * Returns true if index should be shown in the sidebar. Index is shown
392
- * only for 2 and 8 queries.
393
- */
394
- shouldShowIndex: function () {
373
+ * Returns true if index should be shown in the sidebar. Index is shown
374
+ * only for 2 and 8 queries.
375
+ */
376
+ shouldShowIndex() {
395
377
  var num_queries = this.state.queries.length;
396
378
  return num_queries >= 2 && num_queries <= 12;
397
- },
379
+ }
398
380
 
399
381
  /**
400
- * Prevents folding of hits during text-selection.
401
- */
402
- preventCollapseOnSelection: function () {
382
+ * Prevents folding of hits during text-selection.
383
+ */
384
+ preventCollapseOnSelection() {
403
385
  $('body').on('mousedown', '.hit > .section-header > h4', function (event) {
404
386
  var $this = $(this);
405
387
  $this.on('mouseup mousemove', function handler(event) {
@@ -415,52 +397,53 @@ var Report = React.createClass({
415
397
  $this.off('mouseup mousemove', handler);
416
398
  });
417
399
  });
418
- },
400
+ }
419
401
 
420
402
  /* Handling the fa icon when Hit Table is collapsed */
421
- toggleTable: function () {
422
- $('body').on('mousedown', '.resultn > .section-content > .table-hit-overview > .caption', function (event) {
423
- var $this = $(this);
424
- $this.on('mouseup mousemove', function handler(event) {
425
- $this.find('i').toggleClass('fa-minus-square-o fa-plus-square-o');
426
- $this.off('mouseup mousemove', handler);
427
- });
428
- });
429
- },
430
-
431
-
403
+ toggleTable() {
404
+ $('body').on(
405
+ 'mousedown',
406
+ '.resultn > .section-content > .table-hit-overview > .caption',
407
+ function (event) {
408
+ var $this = $(this);
409
+ $this.on('mouseup mousemove', function handler(event) {
410
+ $this.find('i').toggleClass('fa-minus-square-o fa-plus-square-o');
411
+ $this.off('mouseup mousemove', handler);
412
+ });
413
+ }
414
+ );
415
+ }
432
416
 
433
417
  /**
434
- * Affixes the sidebar.
435
- */
436
- affixSidebar: function () {
418
+ * Affixes the sidebar.
419
+ */
420
+ affixSidebar() {
437
421
  var $sidebar = $('.sidebar');
438
422
  var sidebarOffset = $sidebar.offset();
439
423
  if (sidebarOffset) {
440
424
  $sidebar.affix({
441
425
  offset: {
442
- top: sidebarOffset.top
443
- }
426
+ top: sidebarOffset.top,
427
+ },
444
428
  });
445
429
  }
446
- },
430
+ }
447
431
 
448
432
  /**
449
- * For the query in viewport, highlights corresponding entry in the index.
450
- */
451
- setupScrollSpy: function () {
452
- $('body').scrollspy({target: '.sidebar'});
453
- },
433
+ * For the query in viewport, highlights corresponding entry in the index.
434
+ */
435
+ setupScrollSpy() {
436
+ $('body').scrollspy({ target: '.sidebar' });
437
+ }
454
438
 
455
439
  /**
456
- * Event-handler when hit is selected
457
- * Adds glow to hit component.
458
- * Updates number of Fasta that can be downloaded
459
- */
460
- selectHit: function (id) {
461
-
440
+ * Event-handler when hit is selected
441
+ * Adds glow to hit component.
442
+ * Updates number of Fasta that can be downloaded
443
+ */
444
+ selectHit(id) {
462
445
  var checkbox = $('#' + id);
463
- var num_checked = $('.hit-links :checkbox:checked').length;
446
+ var num_checked = $('.hit-links :checkbox:checked').length;
464
447
 
465
448
  if (!checkbox || !checkbox.val()) {
466
449
  return;
@@ -475,17 +458,15 @@ var Report = React.createClass({
475
458
  $hit.next('.hsp').addClass('glow');
476
459
  $('.download-fasta-of-selected').enable();
477
460
  $('.download-alignment-of-selected').enable();
478
- }
479
- else {
461
+ } else {
480
462
  $hit.removeClass('glow');
481
463
  $hit.next('.hsp').removeClass('glow');
482
464
  }
483
465
 
484
466
  var $a = $('.download-fasta-of-selected');
485
467
  var $b = $('.download-alignment-of-selected');
486
-
487
- if (num_checked >= 1)
488
- {
468
+
469
+ if (num_checked >= 1) {
489
470
  $a.find('.text-bold').html(num_checked);
490
471
  $b.find('.text-bold').html(num_checked);
491
472
  }
@@ -494,7 +475,72 @@ var Report = React.createClass({
494
475
  $a.addClass('disabled').find('.text-bold').html('');
495
476
  $b.addClass('disabled').find('.text-bold').html('');
496
477
  }
497
- },
498
- });
478
+ }
479
+ populate_hsp_array(hit, query_id){
480
+ return hit.hsps.map(hsp => Object.assign(hsp, {hit_id: hit.id, query_id}));
481
+ }
482
+
483
+ prepareAlignmentOfSelectedHits() {
484
+ var sequence_ids = $('.hit-links :checkbox:checked').map(function () {
485
+ return this.value;
486
+ }).get();
487
+
488
+ if(!sequence_ids.length){
489
+ // remove attributes from link if sequence_ids array is empty
490
+ $('.download-alignment-of-selected').attr('href', '#').removeAttr('download');
491
+ return;
492
+
493
+ }
494
+ if(this.state.alignment_blob_url){
495
+ // always revoke existing url if any because this method will always create a new url
496
+ window.URL.revokeObjectURL(this.state.alignment_blob_url);
497
+ }
498
+ var hsps_arr = [];
499
+ var aln_exporter = new AlignmentExporter();
500
+ const self = this;
501
+ _.each(this.state.queries, _.bind(function (query) {
502
+ _.each(query.hits, function (hit) {
503
+ if (_.indexOf(sequence_ids, hit.id) != -1) {
504
+ hsps_arr = hsps_arr.concat(self.populate_hsp_array(hit, query.id));
505
+ }
506
+ });
507
+ }, this));
508
+ const filename = 'alignment-' + sequence_ids.length + '_hits.txt';
509
+ const blob_url = aln_exporter.prepare_alignments_for_export(hsps_arr, filename);
510
+ // set required download attributes for link
511
+ $('.download-alignment-of-selected').attr('href', blob_url).attr('download', filename);
512
+ // track new url for future removal
513
+ this.setState({alignment_blob_url: blob_url});
514
+ }
515
+
516
+ prepareAlignmentOfAllHits() {
517
+ // Get number of hits and array of all hsps.
518
+ var num_hits = 0;
519
+ var hsps_arr = [];
520
+ if(!this.state.queries.length){
521
+ return;
522
+ }
523
+ this.state.queries.forEach(
524
+ (query) => query.hits.forEach(
525
+ (hit) => {
526
+ num_hits++;
527
+ hsps_arr = hsps_arr.concat(this.populate_hsp_array(hit, query.id));
528
+ }
529
+ )
530
+ );
531
+
532
+ var aln_exporter = new AlignmentExporter();
533
+ var file_name = `alignment-${num_hits}_hits.txt`;
534
+ const blob_url = aln_exporter.prepare_alignments_for_export(hsps_arr, file_name);
535
+ $('.download-alignment-of-all')
536
+ .attr('href', blob_url)
537
+ .attr('download', file_name);
538
+ return false;
539
+ }
540
+
541
+ render() {
542
+ return this.isResultAvailable() ? this.resultsJSX() : this.loadingJSX();
543
+ }
544
+ }
499
545
 
500
- React.render(<Page/>, document.getElementById('view'));
546
+ export default Report;