iqvoc 4.8.1 → 4.8.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (606) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +9 -0
  3. data/Gemfile +1 -3
  4. data/Gemfile.lock +9 -15
  5. data/app/assets/javascripts/framework.js +10 -10
  6. data/app/assets/javascripts/iqvoc/iqvoc.js +3 -3
  7. data/app/assets/javascripts/iqvoc/langselect.js +1 -1
  8. data/app/assets/stylesheets/_framework.scss +4 -4
  9. data/app/assets/stylesheets/iqvoc/components/_components.scss +6 -4
  10. data/app/assets/stylesheets/iqvoc/components/_entity_select.scss +1 -1
  11. data/app/assets/stylesheets/iqvoc/components/_notes.scss +1 -1
  12. data/app/assets/stylesheets/iqvoc/mixins/_mixins.scss +6 -2
  13. data/app/assets/stylesheets/iqvoc/settings/_bootstrap.scss +6 -7
  14. data/app/models/ability.rb +11 -2
  15. data/app/models/user.rb +4 -0
  16. data/app/views/collections/show_unpublished.html.erb +17 -14
  17. data/app/views/concepts/show_unpublished.html.erb +14 -11
  18. data/app/views/dashboard/index.html.erb +3 -3
  19. data/app/views/layouts/_controls.html.erb +3 -1
  20. data/app/views/layouts/application.html.erb +1 -1
  21. data/app/views/search_results/sections/_datasets.html.erb +1 -1
  22. data/app/views/search_results/sections/_languages.html.erb +1 -1
  23. data/config/initializers/assets.rb +2 -0
  24. data/config/locales/de.yml +1 -0
  25. data/config/locales/en.yml +2 -1
  26. data/lib/iqvoc/configuration/core.rb +1 -4
  27. data/lib/iqvoc/version.rb +1 -1
  28. data/public/export/151644452539207638297695765208032122293.nt +28 -0
  29. data/public/export/213987519797093111958174693910375706600.nt +28 -0
  30. data/public/export/220598335291843294191166072463233833628.nt +28 -0
  31. data/public/export/242910803893093872189091525372405462985.nt +28 -0
  32. data/public/export/25981.nt +28 -0
  33. data/public/export/3199.nt +28 -0
  34. data/public/export/50650725356216411444149011685563244498.nt +28 -0
  35. data/public/export/801.nt +28 -0
  36. data/public/uploads/import/596c40774bb5979c8de5ce6daa58de35.nt +259 -0
  37. data/public/uploads/import/77ea050ae3a00aedd2a6e4158454a54d.nt +259 -0
  38. data/public/uploads/import/7cc9feb5e9180d29865b9d4e81694921.nt +259 -0
  39. data/public/uploads/import/8e0bf83a2ca503753efaa29bff6f84f6.nt +259 -0
  40. data/public/uploads/import/a712bf10adc7546d5c567194d7a13603.nt +259 -0
  41. data/public/uploads/import/a7e315db905ac7808126b600dd1f6203.nt +259 -0
  42. data/public/uploads/import/d038a0416528900076cdb4a28211a84c.nt +259 -0
  43. data/public/uploads/import/d250e9b7a2819d62a43d5270031eaa6d.nt +259 -0
  44. data/public/uploads/tmp/1422290833-38334-3392/hobbies.nt +259 -0
  45. data/public/uploads/tmp/1422292996-38701-6635/hobbies.nt +259 -0
  46. data/public/uploads/tmp/1422293183-38751-2662/hobbies.nt +259 -0
  47. data/public/uploads/tmp/1422293478-38811-6215/hobbies.nt +259 -0
  48. data/public/uploads/tmp/1422300870-38980-1343/hobbies.nt +259 -0
  49. data/public/uploads/tmp/1422372626-67843-5956/hobbies.nt +259 -0
  50. data/public/uploads/tmp/1422374262-68176-3483/hobbies.nt +259 -0
  51. data/public/uploads/tmp/1422374611-68319-4455/hobbies.nt +259 -0
  52. data/test/integration/authentication_test.rb +2 -2
  53. data/vendor/assets/bower_components/URIjs/LICENSE.txt +21 -0
  54. data/vendor/assets/bower_components/URIjs/README.md +496 -0
  55. data/vendor/assets/bower_components/URIjs/bower.json +29 -0
  56. data/vendor/assets/bower_components/URIjs/contributing.md +19 -0
  57. data/vendor/assets/bower_components/URIjs/src/IPv6.js +188 -0
  58. data/vendor/assets/bower_components/URIjs/src/SecondLevelDomains.js +241 -0
  59. data/vendor/assets/bower_components/URIjs/src/URI.fragmentQuery.js +104 -0
  60. data/vendor/assets/bower_components/URIjs/src/URI.fragmentURI.js +97 -0
  61. data/vendor/assets/{javascripts → bower_components/URIjs/src}/URI.js +45 -49
  62. data/vendor/assets/bower_components/URIjs/src/URI.min.js +84 -0
  63. data/vendor/assets/bower_components/URIjs/src/URITemplate.js +499 -0
  64. data/vendor/assets/bower_components/URIjs/src/jquery.URI.js +235 -0
  65. data/vendor/assets/bower_components/URIjs/src/jquery.URI.min.js +7 -0
  66. data/vendor/assets/bower_components/URIjs/src/punycode.js +508 -0
  67. data/vendor/assets/bower_components/bootstrap-sass/CHANGELOG.md +183 -0
  68. data/vendor/assets/bower_components/bootstrap-sass/CONTRIBUTING.md +86 -0
  69. data/vendor/assets/bower_components/bootstrap-sass/LICENSE +21 -0
  70. data/vendor/assets/bower_components/bootstrap-sass/README.md +330 -0
  71. data/vendor/assets/bower_components/bootstrap-sass/assets/fonts/bootstrap/glyphicons-halflings-regular.eot +0 -0
  72. data/vendor/assets/bower_components/bootstrap-sass/assets/fonts/bootstrap/glyphicons-halflings-regular.svg +288 -0
  73. data/vendor/assets/bower_components/bootstrap-sass/assets/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
  74. data/vendor/assets/bower_components/bootstrap-sass/assets/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
  75. data/vendor/assets/bower_components/bootstrap-sass/assets/fonts/bootstrap/glyphicons-halflings-regular.woff2 +0 -0
  76. data/vendor/assets/bower_components/bootstrap-sass/assets/javascripts/bootstrap-sprockets.js +12 -0
  77. data/vendor/assets/bower_components/bootstrap-sass/assets/javascripts/bootstrap.js +2306 -0
  78. data/vendor/assets/bower_components/bootstrap-sass/assets/javascripts/bootstrap.min.js +7 -0
  79. data/vendor/assets/bower_components/bootstrap-sass/assets/javascripts/bootstrap/affix.js +162 -0
  80. data/vendor/assets/bower_components/bootstrap-sass/assets/javascripts/bootstrap/alert.js +94 -0
  81. data/vendor/assets/bower_components/bootstrap-sass/assets/javascripts/bootstrap/button.js +116 -0
  82. data/vendor/assets/bower_components/bootstrap-sass/assets/javascripts/bootstrap/carousel.js +237 -0
  83. data/vendor/assets/bower_components/bootstrap-sass/assets/javascripts/bootstrap/collapse.js +211 -0
  84. data/vendor/assets/bower_components/bootstrap-sass/assets/javascripts/bootstrap/dropdown.js +161 -0
  85. data/vendor/assets/bower_components/bootstrap-sass/assets/javascripts/bootstrap/modal.js +324 -0
  86. data/vendor/assets/bower_components/bootstrap-sass/assets/javascripts/bootstrap/popover.js +113 -0
  87. data/vendor/assets/bower_components/bootstrap-sass/assets/javascripts/bootstrap/scrollspy.js +175 -0
  88. data/vendor/assets/bower_components/bootstrap-sass/assets/javascripts/bootstrap/tab.js +153 -0
  89. data/vendor/assets/bower_components/bootstrap-sass/assets/javascripts/bootstrap/tooltip.js +472 -0
  90. data/vendor/assets/bower_components/bootstrap-sass/assets/javascripts/bootstrap/transition.js +59 -0
  91. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/_bootstrap-compass.scss +9 -0
  92. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/_bootstrap-mincer.scss +19 -0
  93. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/_bootstrap-sprockets.scss +9 -0
  94. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/_bootstrap.scss +50 -0
  95. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_alerts.scss +73 -0
  96. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_badges.scss +67 -0
  97. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_breadcrumbs.scss +26 -0
  98. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_button-groups.scss +243 -0
  99. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_buttons.scss +160 -0
  100. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_carousel.scss +269 -0
  101. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_close.scss +36 -0
  102. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_code.scss +69 -0
  103. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_component-animations.scss +38 -0
  104. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_dropdowns.scss +214 -0
  105. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_forms.scss +570 -0
  106. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_glyphicons.scss +301 -0
  107. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_grid.scss +84 -0
  108. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_input-groups.scss +166 -0
  109. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_jumbotron.scss +50 -0
  110. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_labels.scss +66 -0
  111. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_list-group.scss +124 -0
  112. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_media.scss +61 -0
  113. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_mixins.scss +39 -0
  114. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_modals.scss +148 -0
  115. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_navbar.scss +663 -0
  116. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_navs.scss +244 -0
  117. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_normalize.scss +427 -0
  118. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_pager.scss +54 -0
  119. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_pagination.scss +88 -0
  120. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_panels.scss +265 -0
  121. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_popovers.scss +135 -0
  122. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_print.scss +107 -0
  123. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_progress-bars.scss +87 -0
  124. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_responsive-embed.scss +35 -0
  125. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_responsive-utilities.scss +177 -0
  126. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_scaffolding.scss +150 -0
  127. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_tables.scss +234 -0
  128. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_theme.scss +273 -0
  129. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_thumbnails.scss +38 -0
  130. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_tooltip.scss +103 -0
  131. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_type.scss +298 -0
  132. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_utilities.scss +56 -0
  133. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_variables.scss +862 -0
  134. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/_wells.scss +29 -0
  135. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_alerts.scss +14 -0
  136. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_background-variant.scss +11 -0
  137. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_border-radius.scss +18 -0
  138. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_buttons.scss +52 -0
  139. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_center-block.scss +7 -0
  140. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_clearfix.scss +22 -0
  141. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_forms.scss +88 -0
  142. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_gradients.scss +58 -0
  143. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +81 -0
  144. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_grid.scss +122 -0
  145. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_hide-text.scss +21 -0
  146. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_image.scss +33 -0
  147. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_labels.scss +12 -0
  148. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_list-group.scss +31 -0
  149. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +10 -0
  150. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_nav-vertical-align.scss +9 -0
  151. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_opacity.scss +8 -0
  152. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_pagination.scss +23 -0
  153. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_panels.scss +24 -0
  154. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_progress-bar.scss +10 -0
  155. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_reset-filter.scss +8 -0
  156. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_resize.scss +6 -0
  157. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss +21 -0
  158. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_size.scss +10 -0
  159. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_tab-focus.scss +9 -0
  160. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_table-row.scss +28 -0
  161. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +11 -0
  162. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_text-overflow.scss +8 -0
  163. data/vendor/assets/bower_components/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_vendor-prefixes.scss +222 -0
  164. data/vendor/assets/bower_components/bootstrap-sass/bower.json +40 -0
  165. data/vendor/assets/bower_components/bootstrap-sass/composer.json +35 -0
  166. data/vendor/assets/bower_components/bootstrap-sass/package.json +30 -0
  167. data/vendor/assets/bower_components/bootstrap-sass/sache.json +5 -0
  168. data/vendor/assets/bower_components/html5shiv/Gruntfile.js +61 -0
  169. data/vendor/assets/bower_components/html5shiv/bower.json +15 -0
  170. data/vendor/assets/bower_components/html5shiv/dist/html5shiv-printshiv.js +520 -0
  171. data/vendor/assets/bower_components/html5shiv/dist/html5shiv-printshiv.min.js +4 -0
  172. data/vendor/assets/bower_components/html5shiv/dist/html5shiv.js +322 -0
  173. data/vendor/assets/bower_components/html5shiv/dist/html5shiv.min.js +4 -0
  174. data/vendor/assets/bower_components/html5shiv/package.json +16 -0
  175. data/vendor/assets/bower_components/html5shiv/readme.md +152 -0
  176. data/vendor/assets/bower_components/jqtree/LICENSE +202 -0
  177. data/vendor/assets/bower_components/jqtree/README.md +24 -0
  178. data/vendor/assets/bower_components/jqtree/_config.yml +18 -0
  179. data/vendor/assets/bower_components/jqtree/_entries/01_general.md +7 -0
  180. data/vendor/assets/bower_components/jqtree/_entries/02_introduction.md +9 -0
  181. data/vendor/assets/bower_components/jqtree/_entries/03_features.md +15 -0
  182. data/vendor/assets/bower_components/jqtree/_entries/04_demo.html +34 -0
  183. data/vendor/assets/bower_components/jqtree/_entries/05_requirements.md +6 -0
  184. data/vendor/assets/bower_components/jqtree/_entries/06_downloads.md +9 -0
  185. data/vendor/assets/bower_components/jqtree/_entries/07_tutorial.md +77 -0
  186. data/vendor/assets/bower_components/jqtree/_entries/08_examples.md +8 -0
  187. data/vendor/assets/bower_components/jqtree/_entries/09_changelog.md +179 -0
  188. data/vendor/assets/bower_components/jqtree/_entries/10_options.md +6 -0
  189. data/vendor/assets/bower_components/jqtree/_entries/11_autoescape.md +6 -0
  190. data/vendor/assets/bower_components/jqtree/_entries/12_autoopen.md +28 -0
  191. data/vendor/assets/bower_components/jqtree/_entries/13_closedicon.md +12 -0
  192. data/vendor/assets/bower_components/jqtree/_entries/14_data.md +41 -0
  193. data/vendor/assets/bower_components/jqtree/_entries/15_datafilter.md +17 -0
  194. data/vendor/assets/bower_components/jqtree/_entries/16_data-url.md +21 -0
  195. data/vendor/assets/bower_components/jqtree/_entries/17_draganddrop.md +18 -0
  196. data/vendor/assets/bower_components/jqtree/_entries/18_keyboardsupport.md +14 -0
  197. data/vendor/assets/bower_components/jqtree/_entries/19_oncanmove.md +22 -0
  198. data/vendor/assets/bower_components/jqtree/_entries/20_oncanmoveto.md +22 -0
  199. data/vendor/assets/bower_components/jqtree/_entries/21_oncanselectnode.md +26 -0
  200. data/vendor/assets/bower_components/jqtree/_entries/22_oncreateli.md +16 -0
  201. data/vendor/assets/bower_components/jqtree/_entries/23_onismovehandle.md +17 -0
  202. data/vendor/assets/bower_components/jqtree/_entries/24_onloadfailed.md +15 -0
  203. data/vendor/assets/bower_components/jqtree/_entries/25_openedicon.md +12 -0
  204. data/vendor/assets/bower_components/jqtree/_entries/26_openfolderdelay.md +13 -0
  205. data/vendor/assets/bower_components/jqtree/_entries/27_savestate.md +42 -0
  206. data/vendor/assets/bower_components/jqtree/_entries/28_selectable.md +18 -0
  207. data/vendor/assets/bower_components/jqtree/_entries/29_slide.md +12 -0
  208. data/vendor/assets/bower_components/jqtree/_entries/30_usecontextmenu.md +14 -0
  209. data/vendor/assets/bower_components/jqtree/_entries/31_functions.md +6 -0
  210. data/vendor/assets/bower_components/jqtree/_entries/32_addnodeafter.md +20 -0
  211. data/vendor/assets/bower_components/jqtree/_entries/33_addnodebefore.md +8 -0
  212. data/vendor/assets/bower_components/jqtree/_entries/34_appendnode.md +33 -0
  213. data/vendor/assets/bower_components/jqtree/_entries/35_closenode.md +23 -0
  214. data/vendor/assets/bower_components/jqtree/_entries/36_getnodebyid.md +21 -0
  215. data/vendor/assets/bower_components/jqtree/_entries/37_getselectednode.md +10 -0
  216. data/vendor/assets/bower_components/jqtree/_entries/38_getstate.md +19 -0
  217. data/vendor/assets/bower_components/jqtree/_entries/39_gettree.md +8 -0
  218. data/vendor/assets/bower_components/jqtree/_entries/40_loaddata.md +46 -0
  219. data/vendor/assets/bower_components/jqtree/_entries/41_loaddatafromurl.md +55 -0
  220. data/vendor/assets/bower_components/jqtree/_entries/42_movedown.md +8 -0
  221. data/vendor/assets/bower_components/jqtree/_entries/43_movenode.md +15 -0
  222. data/vendor/assets/bower_components/jqtree/_entries/44_moveup.md +8 -0
  223. data/vendor/assets/bower_components/jqtree/_entries/45_opennode.md +29 -0
  224. data/vendor/assets/bower_components/jqtree/_entries/46_addparentnode.md +20 -0
  225. data/vendor/assets/bower_components/jqtree/_entries/47_reload.md +12 -0
  226. data/vendor/assets/bower_components/jqtree/_entries/48_removenode.md +12 -0
  227. data/vendor/assets/bower_components/jqtree/_entries/49_selectnode.md +24 -0
  228. data/vendor/assets/bower_components/jqtree/_entries/50_scrolltonode.md +13 -0
  229. data/vendor/assets/bower_components/jqtree/_entries/51_setoption.md +12 -0
  230. data/vendor/assets/bower_components/jqtree/_entries/52_setstate.md +8 -0
  231. data/vendor/assets/bower_components/jqtree/_entries/53_toggle.md +8 -0
  232. data/vendor/assets/bower_components/jqtree/_entries/54_tojson.md +13 -0
  233. data/vendor/assets/bower_components/jqtree/_entries/55_updatenode.md +33 -0
  234. data/vendor/assets/bower_components/jqtree/_entries/56_events.md +6 -0
  235. data/vendor/assets/bower_components/jqtree/_entries/57_tree-click.md +37 -0
  236. data/vendor/assets/bower_components/jqtree/_entries/58_tree-close.md +15 -0
  237. data/vendor/assets/bower_components/jqtree/_entries/59_tree-contextmenu.md +21 -0
  238. data/vendor/assets/bower_components/jqtree/_entries/60_tree-dblclick.md +19 -0
  239. data/vendor/assets/bower_components/jqtree/_entries/61_tree-init.md +15 -0
  240. data/vendor/assets/bower_components/jqtree/_entries/62_tree-move.md +71 -0
  241. data/vendor/assets/bower_components/jqtree/_entries/63_tree-open.md +15 -0
  242. data/vendor/assets/bower_components/jqtree/_entries/64_tree-select.md +28 -0
  243. data/vendor/assets/bower_components/jqtree/_entries/65_multiple-selection.md +9 -0
  244. data/vendor/assets/bower_components/jqtree/_entries/66_add-to-selection.md +11 -0
  245. data/vendor/assets/bower_components/jqtree/_entries/67_get-selected-nodes.md +10 -0
  246. data/vendor/assets/bower_components/jqtree/_entries/68_is-node-selected.md +11 -0
  247. data/vendor/assets/bower_components/jqtree/_entries/69_remove-from-selection.md +11 -0
  248. data/vendor/assets/bower_components/jqtree/_entries/70_node-functions.md +13 -0
  249. data/vendor/assets/bower_components/jqtree/_entries/71_children.md +12 -0
  250. data/vendor/assets/bower_components/jqtree/_entries/72_getdata.md +10 -0
  251. data/vendor/assets/bower_components/jqtree/_entries/73_getlevel.md +13 -0
  252. data/vendor/assets/bower_components/jqtree/_entries/74_getnextnode.md +12 -0
  253. data/vendor/assets/bower_components/jqtree/_entries/75_getnextsibling.md +10 -0
  254. data/vendor/assets/bower_components/jqtree/_entries/76_getpreviousnode.md +12 -0
  255. data/vendor/assets/bower_components/jqtree/_entries/77_getprevioussibling.md +10 -0
  256. data/vendor/assets/bower_components/jqtree/_entries/78_parent.md +10 -0
  257. data/vendor/assets/bower_components/jqtree/_examples/01_load_json_data.html +47 -0
  258. data/vendor/assets/bower_components/jqtree/_examples/02_load_json_data_from_server.html +31 -0
  259. data/vendor/assets/bower_components/jqtree/_examples/03_drag_and_drop.html +45 -0
  260. data/vendor/assets/bower_components/jqtree/_examples/04_save_state.html +52 -0
  261. data/vendor/assets/bower_components/jqtree/_examples/05_load_on_demand.html +70 -0
  262. data/vendor/assets/bower_components/jqtree/_examples/06_autoescape.html +47 -0
  263. data/vendor/assets/bower_components/jqtree/_examples/07_autoscroll.html +23 -0
  264. data/vendor/assets/bower_components/jqtree/_examples/08_multiple_select.html +72 -0
  265. data/vendor/assets/bower_components/jqtree/_examples/09_custom_html.html +68 -0
  266. data/vendor/assets/bower_components/jqtree/_examples/10_icon_buttons.html +27 -0
  267. data/vendor/assets/bower_components/jqtree/_layouts/base.html +48 -0
  268. data/vendor/assets/bower_components/jqtree/_layouts/frontpage.html +20 -0
  269. data/vendor/assets/bower_components/jqtree/_layouts/page.html +7 -0
  270. data/vendor/assets/bower_components/jqtree/bower.json +12 -0
  271. data/vendor/assets/bower_components/jqtree/gulpfile.coffee +30 -0
  272. data/vendor/assets/bower_components/jqtree/gulpfile.js +2 -0
  273. data/vendor/assets/bower_components/jqtree/index.html +48 -0
  274. data/vendor/assets/bower_components/jqtree/jqtree-circle.png +0 -0
  275. data/vendor/assets/bower_components/jqtree/jqtree.css +143 -0
  276. data/vendor/assets/bower_components/jqtree/jqtree.jquery.json +23 -0
  277. data/vendor/assets/bower_components/jqtree/package.json +23 -0
  278. data/vendor/assets/bower_components/jqtree/phantomjs/runner.js +193 -0
  279. data/vendor/assets/bower_components/jqtree/phantomjs/server.js +14 -0
  280. data/vendor/assets/bower_components/jqtree/screenshot.png +0 -0
  281. data/vendor/assets/bower_components/jqtree/sitemap.txt +11 -0
  282. data/vendor/assets/bower_components/jqtree/src/drag_and_drop_handler.coffee +466 -0
  283. data/vendor/assets/bower_components/jqtree/src/elements_renderer.coffee +198 -0
  284. data/vendor/assets/bower_components/jqtree/src/key_handler.coffee +92 -0
  285. data/vendor/assets/bower_components/jqtree/src/mouse.widget.coffee +181 -0
  286. data/vendor/assets/bower_components/jqtree/src/node.coffee +431 -0
  287. data/vendor/assets/bower_components/jqtree/src/node_element.coffee +144 -0
  288. data/vendor/assets/bower_components/jqtree/src/save_state_handler.coffee +191 -0
  289. data/vendor/assets/bower_components/jqtree/src/scroll_handler.coffee +100 -0
  290. data/vendor/assets/bower_components/jqtree/src/select_node_handler.coffee +76 -0
  291. data/vendor/assets/bower_components/jqtree/src/simple.widget.coffee +102 -0
  292. data/vendor/assets/bower_components/jqtree/src/test.js +1945 -0
  293. data/vendor/assets/bower_components/jqtree/src/tree.jquery.coffee +772 -0
  294. data/vendor/assets/bower_components/jqtree/src/util.coffee +117 -0
  295. data/vendor/assets/bower_components/jqtree/src/version.coffee +1 -0
  296. data/vendor/assets/bower_components/jqtree/static/bower.json +13 -0
  297. data/vendor/assets/bower_components/jqtree/static/bower_components/blanket/dist/qunit/blanket.js +5430 -0
  298. data/vendor/assets/bower_components/jqtree/static/bower_components/bootstrap/dist/css/bootstrap-theme.min.css +5 -0
  299. data/vendor/assets/bower_components/jqtree/static/bower_components/bootstrap/dist/css/bootstrap.min.css +5 -0
  300. data/vendor/assets/bower_components/jqtree/static/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot +0 -0
  301. data/vendor/assets/bower_components/jqtree/static/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.svg +229 -0
  302. data/vendor/assets/bower_components/jqtree/static/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf +0 -0
  303. data/vendor/assets/bower_components/jqtree/static/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff +0 -0
  304. data/vendor/assets/bower_components/jqtree/static/bower_components/bootstrap/dist/js/bootstrap.min.js +7 -0
  305. data/vendor/assets/bower_components/jqtree/static/bower_components/fontawesome/css/font-awesome.min.css +4 -0
  306. data/vendor/assets/bower_components/jqtree/static/bower_components/fontawesome/fonts/FontAwesome.otf +0 -0
  307. data/vendor/assets/bower_components/jqtree/static/bower_components/fontawesome/fonts/fontawesome-webfont.eot +0 -0
  308. data/vendor/assets/bower_components/jqtree/static/bower_components/fontawesome/fonts/fontawesome-webfont.svg +520 -0
  309. data/vendor/assets/bower_components/jqtree/static/bower_components/fontawesome/fonts/fontawesome-webfont.ttf +0 -0
  310. data/vendor/assets/bower_components/jqtree/static/bower_components/fontawesome/fonts/fontawesome-webfont.woff +0 -0
  311. data/vendor/assets/bower_components/jqtree/static/bower_components/jquery-cookie/jquery.cookie.js +117 -0
  312. data/vendor/assets/bower_components/jqtree/static/bower_components/jquery-mockjax/jquery.mockjax.js +692 -0
  313. data/vendor/assets/bower_components/jqtree/static/bower_components/jquery/dist/jquery.min.js +5 -0
  314. data/vendor/assets/bower_components/jqtree/static/bower_components/pygments/css/monokai.css +63 -0
  315. data/vendor/assets/bower_components/jqtree/static/bower_components/qunit/qunit/qunit.css +264 -0
  316. data/vendor/assets/bower_components/jqtree/static/bower_components/qunit/qunit/qunit.js +2819 -0
  317. data/vendor/assets/bower_components/jqtree/static/documentation.css +165 -0
  318. data/vendor/assets/bower_components/jqtree/static/documentation.js +51 -0
  319. data/vendor/assets/bower_components/jqtree/static/example.css +53 -0
  320. data/vendor/assets/bower_components/jqtree/static/example_data.js +128 -0
  321. data/vendor/assets/bower_components/jqtree/static/examples/autoescape.js +19 -0
  322. data/vendor/assets/bower_components/jqtree/static/examples/autoscroll.js +8 -0
  323. data/vendor/assets/bower_components/jqtree/static/examples/custom_html.js +32 -0
  324. data/vendor/assets/bower_components/jqtree/static/examples/drag_and_drop.js +15 -0
  325. data/vendor/assets/bower_components/jqtree/static/examples/icon_buttons.js +14 -0
  326. data/vendor/assets/bower_components/jqtree/static/examples/load_json_data.js +21 -0
  327. data/vendor/assets/bower_components/jqtree/static/examples/load_json_data_from_server.js +11 -0
  328. data/vendor/assets/bower_components/jqtree/static/examples/load_on_demand.js +20 -0
  329. data/vendor/assets/bower_components/jqtree/static/examples/multiple_select.js +27 -0
  330. data/vendor/assets/bower_components/jqtree/static/examples/save_state.js +13 -0
  331. data/vendor/assets/bower_components/jqtree/static/jquery-1.11.2.min.js +4 -0
  332. data/vendor/assets/bower_components/jqtree/static/spinner.gif +0 -0
  333. data/vendor/assets/bower_components/jqtree/test/test.html +23 -0
  334. data/vendor/assets/bower_components/jqtree/test/test.js +2604 -0
  335. data/vendor/assets/{javascripts → bower_components/jqtree}/tree.jquery.js +2274 -1932
  336. data/vendor/assets/bower_components/jquery-ujs/CHANGELOG.md +24 -0
  337. data/vendor/assets/bower_components/jquery-ujs/MIT-LICENSE.txt +20 -0
  338. data/vendor/assets/bower_components/jquery-ujs/README.md +72 -0
  339. data/vendor/assets/bower_components/jquery-ujs/bower.json +20 -0
  340. data/vendor/assets/bower_components/jquery-ujs/src/rails.js +469 -0
  341. data/vendor/assets/bower_components/jquery/MIT-LICENSE.txt +21 -0
  342. data/vendor/assets/bower_components/jquery/bower.json +27 -0
  343. data/vendor/assets/bower_components/jquery/dist/jquery.js +9205 -0
  344. data/vendor/assets/bower_components/jquery/dist/jquery.min.js +5 -0
  345. data/vendor/assets/bower_components/jquery/dist/jquery.min.map +1 -0
  346. data/vendor/assets/bower_components/jquery/src/ajax.js +786 -0
  347. data/vendor/assets/bower_components/jquery/src/ajax/jsonp.js +89 -0
  348. data/vendor/assets/bower_components/jquery/src/ajax/load.js +75 -0
  349. data/vendor/assets/bower_components/jquery/src/ajax/parseJSON.js +13 -0
  350. data/vendor/assets/bower_components/jquery/src/ajax/parseXML.js +28 -0
  351. data/vendor/assets/bower_components/jquery/src/ajax/script.js +64 -0
  352. data/vendor/assets/bower_components/jquery/src/ajax/var/nonce.js +5 -0
  353. data/vendor/assets/bower_components/jquery/src/ajax/var/rquery.js +3 -0
  354. data/vendor/assets/bower_components/jquery/src/ajax/xhr.js +136 -0
  355. data/vendor/assets/bower_components/jquery/src/attributes.js +11 -0
  356. data/vendor/assets/bower_components/jquery/src/attributes/attr.js +141 -0
  357. data/vendor/assets/bower_components/jquery/src/attributes/classes.js +158 -0
  358. data/vendor/assets/bower_components/jquery/src/attributes/prop.js +94 -0
  359. data/vendor/assets/bower_components/jquery/src/attributes/support.js +35 -0
  360. data/vendor/assets/bower_components/jquery/src/attributes/val.js +161 -0
  361. data/vendor/assets/bower_components/jquery/src/callbacks.js +205 -0
  362. data/vendor/assets/bower_components/jquery/src/core.js +497 -0
  363. data/vendor/assets/bower_components/jquery/src/core/access.js +60 -0
  364. data/vendor/assets/bower_components/jquery/src/core/init.js +123 -0
  365. data/vendor/assets/bower_components/jquery/src/core/parseHTML.js +39 -0
  366. data/vendor/assets/bower_components/jquery/src/core/ready.js +97 -0
  367. data/vendor/assets/bower_components/jquery/src/core/var/rsingleTag.js +4 -0
  368. data/vendor/assets/bower_components/jquery/src/css.js +450 -0
  369. data/vendor/assets/bower_components/jquery/src/css/addGetHookIf.js +22 -0
  370. data/vendor/assets/bower_components/jquery/src/css/curCSS.js +57 -0
  371. data/vendor/assets/bower_components/jquery/src/css/defaultDisplay.js +70 -0
  372. data/vendor/assets/bower_components/jquery/src/css/hiddenVisibleSelectors.js +15 -0
  373. data/vendor/assets/bower_components/jquery/src/css/support.js +96 -0
  374. data/vendor/assets/bower_components/jquery/src/css/swap.js +28 -0
  375. data/vendor/assets/bower_components/jquery/src/css/var/cssExpand.js +3 -0
  376. data/vendor/assets/bower_components/jquery/src/css/var/getStyles.js +12 -0
  377. data/vendor/assets/bower_components/jquery/src/css/var/isHidden.js +13 -0
  378. data/vendor/assets/bower_components/jquery/src/css/var/rmargin.js +3 -0
  379. data/vendor/assets/bower_components/jquery/src/css/var/rnumnonpx.js +5 -0
  380. data/vendor/assets/bower_components/jquery/src/data.js +178 -0
  381. data/vendor/assets/bower_components/jquery/src/data/Data.js +181 -0
  382. data/vendor/assets/bower_components/jquery/src/data/accepts.js +20 -0
  383. data/vendor/assets/bower_components/jquery/src/data/var/data_priv.js +5 -0
  384. data/vendor/assets/bower_components/jquery/src/data/var/data_user.js +5 -0
  385. data/vendor/assets/bower_components/jquery/src/deferred.js +149 -0
  386. data/vendor/assets/bower_components/jquery/src/deprecated.js +13 -0
  387. data/vendor/assets/bower_components/jquery/src/dimensions.js +50 -0
  388. data/vendor/assets/bower_components/jquery/src/effects.js +648 -0
  389. data/vendor/assets/bower_components/jquery/src/effects/Tween.js +114 -0
  390. data/vendor/assets/bower_components/jquery/src/effects/animatedSelector.js +13 -0
  391. data/vendor/assets/bower_components/jquery/src/event.js +868 -0
  392. data/vendor/assets/bower_components/jquery/src/event/ajax.js +13 -0
  393. data/vendor/assets/bower_components/jquery/src/event/alias.js +39 -0
  394. data/vendor/assets/bower_components/jquery/src/event/support.js +9 -0
  395. data/vendor/assets/bower_components/jquery/src/exports/amd.js +24 -0
  396. data/vendor/assets/bower_components/jquery/src/exports/global.js +32 -0
  397. data/vendor/assets/bower_components/jquery/src/intro.js +44 -0
  398. data/vendor/assets/bower_components/jquery/src/jquery.js +37 -0
  399. data/vendor/assets/bower_components/jquery/src/manipulation.js +580 -0
  400. data/vendor/assets/bower_components/jquery/src/manipulation/_evalUrl.js +18 -0
  401. data/vendor/assets/bower_components/jquery/src/manipulation/support.js +32 -0
  402. data/vendor/assets/bower_components/jquery/src/manipulation/var/rcheckableType.js +3 -0
  403. data/vendor/assets/bower_components/jquery/src/offset.js +207 -0
  404. data/vendor/assets/bower_components/jquery/src/outro.js +1 -0
  405. data/vendor/assets/bower_components/jquery/src/queue.js +142 -0
  406. data/vendor/assets/bower_components/jquery/src/queue/delay.js +22 -0
  407. data/vendor/assets/bower_components/jquery/src/selector-native.js +172 -0
  408. data/vendor/assets/bower_components/jquery/src/selector-sizzle.js +14 -0
  409. data/vendor/assets/bower_components/jquery/src/selector.js +1 -0
  410. data/vendor/assets/bower_components/jquery/src/serialize.js +111 -0
  411. data/vendor/assets/bower_components/jquery/src/sizzle/dist/sizzle.js +2067 -0
  412. data/vendor/assets/bower_components/jquery/src/sizzle/dist/sizzle.min.js +3 -0
  413. data/vendor/assets/bower_components/jquery/src/sizzle/dist/sizzle.min.map +1 -0
  414. data/vendor/assets/bower_components/jquery/src/traversing.js +199 -0
  415. data/vendor/assets/bower_components/jquery/src/traversing/findFilter.js +100 -0
  416. data/vendor/assets/bower_components/jquery/src/traversing/var/rneedsContext.js +6 -0
  417. data/vendor/assets/bower_components/jquery/src/var/arr.js +3 -0
  418. data/vendor/assets/bower_components/jquery/src/var/class2type.js +4 -0
  419. data/vendor/assets/bower_components/jquery/src/var/concat.js +5 -0
  420. data/vendor/assets/bower_components/jquery/src/var/hasOwn.js +5 -0
  421. data/vendor/assets/bower_components/jquery/src/var/indexOf.js +5 -0
  422. data/vendor/assets/bower_components/jquery/src/var/pnum.js +3 -0
  423. data/vendor/assets/bower_components/jquery/src/var/push.js +5 -0
  424. data/vendor/assets/bower_components/jquery/src/var/rnotwhite.js +3 -0
  425. data/vendor/assets/bower_components/jquery/src/var/slice.js +5 -0
  426. data/vendor/assets/bower_components/jquery/src/var/strundefined.js +3 -0
  427. data/vendor/assets/bower_components/jquery/src/var/support.js +4 -0
  428. data/vendor/assets/bower_components/jquery/src/var/toString.js +5 -0
  429. data/vendor/assets/bower_components/jquery/src/wrap.js +79 -0
  430. data/vendor/assets/bower_components/pickadate/Gruntfile.js +275 -0
  431. data/vendor/assets/bower_components/pickadate/bower.json +63 -0
  432. data/vendor/assets/bower_components/pickadate/lib/compressed/legacy.js +10 -0
  433. data/vendor/assets/bower_components/pickadate/lib/compressed/picker.date.js +5 -0
  434. data/vendor/assets/bower_components/pickadate/lib/compressed/picker.js +7 -0
  435. data/vendor/assets/bower_components/pickadate/lib/compressed/picker.time.js +5 -0
  436. data/vendor/assets/bower_components/pickadate/lib/compressed/themes/classic.css +4 -0
  437. data/vendor/assets/bower_components/pickadate/lib/compressed/themes/classic.date.css +1 -0
  438. data/vendor/assets/bower_components/pickadate/lib/compressed/themes/classic.time.css +1 -0
  439. data/vendor/assets/bower_components/pickadate/lib/compressed/themes/default.css +4 -0
  440. data/vendor/assets/bower_components/pickadate/lib/compressed/themes/default.date.css +1 -0
  441. data/vendor/assets/bower_components/pickadate/lib/compressed/themes/default.time.css +1 -0
  442. data/vendor/assets/bower_components/pickadate/lib/compressed/themes/rtl.css +3 -0
  443. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/ar.js +1 -0
  444. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/bg_BG.js +1 -0
  445. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/bs_BA.js +1 -0
  446. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/ca_ES.js +1 -0
  447. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/cs_CZ.js +1 -0
  448. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/da_DK.js +1 -0
  449. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/de_DE.js +1 -0
  450. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/el_GR.js +1 -0
  451. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/es_ES.js +1 -0
  452. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/et_EE.js +1 -0
  453. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/eu_ES.js +1 -0
  454. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/fi_FI.js +1 -0
  455. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/fr_FR.js +1 -0
  456. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/gl_ES.js +1 -0
  457. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/he_IL.js +1 -0
  458. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/hr_HR.js +1 -0
  459. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/hu_HU.js +1 -0
  460. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/id_ID.js +1 -0
  461. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/is_IS.js +1 -0
  462. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/it_IT.js +1 -0
  463. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/ja_JP.js +1 -0
  464. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/ko_KR.js +1 -0
  465. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/ne_NP.js +1 -0
  466. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/nl_NL.js +1 -0
  467. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/no_NO.js +1 -0
  468. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/pl_PL.js +1 -0
  469. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/pt_BR.js +1 -0
  470. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/pt_PT.js +1 -0
  471. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/ro_RO.js +1 -0
  472. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/ru_RU.js +1 -0
  473. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/sk_SK.js +1 -0
  474. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/sl_SI.js +1 -0
  475. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/sv_SE.js +1 -0
  476. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/th_TH.js +1 -0
  477. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/tr_TR.js +1 -0
  478. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/uk_UA.js +1 -0
  479. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/vi_VN.js +1 -0
  480. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/zh_CN.js +1 -0
  481. data/vendor/assets/bower_components/pickadate/lib/compressed/translations/zh_TW.js +1 -0
  482. data/vendor/assets/bower_components/pickadate/lib/legacy.js +133 -0
  483. data/vendor/assets/{javascripts/pickadate → bower_components/pickadate/lib}/picker.date.js +60 -28
  484. data/vendor/assets/{javascripts/pickadate → bower_components/pickadate/lib}/picker.js +41 -25
  485. data/vendor/assets/bower_components/pickadate/lib/picker.time.js +1014 -0
  486. data/vendor/assets/bower_components/pickadate/lib/themes-source/_variables.less +208 -0
  487. data/vendor/assets/bower_components/pickadate/lib/themes-source/base.date.less +333 -0
  488. data/vendor/assets/bower_components/pickadate/lib/themes-source/base.less +55 -0
  489. data/vendor/assets/bower_components/pickadate/lib/themes-source/base.time.less +119 -0
  490. data/vendor/assets/bower_components/pickadate/lib/themes-source/classic.date.less +9 -0
  491. data/vendor/assets/bower_components/pickadate/lib/themes-source/classic.less +119 -0
  492. data/vendor/assets/bower_components/pickadate/lib/themes-source/classic.time.less +49 -0
  493. data/vendor/assets/bower_components/pickadate/lib/themes-source/default.date.less +9 -0
  494. data/vendor/assets/bower_components/pickadate/lib/themes-source/default.less +246 -0
  495. data/vendor/assets/bower_components/pickadate/lib/themes-source/default.time.less +41 -0
  496. data/vendor/assets/bower_components/pickadate/lib/themes-source/rtl.less +38 -0
  497. data/vendor/assets/{stylesheets/pickadate/classic.scss → bower_components/pickadate/lib/themes/classic.css} +0 -0
  498. data/vendor/assets/{stylesheets/pickadate/classic.date.scss → bower_components/pickadate/lib/themes/classic.date.css} +33 -10
  499. data/vendor/assets/bower_components/pickadate/lib/themes/classic.time.css +132 -0
  500. data/vendor/assets/bower_components/pickadate/lib/themes/default.css +175 -0
  501. data/vendor/assets/bower_components/pickadate/lib/themes/default.date.css +301 -0
  502. data/vendor/assets/bower_components/pickadate/lib/themes/default.time.css +126 -0
  503. data/vendor/assets/bower_components/pickadate/lib/themes/rtl.css +29 -0
  504. data/vendor/assets/bower_components/pickadate/lib/translations/ar.js +12 -0
  505. data/vendor/assets/bower_components/pickadate/lib/translations/bg_BG.js +13 -0
  506. data/vendor/assets/bower_components/pickadate/lib/translations/bs_BA.js +13 -0
  507. data/vendor/assets/bower_components/pickadate/lib/translations/ca_ES.js +13 -0
  508. data/vendor/assets/bower_components/pickadate/lib/translations/cs_CZ.js +13 -0
  509. data/vendor/assets/bower_components/pickadate/lib/translations/da_DK.js +13 -0
  510. data/vendor/assets/bower_components/pickadate/lib/translations/de_DE.js +13 -0
  511. data/vendor/assets/bower_components/pickadate/lib/translations/el_GR.js +13 -0
  512. data/vendor/assets/bower_components/pickadate/lib/translations/es_ES.js +14 -0
  513. data/vendor/assets/bower_components/pickadate/lib/translations/et_EE.js +13 -0
  514. data/vendor/assets/bower_components/pickadate/lib/translations/eu_ES.js +13 -0
  515. data/vendor/assets/bower_components/pickadate/lib/translations/fi_FI.js +13 -0
  516. data/vendor/assets/bower_components/pickadate/lib/translations/fr_FR.js +18 -0
  517. data/vendor/assets/bower_components/pickadate/lib/translations/gl_ES.js +13 -0
  518. data/vendor/assets/bower_components/pickadate/lib/translations/he_IL.js +12 -0
  519. data/vendor/assets/bower_components/pickadate/lib/translations/hr_HR.js +13 -0
  520. data/vendor/assets/bower_components/pickadate/lib/translations/hu_HU.js +13 -0
  521. data/vendor/assets/bower_components/pickadate/lib/translations/id_ID.js +13 -0
  522. data/vendor/assets/bower_components/pickadate/lib/translations/is_IS.js +13 -0
  523. data/vendor/assets/bower_components/pickadate/lib/translations/it_IT.js +14 -0
  524. data/vendor/assets/bower_components/pickadate/lib/translations/ja_JP.js +13 -0
  525. data/vendor/assets/bower_components/pickadate/lib/translations/ko_KR.js +13 -0
  526. data/vendor/assets/bower_components/pickadate/lib/translations/ne_NP.js +13 -0
  527. data/vendor/assets/bower_components/pickadate/lib/translations/nl_NL.js +13 -0
  528. data/vendor/assets/bower_components/pickadate/lib/translations/no_NO.js +13 -0
  529. data/vendor/assets/bower_components/pickadate/lib/translations/pl_PL.js +13 -0
  530. data/vendor/assets/bower_components/pickadate/lib/translations/pt_BR.js +12 -0
  531. data/vendor/assets/bower_components/pickadate/lib/translations/pt_PT.js +12 -0
  532. data/vendor/assets/bower_components/pickadate/lib/translations/ro_RO.js +13 -0
  533. data/vendor/assets/bower_components/pickadate/lib/translations/ru_RU.js +14 -0
  534. data/vendor/assets/bower_components/pickadate/lib/translations/sk_SK.js +14 -0
  535. data/vendor/assets/bower_components/pickadate/lib/translations/sl_SI.js +13 -0
  536. data/vendor/assets/bower_components/pickadate/lib/translations/sv_SE.js +13 -0
  537. data/vendor/assets/bower_components/pickadate/lib/translations/th_TH.js +12 -0
  538. data/vendor/assets/bower_components/pickadate/lib/translations/tr_TR.js +13 -0
  539. data/vendor/assets/bower_components/pickadate/lib/translations/uk_UA.js +13 -0
  540. data/vendor/assets/bower_components/pickadate/lib/translations/vi_VN.js +11 -0
  541. data/vendor/assets/bower_components/pickadate/lib/translations/zh_CN.js +13 -0
  542. data/vendor/assets/bower_components/pickadate/lib/translations/zh_TW.js +13 -0
  543. data/vendor/assets/bower_components/pickadate/package.json +63 -0
  544. data/vendor/assets/bower_components/pickadate/pickadate.jquery.json +63 -0
  545. data/vendor/assets/bower_components/typeahead.js/CHANGELOG.md +222 -0
  546. data/vendor/assets/bower_components/typeahead.js/CONTRIBUTING.md +120 -0
  547. data/vendor/assets/bower_components/typeahead.js/Gruntfile.js +265 -0
  548. data/vendor/assets/bower_components/typeahead.js/LICENSE +19 -0
  549. data/vendor/assets/bower_components/typeahead.js/README.md +188 -0
  550. data/vendor/assets/bower_components/typeahead.js/bower.json +13 -0
  551. data/vendor/assets/bower_components/typeahead.js/composer.json +17 -0
  552. data/vendor/assets/bower_components/typeahead.js/dist/bloodhound.js +727 -0
  553. data/vendor/assets/bower_components/typeahead.js/dist/bloodhound.min.js +7 -0
  554. data/vendor/assets/bower_components/typeahead.js/dist/typeahead.bundle.js +1782 -0
  555. data/vendor/assets/bower_components/typeahead.js/dist/typeahead.bundle.min.js +7 -0
  556. data/vendor/assets/{javascripts → bower_components/typeahead.js/dist}/typeahead.jquery.js +0 -0
  557. data/vendor/assets/bower_components/typeahead.js/dist/typeahead.jquery.min.js +7 -0
  558. data/vendor/assets/bower_components/typeahead.js/doc/bloodhound.md +279 -0
  559. data/vendor/assets/bower_components/typeahead.js/doc/jquery_typeahead.md +383 -0
  560. data/vendor/assets/bower_components/typeahead.js/doc/migration/0.10.0.md +234 -0
  561. data/vendor/assets/bower_components/typeahead.js/karma.conf.js +98 -0
  562. data/vendor/assets/bower_components/typeahead.js/package.json +57 -0
  563. data/vendor/assets/bower_components/typeahead.js/src/bloodhound/bloodhound.js +234 -0
  564. data/vendor/assets/bower_components/typeahead.js/src/bloodhound/lru_cache.js +99 -0
  565. data/vendor/assets/bower_components/typeahead.js/src/bloodhound/options_parser.js +89 -0
  566. data/vendor/assets/bower_components/typeahead.js/src/bloodhound/persistent_storage.js +131 -0
  567. data/vendor/assets/bower_components/typeahead.js/src/bloodhound/search_index.js +169 -0
  568. data/vendor/assets/bower_components/typeahead.js/src/bloodhound/tokenizers.js +44 -0
  569. data/vendor/assets/bower_components/typeahead.js/src/bloodhound/transport.js +152 -0
  570. data/vendor/assets/bower_components/typeahead.js/src/bloodhound/version.js +7 -0
  571. data/vendor/assets/bower_components/typeahead.js/src/common/utils.js +152 -0
  572. data/vendor/assets/bower_components/typeahead.js/src/typeahead/css.js +77 -0
  573. data/vendor/assets/bower_components/typeahead.js/src/typeahead/dataset.js +210 -0
  574. data/vendor/assets/bower_components/typeahead.js/src/typeahead/dropdown.js +245 -0
  575. data/vendor/assets/bower_components/typeahead.js/src/typeahead/event_bus.js +38 -0
  576. data/vendor/assets/bower_components/typeahead.js/src/typeahead/event_emitter.js +119 -0
  577. data/vendor/assets/bower_components/typeahead.js/src/typeahead/highlight.js +84 -0
  578. data/vendor/assets/bower_components/typeahead.js/src/typeahead/html.js +15 -0
  579. data/vendor/assets/bower_components/typeahead.js/src/typeahead/input.js +311 -0
  580. data/vendor/assets/bower_components/typeahead.js/src/typeahead/plugin.js +129 -0
  581. data/vendor/assets/bower_components/typeahead.js/src/typeahead/typeahead.js +391 -0
  582. data/vendor/assets/bower_components/typeahead.js/test/bloodhound_spec.js +592 -0
  583. data/vendor/assets/bower_components/typeahead.js/test/ci +12 -0
  584. data/vendor/assets/bower_components/typeahead.js/test/dataset_view_spec.js +222 -0
  585. data/vendor/assets/bower_components/typeahead.js/test/dropdown_view_spec.js +353 -0
  586. data/vendor/assets/bower_components/typeahead.js/test/event_emitter_spec.js +111 -0
  587. data/vendor/assets/bower_components/typeahead.js/test/fixtures/ajax_responses.js +19 -0
  588. data/vendor/assets/bower_components/typeahead.js/test/fixtures/data.js +116 -0
  589. data/vendor/assets/bower_components/typeahead.js/test/fixtures/html.js +17 -0
  590. data/vendor/assets/bower_components/typeahead.js/test/helpers/typeahead_mocks.js +71 -0
  591. data/vendor/assets/bower_components/typeahead.js/test/highlight_spec.js +117 -0
  592. data/vendor/assets/bower_components/typeahead.js/test/input_view_spec.js +449 -0
  593. data/vendor/assets/bower_components/typeahead.js/test/integration/test.html +112 -0
  594. data/vendor/assets/bower_components/typeahead.js/test/integration/test.js +397 -0
  595. data/vendor/assets/bower_components/typeahead.js/test/lru_cache_spec.js +42 -0
  596. data/vendor/assets/bower_components/typeahead.js/test/persistent_storage_spec.js +131 -0
  597. data/vendor/assets/bower_components/typeahead.js/test/playground.html +347 -0
  598. data/vendor/assets/bower_components/typeahead.js/test/search_index_spec.js +60 -0
  599. data/vendor/assets/bower_components/typeahead.js/test/tokenizers_spec.js +60 -0
  600. data/vendor/assets/bower_components/typeahead.js/test/transport_spec.js +197 -0
  601. data/vendor/assets/bower_components/typeahead.js/test/typeahead_view_spec.js +570 -0
  602. data/vendor/assets/bower_components/typeahead.js/typeahead.js.jquery.json +40 -0
  603. metadata +576 -12
  604. data/vendor/assets/javascripts/html5.js +0 -3
  605. data/vendor/assets/javascripts/jquery-1.7.1.js +0 -9266
  606. data/vendor/assets/javascripts/rails.js +0 -373
@@ -0,0 +1,117 @@
1
+ /*!
2
+ * jQuery Cookie Plugin v1.4.1
3
+ * https://github.com/carhartl/jquery-cookie
4
+ *
5
+ * Copyright 2013 Klaus Hartl
6
+ * Released under the MIT license
7
+ */
8
+ (function (factory) {
9
+ if (typeof define === 'function' && define.amd) {
10
+ // AMD
11
+ define(['jquery'], factory);
12
+ } else if (typeof exports === 'object') {
13
+ // CommonJS
14
+ factory(require('jquery'));
15
+ } else {
16
+ // Browser globals
17
+ factory(jQuery);
18
+ }
19
+ }(function ($) {
20
+
21
+ var pluses = /\+/g;
22
+
23
+ function encode(s) {
24
+ return config.raw ? s : encodeURIComponent(s);
25
+ }
26
+
27
+ function decode(s) {
28
+ return config.raw ? s : decodeURIComponent(s);
29
+ }
30
+
31
+ function stringifyCookieValue(value) {
32
+ return encode(config.json ? JSON.stringify(value) : String(value));
33
+ }
34
+
35
+ function parseCookieValue(s) {
36
+ if (s.indexOf('"') === 0) {
37
+ // This is a quoted cookie as according to RFC2068, unescape...
38
+ s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
39
+ }
40
+
41
+ try {
42
+ // Replace server-side written pluses with spaces.
43
+ // If we can't decode the cookie, ignore it, it's unusable.
44
+ // If we can't parse the cookie, ignore it, it's unusable.
45
+ s = decodeURIComponent(s.replace(pluses, ' '));
46
+ return config.json ? JSON.parse(s) : s;
47
+ } catch(e) {}
48
+ }
49
+
50
+ function read(s, converter) {
51
+ var value = config.raw ? s : parseCookieValue(s);
52
+ return $.isFunction(converter) ? converter(value) : value;
53
+ }
54
+
55
+ var config = $.cookie = function (key, value, options) {
56
+
57
+ // Write
58
+
59
+ if (value !== undefined && !$.isFunction(value)) {
60
+ options = $.extend({}, config.defaults, options);
61
+
62
+ if (typeof options.expires === 'number') {
63
+ var days = options.expires, t = options.expires = new Date();
64
+ t.setTime(+t + days * 864e+5);
65
+ }
66
+
67
+ return (document.cookie = [
68
+ encode(key), '=', stringifyCookieValue(value),
69
+ options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
70
+ options.path ? '; path=' + options.path : '',
71
+ options.domain ? '; domain=' + options.domain : '',
72
+ options.secure ? '; secure' : ''
73
+ ].join(''));
74
+ }
75
+
76
+ // Read
77
+
78
+ var result = key ? undefined : {};
79
+
80
+ // To prevent the for loop in the first place assign an empty array
81
+ // in case there are no cookies at all. Also prevents odd result when
82
+ // calling $.cookie().
83
+ var cookies = document.cookie ? document.cookie.split('; ') : [];
84
+
85
+ for (var i = 0, l = cookies.length; i < l; i++) {
86
+ var parts = cookies[i].split('=');
87
+ var name = decode(parts.shift());
88
+ var cookie = parts.join('=');
89
+
90
+ if (key && key === name) {
91
+ // If second argument (value) is a function it's a converter...
92
+ result = read(cookie, value);
93
+ break;
94
+ }
95
+
96
+ // Prevent storing a cookie that we couldn't decode.
97
+ if (!key && (cookie = read(cookie)) !== undefined) {
98
+ result[name] = cookie;
99
+ }
100
+ }
101
+
102
+ return result;
103
+ };
104
+
105
+ config.defaults = {};
106
+
107
+ $.removeCookie = function (key, options) {
108
+ if ($.cookie(key) === undefined) {
109
+ return false;
110
+ }
111
+
112
+ // Must not alter options, thus extending a fresh object...
113
+ $.cookie(key, '', $.extend({}, options, { expires: -1 }));
114
+ return !$.cookie(key);
115
+ };
116
+
117
+ }));
@@ -0,0 +1,692 @@
1
+ /*!
2
+ * MockJax - jQuery Plugin to Mock Ajax requests
3
+ *
4
+ * Version: 1.6.1
5
+ * Released:
6
+ * Home: https://github.com/jakerella/jquery-mockjax
7
+ * Author: Jonathan Sharp (http://jdsharp.com)
8
+ * License: MIT,GPL
9
+ *
10
+ * Copyright (c) 2014 appendTo, Jordan Kasper
11
+ * NOTE: This repository was taken over by Jordan Kasper (@jakerella) October, 2014
12
+ *
13
+ * Dual licensed under the MIT or GPL licenses.
14
+ * http://opensource.org/licenses/MIT OR http://www.gnu.org/licenses/gpl-2.0.html
15
+ */
16
+ (function($) {
17
+ var _ajax = $.ajax,
18
+ mockHandlers = [],
19
+ mockedAjaxCalls = [],
20
+ unmockedAjaxCalls = [],
21
+ CALLBACK_REGEX = /=\?(&|$)/,
22
+ jsc = (new Date()).getTime();
23
+
24
+
25
+ // Parse the given XML string.
26
+ function parseXML(xml) {
27
+ if ( window.DOMParser == undefined && window.ActiveXObject ) {
28
+ DOMParser = function() { };
29
+ DOMParser.prototype.parseFromString = function( xmlString ) {
30
+ var doc = new ActiveXObject('Microsoft.XMLDOM');
31
+ doc.async = 'false';
32
+ doc.loadXML( xmlString );
33
+ return doc;
34
+ };
35
+ }
36
+
37
+ try {
38
+ var xmlDoc = ( new DOMParser() ).parseFromString( xml, 'text/xml' );
39
+ if ( $.isXMLDoc( xmlDoc ) ) {
40
+ var err = $('parsererror', xmlDoc);
41
+ if ( err.length == 1 ) {
42
+ throw new Error('Error: ' + $(xmlDoc).text() );
43
+ }
44
+ } else {
45
+ throw new Error('Unable to parse XML');
46
+ }
47
+ return xmlDoc;
48
+ } catch( e ) {
49
+ var msg = ( e.name == undefined ? e : e.name + ': ' + e.message );
50
+ $(document).trigger('xmlParseError', [ msg ]);
51
+ return undefined;
52
+ }
53
+ }
54
+
55
+ // Check if the data field on the mock handler and the request match. This
56
+ // can be used to restrict a mock handler to being used only when a certain
57
+ // set of data is passed to it.
58
+ function isMockDataEqual( mock, live ) {
59
+ var identical = true;
60
+ // Test for situations where the data is a querystring (not an object)
61
+ if (typeof live === 'string') {
62
+ // Querystring may be a regex
63
+ return $.isFunction( mock.test ) ? mock.test(live) : mock == live;
64
+ }
65
+ $.each(mock, function(k) {
66
+ if ( live[k] === undefined ) {
67
+ identical = false;
68
+ return identical;
69
+ } else {
70
+ if ( typeof live[k] === 'object' && live[k] !== null ) {
71
+ if ( identical && $.isArray( live[k] ) ) {
72
+ identical = $.isArray( mock[k] ) && live[k].length === mock[k].length;
73
+ }
74
+ identical = identical && isMockDataEqual(mock[k], live[k]);
75
+ } else {
76
+ if ( mock[k] && $.isFunction( mock[k].test ) ) {
77
+ identical = identical && mock[k].test(live[k]);
78
+ } else {
79
+ identical = identical && ( mock[k] == live[k] );
80
+ }
81
+ }
82
+ }
83
+ });
84
+
85
+ return identical;
86
+ }
87
+
88
+ // See if a mock handler property matches the default settings
89
+ function isDefaultSetting(handler, property) {
90
+ return handler[property] === $.mockjaxSettings[property];
91
+ }
92
+
93
+ // Check the given handler should mock the given request
94
+ function getMockForRequest( handler, requestSettings ) {
95
+ // If the mock was registered with a function, let the function decide if we
96
+ // want to mock this request
97
+ if ( $.isFunction(handler) ) {
98
+ return handler( requestSettings );
99
+ }
100
+
101
+ // Inspect the URL of the request and check if the mock handler's url
102
+ // matches the url for this ajax request
103
+ if ( $.isFunction(handler.url.test) ) {
104
+ // The user provided a regex for the url, test it
105
+ if ( !handler.url.test( requestSettings.url ) ) {
106
+ return null;
107
+ }
108
+ } else {
109
+ // Look for a simple wildcard '*' or a direct URL match
110
+ var star = handler.url.indexOf('*');
111
+ if (handler.url !== requestSettings.url && star === -1 ||
112
+ !new RegExp(handler.url.replace(/[-[\]{}()+?.,\\^$|#\s]/g, "\\$&").replace(/\*/g, '.+')).test(requestSettings.url)) {
113
+ return null;
114
+ }
115
+ }
116
+
117
+ // Inspect the data submitted in the request (either POST body or GET query string)
118
+ if ( handler.data ) {
119
+ if ( ! requestSettings.data || !isMockDataEqual(handler.data, requestSettings.data) ) {
120
+ // They're not identical, do not mock this request
121
+ return null;
122
+ }
123
+ }
124
+ // Inspect the request type
125
+ if ( handler && handler.type &&
126
+ handler.type.toLowerCase() != requestSettings.type.toLowerCase() ) {
127
+ // The request type doesn't match (GET vs. POST)
128
+ return null;
129
+ }
130
+
131
+ return handler;
132
+ }
133
+
134
+ function parseResponseTimeOpt(responseTime) {
135
+ if ($.isArray(responseTime)) {
136
+ var min = responseTime[0];
137
+ var max = responseTime[1];
138
+ return (typeof min === 'number' && typeof max === 'number') ? Math.floor(Math.random() * (max - min)) + min : null;
139
+ } else {
140
+ return (typeof responseTime === 'number') ? responseTime: null;
141
+ }
142
+ }
143
+
144
+ // Process the xhr objects send operation
145
+ function _xhrSend(mockHandler, requestSettings, origSettings) {
146
+
147
+ // This is a substitute for < 1.4 which lacks $.proxy
148
+ var process = (function(that) {
149
+ return function() {
150
+ return (function() {
151
+ // The request has returned
152
+ this.status = mockHandler.status;
153
+ this.statusText = mockHandler.statusText;
154
+ this.readyState = 1;
155
+
156
+ var finishRequest = function () {
157
+ this.readyState = 4;
158
+
159
+ var onReady;
160
+ // Copy over our mock to our xhr object before passing control back to
161
+ // jQuery's onreadystatechange callback
162
+ if ( requestSettings.dataType == 'json' && ( typeof mockHandler.responseText == 'object' ) ) {
163
+ this.responseText = JSON.stringify(mockHandler.responseText);
164
+ } else if ( requestSettings.dataType == 'xml' ) {
165
+ if ( typeof mockHandler.responseXML == 'string' ) {
166
+ this.responseXML = parseXML(mockHandler.responseXML);
167
+ //in jQuery 1.9.1+, responseXML is processed differently and relies on responseText
168
+ this.responseText = mockHandler.responseXML;
169
+ } else {
170
+ this.responseXML = mockHandler.responseXML;
171
+ }
172
+ } else if (typeof mockHandler.responseText === 'object' && mockHandler.responseText !== null) {
173
+ // since jQuery 1.9 responseText type has to match contentType
174
+ mockHandler.contentType = 'application/json';
175
+ this.responseText = JSON.stringify(mockHandler.responseText);
176
+ } else {
177
+ this.responseText = mockHandler.responseText;
178
+ }
179
+ if( typeof mockHandler.status == 'number' || typeof mockHandler.status == 'string' ) {
180
+ this.status = mockHandler.status;
181
+ }
182
+ if( typeof mockHandler.statusText === "string") {
183
+ this.statusText = mockHandler.statusText;
184
+ }
185
+ // jQuery 2.0 renamed onreadystatechange to onload
186
+ onReady = this.onreadystatechange || this.onload;
187
+
188
+ // jQuery < 1.4 doesn't have onreadystate change for xhr
189
+ if ( $.isFunction( onReady ) ) {
190
+ if( mockHandler.isTimeout) {
191
+ this.status = -1;
192
+ }
193
+ onReady.call( this, mockHandler.isTimeout ? 'timeout' : undefined );
194
+ } else if ( mockHandler.isTimeout ) {
195
+ // Fix for 1.3.2 timeout to keep success from firing.
196
+ this.status = -1;
197
+ }
198
+ };
199
+
200
+ // We have an executable function, call it to give
201
+ // the mock handler a chance to update it's data
202
+ if ( $.isFunction(mockHandler.response) ) {
203
+ // Wait for it to finish
204
+ if ( mockHandler.response.length === 2 ) {
205
+ mockHandler.response(origSettings, function () {
206
+ finishRequest.call(that);
207
+ });
208
+ return;
209
+ } else {
210
+ mockHandler.response(origSettings);
211
+ }
212
+ }
213
+
214
+ finishRequest.call(that);
215
+ }).apply(that);
216
+ };
217
+ })(this);
218
+
219
+ if ( mockHandler.proxy ) {
220
+ // We're proxying this request and loading in an external file instead
221
+ _ajax({
222
+ global: false,
223
+ url: mockHandler.proxy,
224
+ type: mockHandler.proxyType,
225
+ data: mockHandler.data,
226
+ dataType: requestSettings.dataType === "script" ? "text/plain" : requestSettings.dataType,
227
+ complete: function(xhr) {
228
+ mockHandler.responseXML = xhr.responseXML;
229
+ mockHandler.responseText = xhr.responseText;
230
+ // Don't override the handler status/statusText if it's specified by the config
231
+ if (isDefaultSetting(mockHandler, 'status')) {
232
+ mockHandler.status = xhr.status;
233
+ }
234
+ if (isDefaultSetting(mockHandler, 'statusText')) {
235
+ mockHandler.statusText = xhr.statusText;
236
+ }
237
+ this.responseTimer = setTimeout(process, parseResponseTimeOpt(mockHandler.responseTime) || 0);
238
+ }
239
+ });
240
+ } else {
241
+ // type == 'POST' || 'GET' || 'DELETE'
242
+ if ( requestSettings.async === false ) {
243
+ // TODO: Blocking delay
244
+ process();
245
+ } else {
246
+ this.responseTimer = setTimeout(process, parseResponseTimeOpt(mockHandler.responseTime) || 50);
247
+ }
248
+ }
249
+ }
250
+
251
+ // Construct a mocked XHR Object
252
+ function xhr(mockHandler, requestSettings, origSettings, origHandler) {
253
+ // Extend with our default mockjax settings
254
+ mockHandler = $.extend(true, {}, $.mockjaxSettings, mockHandler);
255
+
256
+ if (typeof mockHandler.headers === 'undefined') {
257
+ mockHandler.headers = {};
258
+ }
259
+ if (typeof requestSettings.headers === 'undefined') {
260
+ requestSettings.headers = {};
261
+ }
262
+ if ( mockHandler.contentType ) {
263
+ mockHandler.headers['content-type'] = mockHandler.contentType;
264
+ }
265
+
266
+ return {
267
+ status: mockHandler.status,
268
+ statusText: mockHandler.statusText,
269
+ readyState: 1,
270
+ open: function() { },
271
+ send: function() {
272
+ origHandler.fired = true;
273
+ _xhrSend.call(this, mockHandler, requestSettings, origSettings);
274
+ },
275
+ abort: function() {
276
+ clearTimeout(this.responseTimer);
277
+ },
278
+ setRequestHeader: function(header, value) {
279
+ requestSettings.headers[header] = value;
280
+ },
281
+ getResponseHeader: function(header) {
282
+ // 'Last-modified', 'Etag', 'content-type' are all checked by jQuery
283
+ if ( mockHandler.headers && mockHandler.headers[header] ) {
284
+ // Return arbitrary headers
285
+ return mockHandler.headers[header];
286
+ } else if ( header.toLowerCase() == 'last-modified' ) {
287
+ return mockHandler.lastModified || (new Date()).toString();
288
+ } else if ( header.toLowerCase() == 'etag' ) {
289
+ return mockHandler.etag || '';
290
+ } else if ( header.toLowerCase() == 'content-type' ) {
291
+ return mockHandler.contentType || 'text/plain';
292
+ }
293
+ },
294
+ getAllResponseHeaders: function() {
295
+ var headers = '';
296
+ // since jQuery 1.9 responseText type has to match contentType
297
+ if (mockHandler.contentType) {
298
+ mockHandler.headers['Content-Type'] = mockHandler.contentType;
299
+ }
300
+ $.each(mockHandler.headers, function(k, v) {
301
+ headers += k + ': ' + v + "\n";
302
+ });
303
+ return headers;
304
+ }
305
+ };
306
+ }
307
+
308
+ // Process a JSONP mock request.
309
+ function processJsonpMock( requestSettings, mockHandler, origSettings ) {
310
+ // Handle JSONP Parameter Callbacks, we need to replicate some of the jQuery core here
311
+ // because there isn't an easy hook for the cross domain script tag of jsonp
312
+
313
+ processJsonpUrl( requestSettings );
314
+
315
+ requestSettings.dataType = "json";
316
+ if(requestSettings.data && CALLBACK_REGEX.test(requestSettings.data) || CALLBACK_REGEX.test(requestSettings.url)) {
317
+ createJsonpCallback(requestSettings, mockHandler, origSettings);
318
+
319
+ // We need to make sure
320
+ // that a JSONP style response is executed properly
321
+
322
+ var rurl = /^(\w+:)?\/\/([^\/?#]+)/,
323
+ parts = rurl.exec( requestSettings.url ),
324
+ remote = parts && (parts[1] && parts[1] !== location.protocol || parts[2] !== location.host);
325
+
326
+ requestSettings.dataType = "script";
327
+ if(requestSettings.type.toUpperCase() === "GET" && remote ) {
328
+ var newMockReturn = processJsonpRequest( requestSettings, mockHandler, origSettings );
329
+
330
+ // Check if we are supposed to return a Deferred back to the mock call, or just
331
+ // signal success
332
+ if(newMockReturn) {
333
+ return newMockReturn;
334
+ } else {
335
+ return true;
336
+ }
337
+ }
338
+ }
339
+ return null;
340
+ }
341
+
342
+ // Append the required callback parameter to the end of the request URL, for a JSONP request
343
+ function processJsonpUrl( requestSettings ) {
344
+ if ( requestSettings.type.toUpperCase() === "GET" ) {
345
+ if ( !CALLBACK_REGEX.test( requestSettings.url ) ) {
346
+ requestSettings.url += (/\?/.test( requestSettings.url ) ? "&" : "?") +
347
+ (requestSettings.jsonp || "callback") + "=?";
348
+ }
349
+ } else if ( !requestSettings.data || !CALLBACK_REGEX.test(requestSettings.data) ) {
350
+ requestSettings.data = (requestSettings.data ? requestSettings.data + "&" : "") + (requestSettings.jsonp || "callback") + "=?";
351
+ }
352
+ }
353
+
354
+ // Process a JSONP request by evaluating the mocked response text
355
+ function processJsonpRequest( requestSettings, mockHandler, origSettings ) {
356
+ // Synthesize the mock request for adding a script tag
357
+ var callbackContext = origSettings && origSettings.context || requestSettings,
358
+ newMock = null;
359
+
360
+
361
+ // If the response handler on the moock is a function, call it
362
+ if ( mockHandler.response && $.isFunction(mockHandler.response) ) {
363
+ mockHandler.response(origSettings);
364
+ } else {
365
+
366
+ // Evaluate the responseText javascript in a global context
367
+ if( typeof mockHandler.responseText === 'object' ) {
368
+ $.globalEval( '(' + JSON.stringify( mockHandler.responseText ) + ')');
369
+ } else {
370
+ $.globalEval( '(' + mockHandler.responseText + ')');
371
+ }
372
+ }
373
+
374
+ // Successful response
375
+ setTimeout(function() {
376
+ jsonpSuccess( requestSettings, callbackContext, mockHandler );
377
+ jsonpComplete( requestSettings, callbackContext, mockHandler );
378
+ }, parseResponseTimeOpt(mockHandler.responseTime) || 0);
379
+
380
+ // If we are running under jQuery 1.5+, return a deferred object
381
+ if($.Deferred){
382
+ newMock = new $.Deferred();
383
+ if(typeof mockHandler.responseText == "object"){
384
+ newMock.resolveWith( callbackContext, [mockHandler.responseText] );
385
+ }
386
+ else{
387
+ newMock.resolveWith( callbackContext, [$.parseJSON( mockHandler.responseText )] );
388
+ }
389
+ }
390
+ return newMock;
391
+ }
392
+
393
+
394
+ // Create the required JSONP callback function for the request
395
+ function createJsonpCallback( requestSettings, mockHandler, origSettings ) {
396
+ var callbackContext = origSettings && origSettings.context || requestSettings;
397
+ var jsonp = requestSettings.jsonpCallback || ("jsonp" + jsc++);
398
+
399
+ // Replace the =? sequence both in the query string and the data
400
+ if ( requestSettings.data ) {
401
+ requestSettings.data = (requestSettings.data + "").replace(CALLBACK_REGEX, "=" + jsonp + "$1");
402
+ }
403
+
404
+ requestSettings.url = requestSettings.url.replace(CALLBACK_REGEX, "=" + jsonp + "$1");
405
+
406
+
407
+ // Handle JSONP-style loading
408
+ window[ jsonp ] = window[ jsonp ] || function( tmp ) {
409
+ data = tmp;
410
+ jsonpSuccess( requestSettings, callbackContext, mockHandler );
411
+ jsonpComplete( requestSettings, callbackContext, mockHandler );
412
+ // Garbage collect
413
+ window[ jsonp ] = undefined;
414
+
415
+ try {
416
+ delete window[ jsonp ];
417
+ } catch(e) {}
418
+
419
+ if ( head ) {
420
+ head.removeChild( script );
421
+ }
422
+ };
423
+ }
424
+
425
+ // The JSONP request was successful
426
+ function jsonpSuccess(requestSettings, callbackContext, mockHandler) {
427
+ // If a local callback was specified, fire it and pass it the data
428
+ if ( requestSettings.success ) {
429
+ requestSettings.success.call( callbackContext, mockHandler.responseText || "", status, {} );
430
+ }
431
+
432
+ // Fire the global callback
433
+ if ( requestSettings.global ) {
434
+ (requestSettings.context ? $(requestSettings.context) : $.event).trigger("ajaxSuccess", [{}, requestSettings]);
435
+ }
436
+ }
437
+
438
+ // The JSONP request was completed
439
+ function jsonpComplete(requestSettings, callbackContext) {
440
+ // Process result
441
+ if ( requestSettings.complete ) {
442
+ requestSettings.complete.call( callbackContext, {} , status );
443
+ }
444
+
445
+ // The request was completed
446
+ if ( requestSettings.global ) {
447
+ (requestSettings.context ? $(requestSettings.context) : $.event).trigger("ajaxComplete", [{}, requestSettings]);
448
+ }
449
+
450
+ // Handle the global AJAX counter
451
+ if ( requestSettings.global && ! --$.active ) {
452
+ $.event.trigger( "ajaxStop" );
453
+ }
454
+ }
455
+
456
+
457
+ // The core $.ajax replacement.
458
+ function handleAjax( url, origSettings ) {
459
+ var mockRequest, requestSettings, mockHandler, overrideCallback;
460
+
461
+ // If url is an object, simulate pre-1.5 signature
462
+ if ( typeof url === "object" ) {
463
+ origSettings = url;
464
+ url = undefined;
465
+ } else {
466
+ // work around to support 1.5 signature
467
+ origSettings = origSettings || {};
468
+ origSettings.url = url;
469
+ }
470
+
471
+ // Extend the original settings for the request
472
+ requestSettings = $.extend(true, {}, $.ajaxSettings, origSettings);
473
+
474
+ // Generic function to override callback methods for use with
475
+ // callback options (onAfterSuccess, onAfterError, onAfterComplete)
476
+ overrideCallback = function(action, mockHandler) {
477
+ var origHandler = origSettings[action.toLowerCase()];
478
+ return function() {
479
+ if ( $.isFunction(origHandler) ) {
480
+ origHandler.apply(this, [].slice.call(arguments));
481
+ }
482
+ mockHandler['onAfter' + action]();
483
+ };
484
+ };
485
+
486
+ // Iterate over our mock handlers (in registration order) until we find
487
+ // one that is willing to intercept the request
488
+ for(var k = 0; k < mockHandlers.length; k++) {
489
+ if ( !mockHandlers[k] ) {
490
+ continue;
491
+ }
492
+
493
+ mockHandler = getMockForRequest( mockHandlers[k], requestSettings );
494
+ if(!mockHandler) {
495
+ // No valid mock found for this request
496
+ continue;
497
+ }
498
+
499
+ mockedAjaxCalls.push(requestSettings);
500
+
501
+ // If logging is enabled, log the mock to the console
502
+ $.mockjaxSettings.log( mockHandler, requestSettings );
503
+
504
+
505
+ if ( requestSettings.dataType && requestSettings.dataType.toUpperCase() === 'JSONP' ) {
506
+ if ((mockRequest = processJsonpMock( requestSettings, mockHandler, origSettings ))) {
507
+ // This mock will handle the JSONP request
508
+ return mockRequest;
509
+ }
510
+ }
511
+
512
+
513
+ // Removed to fix #54 - keep the mocking data object intact
514
+ //mockHandler.data = requestSettings.data;
515
+
516
+ mockHandler.cache = requestSettings.cache;
517
+ mockHandler.timeout = requestSettings.timeout;
518
+ mockHandler.global = requestSettings.global;
519
+
520
+ // In the case of a timeout, we just need to ensure
521
+ // an actual jQuery timeout (That is, our reponse won't)
522
+ // return faster than the timeout setting.
523
+ if ( mockHandler.isTimeout ) {
524
+ if ( mockHandler.responseTime > 1 ) {
525
+ origSettings.timeout = mockHandler.responseTime - 1;
526
+ } else {
527
+ mockHandler.responseTime = 2;
528
+ origSettings.timeout = 1;
529
+ }
530
+ mockHandler.isTimeout = false;
531
+ }
532
+
533
+ // Set up onAfter[X] callback functions
534
+ if ( $.isFunction( mockHandler.onAfterSuccess ) ) {
535
+ origSettings.success = overrideCallback('Success', mockHandler);
536
+ }
537
+ if ( $.isFunction( mockHandler.onAfterError ) ) {
538
+ origSettings.error = overrideCallback('Error', mockHandler);
539
+ }
540
+ if ( $.isFunction( mockHandler.onAfterComplete ) ) {
541
+ origSettings.complete = overrideCallback('Complete', mockHandler);
542
+ }
543
+
544
+ copyUrlParameters(mockHandler, origSettings);
545
+
546
+ (function(mockHandler, requestSettings, origSettings, origHandler) {
547
+
548
+ mockRequest = _ajax.call($, $.extend(true, {}, origSettings, {
549
+ // Mock the XHR object
550
+ xhr: function() { return xhr( mockHandler, requestSettings, origSettings, origHandler ); }
551
+ }));
552
+ })(mockHandler, requestSettings, origSettings, mockHandlers[k]);
553
+
554
+ return mockRequest;
555
+ }
556
+
557
+ // We don't have a mock request
558
+ unmockedAjaxCalls.push(origSettings);
559
+ if($.mockjaxSettings.throwUnmocked === true) {
560
+ throw new Error('AJAX not mocked: ' + origSettings.url);
561
+ }
562
+ else { // trigger a normal request
563
+ return _ajax.apply($, [origSettings]);
564
+ }
565
+ }
566
+
567
+ /**
568
+ * Copies URL parameter values if they were captured by a regular expression
569
+ * @param {Object} mockHandler
570
+ * @param {Object} origSettings
571
+ */
572
+ function copyUrlParameters(mockHandler, origSettings) {
573
+ //parameters aren't captured if the URL isn't a RegExp
574
+ if (!(mockHandler.url instanceof RegExp)) {
575
+ return;
576
+ }
577
+ //if no URL params were defined on the handler, don't attempt a capture
578
+ if (!mockHandler.hasOwnProperty('urlParams')) {
579
+ return;
580
+ }
581
+ var captures = mockHandler.url.exec(origSettings.url);
582
+ //the whole RegExp match is always the first value in the capture results
583
+ if (captures.length === 1) {
584
+ return;
585
+ }
586
+ captures.shift();
587
+ //use handler params as keys and capture resuts as values
588
+ var i = 0,
589
+ capturesLength = captures.length,
590
+ paramsLength = mockHandler.urlParams.length,
591
+ //in case the number of params specified is less than actual captures
592
+ maxIterations = Math.min(capturesLength, paramsLength),
593
+ paramValues = {};
594
+ for (i; i < maxIterations; i++) {
595
+ var key = mockHandler.urlParams[i];
596
+ paramValues[key] = captures[i];
597
+ }
598
+ origSettings.urlParams = paramValues;
599
+ }
600
+
601
+
602
+ // Public
603
+
604
+ $.extend({
605
+ ajax: handleAjax
606
+ });
607
+
608
+ $.mockjaxSettings = {
609
+ //url: null,
610
+ //type: 'GET',
611
+ log: function( mockHandler, requestSettings ) {
612
+ if ( mockHandler.logging === false ||
613
+ ( typeof mockHandler.logging === 'undefined' && $.mockjaxSettings.logging === false ) ) {
614
+ return;
615
+ }
616
+ if ( window.console && console.log ) {
617
+ var message = 'MOCK ' + requestSettings.type.toUpperCase() + ': ' + requestSettings.url;
618
+ var request = $.extend({}, requestSettings);
619
+
620
+ if (typeof console.log === 'function') {
621
+ console.log(message, request);
622
+ } else {
623
+ try {
624
+ console.log( message + ' ' + JSON.stringify(request) );
625
+ } catch (e) {
626
+ console.log(message);
627
+ }
628
+ }
629
+ }
630
+ },
631
+ logging: true,
632
+ status: 200,
633
+ statusText: "OK",
634
+ responseTime: 500,
635
+ isTimeout: false,
636
+ throwUnmocked: false,
637
+ contentType: 'text/plain',
638
+ response: '',
639
+ responseText: '',
640
+ responseXML: '',
641
+ proxy: '',
642
+ proxyType: 'GET',
643
+
644
+ lastModified: null,
645
+ etag: '',
646
+ headers: {
647
+ etag: 'IJF@H#@923uf8023hFO@I#H#',
648
+ 'content-type' : 'text/plain'
649
+ }
650
+ };
651
+
652
+ $.mockjax = function(settings) {
653
+ var i = mockHandlers.length;
654
+ mockHandlers[i] = settings;
655
+ return i;
656
+ };
657
+ $.mockjax.clear = function(i) {
658
+ if ( arguments.length == 1 ) {
659
+ mockHandlers[i] = null;
660
+ } else {
661
+ mockHandlers = [];
662
+ }
663
+ mockedAjaxCalls = [];
664
+ unmockedAjaxCalls = [];
665
+ };
666
+ // support older, deprecated version
667
+ $.mockjaxClear = function(i) {
668
+ window.console && window.console.warn && window.console.warn( 'DEPRECATED: The $.mockjaxClear() method has been deprecated in 1.6.0. Please use $.mockjax.clear() as the older function will be removed soon!' );
669
+ $.mockjax.clear();
670
+ };
671
+ $.mockjax.handler = function(i) {
672
+ if ( arguments.length == 1 ) {
673
+ return mockHandlers[i];
674
+ }
675
+ };
676
+ $.mockjax.mockedAjaxCalls = function() {
677
+ return mockedAjaxCalls;
678
+ };
679
+ $.mockjax.unfiredHandlers = function() {
680
+ var results = [];
681
+ for (var i=0, len=mockHandlers.length; i<len; i++) {
682
+ var handler = mockHandlers[i];
683
+ if (handler !== null && !handler.fired) {
684
+ results.push(handler);
685
+ }
686
+ }
687
+ return results;
688
+ };
689
+ $.mockjax.unmockedAjaxCalls = function() {
690
+ return unmockedAjaxCalls;
691
+ };
692
+ })(jQuery);