kms 0.9.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (409) hide show
  1. checksums.yaml +4 -4
  2. data/{vendor/assets/bower_components/Responsive-Dashboard/src/img → app/assets/images}/avatar.jpg +0 -0
  3. data/app/assets/javascripts/kms/application.js +3 -0
  4. data/app/assets/javascripts/kms/application/controllers/assets_controller.coffee.erb +14 -7
  5. data/app/assets/javascripts/kms/application/controllers/pages_controller.coffee.erb +11 -3
  6. data/app/assets/javascripts/kms/application/controllers/snippets_controller.coffee.erb +3 -0
  7. data/app/assets/javascripts/kms/application/controllers/templates_controller.coffee.erb +3 -0
  8. data/app/assets/javascripts/kms/application/controllers/users_controller.coffee +4 -4
  9. data/app/assets/javascripts/kms/application/routes.coffee.erb +1 -1
  10. data/app/assets/javascripts/kms/application/services/transliteration_service.js +160 -0
  11. data/app/assets/javascripts/templates/assets/edit.html.slim +24 -2
  12. data/app/assets/javascripts/templates/assets/form.html.slim +23 -0
  13. data/app/assets/javascripts/templates/assets/index.html.slim +13 -12
  14. data/app/assets/javascripts/templates/assets/new.html.slim +1 -15
  15. data/app/assets/javascripts/templates/help.html.slim +1 -1
  16. data/app/assets/javascripts/templates/pages/index.html.slim +16 -5
  17. data/app/assets/javascripts/templates/snippets/index.html.slim +16 -5
  18. data/app/assets/javascripts/templates/templates/index.html.slim +16 -6
  19. data/app/assets/stylesheets/kms/application.css +2 -2
  20. data/app/assets/stylesheets/kms/custom.css.scss +38 -0
  21. data/app/controllers/kms/assets_controller.rb +8 -9
  22. data/app/controllers/kms/pages_controller.rb +10 -11
  23. data/app/controllers/kms/public/pages_controller.rb +5 -4
  24. data/app/controllers/kms/public/search_controller.rb +2 -0
  25. data/app/controllers/kms/settings_controller.rb +1 -1
  26. data/app/controllers/kms/snippets_controller.rb +2 -1
  27. data/app/controllers/kms/templates_controller.rb +6 -5
  28. data/app/controllers/kms/users_controller.rb +11 -8
  29. data/app/models/ability.rb +1 -0
  30. data/app/models/concerns/kms/permalinkable.rb +1 -1
  31. data/app/models/kms/page.rb +13 -4
  32. data/app/serializers/kms/asset_serializer.rb +6 -0
  33. data/app/serializers/kms/page_serializer.rb +5 -0
  34. data/app/serializers/kms/template_serializer.rb +5 -0
  35. data/app/serializers/kms/user_serializer.rb +5 -0
  36. data/app/services/kms/page_fetcher.rb +30 -0
  37. data/app/services/kms/search_service.rb +28 -3
  38. data/app/services/kms/template_processor.rb +19 -0
  39. data/app/views/devise/passwords/edit.html.erb +1 -1
  40. data/app/views/devise/passwords/new.html.erb +1 -1
  41. data/app/views/devise/registrations/new.html.erb +1 -1
  42. data/app/views/devise/sessions/new.html.erb +1 -1
  43. data/app/views/layouts/kms/devise.html.erb +1 -1
  44. data/app/views/layouts/kms/kms.html.erb +47 -18
  45. data/config/initializers/externals.rb +6 -32
  46. data/config/initializers/search.rb +1 -0
  47. data/config/locales/en.yml +17 -1
  48. data/config/locales/ru.yml +17 -1
  49. data/config/routes.rb +7 -6
  50. data/lib/kms/dependencies.rb +1 -4
  51. data/lib/kms/engine.rb +1 -2
  52. data/lib/kms/search_item.rb +18 -0
  53. data/lib/kms/version.rb +1 -1
  54. data/spec/controllers/kms/assets_controller_spec.rb +51 -0
  55. data/spec/controllers/kms/pages_controller_spec.rb +82 -0
  56. data/spec/controllers/kms/public/pages_controller_spec.rb +30 -0
  57. data/spec/controllers/kms/snippets_controller_spec.rb +61 -47
  58. data/spec/controllers/kms/templates_controller_spec.rb +51 -0
  59. data/spec/controllers/kms/users_controller_spec.rb +56 -0
  60. data/spec/factories/assets.rb +8 -0
  61. data/spec/factories/pages.rb +33 -0
  62. data/spec/factories/templates.rb +20 -0
  63. data/spec/factories/users.rb +9 -4
  64. data/spec/internal/config/routes.rb +12 -1
  65. data/spec/internal/log/test.log +81239 -0
  66. data/spec/internal/public/404.html +67 -0
  67. data/spec/internal/public/avatar.jpg +0 -0
  68. data/spec/internal/public/style.css +1 -0
  69. data/spec/internal/public/uploads/kms/asset/file/1/avatar.jpg +0 -0
  70. data/spec/internal/public/uploads/kms/asset/file/2/avatar.jpg +0 -0
  71. data/spec/internal/public/uploads/kms/asset/file/2/style.css +1 -0
  72. data/spec/internal/public/uploads/kms/asset/file/3/style.css +1 -0
  73. data/spec/internal/public/uploads/kms/asset/file/4/style.css +1 -0
  74. data/spec/internal/public/uploads/tmp/1500976987-41025-0002-0883/style.css +1 -0
  75. data/spec/internal/public/uploads/tmp/1500977082-41195-0002-6495/style.css +1 -0
  76. data/spec/internal/public/uploads/tmp/1500977109-41364-0002-4518/style.css +1 -0
  77. data/spec/internal/public/uploads/tmp/1500977152-41405-0002-2345/style.css +1 -0
  78. data/spec/internal/public/uploads/tmp/1500977327-41694-0002-5448/style.css +1 -0
  79. data/spec/internal/public/uploads/tmp/1500977376-41732-0002-7916/style.css +1 -0
  80. data/spec/internal/public/uploads/tmp/1500977392-41759-0002-7593/style.css +1 -0
  81. data/spec/internal/public/uploads/tmp/1500977410-42259-0002-7527/style.css +1 -0
  82. data/spec/internal/public/uploads/tmp/1500977429-42306-0002-5937/style.css +1 -0
  83. data/spec/internal/public/uploads/tmp/1500977437-42324-0002-5880/style.css +1 -0
  84. data/spec/internal/public/uploads/tmp/1500983228-53594-0002-4559/style.css +1 -0
  85. data/spec/internal/public/uploads/tmp/1500983284-53632-0002-6590/style.css +1 -0
  86. data/spec/internal/public/uploads/tmp/1500983360-53784-0002-7289/style.css +1 -0
  87. data/spec/internal/public/uploads/tmp/1500983469-54321-0002-0386/avatar.jpg +0 -0
  88. data/spec/internal/public/uploads/tmp/1500983469-54321-0004-5691/style.css +1 -0
  89. data/spec/internal/public/uploads/tmp/1500983511-54352-0002-5720/avatar.jpg +0 -0
  90. data/spec/internal/public/uploads/tmp/1500983511-54352-0004-1399/style.css +1 -0
  91. data/spec/internal/public/uploads/tmp/1500983610-54507-0002-4280/avatar.jpg +0 -0
  92. data/spec/internal/public/uploads/tmp/1500983610-54507-0004-9758/style.css +1 -0
  93. data/spec/internal/public/uploads/tmp/1500984466-57012-0002-4146/avatar.jpg +0 -0
  94. data/spec/internal/public/uploads/tmp/1500984466-57012-0004-5895/style.css +1 -0
  95. data/spec/internal/public/uploads/tmp/1500984509-57158-0002-9657/avatar.jpg +0 -0
  96. data/spec/internal/public/uploads/tmp/1500984509-57158-0004-5003/style.css +1 -0
  97. data/spec/internal/public/uploads/tmp/1500984616-57697-0002-7201/avatar.jpg +0 -0
  98. data/spec/internal/public/uploads/tmp/1500984616-57697-0004-6255/style.css +1 -0
  99. data/spec/internal/public/uploads/tmp/1500985257-58947-0002-3629/avatar.jpg +0 -0
  100. data/spec/internal/public/uploads/tmp/1500985257-58947-0004-5338/style.css +1 -0
  101. data/spec/internal/public/uploads/tmp/1500985407-58947-0006-5929/style.css +1 -0
  102. data/spec/internal/public/uploads/tmp/1500985473-59264-0002-0397/avatar.jpg +0 -0
  103. data/spec/internal/public/uploads/tmp/1500985473-59264-0004-6493/style.css +1 -0
  104. data/spec/internal/public/uploads/tmp/1500985475-59264-0007-8674/style.css +1 -0
  105. data/spec/internal/public/uploads/tmp/1500985538-59468-0002-9206/avatar.jpg +0 -0
  106. data/spec/internal/public/uploads/tmp/1500985538-59468-0004-2586/style.css +1 -0
  107. data/spec/internal/public/uploads/tmp/1500985538-59468-0007-6200/style.css +1 -0
  108. data/spec/internal/public/uploads/tmp/1500988358-65877-0002-4528/avatar.jpg +0 -0
  109. data/spec/internal/public/uploads/tmp/1500988358-65877-0004-5904/style.css +1 -0
  110. data/spec/internal/public/uploads/tmp/1500988358-65877-0007-7320/style.css +1 -0
  111. data/spec/internal/public/uploads/tmp/1500988407-65916-0002-3138/avatar.jpg +0 -0
  112. data/spec/internal/public/uploads/tmp/1500988407-65916-0004-5400/style.css +1 -0
  113. data/spec/internal/public/uploads/tmp/1500988407-65916-0007-1655/style.css +1 -0
  114. data/spec/internal/public/uploads/tmp/1500988421-65950-0002-9415/avatar.jpg +0 -0
  115. data/spec/internal/public/uploads/tmp/1500988421-65950-0004-7130/style.css +1 -0
  116. data/spec/internal/public/uploads/tmp/1500988421-65950-0007-9886/style.css +1 -0
  117. data/spec/internal/public/uploads/tmp/1500988435-65981-0002-3228/avatar.jpg +0 -0
  118. data/spec/internal/public/uploads/tmp/1500988435-65981-0004-3682/style.css +1 -0
  119. data/spec/internal/public/uploads/tmp/1500988435-65981-0007-1582/style.css +1 -0
  120. data/spec/internal/public/uploads/tmp/1500988475-66122-0002-9516/avatar.jpg +0 -0
  121. data/spec/internal/public/uploads/tmp/1500988475-66122-0004-5634/style.css +1 -0
  122. data/spec/internal/public/uploads/tmp/1500988530-66122-0007-2272/style.css +1 -0
  123. data/spec/internal/public/uploads/tmp/1500988554-66315-0002-6262/avatar.jpg +0 -0
  124. data/spec/internal/public/uploads/tmp/1500988554-66315-0004-6099/style.css +1 -0
  125. data/spec/internal/public/uploads/tmp/1500988554-66315-0007-1632/style.css +1 -0
  126. data/spec/internal/public/uploads/tmp/1500991751-73722-0002-9937/avatar.jpg +0 -0
  127. data/spec/internal/public/uploads/tmp/1500991751-73722-0004-8034/style.css +1 -0
  128. data/spec/internal/public/uploads/tmp/1500991751-73722-0007-7763/style.css +1 -0
  129. data/spec/internal/public/uploads/tmp/1501233238-34385-0002-3210/avatar.jpg +0 -0
  130. data/spec/internal/public/uploads/tmp/1501233238-34385-0004-5881/style.css +1 -0
  131. data/spec/internal/public/uploads/tmp/1501233238-34385-0007-6280/style.css +1 -0
  132. data/spec/models/kms/page_spec.rb +31 -0
  133. data/spec/models/kms/template_spec.rb +15 -0
  134. data/spec/services/kms/page_fetcher_spec.rb +36 -0
  135. data/spec/services/kms/search_service_spec.rb +53 -0
  136. data/spec/services/kms/template_processor_spec.rb +20 -0
  137. data/spec/support/controller_macros.rb +9 -1
  138. data/vendor/assets/bower.json +3 -2
  139. data/vendor/assets/bower_components/angular-ui-select/CHANGELOG.md +169 -0
  140. data/vendor/assets/bower_components/angular-ui-select/CONTRIBUTING.md +161 -0
  141. data/vendor/assets/bower_components/angular-ui-select/README.md +27 -13
  142. data/vendor/assets/bower_components/angular-ui-select/bower.json +6 -3
  143. data/vendor/assets/bower_components/angular-ui-select/composer.json +29 -0
  144. data/vendor/assets/bower_components/angular-ui-select/deploy-docs.sh +31 -0
  145. data/vendor/assets/bower_components/angular-ui-select/dist/select.css +48 -2
  146. data/vendor/assets/bower_components/angular-ui-select/dist/select.js +454 -111
  147. data/vendor/assets/bower_components/angular-ui-select/dist/select.min.css +2 -2
  148. data/vendor/assets/bower_components/angular-ui-select/dist/select.min.js +2 -2
  149. data/vendor/assets/bower_components/angular-ui-select/docs/assets/app.js +1 -0
  150. data/vendor/assets/bower_components/angular-ui-select/docs/assets/demo.js +461 -0
  151. data/vendor/assets/bower_components/angular-ui-select/docs/assets/docs.css +339 -0
  152. data/vendor/assets/bower_components/angular-ui-select/docs/assets/plunkr.js +110 -0
  153. data/vendor/assets/bower_components/angular-ui-select/docs/index.html +191 -0
  154. data/vendor/assets/bower_components/angular-ui-select/docs/partials/_footer.html +2 -0
  155. data/vendor/assets/bower_components/angular-ui-select/docs/partials/_header.html +64 -0
  156. data/vendor/assets/bower_components/angular-ui-select/index.js +2 -0
  157. data/vendor/assets/bower_components/angular-ui-select/package.json +36 -15
  158. data/vendor/assets/bower_components/bootstrap/CHANGELOG.md +5 -0
  159. data/vendor/assets/bower_components/bootstrap/Gemfile +6 -0
  160. data/vendor/assets/bower_components/bootstrap/Gemfile.lock +43 -0
  161. data/vendor/assets/bower_components/bootstrap/Gruntfile.js +176 -145
  162. data/vendor/assets/bower_components/bootstrap/ISSUE_TEMPLATE.md +22 -0
  163. data/vendor/assets/bower_components/bootstrap/LICENSE +1 -1
  164. data/vendor/assets/bower_components/bootstrap/README.md +55 -40
  165. data/vendor/assets/bower_components/bootstrap/bower.json +5 -9
  166. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap-theme.css +204 -59
  167. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap-theme.css.map +1 -1
  168. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap-theme.min.css +4 -3
  169. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap-theme.min.css.map +1 -0
  170. data/vendor/assets/bower_components/bootstrap/dist/css/{bootstrap.less → bootstrap.css} +881 -327
  171. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap.css.map +1 -1
  172. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap.min.css +6 -0
  173. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap.min.css.map +1 -0
  174. data/vendor/assets/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot +0 -0
  175. data/vendor/assets/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.svg +272 -213
  176. data/vendor/assets/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf +0 -0
  177. data/vendor/assets/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff +0 -0
  178. data/vendor/assets/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 +0 -0
  179. data/vendor/assets/bower_components/bootstrap/dist/js/bootstrap.js +549 -286
  180. data/vendor/assets/bower_components/bootstrap/dist/js/bootstrap.min.js +5 -4
  181. data/vendor/assets/bower_components/bootstrap/dist/js/npm.js +13 -0
  182. data/vendor/assets/bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot +0 -0
  183. data/vendor/assets/bower_components/bootstrap/fonts/glyphicons-halflings-regular.svg +272 -213
  184. data/vendor/assets/bower_components/bootstrap/fonts/glyphicons-halflings-regular.ttf +0 -0
  185. data/vendor/assets/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff +0 -0
  186. data/vendor/assets/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff2 +0 -0
  187. data/vendor/assets/bower_components/bootstrap/grunt/bs-commonjs-generator.js +30 -0
  188. data/vendor/assets/bower_components/bootstrap/grunt/bs-glyphicons-data-generator.js +5 -4
  189. data/vendor/assets/bower_components/bootstrap/grunt/bs-lessdoc-parser.js +13 -12
  190. data/vendor/assets/bower_components/bootstrap/grunt/bs-raw-files-generator.js +6 -8
  191. data/vendor/assets/bower_components/bootstrap/grunt/change-version.js +109 -0
  192. data/vendor/assets/bower_components/bootstrap/grunt/configBridge.json +46 -0
  193. data/vendor/assets/bower_components/bootstrap/grunt/npm-shrinkwrap.json +2679 -0
  194. data/vendor/assets/bower_components/bootstrap/grunt/sauce_browsers.yml +5 -5
  195. data/vendor/assets/bower_components/bootstrap/js/affix.js +46 -26
  196. data/vendor/assets/bower_components/bootstrap/js/alert.js +8 -6
  197. data/vendor/assets/bower_components/bootstrap/js/button.js +34 -19
  198. data/vendor/assets/bower_components/bootstrap/js/carousel.js +35 -21
  199. data/vendor/assets/bower_components/bootstrap/js/collapse.js +69 -27
  200. data/vendor/assets/bower_components/bootstrap/js/dropdown.js +55 -41
  201. data/vendor/assets/bower_components/bootstrap/js/modal.js +91 -32
  202. data/vendor/assets/bower_components/bootstrap/js/popover.js +5 -10
  203. data/vendor/assets/bower_components/bootstrap/js/scrollspy.js +28 -26
  204. data/vendor/assets/bower_components/bootstrap/js/tab.js +45 -18
  205. data/vendor/assets/bower_components/bootstrap/js/tooltip.js +117 -54
  206. data/vendor/assets/bower_components/bootstrap/js/transition.js +2 -2
  207. data/vendor/assets/bower_components/bootstrap/less/alerts.less +5 -0
  208. data/vendor/assets/bower_components/bootstrap/less/badges.less +14 -3
  209. data/vendor/assets/bower_components/bootstrap/less/bootstrap.less +6 -0
  210. data/vendor/assets/bower_components/bootstrap/less/button-groups.less +22 -18
  211. data/vendor/assets/bower_components/bootstrap/less/buttons.less +19 -10
  212. data/vendor/assets/bower_components/bootstrap/less/carousel.less +34 -7
  213. data/vendor/assets/bower_components/bootstrap/less/close.less +1 -0
  214. data/vendor/assets/bower_components/bootstrap/less/code.less +1 -0
  215. data/vendor/assets/bower_components/bootstrap/less/component-animations.less +3 -1
  216. data/vendor/assets/bower_components/bootstrap/less/dropdowns.less +9 -8
  217. data/vendor/assets/bower_components/bootstrap/less/forms.less +123 -50
  218. data/vendor/assets/bower_components/bootstrap/less/glyphicons.less +75 -3
  219. data/vendor/assets/bower_components/bootstrap/less/input-groups.less +8 -3
  220. data/vendor/assets/bower_components/bootstrap/less/jumbotron.less +10 -4
  221. data/vendor/assets/bower_components/bootstrap/less/list-group.less +10 -11
  222. data/vendor/assets/bower_components/bootstrap/less/media.less +40 -30
  223. data/vendor/assets/bower_components/bootstrap/less/mixins.less +1 -0
  224. data/vendor/assets/bower_components/bootstrap/less/mixins/background-variant.less +2 -1
  225. data/vendor/assets/bower_components/bootstrap/less/mixins/buttons.less +19 -4
  226. data/vendor/assets/bower_components/bootstrap/less/mixins/forms.less +5 -1
  227. data/vendor/assets/bower_components/bootstrap/less/mixins/grid-framework.less +4 -4
  228. data/vendor/assets/bower_components/bootstrap/less/mixins/grid.less +4 -4
  229. data/vendor/assets/bower_components/bootstrap/less/mixins/hide-text.less +2 -2
  230. data/vendor/assets/bower_components/bootstrap/less/mixins/image.less +0 -1
  231. data/vendor/assets/bower_components/bootstrap/less/mixins/labels.less +1 -1
  232. data/vendor/assets/bower_components/bootstrap/less/mixins/list-group.less +2 -1
  233. data/vendor/assets/bower_components/bootstrap/less/mixins/pagination.less +2 -1
  234. data/vendor/assets/bower_components/bootstrap/less/mixins/reset-text.less +18 -0
  235. data/vendor/assets/bower_components/bootstrap/less/mixins/responsive-visibility.less +1 -1
  236. data/vendor/assets/bower_components/bootstrap/less/mixins/tab-focus.less +3 -3
  237. data/vendor/assets/bower_components/bootstrap/less/mixins/text-emphasis.less +2 -1
  238. data/vendor/assets/bower_components/bootstrap/less/mixins/vendor-prefixes.less +8 -5
  239. data/vendor/assets/bower_components/bootstrap/less/modals.less +3 -3
  240. data/vendor/assets/bower_components/bootstrap/less/navbar.less +30 -25
  241. data/vendor/assets/bower_components/bootstrap/less/navs.less +1 -1
  242. data/vendor/assets/bower_components/bootstrap/less/normalize.less +12 -13
  243. data/vendor/assets/bower_components/bootstrap/less/pager.less +1 -2
  244. data/vendor/assets/bower_components/bootstrap/less/pagination.less +5 -4
  245. data/vendor/assets/bower_components/bootstrap/less/panels.less +33 -5
  246. data/vendor/assets/bower_components/bootstrap/less/popovers.less +5 -7
  247. data/vendor/assets/bower_components/bootstrap/less/print.less +96 -96
  248. data/vendor/assets/bower_components/bootstrap/less/progress-bars.less +1 -19
  249. data/vendor/assets/bower_components/bootstrap/less/responsive-embed.less +10 -9
  250. data/vendor/assets/bower_components/bootstrap/less/scaffolding.less +13 -2
  251. data/vendor/assets/bower_components/bootstrap/less/tables.less +14 -13
  252. data/vendor/assets/bower_components/bootstrap/less/theme.less +49 -16
  253. data/vendor/assets/bower_components/bootstrap/less/thumbnails.less +1 -1
  254. data/vendor/assets/bower_components/bootstrap/less/tooltip.less +13 -7
  255. data/vendor/assets/bower_components/bootstrap/less/type.less +2 -13
  256. data/vendor/assets/bower_components/bootstrap/less/utilities.less +0 -2
  257. data/vendor/assets/bower_components/bootstrap/less/variables.less +45 -22
  258. data/vendor/assets/bower_components/bootstrap/nuget/MyGet.ps1 +8 -0
  259. data/vendor/assets/bower_components/bootstrap/nuget/bootstrap.less.nuspec +28 -0
  260. data/vendor/assets/bower_components/bootstrap/nuget/bootstrap.nuspec +28 -0
  261. data/vendor/assets/bower_components/bootstrap/package.js +32 -0
  262. data/vendor/assets/bower_components/bootstrap/package.json +49 -41
  263. data/vendor/assets/bower_components/flow.js/README.md +79 -64
  264. data/vendor/assets/bower_components/flow.js/bower.json +6 -2
  265. data/vendor/assets/bower_components/flow.js/dist/flow.js +1635 -1532
  266. data/vendor/assets/bower_components/flow.js/dist/flow.min.js +2 -2
  267. data/vendor/assets/bower_components/flow.js/package.js +24 -0
  268. data/vendor/assets/bower_components/flow.js/travis.sh +19 -0
  269. data/vendor/assets/bower_components/font-awesome/scss/_path.scss +5 -5
  270. data/vendor/assets/bower_components/font-awesome/scss/_variables.scss +1 -2
  271. data/vendor/assets/bower_components/ng-flow/bower.json +1 -1
  272. data/vendor/assets/bower_components/ng-flow/dist/ng-flow-standalone.js +1655 -1542
  273. data/vendor/assets/bower_components/ng-flow/dist/ng-flow-standalone.min.js +2 -2
  274. data/vendor/assets/bower_components/ng-flow/dist/ng-flow.js +19 -9
  275. data/vendor/assets/bower_components/ng-flow/dist/ng-flow.min.js +2 -2
  276. data/vendor/assets/bower_components/ng-flow/index.js +3 -0
  277. data/vendor/assets/bower_components/ng-flow/package.js +25 -0
  278. data/vendor/assets/bower_components/ng-flow/src/directives/drag-events.js +2 -1
  279. data/vendor/assets/bower_components/ng-flow/src/directives/events.js +2 -1
  280. data/vendor/assets/bower_components/ng-flow/src/directives/init.js +7 -1
  281. data/vendor/assets/bower_components/ng-flow/travis.sh +19 -0
  282. data/vendor/assets/bower_components/{Responsive-Dashboard → rdash-ui}/LICENSE +21 -21
  283. data/vendor/assets/bower_components/rdash-ui/README.md +55 -0
  284. data/vendor/assets/bower_components/rdash-ui/bower.json +33 -0
  285. data/vendor/assets/bower_components/rdash-ui/dist/css/rdash.min.css +1 -0
  286. data/vendor/assets/bower_components/rdash-ui/dist/css/rdash.scss +489 -0
  287. data/vendor/assets/bower_components/{Responsive-Dashboard/src → rdash-ui/dist}/fonts/montserrat-regular-webfont.eot +0 -0
  288. data/vendor/assets/bower_components/{Responsive-Dashboard/src → rdash-ui/dist}/fonts/montserrat-regular-webfont.svg +1316 -1316
  289. data/vendor/assets/bower_components/{Responsive-Dashboard/src → rdash-ui/dist}/fonts/montserrat-regular-webfont.ttf +0 -0
  290. data/vendor/assets/bower_components/{Responsive-Dashboard/src → rdash-ui/dist}/fonts/montserrat-regular-webfont.woff +0 -0
  291. metadata +227 -180
  292. data/config/initializers/bower_rails.rb +0 -16
  293. data/vendor/assets/bower_components/Responsive-Dashboard/CONTRIBUTING.md +0 -21
  294. data/vendor/assets/bower_components/Responsive-Dashboard/README.md +0 -119
  295. data/vendor/assets/bower_components/Responsive-Dashboard/bower.json +0 -32
  296. data/vendor/assets/bower_components/Responsive-Dashboard/gulpfile.js +0 -81
  297. data/vendor/assets/bower_components/Responsive-Dashboard/package.json +0 -21
  298. data/vendor/assets/bower_components/Responsive-Dashboard/src/index.html +0 -413
  299. data/vendor/assets/bower_components/Responsive-Dashboard/src/js/dashboard/controllers/alerts-ctrl.js +0 -19
  300. data/vendor/assets/bower_components/Responsive-Dashboard/src/js/dashboard/controllers/master-ctrl.js +0 -51
  301. data/vendor/assets/bower_components/Responsive-Dashboard/src/js/dashboard/directives/loading.js +0 -13
  302. data/vendor/assets/bower_components/Responsive-Dashboard/src/js/dashboard/directives/widget-body.js +0 -16
  303. data/vendor/assets/bower_components/Responsive-Dashboard/src/js/dashboard/directives/widget-header.js +0 -17
  304. data/vendor/assets/bower_components/Responsive-Dashboard/src/js/dashboard/directives/widget.js +0 -16
  305. data/vendor/assets/bower_components/Responsive-Dashboard/src/js/dashboard/module.js +0 -1
  306. data/vendor/assets/bower_components/Responsive-Dashboard/src/js/dashboard/routes.js +0 -22
  307. data/vendor/assets/bower_components/Responsive-Dashboard/src/less/dashboard/content.less +0 -19
  308. data/vendor/assets/bower_components/Responsive-Dashboard/src/less/dashboard/hamburg.less +0 -29
  309. data/vendor/assets/bower_components/Responsive-Dashboard/src/less/dashboard/header.less +0 -92
  310. data/vendor/assets/bower_components/Responsive-Dashboard/src/less/dashboard/loading.less +0 -40
  311. data/vendor/assets/bower_components/Responsive-Dashboard/src/less/dashboard/main.less +0 -73
  312. data/vendor/assets/bower_components/Responsive-Dashboard/src/less/dashboard/mixins.less +0 -5
  313. data/vendor/assets/bower_components/Responsive-Dashboard/src/less/dashboard/sidebar.less +0 -122
  314. data/vendor/assets/bower_components/Responsive-Dashboard/src/less/dashboard/variables.less +0 -10
  315. data/vendor/assets/bower_components/Responsive-Dashboard/src/less/dashboard/widgets.less +0 -95
  316. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap.min.css.erb +0 -5
  317. data/vendor/assets/bower_components/flow.js/CHANGELOG.md +0 -37
  318. data/vendor/assets/bower_components/flow.js/Gruntfile.js +0 -132
  319. data/vendor/assets/bower_components/flow.js/karma.conf.js +0 -114
  320. data/vendor/assets/bower_components/flow.js/package.json +0 -50
  321. data/vendor/assets/bower_components/flow.js/src/flow.js +0 -1532
  322. data/vendor/assets/bower_components/jquery/MIT-LICENSE.txt +0 -21
  323. data/vendor/assets/bower_components/jquery/bower.json +0 -27
  324. data/vendor/assets/bower_components/jquery/dist/jquery.js +0 -9190
  325. data/vendor/assets/bower_components/jquery/dist/jquery.min.js +0 -5
  326. data/vendor/assets/bower_components/jquery/dist/jquery.min.map +0 -1
  327. data/vendor/assets/bower_components/jquery/src/ajax.js +0 -806
  328. data/vendor/assets/bower_components/jquery/src/ajax/jsonp.js +0 -89
  329. data/vendor/assets/bower_components/jquery/src/ajax/load.js +0 -75
  330. data/vendor/assets/bower_components/jquery/src/ajax/parseJSON.js +0 -13
  331. data/vendor/assets/bower_components/jquery/src/ajax/parseXML.js +0 -28
  332. data/vendor/assets/bower_components/jquery/src/ajax/script.js +0 -64
  333. data/vendor/assets/bower_components/jquery/src/ajax/var/nonce.js +0 -5
  334. data/vendor/assets/bower_components/jquery/src/ajax/var/rquery.js +0 -3
  335. data/vendor/assets/bower_components/jquery/src/ajax/xhr.js +0 -135
  336. data/vendor/assets/bower_components/jquery/src/attributes.js +0 -11
  337. data/vendor/assets/bower_components/jquery/src/attributes/attr.js +0 -143
  338. data/vendor/assets/bower_components/jquery/src/attributes/classes.js +0 -158
  339. data/vendor/assets/bower_components/jquery/src/attributes/prop.js +0 -96
  340. data/vendor/assets/bower_components/jquery/src/attributes/support.js +0 -35
  341. data/vendor/assets/bower_components/jquery/src/attributes/val.js +0 -163
  342. data/vendor/assets/bower_components/jquery/src/callbacks.js +0 -205
  343. data/vendor/assets/bower_components/jquery/src/core.js +0 -498
  344. data/vendor/assets/bower_components/jquery/src/core/access.js +0 -60
  345. data/vendor/assets/bower_components/jquery/src/core/init.js +0 -123
  346. data/vendor/assets/bower_components/jquery/src/core/parseHTML.js +0 -39
  347. data/vendor/assets/bower_components/jquery/src/core/ready.js +0 -97
  348. data/vendor/assets/bower_components/jquery/src/core/var/rsingleTag.js +0 -4
  349. data/vendor/assets/bower_components/jquery/src/css.js +0 -451
  350. data/vendor/assets/bower_components/jquery/src/css/addGetHookIf.js +0 -24
  351. data/vendor/assets/bower_components/jquery/src/css/curCSS.js +0 -57
  352. data/vendor/assets/bower_components/jquery/src/css/defaultDisplay.js +0 -70
  353. data/vendor/assets/bower_components/jquery/src/css/hiddenVisibleSelectors.js +0 -15
  354. data/vendor/assets/bower_components/jquery/src/css/support.js +0 -91
  355. data/vendor/assets/bower_components/jquery/src/css/swap.js +0 -28
  356. data/vendor/assets/bower_components/jquery/src/css/var/cssExpand.js +0 -3
  357. data/vendor/assets/bower_components/jquery/src/css/var/getStyles.js +0 -5
  358. data/vendor/assets/bower_components/jquery/src/css/var/isHidden.js +0 -13
  359. data/vendor/assets/bower_components/jquery/src/css/var/rmargin.js +0 -3
  360. data/vendor/assets/bower_components/jquery/src/css/var/rnumnonpx.js +0 -5
  361. data/vendor/assets/bower_components/jquery/src/data.js +0 -179
  362. data/vendor/assets/bower_components/jquery/src/data/Data.js +0 -181
  363. data/vendor/assets/bower_components/jquery/src/data/accepts.js +0 -20
  364. data/vendor/assets/bower_components/jquery/src/data/var/data_priv.js +0 -5
  365. data/vendor/assets/bower_components/jquery/src/data/var/data_user.js +0 -5
  366. data/vendor/assets/bower_components/jquery/src/deferred.js +0 -149
  367. data/vendor/assets/bower_components/jquery/src/deprecated.js +0 -13
  368. data/vendor/assets/bower_components/jquery/src/dimensions.js +0 -50
  369. data/vendor/assets/bower_components/jquery/src/effects.js +0 -649
  370. data/vendor/assets/bower_components/jquery/src/effects/Tween.js +0 -114
  371. data/vendor/assets/bower_components/jquery/src/effects/animatedSelector.js +0 -13
  372. data/vendor/assets/bower_components/jquery/src/event.js +0 -868
  373. data/vendor/assets/bower_components/jquery/src/event/alias.js +0 -39
  374. data/vendor/assets/bower_components/jquery/src/event/support.js +0 -9
  375. data/vendor/assets/bower_components/jquery/src/exports/amd.js +0 -24
  376. data/vendor/assets/bower_components/jquery/src/exports/global.js +0 -32
  377. data/vendor/assets/bower_components/jquery/src/intro.js +0 -44
  378. data/vendor/assets/bower_components/jquery/src/jquery.js +0 -36
  379. data/vendor/assets/bower_components/jquery/src/manipulation.js +0 -582
  380. data/vendor/assets/bower_components/jquery/src/manipulation/_evalUrl.js +0 -18
  381. data/vendor/assets/bower_components/jquery/src/manipulation/support.js +0 -31
  382. data/vendor/assets/bower_components/jquery/src/manipulation/var/rcheckableType.js +0 -3
  383. data/vendor/assets/bower_components/jquery/src/offset.js +0 -204
  384. data/vendor/assets/bower_components/jquery/src/outro.js +0 -1
  385. data/vendor/assets/bower_components/jquery/src/queue.js +0 -142
  386. data/vendor/assets/bower_components/jquery/src/queue/delay.js +0 -22
  387. data/vendor/assets/bower_components/jquery/src/selector-native.js +0 -172
  388. data/vendor/assets/bower_components/jquery/src/selector-sizzle.js +0 -14
  389. data/vendor/assets/bower_components/jquery/src/selector.js +0 -1
  390. data/vendor/assets/bower_components/jquery/src/serialize.js +0 -111
  391. data/vendor/assets/bower_components/jquery/src/sizzle/dist/sizzle.js +0 -2044
  392. data/vendor/assets/bower_components/jquery/src/sizzle/dist/sizzle.min.js +0 -3
  393. data/vendor/assets/bower_components/jquery/src/sizzle/dist/sizzle.min.map +0 -1
  394. data/vendor/assets/bower_components/jquery/src/traversing.js +0 -200
  395. data/vendor/assets/bower_components/jquery/src/traversing/findFilter.js +0 -100
  396. data/vendor/assets/bower_components/jquery/src/traversing/var/rneedsContext.js +0 -6
  397. data/vendor/assets/bower_components/jquery/src/var/arr.js +0 -3
  398. data/vendor/assets/bower_components/jquery/src/var/class2type.js +0 -4
  399. data/vendor/assets/bower_components/jquery/src/var/concat.js +0 -5
  400. data/vendor/assets/bower_components/jquery/src/var/hasOwn.js +0 -5
  401. data/vendor/assets/bower_components/jquery/src/var/indexOf.js +0 -5
  402. data/vendor/assets/bower_components/jquery/src/var/pnum.js +0 -3
  403. data/vendor/assets/bower_components/jquery/src/var/push.js +0 -5
  404. data/vendor/assets/bower_components/jquery/src/var/rnotwhite.js +0 -3
  405. data/vendor/assets/bower_components/jquery/src/var/slice.js +0 -5
  406. data/vendor/assets/bower_components/jquery/src/var/strundefined.js +0 -3
  407. data/vendor/assets/bower_components/jquery/src/var/support.js +0 -4
  408. data/vendor/assets/bower_components/jquery/src/var/toString.js +0 -5
  409. data/vendor/assets/bower_components/jquery/src/wrap.js +0 -78
@@ -44,7 +44,6 @@
44
44
 
45
45
  .hidden {
46
46
  display: none !important;
47
- visibility: hidden !important;
48
47
  }
49
48
 
50
49
 
@@ -53,5 +52,4 @@
53
52
 
54
53
  .affix {
55
54
  position: fixed;
56
- .translate3d(0, 0, 0);
57
55
  }
@@ -7,13 +7,14 @@
7
7
  //
8
8
  //## Gray and brand colors for use across Bootstrap.
9
9
 
10
- @gray-darker: lighten(#000, 13.5%); // #222
11
- @gray-dark: lighten(#000, 20%); // #333
12
- @gray: lighten(#000, 33.5%); // #555
13
- @gray-light: lighten(#000, 46.7%); // #777
14
- @gray-lighter: lighten(#000, 93.5%); // #eee
15
-
16
- @brand-primary: #428bca;
10
+ @gray-base: #000;
11
+ @gray-darker: lighten(@gray-base, 13.5%); // #222
12
+ @gray-dark: lighten(@gray-base, 20%); // #333
13
+ @gray: lighten(@gray-base, 33.5%); // #555
14
+ @gray-light: lighten(@gray-base, 46.7%); // #777
15
+ @gray-lighter: lighten(@gray-base, 93.5%); // #eee
16
+
17
+ @brand-primary: darken(#428bca, 6.5%); // #337ab7
17
18
  @brand-success: #5cb85c;
18
19
  @brand-info: #5bc0de;
19
20
  @brand-warning: #f0ad4e;
@@ -33,6 +34,8 @@
33
34
  @link-color: @brand-primary;
34
35
  //** Link hover color set via `darken()` function.
35
36
  @link-hover-color: darken(@link-color, 15%);
37
+ //** Link hover decoration.
38
+ @link-hover-decoration: underline;
36
39
 
37
40
 
38
41
  //== Typography
@@ -96,7 +99,7 @@
96
99
  @padding-xs-vertical: 1px;
97
100
  @padding-xs-horizontal: 5px;
98
101
 
99
- @line-height-large: 1.33;
102
+ @line-height-large: 1.3333333; // extra decimals for Win 8.1 Chrome
100
103
  @line-height-small: 1.5;
101
104
 
102
105
  @border-radius-base: 4px;
@@ -108,7 +111,7 @@
108
111
  //** Global background color for active items (e.g., navs or dropdowns).
109
112
  @component-active-bg: @brand-primary;
110
113
 
111
- //** Width of the `border` for generating carets that indicator dropdowns.
114
+ //** Width of the `border` for generating carets that indicate dropdowns.
112
115
  @caret-width-base: 4px;
113
116
  //** Carets increase slightly in size for larger components.
114
117
  @caret-width-large: 5px;
@@ -167,6 +170,11 @@
167
170
 
168
171
  @btn-link-disabled-color: @gray-light;
169
172
 
173
+ // Allows for customizing button radius independently from global border radius
174
+ @btn-border-radius-base: @border-radius-base;
175
+ @btn-border-radius-large: @border-radius-large;
176
+ @btn-border-radius-small: @border-radius-small;
177
+
170
178
 
171
179
  //== Forms
172
180
  //
@@ -181,13 +189,21 @@
181
189
  @input-color: @gray;
182
190
  //** `<input>` border color
183
191
  @input-border: #ccc;
184
- //** `<input>` border radius
192
+
193
+ // TODO: Rename `@input-border-radius` to `@input-border-radius-base` in v4
194
+ //** Default `.form-control` border radius
195
+ // This has no effect on `<select>`s in some browsers, due to the limited stylability of `<select>`s in CSS.
185
196
  @input-border-radius: @border-radius-base;
197
+ //** Large `.form-control` border radius
198
+ @input-border-radius-large: @border-radius-large;
199
+ //** Small `.form-control` border radius
200
+ @input-border-radius-small: @border-radius-small;
201
+
186
202
  //** Border color for inputs on focus
187
203
  @input-border-focus: #66afe9;
188
204
 
189
205
  //** Placeholder text color
190
- @input-color-placeholder: @gray-light;
206
+ @input-color-placeholder: #999;
191
207
 
192
208
  //** Default `.form-control` height
193
209
  @input-height-base: (@line-height-computed + (@padding-base-vertical * 2) + 2);
@@ -196,6 +212,9 @@
196
212
  //** Small `.form-control` height
197
213
  @input-height-small: (floor(@font-size-small * @line-height-small) + (@padding-small-vertical * 2) + 2);
198
214
 
215
+ //** `.form-group` margin
216
+ @form-group-margin-bottom: 15px;
217
+
199
218
  @legend-color: @gray-dark;
200
219
  @legend-border-color: #e5e5e5;
201
220
 
@@ -204,6 +223,9 @@
204
223
  //** Border color for textual input addons
205
224
  @input-group-addon-border-color: @input-border;
206
225
 
226
+ //** Disabled cursor for form controls and buttons.
227
+ @cursor-disabled: not-allowed;
228
+
207
229
 
208
230
  //== Dropdowns
209
231
  //
@@ -315,17 +337,17 @@
315
337
  //## Define the maximum width of `.container` for different screen sizes.
316
338
 
317
339
  // Small screen / tablet
318
- @container-tablet: ((720px + @grid-gutter-width));
340
+ @container-tablet: (720px + @grid-gutter-width);
319
341
  //** For `@screen-sm-min` and up.
320
342
  @container-sm: @container-tablet;
321
343
 
322
344
  // Medium screen / desktop
323
- @container-desktop: ((940px + @grid-gutter-width));
345
+ @container-desktop: (940px + @grid-gutter-width);
324
346
  //** For `@screen-md-min` and up.
325
347
  @container-md: @container-desktop;
326
348
 
327
349
  // Large screen / wide desktop
328
- @container-large-desktop: ((1140px + @grid-gutter-width));
350
+ @container-large-desktop: (1140px + @grid-gutter-width);
329
351
  //** For `@screen-lg-min` and up.
330
352
  @container-lg: @container-large-desktop;
331
353
 
@@ -366,14 +388,14 @@
366
388
  @navbar-default-toggle-border-color: #ddd;
367
389
 
368
390
 
369
- // Inverted navbar
391
+ //=== Inverted navbar
370
392
  // Reset inverted navbar basics
371
- @navbar-inverse-color: @gray-light;
393
+ @navbar-inverse-color: lighten(@gray-light, 15%);
372
394
  @navbar-inverse-bg: #222;
373
395
  @navbar-inverse-border: darken(@navbar-inverse-bg, 10%);
374
396
 
375
397
  // Inverted navbar links
376
- @navbar-inverse-link-color: @gray-light;
398
+ @navbar-inverse-link-color: lighten(@gray-light, 15%);
377
399
  @navbar-inverse-link-hover-color: #fff;
378
400
  @navbar-inverse-link-hover-bg: transparent;
379
401
  @navbar-inverse-link-active-color: @navbar-inverse-link-hover-color;
@@ -403,8 +425,6 @@
403
425
  @nav-disabled-link-color: @gray-light;
404
426
  @nav-disabled-link-hover-color: @gray-light;
405
427
 
406
- @nav-open-link-hover-color: #fff;
407
-
408
428
  //== Tabs
409
429
  @nav-tabs-border-color: #ddd;
410
430
 
@@ -469,6 +489,7 @@
469
489
  @jumbotron-bg: @gray-lighter;
470
490
  @jumbotron-heading-color: inherit;
471
491
  @jumbotron-font-size: ceil((@font-size-base * 1.5));
492
+ @jumbotron-heading-font-size: ceil((@font-size-base * 4.5));
472
493
 
473
494
 
474
495
  //== Form states and alerts
@@ -529,7 +550,7 @@
529
550
  //** Popover arrow width
530
551
  @popover-arrow-width: 10px;
531
552
  //** Popover arrow color
532
- @popover-arrow-color: #fff;
553
+ @popover-arrow-color: @popover-bg;
533
554
 
534
555
  //** Popover outer arrow width
535
556
  @popover-arrow-outer-width: (@popover-arrow-width + 1);
@@ -628,6 +649,8 @@
628
649
  @progress-bg: #f5f5f5;
629
650
  //** Progress bar text color
630
651
  @progress-bar-color: #fff;
652
+ //** Variable for setting rounded corners on progress bar.
653
+ @progress-border-radius: @border-radius-base;
631
654
 
632
655
  //** Default progress bar color
633
656
  @progress-bar-bg: @brand-primary;
@@ -840,7 +863,7 @@
840
863
  @page-header-border-color: @gray-lighter;
841
864
  //** Width of horizontal description list titles
842
865
  @dl-horizontal-offset: @component-offset-horizontal;
866
+ //** Point at which .dl-horizontal becomes horizontal
867
+ @dl-horizontal-breakpoint: @grid-float-breakpoint;
843
868
  //** Horizontal line color.
844
869
  @hr-border: @gray-lighter;
845
-
846
-
@@ -0,0 +1,8 @@
1
+ $nuget = $env:NuGet
2
+
3
+ # parse the version number out of package.json
4
+ $bsversion = ((Get-Content $env:SourcesPath\package.json) -join "`n" | ConvertFrom-Json).version
5
+
6
+ # create packages
7
+ & $nuget pack "nuget\bootstrap.nuspec" -Verbosity detailed -NonInteractive -NoPackageAnalysis -BasePath $env:SourcesPath -Version $bsversion
8
+ & $nuget pack "nuget\bootstrap.less.nuspec" -Verbosity detailed -NonInteractive -NoPackageAnalysis -BasePath $env:SourcesPath -Version $bsversion
@@ -0,0 +1,28 @@
1
+ <?xml version="1.0"?>
2
+ <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
3
+ <metadata>
4
+ <id>bootstrap.less</id>
5
+ <version>3.3.7</version>
6
+ <title>Bootstrap Less</title>
7
+ <authors>Twitter, Inc.</authors>
8
+ <owners>bootstrap</owners>
9
+ <description>The most popular front-end framework for developing responsive, mobile first projects on the web.</description>
10
+ <releaseNotes>http://blog.getbootstrap.com</releaseNotes>
11
+ <summary>Bootstrap framework in Less. Includes fonts and JavaScript</summary>
12
+ <language>en-us</language>
13
+ <projectUrl>http://getbootstrap.com</projectUrl>
14
+ <iconUrl>http://getbootstrap.com/apple-touch-icon.png</iconUrl>
15
+ <licenseUrl>https://github.com/twbs/bootstrap/blob/master/LICENSE</licenseUrl>
16
+ <copyright>Copyright 2016</copyright>
17
+ <requireLicenseAcceptance>false</requireLicenseAcceptance>
18
+ <dependencies>
19
+ <dependency id="jQuery" version="[1.9.1,4)" />
20
+ </dependencies>
21
+ <tags>css js less mobile-first responsive front-end framework web</tags>
22
+ </metadata>
23
+ <files>
24
+ <file src="less\**\*.less" target="content\Content\bootstrap" />
25
+ <file src="fonts\*.*" target="content\Content\fonts" />
26
+ <file src="dist\js\bootstrap*.js" target="content\Scripts" />
27
+ </files>
28
+ </package>
@@ -0,0 +1,28 @@
1
+ <?xml version="1.0"?>
2
+ <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
3
+ <metadata>
4
+ <id>bootstrap</id>
5
+ <version>3.3.7</version>
6
+ <title>Bootstrap CSS</title>
7
+ <authors>Twitter, Inc.</authors>
8
+ <owners>bootstrap</owners>
9
+ <description>The most popular front-end framework for developing responsive, mobile first projects on the web.</description>
10
+ <releaseNotes>http://blog.getbootstrap.com</releaseNotes>
11
+ <summary>Bootstrap framework in CSS. Includes fonts and JavaScript</summary>
12
+ <language>en-us</language>
13
+ <projectUrl>http://getbootstrap.com</projectUrl>
14
+ <iconUrl>http://getbootstrap.com/apple-touch-icon.png</iconUrl>
15
+ <licenseUrl>https://github.com/twbs/bootstrap/blob/master/LICENSE</licenseUrl>
16
+ <copyright>Copyright 2016</copyright>
17
+ <requireLicenseAcceptance>false</requireLicenseAcceptance>
18
+ <dependencies>
19
+ <dependency id="jQuery" version="[1.9.1,4)" />
20
+ </dependencies>
21
+ <tags>css js less mobile-first responsive front-end framework web</tags>
22
+ </metadata>
23
+ <files>
24
+ <file src="dist\css\*.*" target="content\Content" />
25
+ <file src="dist\fonts\*.*" target="content\fonts" />
26
+ <file src="dist\js\bootstrap*.js" target="content\Scripts" />
27
+ </files>
28
+ </package>
@@ -0,0 +1,32 @@
1
+ // package metadata file for Meteor.js
2
+
3
+ /* jshint strict:false */
4
+ /* global Package:true */
5
+
6
+ Package.describe({
7
+ name: 'twbs:bootstrap', // http://atmospherejs.com/twbs/bootstrap
8
+ summary: 'The most popular front-end framework for developing responsive, mobile first projects on the web.',
9
+ version: '3.3.7',
10
+ git: 'https://github.com/twbs/bootstrap.git'
11
+ });
12
+
13
+ Package.onUse(function (api) {
14
+ api.versionsFrom('METEOR@1.0');
15
+ api.use('jquery', 'client');
16
+ var assets = [
17
+ 'dist/fonts/glyphicons-halflings-regular.eot',
18
+ 'dist/fonts/glyphicons-halflings-regular.svg',
19
+ 'dist/fonts/glyphicons-halflings-regular.ttf',
20
+ 'dist/fonts/glyphicons-halflings-regular.woff',
21
+ 'dist/fonts/glyphicons-halflings-regular.woff2'
22
+ ];
23
+ if (api.addAssets) {
24
+ api.addAssets(assets, 'client');
25
+ } else {
26
+ api.addFiles(assets, 'client', { isAsset: true });
27
+ }
28
+ api.addFiles([
29
+ 'dist/css/bootstrap.css',
30
+ 'dist/js/bootstrap.js'
31
+ ], 'client');
32
+ });
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "bootstrap",
3
3
  "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.",
4
- "version": "3.2.0",
4
+ "version": "3.3.7",
5
5
  "keywords": [
6
6
  "css",
7
7
  "less",
@@ -14,10 +14,13 @@
14
14
  "homepage": "http://getbootstrap.com",
15
15
  "author": "Twitter, Inc.",
16
16
  "scripts": {
17
+ "change-version": "node grunt/change-version.js",
18
+ "update-shrinkwrap": "npm shrinkwrap --dev && shx mv ./npm-shrinkwrap.json ./grunt/npm-shrinkwrap.json",
17
19
  "test": "grunt test"
18
20
  },
19
21
  "style": "dist/css/bootstrap.css",
20
22
  "less": "less/bootstrap.less",
23
+ "main": "./dist/js/npm",
21
24
  "repository": {
22
25
  "type": "git",
23
26
  "url": "https://github.com/twbs/bootstrap.git"
@@ -25,57 +28,62 @@
25
28
  "bugs": {
26
29
  "url": "https://github.com/twbs/bootstrap/issues"
27
30
  },
28
- "license": {
29
- "type": "MIT",
30
- "url": "https://github.com/twbs/bootstrap/blob/master/LICENSE"
31
- },
31
+ "license": "MIT",
32
32
  "devDependencies": {
33
33
  "btoa": "~1.1.2",
34
- "glob": "~4.0.2",
35
- "grunt": "~0.4.5",
36
- "grunt-autoprefixer": "~0.7.6",
37
- "grunt-banner": "~0.2.3",
38
- "grunt-contrib-clean": "~0.5.0",
39
- "grunt-contrib-concat": "~0.4.0",
40
- "grunt-contrib-connect": "~0.8.0",
41
- "grunt-contrib-copy": "~0.5.0",
42
- "grunt-contrib-csslint": "~0.2.0",
43
- "grunt-contrib-cssmin": "~0.10.0",
44
- "grunt-contrib-jade": "~0.12.0",
45
- "grunt-contrib-jshint": "~0.10.0",
46
- "grunt-contrib-less": "~0.11.3",
47
- "grunt-contrib-qunit": "~0.5.1",
48
- "grunt-contrib-uglify": "~0.5.0",
49
- "grunt-contrib-watch": "~0.6.1",
50
- "grunt-csscomb": "~2.0.1",
51
- "grunt-exec": "~0.4.5",
52
- "grunt-html-validation": "~0.1.18",
53
- "grunt-jekyll": "~0.4.2",
54
- "grunt-jscs-checker": "~0.6.0",
55
- "grunt-saucelabs": "~8.1.0",
56
- "grunt-sed": "~0.1.1",
57
- "load-grunt-tasks": "~0.6.0",
58
- "markdown": "~0.5.0",
59
- "npm-shrinkwrap": "~3.1.6",
60
- "time-grunt": "~0.3.2"
34
+ "glob": "~7.0.3",
35
+ "grunt": "~1.0.1",
36
+ "grunt-autoprefixer": "~3.0.4",
37
+ "grunt-contrib-clean": "~1.0.0",
38
+ "grunt-contrib-compress": "~1.3.0",
39
+ "grunt-contrib-concat": "~1.0.0",
40
+ "grunt-contrib-connect": "~1.0.0",
41
+ "grunt-contrib-copy": "~1.0.0",
42
+ "grunt-contrib-csslint": "~1.0.0",
43
+ "grunt-contrib-cssmin": "~1.0.0",
44
+ "grunt-contrib-htmlmin": "~1.5.0",
45
+ "grunt-contrib-jshint": "~1.0.0",
46
+ "grunt-contrib-less": "~1.3.0",
47
+ "grunt-contrib-pug": "~1.0.0",
48
+ "grunt-contrib-qunit": "~0.7.0",
49
+ "grunt-contrib-uglify": "~1.0.0",
50
+ "grunt-contrib-watch": "~1.0.0",
51
+ "grunt-csscomb": "~3.1.0",
52
+ "grunt-exec": "~1.0.0",
53
+ "grunt-html": "~8.0.1",
54
+ "grunt-jekyll": "~0.4.4",
55
+ "grunt-jscs": "~3.0.1",
56
+ "grunt-saucelabs": "~9.0.0",
57
+ "load-grunt-tasks": "~3.5.0",
58
+ "markdown-it": "^7.0.0",
59
+ "shelljs": "^0.7.0",
60
+ "shx": "^0.1.2",
61
+ "time-grunt": "^1.3.0"
61
62
  },
62
63
  "engines": {
63
- "node": "~0.10.1"
64
+ "node": ">=0.10.1"
64
65
  },
66
+ "files": [
67
+ "dist",
68
+ "fonts",
69
+ "grunt",
70
+ "js/*.js",
71
+ "less/**/*.less",
72
+ "Gruntfile.js",
73
+ "LICENSE"
74
+ ],
65
75
  "jspm": {
66
76
  "main": "js/bootstrap",
67
- "directories": {
68
- "example": "examples",
69
- "lib": "dist"
70
- },
71
77
  "shim": {
72
78
  "js/bootstrap": {
73
- "imports": "jquery",
79
+ "deps": "jquery",
74
80
  "exports": "$"
75
81
  }
76
82
  },
77
- "buildConfig": {
78
- "uglify": true
79
- }
83
+ "files": [
84
+ "css",
85
+ "fonts",
86
+ "js"
87
+ ]
80
88
  }
81
89
  }
@@ -1,5 +1,6 @@
1
- ## Flow.js [![Build Status](https://travis-ci.org/flowjs/flow.js.png)](https://travis-ci.org/flowjs/flow.js) [![Coverage Status](https://coveralls.io/repos/flowjs/flow.js/badge.png?branch=master)](https://coveralls.io/r/flowjs/flow.js?branch=master)
1
+ # Flow.js [![Build Status](https://travis-ci.org/flowjs/flow.js.svg)](https://travis-ci.org/flowjs/flow.js) [![Test Coverage](https://codeclimate.com/github/flowjs/flow.js/badges/coverage.svg)](https://codeclimate.com/github/flowjs/flow.js/coverage)
2
2
 
3
+ [![Saucelabs Test Status](https://saucelabs.com/browser-matrix/flowjs.svg)](https://saucelabs.com/u/flowjs)
3
4
 
4
5
  Flow.js is a JavaScript library providing multiple simultaneous, stable and resumable uploads via the HTML5 File API.
5
6
 
@@ -9,7 +10,7 @@ Flow.js does not have any external dependencies other than the `HTML5 File API`.
9
10
 
10
11
  Samples and examples are available in the `samples/` folder. Please push your own as Markdown to help document the project.
11
12
 
12
- ## Can i see a demo?
13
+ ## Can I see a demo?
13
14
  [Flow.js + angular.js file upload demo](http://flowjs.github.io/ng-flow/) - ng-flow extension page https://github.com/flowjs/ng-flow
14
15
 
15
16
  JQuery and node.js backend demo https://github.com/flowjs/flow.js/tree/master/samples/Node.js
@@ -20,41 +21,41 @@ Download a latest build from https://github.com/flowjs/flow.js/releases
20
21
  it contains development and minified production files in `dist/` folder.
21
22
 
22
23
  or use bower:
23
-
24
- bower install flow.js#~2
25
-
24
+ ```console
25
+ bower install flow.js#~2
26
+ ```
26
27
  or use git clone
27
-
28
- git clone https://github.com/flowjs/flow.js
29
-
28
+ ```console
29
+ git clone https://github.com/flowjs/flow.js
30
+ ```
30
31
  ## How can I use it?
31
32
 
32
33
  A new `Flow` object is created with information of what and where to post:
33
-
34
- var flow = new Flow({
35
- target:'/api/photo/redeem-upload-token',
36
- query:{upload_token:'my_token'}
37
- });
38
- // Flow.js isn't supported, fall back on a different method
39
- if(!flow.support) location.href = '/some-old-crappy-uploader';
40
-
34
+ ```javascript
35
+ var flow = new Flow({
36
+ target:'/api/photo/redeem-upload-token',
37
+ query:{upload_token:'my_token'}
38
+ });
39
+ // Flow.js isn't supported, fall back on a different method
40
+ if(!flow.support) location.href = '/some-old-crappy-uploader';
41
+ ```
41
42
  To allow files to be either selected and drag-dropped, you'll assign drop target and a DOM item to be clicked for browsing:
42
-
43
- flow.assignBrowse(document.getElementById('browseButton'));
44
- flow.assignDrop(document.getElementById('dropTarget'));
45
-
43
+ ```javascript
44
+ flow.assignBrowse(document.getElementById('browseButton'));
45
+ flow.assignDrop(document.getElementById('dropTarget'));
46
+ ```
46
47
  After this, interaction with Flow.js is done by listening to events:
47
-
48
- flow.on('fileAdded', function(file, event){
49
- console.log(file, event);
50
- });
51
- flow.on('fileSuccess', function(file,message){
52
- console.log(file,message);
53
- });
54
- flow.on('fileError', function(file, message){
55
- console.log(file, message);
56
- });
57
-
48
+ ```javascript
49
+ flow.on('fileAdded', function(file, event){
50
+ console.log(file, event);
51
+ });
52
+ flow.on('fileSuccess', function(file,message){
53
+ console.log(file,message);
54
+ });
55
+ flow.on('fileError', function(file, message){
56
+ console.log(file, message);
57
+ });
58
+ ```
58
59
  ## How do I set it up with my server?
59
60
 
60
61
  Most of the magic for Flow.js happens in the user's browser, but files still need to be reassembled from chunks on the server side. This should be a fairly simple task and can be achieved in any web framework or language, which is able to receive file uploads.
@@ -73,7 +74,7 @@ You should allow for the same chunk to be uploaded more than once; this isn't st
73
74
 
74
75
  For every request, you can confirm reception in HTTP status codes (can be change through the `permanentErrors` option):
75
76
 
76
- * `200`: The chunk was accepted and correct. No need to re-upload.
77
+ * `200`, `201`, `202`: The chunk was accepted and correct. No need to re-upload.
77
78
  * `404`, `415`. `500`, `501`: The file for which the chunk was uploaded is not supported, cancel the entire upload.
78
79
  * _Anything else_: Something went wrong, but try reuploading the file.
79
80
 
@@ -81,8 +82,9 @@ For every request, you can confirm reception in HTTP status codes (can be change
81
82
 
82
83
  Enabling the `testChunks` option will allow uploads to be resumed after browser restarts and even across browsers (in theory you could even run the same file upload across multiple tabs or different browsers). The `POST` data requests listed are required to use Flow.js to receive data, but you can extend support by implementing a corresponding `GET` request with the same parameters:
83
84
 
84
- * If this request returns a `200` HTTP code, the chunks is assumed to have been completed.
85
- * If the request returns anything else, the chunk will be uploaded in the standard fashion.
85
+ * If this request returns a `200`, `201` or `202` HTTP code, the chunks is assumed to have been completed.
86
+ * If request returns a permanent error status, upload is stopped.
87
+ * If request returns anything else, the chunk will be uploaded in the standard fashion.
86
88
 
87
89
  After this is done and `testChunks` enabled, an upload can quickly catch up even after a browser restart by simply verifying already uploaded chunks that do not need to be uploaded again.
88
90
 
@@ -92,9 +94,9 @@ After this is done and `testChunks` enabled, an upload can quickly catch up even
92
94
  #### Configuration
93
95
 
94
96
  The object is loaded with a configuration options:
95
-
96
- var r = new Flow({opt1:'val', ...});
97
-
97
+ ```javascript
98
+ var r = new Flow({opt1:'val', ...});
99
+ ```
98
100
  Available configuration options are:
99
101
 
100
102
  * `target` The target URL for the multipart POST request. This can be a string or a function. If a
@@ -112,11 +114,16 @@ function, it will be passed a FlowFile, a FlowChunk and isTest boolean (Default:
112
114
  include cookies as part of the request, you need to set the `withCredentials` property to true.
113
115
  (Default: `false`)
114
116
  * `method` Method to use when POSTing chunks to the server (`multipart` or `octet`) (Default: `multipart`)
117
+ * `testMethod` HTTP method to use when chunks are being tested. If set to a function, it will be passed a FlowFile and a FlowChunk arguments. (Default: `GET`)
118
+ * `uploadMethod` HTTP method to use when chunks are being uploaded. If set to a function, it will be passed a FlowFile and a FlowChunk arguments. (Default: `POST`)
119
+ * `allowDuplicateUploads ` Once a file is uploaded, allow reupload of the same file. By default, if a file is already uploaded, it will be skipped unless the file is removed from the existing Flow object. (Default: `false`)
115
120
  * `prioritizeFirstAndLastChunk` Prioritize first and last chunks of all files. This can be handy if you can determine if a file is valid for your service from only the first or last chunk. For example, photo or video meta data is usually located in the first part of a file, making it easy to test support from only the first chunk. (Default: `false`)
116
121
  * `testChunks` Make a GET request to the server for each chunks to see if it already exists. If implemented on the server-side, this will allow for upload resumes even after a browser crash or even a computer restart. (Default: `true`)
117
- * `preprocess` Optional function to process each chunk before testing & sending. Function is passed the chunk as parameter, and should call the `preprocessFinished` method on the chunk when finished. (Default: `null`)
118
- * `generateUniqueIdentifier` Override the function that generates unique identifiers for each file. (Default: `null`)
119
- * `maxChunkRetries` The maximum number of retries for a chunk before the upload is failed. Valid values are any positive integer and `undefined` for no limit. (Default: `undefined`)
122
+ * `preprocess` Optional function to process each chunk before testing & sending. To the function it will be passed the chunk as parameter, and should call the `preprocessFinished` method on the chunk when finished. (Default: `null`)
123
+ * `initFileFn` Optional function to initialize the fileObject. To the function it will be passed a FlowFile and a FlowChunk arguments.
124
+ * `readFileFn` Optional function wrapping reading operation from the original file. To the function it will be passed the FlowFile, the startByte and endByte, the fileType and the FlowChunk.
125
+ * `generateUniqueIdentifier` Override the function that generates unique identifiers for each file. (Default: `null`)
126
+ * `maxChunkRetries` The maximum number of retries for a chunk before the upload is failed. Valid values are any positive integer and `undefined` for no limit. (Default: `0`)
120
127
  * `chunkRetryInterval` The number of milliseconds to wait before retrying a chunk on a non-permanent error. Valid values are any positive integer and `undefined` for immediate retry. (Default: `undefined`)
121
128
  * `progressCallbacksInterval` The time interval in milliseconds between progress reports. Set it
122
129
  to 0 to handle each progress callback. (Default: `500`)
@@ -124,6 +131,9 @@ to 0 to handle each progress callback. (Default: `500`)
124
131
  and average upload speed wil be equal to current upload speed. For longer file uploads it is
125
132
  better set this number to 0.02, because time remaining estimation will be more accurate. This
126
133
  parameter must be adjusted together with `progressCallbacksInterval` parameter. (Default 0.1)
134
+ * `successStatuses` Response is success if response status is in this list (Default: `[200,201,
135
+ 202]`)
136
+ * `permanentErrors` Response fails if response status is in this list (Default: `[404, 415, 500, 501]`)
127
137
 
128
138
 
129
139
  #### Properties
@@ -141,10 +151,11 @@ parameter must be adjusted together with `progressCallbacksInterval` parameter.
141
151
  * `singleFile` To prevent multiple file uploads set this to true. Also look at config parameter `singleFile`.
142
152
  * `attributes` Pass object of keys and values to set custom attributes on input fields.
143
153
  For example, you can set `accept` attribute to `image/*`. This means that user will be able to select only images.
144
- Full list of attributes: http://www.w3.org/TR/html-markup/input.file.html#input.file-attributes
154
+ Full list of attributes: https://www.w3.org/wiki/HTML/Elements/input/file
145
155
 
146
156
  Note: avoid using `a` and `button` tags as file upload buttons, use span instead.
147
157
  * `.assignDrop(domNodes)` Assign one or more DOM nodes as a drop target.
158
+ * `.unAssignDrop(domNodes)` Unassign one or more DOM nodes as a drop target.
148
159
  * `.on(event, callback)` Listen for event from Flow.js (see below)
149
160
  * `.off([event, [callback]])`:
150
161
  * `.off()` All events are removed.
@@ -165,21 +176,25 @@ parameter must be adjusted together with `progressCallbacksInterval` parameter.
165
176
 
166
177
  #### Events
167
178
 
168
- * `.fileSuccess(file, message)` A specific file was completed. First argument `file` is instance of `FlowFile`, second argument `message` contains server response. Response is always a string.
169
- * `.fileProgress(file)` Uploading progressed for a specific file.
179
+ * `.fileSuccess(file, message, chunk)` A specific file was completed. First argument `file` is instance of `FlowFile`, second argument `message` contains server response. Response is always a string.
180
+ Third argument `chunk` is instance of `FlowChunk`. You can get response status by accessing xhr
181
+ object `chunk.xhr.status`.
182
+ * `.fileProgress(file, chunk)` Uploading progressed for a specific file.
170
183
  * `.fileAdded(file, event)` This event is used for file validation. To reject this file return false.
171
184
  This event is also called before file is added to upload queue,
172
185
  this means that calling `flow.upload()` function will not start current file upload.
173
186
  Optionally, you can use the browser `event` object from when the file was
174
187
  added.
175
188
  * `.filesAdded(array, event)` Same as fileAdded, but used for multiple file validation.
176
- * `.filesSubmitted(array, event)` Can be used to start upload of currently added files.
177
- * `.fileRetry(file)` Something went wrong during upload of a specific file, uploading is being retried.
178
- * `.fileError(file, message)` An error occurred during upload of a specific file.
189
+ * `.filesSubmitted(array, event)` Same as filesAdded, but happens after the file is added to upload queue. Can be used to start upload of currently added files.
190
+ * `.fileRemoved(file)` The specific file was removed from the upload queue. Combined with filesSubmitted, can be used to notify UI to update its state to match the upload queue.
191
+ * `.fileRetry(file, chunk)` Something went wrong during upload of a specific file, uploading is being
192
+ retried.
193
+ * `.fileError(file, message, chunk)` An error occurred during upload of a specific file.
179
194
  * `.uploadStart()` Upload has been started on the Flow object.
180
195
  * `.complete()` Uploading completed.
181
196
  * `.progress()` Uploading progress.
182
- * `.error(message, file)` An error, including fileError, occurred.
197
+ * `.error(message, file, chunk)` An error, including fileError, occurred.
183
198
  * `.catchAll(event, ...)` Listen to all the events listed above with the same callback function.
184
199
 
185
200
  ### FlowFile
@@ -219,33 +234,33 @@ To ensure consistency throughout the source code, keep these rules in mind as yo
219
234
 
220
235
  * All features or bug fixes must be tested by one or more specs.
221
236
 
222
- * We follow the rules contained in [Google's JavaScript Style Guide](http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml) with an exception we wrap all code at 100 characters.
237
+ * We follow the rules contained in [Google's JavaScript Style Guide](https://google.github.io/styleguide/jsguide.html) with an exception we wrap all code at 100 characters.
223
238
 
224
239
 
225
240
  ## Installation Dependencies
226
241
  1. To clone your Github repository, run:
227
-
228
- git clone git@github.com:<github username>/flow.js.git
229
-
242
+ ```console
243
+ git clone git@github.com:<github username>/flow.js.git
244
+ ```
230
245
  2. To go to the Flow.js directory, run:
231
-
232
- cd flow.js
233
-
246
+ ```console
247
+ cd flow.js
248
+ ```
234
249
  3. To add node.js dependencies
235
-
236
- npm install
237
-
250
+ ```console
251
+ npm install
252
+ ```
238
253
  ## Testing
239
254
 
240
255
  Our unit and integration tests are written with Jasmine and executed with Karma. To run all of the
241
256
  tests on Chrome run:
242
-
243
- grunt karma:watch
244
-
257
+ ```console
258
+ grunt karma:watch
259
+ ```
245
260
  Or choose other browser
246
-
247
- grunt karma:watch --browsers=Firefox,Chrome
248
-
261
+ ```console
262
+ grunt karma:watch --browsers=Firefox,Chrome
263
+ ```
249
264
  Browsers should be comma separated and case sensitive.
250
265
 
251
266
  To re-run tests just change any source or test file.
@@ -257,7 +272,7 @@ Automated tests is running after every commit at travis-ci.
257
272
  1. Connect to sauce labs https://saucelabs.com/docs/connect
258
273
  2. `grunt test --sauce-local=true --sauce-username=**** --sauce-access-key=***`
259
274
 
260
- other browsers can be used with `--browsers` flag, available browsers: sl_opera,sl_iphone,sl_safari,sl_ie10,sl_chorme,sl_firefox
275
+ other browsers can be used with `--browsers` flag, available browsers: sl_opera,sl_iphone,sl_safari,sl_ie10,sl_chrome,sl_firefox
261
276
 
262
277
  ## Origin
263
278
  Flow.js was inspired by and evolved from https://github.com/23/resumable.js. Library has been supplemented with tests and features, such as drag and drop for folders, upload speed, time remaining estimation, separate files pause, resume and more.