card 1.92.2 → 1.93.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (965) hide show
  1. checksums.yaml +4 -4
  2. data/README.rdoc +3 -3
  3. data/VERSION +1 -1
  4. data/card.gemspec +1 -1
  5. data/config/initializers/01_core_extensions/array.rb +1 -1
  6. data/config/initializers/01_core_extensions/object.rb +9 -0
  7. data/config/initializers/01_core_extensions/persistent_identifiers.rb +1 -1
  8. data/config/initializers/02_patches/action_dispatch.rb +1 -0
  9. data/config/initializers/02_patches/active_record.rb +42 -0
  10. data/config/initializers/02_patches/active_support.rb +13 -0
  11. data/config/initializers/deck_config.rb +3 -0
  12. data/config/initializers/patches.rb +37 -6
  13. data/config/locales/de.yml +1 -3
  14. data/config/locales/en.yml +1 -3
  15. data/db/migrate_core_cards/20120611203506_rails_inflection_updates.rb +3 -3
  16. data/db/migrate_core_cards/20130823192433_add_style_cards.rb +1 -1
  17. data/db/migrate_core_cards/20130920214038_jsonize_tinymce.rb +1 -1
  18. data/db/migrate_core_cards/20140629222005_add_email_cards.rb +4 -4
  19. data/db/migrate_core_cards/20150202143810_import_bootstrap_layout.rb +1 -1
  20. data/db/migrate_core_cards/20150220134731_following_to_follow_rule.rb +1 -1
  21. data/db/migrate_core_cards/20150317162412_bootstrap_themes.rb +1 -1
  22. data/db/migrate_core_cards/20150429090551_search_card_context.rb +2 -2
  23. data/db/migrate_core_cards/20150501010515_responsive_sidebar.rb +1 -1
  24. data/db/migrate_core_cards/20150610180019_add_recaptcha_key_and_admin_info_cards.rb +2 -2
  25. data/db/migrate_core_cards/20150724123438_update_file_and_image_cards.rb +2 -2
  26. data/db/migrate_core_cards/20160811115836_rename_stats_to_admin.rb +1 -1
  27. data/db/migrate_core_cards/20160914132636_fix_mod_files.rb +3 -3
  28. data/db/migrate_core_cards/20170830210517_correct_signup_success_message.rb +2 -2
  29. data/db/migrate_core_cards/data/cards.yml +2 -2
  30. data/db/migrate_core_cards/data/cards/*header +1 -1
  31. data/lib/card.rb +53 -34
  32. data/lib/card/act_manager.rb +64 -10
  33. data/lib/card/act_manager/stage_director.rb +13 -2
  34. data/lib/card/act_manager/stage_director/phases.rb +6 -4
  35. data/lib/card/auth.rb +3 -1
  36. data/lib/card/cache.rb +8 -2
  37. data/lib/card/cache/persistent.rb +23 -10
  38. data/lib/card/codename.rb +59 -18
  39. data/lib/card/dirty.rb +39 -0
  40. data/lib/card/env/location.rb +1 -1
  41. data/lib/card/env/location_history.rb +1 -1
  42. data/lib/card/env/success.rb +1 -1
  43. data/lib/card/error.rb +3 -0
  44. data/lib/card/format.rb +55 -21
  45. data/lib/card/format/content.rb +1 -1
  46. data/lib/card/format/context_names.rb +2 -2
  47. data/lib/card/format/nest.rb +2 -2
  48. data/lib/card/format/nest/fetch.rb +1 -1
  49. data/lib/card/format/nest/subformat.rb +1 -1
  50. data/lib/card/format/render.rb +4 -18
  51. data/lib/card/migration.rb +1 -1
  52. data/lib/card/migration/import.rb +1 -1
  53. data/lib/card/migration/import/import_data.rb +5 -12
  54. data/lib/card/migration/import/import_data/card_attributes.rb +3 -4
  55. data/lib/card/mod.rb +4 -3
  56. data/lib/card/mod/dirs.rb +21 -10
  57. data/lib/card/mod/loader.rb +1 -1
  58. data/lib/card/model/save_helper.rb +1 -1
  59. data/lib/card/name.rb +8 -6
  60. data/lib/card/name/fields_and_traits.rb +5 -10
  61. data/lib/card/query.rb +1 -1
  62. data/lib/card/reference.rb +1 -1
  63. data/lib/card/set.rb +7 -14
  64. data/lib/card/set/advanced_api.rb +1 -0
  65. data/lib/card/set/event.rb +19 -109
  66. data/lib/card/set/event/delayed_event.rb +104 -0
  67. data/lib/card/set/format.rb +2 -2
  68. data/lib/card/set_pattern.rb +4 -4
  69. data/lib/card/subcards.rb +22 -35
  70. data/lib/card/tasks/card.rake +1 -2
  71. data/lib/card/view.rb +1 -2
  72. data/lib/card/view/cache.rb +1 -1
  73. data/lib/card/view/cache_action.rb +1 -1
  74. data/lib/card/view/options.rb +1 -1
  75. data/lib/card/view/stub.rb +5 -1
  76. data/lib/cardio.rb +50 -22
  77. data/mod/Modfile +1 -0
  78. data/mod/account/set/all/account.rb +2 -2
  79. data/mod/account/set/right/account.rb +4 -2
  80. data/mod/account/set/right/email.rb +1 -1
  81. data/mod/account/set/self/account_links.rb +2 -2
  82. data/mod/account/set/self/signin.rb +3 -3
  83. data/mod/account/spec/set/right/account_spec.rb +2 -2
  84. data/mod/account/spec/set/right/email_spec.rb +1 -1
  85. data/mod/account/spec/set/right/password_spec.rb +1 -1
  86. data/mod/account/spec/set/right/salt_spec.rb +1 -1
  87. data/mod/account/spec/set/type/signup_spec.rb +1 -1
  88. data/mod/basic_formats/format/css_format.rb +1 -2
  89. data/mod/basic_formats/format/csv_format.rb +1 -1
  90. data/mod/basic_formats/format/js_format.rb +4 -0
  91. data/mod/basic_formats/set/all/all_css.rb +3 -3
  92. data/mod/basic_formats/set/all/all_js.rb +1 -1
  93. data/mod/basic_formats/set/all/base.rb +5 -5
  94. data/mod/basic_formats/set/all/json.rb +4 -4
  95. data/mod/basic_formats/set/all/rss.rb +3 -3
  96. data/mod/basic_formats/set/self/head.rb +12 -7
  97. data/mod/bootstrap/db/migrate_cards/20170719163710_update_bootswatch_themes_to_4_beta.rb +115 -0
  98. data/mod/bootstrap/db/migrate_cards/20170726145012_select2.rb +7 -7
  99. data/mod/bootstrap/lib/bootstrap/component/panel.rb +1 -1
  100. data/mod/bootstrap/lib/javascript/script_load_select2.js.coffee +2 -0
  101. data/mod/bootstrap/lib/stylesheets/bootstrap_cards.scss +2 -8
  102. data/mod/bootstrap/lib/stylesheets/style_select2_bootstrap.scss +546 -628
  103. data/mod/bootstrap/set/abstract/bootstrap_code_file.rb +9 -6
  104. data/mod/bootstrap/set/all/bootstrap/accordion.rb +3 -3
  105. data/mod/bootstrap/set/all/bootstrap/helper.rb +58 -15
  106. data/mod/bootstrap/set/all/bootstrap/tabs.rb +2 -2
  107. data/mod/bootstrap/set/all/bootstrap/wrapper.rb +1 -1
  108. data/mod/bootstrap/set/self/bootstrap_js.rb +7 -1
  109. data/mod/bootstrap/set/self/bootswatch_shared.rb +8 -17
  110. data/mod/bootstrap/set/self/script_select2.rb +9 -0
  111. data/mod/bootstrap/set/self/style_select2.rb +1 -1
  112. data/mod/bootstrap/set/self/style_select2_bootstrap.rb +1 -0
  113. data/mod/bootstrap/vendor/bootstrap/.editorconfig +17 -0
  114. data/mod/bootstrap/vendor/bootstrap/.gitattributes +15 -0
  115. data/mod/bootstrap/vendor/bootstrap/.gitignore +41 -0
  116. data/mod/bootstrap/vendor/bootstrap/.hound.yml +12 -0
  117. data/mod/bootstrap/vendor/bootstrap/.travis.yml +45 -0
  118. data/mod/bootstrap/vendor/bootstrap/CHANGELOG.md +5 -0
  119. data/mod/bootstrap/vendor/bootstrap/CNAME +1 -0
  120. data/mod/bootstrap/vendor/bootstrap/CONTRIBUTING.md +270 -0
  121. data/mod/bootstrap/vendor/bootstrap/Gemfile +6 -0
  122. data/mod/bootstrap/vendor/bootstrap/Gemfile.lock +49 -0
  123. data/mod/bootstrap/vendor/bootstrap/Gruntfile.js +511 -0
  124. data/mod/bootstrap/vendor/bootstrap/ISSUE_TEMPLATE.md +22 -0
  125. data/mod/bootstrap/vendor/bootstrap/LICENSE +21 -0
  126. data/mod/bootstrap/vendor/bootstrap/README.md +142 -0
  127. data/mod/bootstrap/vendor/bootstrap/_config.yml +42 -0
  128. data/mod/bootstrap/vendor/bootstrap/bower.json +34 -0
  129. data/mod/bootstrap/vendor/bootstrap/composer.json +37 -0
  130. data/mod/bootstrap/vendor/bootstrap/dist/css/bootstrap-theme.css +587 -0
  131. data/mod/bootstrap/vendor/bootstrap/dist/css/bootstrap-theme.css.map +0 -0
  132. data/mod/bootstrap/vendor/bootstrap/dist/css/bootstrap-theme.min.css +6 -0
  133. data/mod/bootstrap/vendor/bootstrap/dist/css/bootstrap-theme.min.css.map +0 -0
  134. data/mod/bootstrap/vendor/bootstrap/dist/css/bootstrap.css +6757 -0
  135. data/mod/bootstrap/vendor/bootstrap/dist/css/bootstrap.css.map +0 -0
  136. data/mod/bootstrap/vendor/bootstrap/dist/css/bootstrap.min.css +6 -0
  137. data/mod/bootstrap/vendor/bootstrap/dist/css/bootstrap.min.css.map +0 -0
  138. data/mod/bootstrap/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.eot +0 -0
  139. data/mod/bootstrap/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.svg +288 -0
  140. data/mod/bootstrap/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf +0 -0
  141. data/mod/bootstrap/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.woff +0 -0
  142. data/mod/bootstrap/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 +0 -0
  143. data/mod/bootstrap/vendor/bootstrap/dist/js/bootstrap.js +2377 -0
  144. data/mod/bootstrap/vendor/bootstrap/dist/js/bootstrap.min.js +7 -0
  145. data/mod/bootstrap/vendor/bootstrap/dist/js/npm.js +13 -0
  146. data/mod/bootstrap/vendor/bootstrap/docs/LICENSE +319 -0
  147. data/mod/bootstrap/vendor/bootstrap/docs/_data/browser-bugs.yml +433 -0
  148. data/mod/bootstrap/vendor/bootstrap/docs/_data/browser-features.yml +109 -0
  149. data/mod/bootstrap/vendor/bootstrap/docs/_data/core-team.yml +27 -0
  150. data/mod/bootstrap/vendor/bootstrap/docs/_data/glyphicons.yml +266 -0
  151. data/mod/bootstrap/vendor/bootstrap/docs/_data/sass-team.yml +7 -0
  152. data/mod/bootstrap/vendor/bootstrap/docs/_data/showcase.yml +19 -0
  153. data/mod/bootstrap/vendor/bootstrap/docs/_data/translations.yml +64 -0
  154. data/mod/bootstrap/vendor/bootstrap/docs/_includes/ads.html +1 -0
  155. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/alerts.html +89 -0
  156. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/badges.html +45 -0
  157. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/breadcrumbs.html +27 -0
  158. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/button-dropdowns.html +321 -0
  159. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/button-groups.html +268 -0
  160. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/dropdowns.html +156 -0
  161. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/glyphicons.html +91 -0
  162. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/input-groups.html +365 -0
  163. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/jumbotron.html +27 -0
  164. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/labels.html +40 -0
  165. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/list-group.html +188 -0
  166. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/media.html +207 -0
  167. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/navbar.html +461 -0
  168. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/navs.html +189 -0
  169. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/page-header.html +15 -0
  170. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/pagination.html +202 -0
  171. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/panels.html +279 -0
  172. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/progress-bars.html +214 -0
  173. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/responsive-embed.html +23 -0
  174. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/thumbnails.html +94 -0
  175. data/mod/bootstrap/vendor/bootstrap/docs/_includes/components/wells.html +33 -0
  176. data/mod/bootstrap/vendor/bootstrap/docs/_includes/css/buttons.html +189 -0
  177. data/mod/bootstrap/vendor/bootstrap/docs/_includes/css/code.html +52 -0
  178. data/mod/bootstrap/vendor/bootstrap/docs/_includes/css/forms.html +1029 -0
  179. data/mod/bootstrap/vendor/bootstrap/docs/_includes/css/grid.html +560 -0
  180. data/mod/bootstrap/vendor/bootstrap/docs/_includes/css/helpers.html +207 -0
  181. data/mod/bootstrap/vendor/bootstrap/docs/_includes/css/images.html +31 -0
  182. data/mod/bootstrap/vendor/bootstrap/docs/_includes/css/less.html +499 -0
  183. data/mod/bootstrap/vendor/bootstrap/docs/_includes/css/overview.html +52 -0
  184. data/mod/bootstrap/vendor/bootstrap/docs/_includes/css/responsive-utilities.html +258 -0
  185. data/mod/bootstrap/vendor/bootstrap/docs/_includes/css/sass.html +52 -0
  186. data/mod/bootstrap/vendor/bootstrap/docs/_includes/css/tables.html +467 -0
  187. data/mod/bootstrap/vendor/bootstrap/docs/_includes/css/type.html +461 -0
  188. data/mod/bootstrap/vendor/bootstrap/docs/_includes/customizer-variables.html +1892 -0
  189. data/mod/bootstrap/vendor/bootstrap/docs/_includes/footer.html +67 -0
  190. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/accessibility.html +37 -0
  191. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/browser-device-support.html +237 -0
  192. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/community.html +13 -0
  193. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/disabling-responsiveness.html +22 -0
  194. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/download.html +63 -0
  195. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/examples.html +161 -0
  196. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/grunt.html +35 -0
  197. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/license.html +34 -0
  198. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/template.html +37 -0
  199. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/third-party-support.html +51 -0
  200. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/tools.html +6 -0
  201. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/translations.html +12 -0
  202. data/mod/bootstrap/vendor/bootstrap/docs/_includes/getting-started/whats-included.html +55 -0
  203. data/mod/bootstrap/vendor/bootstrap/docs/_includes/header.html +58 -0
  204. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/affix.html +129 -0
  205. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/alerts.html +73 -0
  206. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/buttons.html +139 -0
  207. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/carousel.html +260 -0
  208. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/collapse.html +277 -0
  209. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/dropdowns.html +201 -0
  210. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/modal.html +520 -0
  211. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/overview.html +86 -0
  212. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/popovers.html +309 -0
  213. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/scrollspy.html +151 -0
  214. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/tabs.html +147 -0
  215. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/tooltips.html +276 -0
  216. data/mod/bootstrap/vendor/bootstrap/docs/_includes/js/transitions.html +15 -0
  217. data/mod/bootstrap/vendor/bootstrap/docs/_includes/nav/about.html +9 -0
  218. data/mod/bootstrap/vendor/bootstrap/docs/_includes/nav/components.html +146 -0
  219. data/mod/bootstrap/vendor/bootstrap/docs/_includes/nav/css.html +136 -0
  220. data/mod/bootstrap/vendor/bootstrap/docs/_includes/nav/customize.html +47 -0
  221. data/mod/bootstrap/vendor/bootstrap/docs/_includes/nav/getting-started.html +76 -0
  222. data/mod/bootstrap/vendor/bootstrap/docs/_includes/nav/javascript.html +124 -0
  223. data/mod/bootstrap/vendor/bootstrap/docs/_includes/nav/main.html +37 -0
  224. data/mod/bootstrap/vendor/bootstrap/docs/_includes/nav/migration.html +12 -0
  225. data/mod/bootstrap/vendor/bootstrap/docs/_layouts/default.html +65 -0
  226. data/mod/bootstrap/vendor/bootstrap/docs/_layouts/home.html +19 -0
  227. data/mod/bootstrap/vendor/bootstrap/docs/_plugins/bridge.rb +9 -0
  228. data/mod/bootstrap/vendor/bootstrap/docs/_plugins/bugify.rb +26 -0
  229. data/mod/bootstrap/vendor/bootstrap/docs/_pug/customizer-nav.pug +17 -0
  230. data/mod/bootstrap/vendor/bootstrap/docs/_pug/customizer-variables.pug +25 -0
  231. data/mod/bootstrap/vendor/bootstrap/docs/about.html +127 -0
  232. data/mod/bootstrap/vendor/bootstrap/docs/apple-touch-icon.png +0 -0
  233. data/mod/bootstrap/vendor/bootstrap/docs/assets/brand/bootstrap-outline.svg +20 -0
  234. data/mod/bootstrap/vendor/bootstrap/docs/assets/brand/bootstrap-punchout.svg +18 -0
  235. data/mod/bootstrap/vendor/bootstrap/docs/assets/brand/bootstrap-solid.svg +17 -0
  236. data/mod/bootstrap/vendor/bootstrap/docs/assets/css/docs.min.css +11 -0
  237. data/mod/bootstrap/vendor/bootstrap/docs/assets/css/docs.min.css.map +0 -0
  238. data/mod/bootstrap/vendor/bootstrap/docs/assets/css/ie10-viewport-bug-workaround.css +13 -0
  239. data/mod/bootstrap/vendor/bootstrap/docs/assets/css/src/docs.css +1632 -0
  240. data/mod/bootstrap/vendor/bootstrap/docs/assets/css/src/pygments-manni.css +66 -0
  241. data/mod/bootstrap/vendor/bootstrap/docs/assets/flash/ZeroClipboard.swf +0 -0
  242. data/mod/bootstrap/vendor/bootstrap/docs/assets/img/components.png +0 -0
  243. data/mod/bootstrap/vendor/bootstrap/docs/assets/img/devices.png +0 -0
  244. data/mod/bootstrap/vendor/bootstrap/docs/assets/img/expo-lyft.jpg +0 -0
  245. data/mod/bootstrap/vendor/bootstrap/docs/assets/img/expo-newsweek.jpg +0 -0
  246. data/mod/bootstrap/vendor/bootstrap/docs/assets/img/expo-riot.jpg +0 -0
  247. data/mod/bootstrap/vendor/bootstrap/docs/assets/img/expo-vogue.jpg +0 -0
  248. data/mod/bootstrap/vendor/bootstrap/docs/assets/img/sass-less.png +0 -0
  249. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/customize.min.js +91 -0
  250. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/docs.min.js +26 -0
  251. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/ie-emulation-modes-warning.js +51 -0
  252. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/ie10-viewport-bug-workaround.js +23 -0
  253. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/ie8-responsive-file-warning.js +13 -0
  254. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/raw-files.min.js +8 -0
  255. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/src/application.js +183 -0
  256. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/src/customizer.js +520 -0
  257. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/vendor/Blob.js +211 -0
  258. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/vendor/FileSaver.js +248 -0
  259. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/vendor/ZeroClipboard.min.js +9 -0
  260. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/vendor/anchor.min.js +6 -0
  261. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/vendor/autoprefixer.js +21114 -0
  262. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/vendor/holder.min.js +12 -0
  263. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/vendor/jquery.min.js +5 -0
  264. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/vendor/jszip.min.js +14 -0
  265. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/vendor/less.min.js +16 -0
  266. data/mod/bootstrap/vendor/bootstrap/docs/assets/js/vendor/uglify.min.js +6 -0
  267. data/mod/bootstrap/vendor/bootstrap/docs/browser-bugs.html +75 -0
  268. data/mod/bootstrap/vendor/bootstrap/docs/components.html +29 -0
  269. data/mod/bootstrap/vendor/bootstrap/docs/css.html +20 -0
  270. data/mod/bootstrap/vendor/bootstrap/docs/customize.html +385 -0
  271. data/mod/bootstrap/vendor/bootstrap/docs/dist/css/bootstrap-theme.css +587 -0
  272. data/mod/bootstrap/vendor/bootstrap/docs/dist/css/bootstrap-theme.css.map +0 -0
  273. data/mod/bootstrap/vendor/bootstrap/docs/dist/css/bootstrap-theme.min.css +6 -0
  274. data/mod/bootstrap/vendor/bootstrap/docs/dist/css/bootstrap-theme.min.css.map +0 -0
  275. data/mod/bootstrap/vendor/bootstrap/docs/dist/css/bootstrap.css +6757 -0
  276. data/mod/bootstrap/vendor/bootstrap/docs/dist/css/bootstrap.css.map +0 -0
  277. data/mod/bootstrap/vendor/bootstrap/docs/dist/css/bootstrap.min.css +6 -0
  278. data/mod/bootstrap/vendor/bootstrap/docs/dist/css/bootstrap.min.css.map +0 -0
  279. data/mod/bootstrap/vendor/bootstrap/docs/dist/fonts/glyphicons-halflings-regular.eot +0 -0
  280. data/mod/bootstrap/vendor/bootstrap/docs/dist/fonts/glyphicons-halflings-regular.svg +288 -0
  281. data/mod/bootstrap/vendor/bootstrap/docs/dist/fonts/glyphicons-halflings-regular.ttf +0 -0
  282. data/mod/bootstrap/vendor/bootstrap/docs/dist/fonts/glyphicons-halflings-regular.woff +0 -0
  283. data/mod/bootstrap/vendor/bootstrap/docs/dist/fonts/glyphicons-halflings-regular.woff2 +0 -0
  284. data/mod/bootstrap/vendor/bootstrap/docs/dist/js/bootstrap.js +2377 -0
  285. data/mod/bootstrap/vendor/bootstrap/docs/dist/js/bootstrap.min.js +7 -0
  286. data/mod/bootstrap/vendor/bootstrap/docs/dist/js/npm.js +13 -0
  287. data/mod/bootstrap/vendor/bootstrap/docs/examples/blog/blog.css +166 -0
  288. data/mod/bootstrap/vendor/bootstrap/docs/examples/blog/index.html +180 -0
  289. data/mod/bootstrap/vendor/bootstrap/docs/examples/carousel/carousel.css +134 -0
  290. data/mod/bootstrap/vendor/bootstrap/docs/examples/carousel/index.html +220 -0
  291. data/mod/bootstrap/vendor/bootstrap/docs/examples/cover/cover.css +163 -0
  292. data/mod/bootstrap/vendor/bootstrap/docs/examples/cover/index.html +84 -0
  293. data/mod/bootstrap/vendor/bootstrap/docs/examples/dashboard/dashboard.css +105 -0
  294. data/mod/bootstrap/vendor/bootstrap/docs/examples/dashboard/index.html +252 -0
  295. data/mod/bootstrap/vendor/bootstrap/docs/examples/grid/grid.css +23 -0
  296. data/mod/bootstrap/vendor/bootstrap/docs/examples/grid/index.html +156 -0
  297. data/mod/bootstrap/vendor/bootstrap/docs/examples/jumbotron-narrow/index.html +88 -0
  298. data/mod/bootstrap/vendor/bootstrap/docs/examples/jumbotron-narrow/jumbotron-narrow.css +79 -0
  299. data/mod/bootstrap/vendor/bootstrap/docs/examples/jumbotron/index.html +107 -0
  300. data/mod/bootstrap/vendor/bootstrap/docs/examples/jumbotron/jumbotron.css +5 -0
  301. data/mod/bootstrap/vendor/bootstrap/docs/examples/justified-nav/index.html +92 -0
  302. data/mod/bootstrap/vendor/bootstrap/docs/examples/justified-nav/justified-nav.css +88 -0
  303. data/mod/bootstrap/vendor/bootstrap/docs/examples/navbar-fixed-top/index.html +99 -0
  304. data/mod/bootstrap/vendor/bootstrap/docs/examples/navbar-fixed-top/navbar-fixed-top.css +4 -0
  305. data/mod/bootstrap/vendor/bootstrap/docs/examples/navbar-static-top/index.html +100 -0
  306. data/mod/bootstrap/vendor/bootstrap/docs/examples/navbar-static-top/navbar-static-top.css +7 -0
  307. data/mod/bootstrap/vendor/bootstrap/docs/examples/navbar/index.html +98 -0
  308. data/mod/bootstrap/vendor/bootstrap/docs/examples/navbar/navbar.css +8 -0
  309. data/mod/bootstrap/vendor/bootstrap/docs/examples/non-responsive/index.html +115 -0
  310. data/mod/bootstrap/vendor/bootstrap/docs/examples/non-responsive/non-responsive.css +262 -0
  311. data/mod/bootstrap/vendor/bootstrap/docs/examples/offcanvas/index.html +137 -0
  312. data/mod/bootstrap/vendor/bootstrap/docs/examples/offcanvas/offcanvas.css +59 -0
  313. data/mod/bootstrap/vendor/bootstrap/docs/examples/offcanvas/offcanvas.js +5 -0
  314. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/blog.jpg +0 -0
  315. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/carousel.jpg +0 -0
  316. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/cover.jpg +0 -0
  317. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/dashboard.jpg +0 -0
  318. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/equal-height-columns.jpg +0 -0
  319. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/grid.jpg +0 -0
  320. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/jumbotron-narrow.jpg +0 -0
  321. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/jumbotron.jpg +0 -0
  322. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/justified-nav.jpg +0 -0
  323. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/navbar-fixed.jpg +0 -0
  324. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/navbar-static.jpg +0 -0
  325. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/navbar.jpg +0 -0
  326. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/non-responsive.jpg +0 -0
  327. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/offcanvas.jpg +0 -0
  328. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/sign-in.jpg +0 -0
  329. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/starter-template.jpg +0 -0
  330. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/sticky-footer-navbar.jpg +0 -0
  331. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/sticky-footer.jpg +0 -0
  332. data/mod/bootstrap/vendor/bootstrap/docs/examples/screenshots/theme.jpg +0 -0
  333. data/mod/bootstrap/vendor/bootstrap/docs/examples/signin/index.html +58 -0
  334. data/mod/bootstrap/vendor/bootstrap/docs/examples/signin/signin.css +40 -0
  335. data/mod/bootstrap/vendor/bootstrap/docs/examples/starter-template/index.html +76 -0
  336. data/mod/bootstrap/vendor/bootstrap/docs/examples/starter-template/starter-template.css +7 -0
  337. data/mod/bootstrap/vendor/bootstrap/docs/examples/sticky-footer-navbar/index.html +95 -0
  338. data/mod/bootstrap/vendor/bootstrap/docs/examples/sticky-footer-navbar/sticky-footer-navbar.css +39 -0
  339. data/mod/bootstrap/vendor/bootstrap/docs/examples/sticky-footer/index.html +55 -0
  340. data/mod/bootstrap/vendor/bootstrap/docs/examples/sticky-footer/sticky-footer.css +32 -0
  341. data/mod/bootstrap/vendor/bootstrap/docs/examples/theme/index.html +644 -0
  342. data/mod/bootstrap/vendor/bootstrap/docs/examples/theme/theme.css +18 -0
  343. data/mod/bootstrap/vendor/bootstrap/docs/examples/tooltip-viewport/index.html +62 -0
  344. data/mod/bootstrap/vendor/bootstrap/docs/examples/tooltip-viewport/tooltip-viewport.css +26 -0
  345. data/mod/bootstrap/vendor/bootstrap/docs/examples/tooltip-viewport/tooltip-viewport.js +18 -0
  346. data/mod/bootstrap/vendor/bootstrap/docs/favicon.ico +0 -0
  347. data/mod/bootstrap/vendor/bootstrap/docs/getting-started.html +28 -0
  348. data/mod/bootstrap/vendor/bootstrap/docs/index.html +73 -0
  349. data/mod/bootstrap/vendor/bootstrap/docs/javascript.html +21 -0
  350. data/mod/bootstrap/vendor/bootstrap/docs/migration.html +445 -0
  351. data/mod/bootstrap/vendor/bootstrap/docs/robots.txt +9 -0
  352. data/mod/bootstrap/vendor/bootstrap/fonts/glyphicons-halflings-regular.eot +0 -0
  353. data/mod/bootstrap/vendor/bootstrap/fonts/glyphicons-halflings-regular.svg +288 -0
  354. data/mod/bootstrap/vendor/bootstrap/fonts/glyphicons-halflings-regular.ttf +0 -0
  355. data/mod/bootstrap/vendor/bootstrap/fonts/glyphicons-halflings-regular.woff +0 -0
  356. data/mod/bootstrap/vendor/bootstrap/fonts/glyphicons-halflings-regular.woff2 +0 -0
  357. data/mod/bootstrap/vendor/bootstrap/grunt/.jshintrc +7 -0
  358. data/mod/bootstrap/vendor/bootstrap/grunt/bs-commonjs-generator.js +30 -0
  359. data/mod/bootstrap/vendor/bootstrap/grunt/bs-glyphicons-data-generator.js +42 -0
  360. data/mod/bootstrap/vendor/bootstrap/grunt/bs-lessdoc-parser.js +237 -0
  361. data/mod/bootstrap/vendor/bootstrap/grunt/bs-raw-files-generator.js +44 -0
  362. data/mod/bootstrap/vendor/bootstrap/grunt/change-version.js +109 -0
  363. data/mod/bootstrap/vendor/bootstrap/grunt/configBridge.json +46 -0
  364. data/mod/bootstrap/vendor/bootstrap/grunt/npm-shrinkwrap.json +2679 -0
  365. data/mod/bootstrap/vendor/bootstrap/grunt/sauce_browsers.yml +82 -0
  366. data/mod/bootstrap/vendor/bootstrap/js/.jscsrc +42 -0
  367. data/mod/bootstrap/vendor/bootstrap/js/.jshintrc +15 -0
  368. data/mod/bootstrap/vendor/bootstrap/js/affix.js +162 -0
  369. data/mod/bootstrap/vendor/bootstrap/js/alert.js +94 -0
  370. data/mod/bootstrap/vendor/bootstrap/js/button.js +125 -0
  371. data/mod/bootstrap/vendor/bootstrap/js/carousel.js +239 -0
  372. data/mod/bootstrap/vendor/bootstrap/js/collapse.js +212 -0
  373. data/mod/bootstrap/vendor/bootstrap/js/dropdown.js +165 -0
  374. data/mod/bootstrap/vendor/bootstrap/js/modal.js +339 -0
  375. data/mod/bootstrap/vendor/bootstrap/js/popover.js +108 -0
  376. data/mod/bootstrap/vendor/bootstrap/js/scrollspy.js +172 -0
  377. data/mod/bootstrap/vendor/bootstrap/js/tab.js +155 -0
  378. data/mod/bootstrap/vendor/bootstrap/js/tests/README.md +62 -0
  379. data/mod/bootstrap/vendor/bootstrap/js/tests/index.html +169 -0
  380. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/.jshintrc +6 -0
  381. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/affix.js +107 -0
  382. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/alert.js +78 -0
  383. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/button.js +168 -0
  384. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/carousel.js +718 -0
  385. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/collapse.js +443 -0
  386. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/dropdown.js +423 -0
  387. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/modal.js +377 -0
  388. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/phantom.js +72 -0
  389. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/popover.js +290 -0
  390. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/scrollspy.js +278 -0
  391. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/tab.js +216 -0
  392. data/mod/bootstrap/vendor/bootstrap/js/tests/unit/tooltip.js +1325 -0
  393. data/mod/bootstrap/vendor/bootstrap/js/tests/vendor/jquery.min.js +5 -0
  394. data/mod/bootstrap/vendor/bootstrap/js/tests/vendor/qunit.css +305 -0
  395. data/mod/bootstrap/vendor/bootstrap/js/tests/vendor/qunit.js +4204 -0
  396. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/affix-with-sticky-footer.html +317 -0
  397. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/affix.html +306 -0
  398. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/alert.html +48 -0
  399. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/button.html +79 -0
  400. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/carousel.html +58 -0
  401. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/collapse.html +78 -0
  402. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/dropdown.html +108 -0
  403. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/modal.html +205 -0
  404. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/popover.html +54 -0
  405. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/scrollspy.html +109 -0
  406. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/tab.html +172 -0
  407. data/mod/bootstrap/vendor/bootstrap/js/tests/visual/tooltip.html +50 -0
  408. data/mod/bootstrap/vendor/bootstrap/js/tooltip.js +520 -0
  409. data/mod/bootstrap/vendor/bootstrap/js/transition.js +59 -0
  410. data/mod/bootstrap/vendor/bootstrap/less/.csscomb.json +304 -0
  411. data/mod/bootstrap/vendor/bootstrap/less/.csslintrc +19 -0
  412. data/mod/bootstrap/vendor/bootstrap/less/alerts.less +73 -0
  413. data/mod/bootstrap/vendor/bootstrap/less/badges.less +66 -0
  414. data/mod/bootstrap/vendor/bootstrap/less/bootstrap.less +56 -0
  415. data/mod/bootstrap/vendor/bootstrap/less/breadcrumbs.less +26 -0
  416. data/mod/bootstrap/{lib/stylesheets/bootstrap/scss/_button-group.scss → vendor/bootstrap/less/button-groups.less} +100 -58
  417. data/mod/bootstrap/vendor/bootstrap/less/buttons.less +166 -0
  418. data/mod/bootstrap/vendor/bootstrap/less/carousel.less +270 -0
  419. data/mod/bootstrap/vendor/bootstrap/less/close.less +34 -0
  420. data/mod/bootstrap/vendor/bootstrap/less/code.less +69 -0
  421. data/mod/bootstrap/vendor/bootstrap/less/component-animations.less +33 -0
  422. data/mod/bootstrap/vendor/bootstrap/less/dropdowns.less +216 -0
  423. data/mod/bootstrap/vendor/bootstrap/less/forms.less +613 -0
  424. data/mod/bootstrap/vendor/bootstrap/less/glyphicons.less +305 -0
  425. data/mod/bootstrap/vendor/bootstrap/less/grid.less +84 -0
  426. data/mod/bootstrap/vendor/bootstrap/less/input-groups.less +171 -0
  427. data/mod/bootstrap/vendor/bootstrap/less/jumbotron.less +54 -0
  428. data/mod/bootstrap/vendor/bootstrap/less/labels.less +64 -0
  429. data/mod/bootstrap/vendor/bootstrap/less/list-group.less +130 -0
  430. data/mod/bootstrap/vendor/bootstrap/less/media.less +66 -0
  431. data/mod/bootstrap/vendor/bootstrap/less/mixins.less +40 -0
  432. data/mod/bootstrap/vendor/bootstrap/less/mixins/alerts.less +14 -0
  433. data/mod/bootstrap/vendor/bootstrap/less/mixins/background-variant.less +9 -0
  434. data/mod/bootstrap/vendor/bootstrap/less/mixins/border-radius.less +18 -0
  435. data/mod/bootstrap/vendor/bootstrap/less/mixins/buttons.less +65 -0
  436. data/mod/bootstrap/vendor/bootstrap/less/mixins/center-block.less +7 -0
  437. data/mod/bootstrap/vendor/bootstrap/less/mixins/clearfix.less +22 -0
  438. data/mod/bootstrap/vendor/bootstrap/less/mixins/forms.less +85 -0
  439. data/mod/bootstrap/vendor/bootstrap/less/mixins/gradients.less +59 -0
  440. data/mod/bootstrap/vendor/bootstrap/less/mixins/grid-framework.less +91 -0
  441. data/mod/bootstrap/vendor/bootstrap/less/mixins/grid.less +122 -0
  442. data/mod/bootstrap/vendor/bootstrap/less/mixins/hide-text.less +21 -0
  443. data/mod/bootstrap/vendor/bootstrap/less/mixins/image.less +33 -0
  444. data/mod/bootstrap/vendor/bootstrap/less/mixins/labels.less +12 -0
  445. data/mod/bootstrap/vendor/bootstrap/less/mixins/list-group.less +30 -0
  446. data/mod/bootstrap/{lib/stylesheets/bootstrap/scss/mixins/_nav-divider.scss → vendor/bootstrap/less/mixins/nav-divider.less} +3 -3
  447. data/mod/bootstrap/{lib/stylesheets/bootstrap/scss/mixins/_navbar-align.scss → vendor/bootstrap/less/mixins/nav-vertical-align.less} +4 -4
  448. data/mod/bootstrap/vendor/bootstrap/less/mixins/opacity.less +8 -0
  449. data/mod/bootstrap/vendor/bootstrap/less/mixins/pagination.less +24 -0
  450. data/mod/bootstrap/vendor/bootstrap/less/mixins/panels.less +24 -0
  451. data/mod/bootstrap/vendor/bootstrap/less/mixins/progress-bar.less +10 -0
  452. data/mod/bootstrap/vendor/bootstrap/less/mixins/reset-filter.less +8 -0
  453. data/mod/bootstrap/{lib/stylesheets/bootstrap/scss/mixins/_reset-text.scss → vendor/bootstrap/less/mixins/reset-text.less} +6 -5
  454. data/mod/bootstrap/{lib/stylesheets/bootstrap/scss/mixins/_resize.scss → vendor/bootstrap/less/mixins/resize.less} +2 -2
  455. data/mod/bootstrap/vendor/bootstrap/less/mixins/responsive-visibility.less +15 -0
  456. data/mod/bootstrap/vendor/bootstrap/less/mixins/size.less +10 -0
  457. data/mod/bootstrap/vendor/bootstrap/less/mixins/tab-focus.less +9 -0
  458. data/mod/bootstrap/vendor/bootstrap/less/mixins/table-row.less +28 -0
  459. data/mod/bootstrap/vendor/bootstrap/less/mixins/text-emphasis.less +9 -0
  460. data/mod/bootstrap/{lib/stylesheets/bootstrap/scss/mixins/_text-truncate.scss → vendor/bootstrap/less/mixins/text-overflow.less} +3 -3
  461. data/mod/bootstrap/vendor/bootstrap/less/mixins/vendor-prefixes.less +227 -0
  462. data/mod/bootstrap/vendor/bootstrap/less/modals.less +150 -0
  463. data/mod/bootstrap/vendor/bootstrap/less/navbar.less +660 -0
  464. data/mod/bootstrap/vendor/bootstrap/less/navs.less +242 -0
  465. data/mod/bootstrap/vendor/bootstrap/less/normalize.less +424 -0
  466. data/mod/bootstrap/vendor/bootstrap/less/pager.less +54 -0
  467. data/mod/bootstrap/vendor/bootstrap/less/pagination.less +89 -0
  468. data/mod/bootstrap/vendor/bootstrap/less/panels.less +271 -0
  469. data/mod/bootstrap/vendor/bootstrap/less/popovers.less +131 -0
  470. data/mod/bootstrap/vendor/bootstrap/less/print.less +101 -0
  471. data/mod/bootstrap/vendor/bootstrap/less/progress-bars.less +87 -0
  472. data/mod/bootstrap/{lib/stylesheets/bootstrap/scss/_responsive-embed.scss → vendor/bootstrap/less/responsive-embed.less} +9 -26
  473. data/mod/bootstrap/vendor/bootstrap/less/responsive-utilities.less +194 -0
  474. data/mod/bootstrap/vendor/bootstrap/less/scaffolding.less +161 -0
  475. data/mod/bootstrap/vendor/bootstrap/less/tables.less +234 -0
  476. data/mod/bootstrap/vendor/bootstrap/less/theme.less +291 -0
  477. data/mod/bootstrap/vendor/bootstrap/less/thumbnails.less +36 -0
  478. data/mod/bootstrap/vendor/bootstrap/less/tooltip.less +101 -0
  479. data/mod/bootstrap/vendor/bootstrap/less/type.less +302 -0
  480. data/mod/bootstrap/vendor/bootstrap/less/utilities.less +55 -0
  481. data/mod/bootstrap/vendor/bootstrap/less/variables.less +869 -0
  482. data/mod/bootstrap/vendor/bootstrap/less/wells.less +29 -0
  483. data/mod/bootstrap/vendor/bootstrap/nuget/MyGet.ps1 +8 -0
  484. data/mod/bootstrap/vendor/bootstrap/nuget/bootstrap.less.nuspec +28 -0
  485. data/mod/bootstrap/vendor/bootstrap/nuget/bootstrap.nuspec +28 -0
  486. data/mod/bootstrap/vendor/bootstrap/package.js +32 -0
  487. data/mod/bootstrap/vendor/bootstrap/package.json +89 -0
  488. data/mod/bootstrap/vendor/bootswatch/README.md +63 -0
  489. data/mod/bootstrap/vendor/bootswatch/swatchmaker/README.md +1 -0
  490. data/mod/bootstrap/vendor/select2/.editorconfig +6 -0
  491. data/mod/bootstrap/vendor/select2/.github/CONTRIBUTING.md +203 -0
  492. data/mod/bootstrap/vendor/select2/.github/ISSUE_TEMPLATE.md +20 -0
  493. data/mod/bootstrap/vendor/select2/.github/PULL_REQUEST_TEMPLATE.md +13 -0
  494. data/mod/bootstrap/vendor/select2/.gitignore +3 -0
  495. data/mod/bootstrap/vendor/select2/.jshintignore +4 -0
  496. data/mod/bootstrap/vendor/select2/.jshintrc +25 -0
  497. data/mod/bootstrap/vendor/select2/.travis.yml +22 -0
  498. data/mod/bootstrap/vendor/select2/CHANGELOG.md +272 -0
  499. data/mod/bootstrap/vendor/select2/Gruntfile.js +380 -0
  500. data/mod/bootstrap/vendor/select2/LICENSE.md +21 -0
  501. data/mod/bootstrap/vendor/select2/README.md +123 -0
  502. data/mod/bootstrap/vendor/select2/bower.json +13 -0
  503. data/mod/bootstrap/vendor/select2/component.json +19 -0
  504. data/mod/bootstrap/vendor/select2/composer.json +25 -0
  505. data/mod/bootstrap/{lib/stylesheets/style_select2.css → vendor/select2/dist/css/select2.css} +0 -0
  506. data/mod/bootstrap/{lib/stylesheets → vendor/select2/dist/css}/select2.min.css +0 -0
  507. data/mod/bootstrap/vendor/select2/dist/js/i18n/af.js +3 -0
  508. data/mod/bootstrap/vendor/select2/dist/js/i18n/ar.js +3 -0
  509. data/mod/bootstrap/vendor/select2/dist/js/i18n/az.js +3 -0
  510. data/mod/bootstrap/vendor/select2/dist/js/i18n/bg.js +3 -0
  511. data/mod/bootstrap/vendor/select2/dist/js/i18n/bs.js +3 -0
  512. data/mod/bootstrap/vendor/select2/dist/js/i18n/ca.js +3 -0
  513. data/mod/bootstrap/vendor/select2/dist/js/i18n/cs.js +3 -0
  514. data/mod/bootstrap/vendor/select2/dist/js/i18n/da.js +3 -0
  515. data/mod/bootstrap/vendor/select2/dist/js/i18n/de.js +3 -0
  516. data/mod/bootstrap/vendor/select2/dist/js/i18n/dsb.js +3 -0
  517. data/mod/bootstrap/vendor/select2/dist/js/i18n/el.js +3 -0
  518. data/mod/bootstrap/vendor/select2/dist/js/i18n/en.js +3 -0
  519. data/mod/bootstrap/vendor/select2/dist/js/i18n/es.js +3 -0
  520. data/mod/bootstrap/vendor/select2/dist/js/i18n/et.js +3 -0
  521. data/mod/bootstrap/vendor/select2/dist/js/i18n/eu.js +3 -0
  522. data/mod/bootstrap/vendor/select2/dist/js/i18n/fa.js +3 -0
  523. data/mod/bootstrap/vendor/select2/dist/js/i18n/fi.js +3 -0
  524. data/mod/bootstrap/vendor/select2/dist/js/i18n/fr.js +3 -0
  525. data/mod/bootstrap/vendor/select2/dist/js/i18n/gl.js +3 -0
  526. data/mod/bootstrap/vendor/select2/dist/js/i18n/he.js +3 -0
  527. data/mod/bootstrap/vendor/select2/dist/js/i18n/hi.js +3 -0
  528. data/mod/bootstrap/vendor/select2/dist/js/i18n/hr.js +3 -0
  529. data/mod/bootstrap/vendor/select2/dist/js/i18n/hsb.js +3 -0
  530. data/mod/bootstrap/vendor/select2/dist/js/i18n/hu.js +3 -0
  531. data/mod/bootstrap/vendor/select2/dist/js/i18n/hy.js +3 -0
  532. data/mod/bootstrap/vendor/select2/dist/js/i18n/id.js +3 -0
  533. data/mod/bootstrap/vendor/select2/dist/js/i18n/is.js +3 -0
  534. data/mod/bootstrap/vendor/select2/dist/js/i18n/it.js +3 -0
  535. data/mod/bootstrap/vendor/select2/dist/js/i18n/ja.js +3 -0
  536. data/mod/bootstrap/vendor/select2/dist/js/i18n/km.js +3 -0
  537. data/mod/bootstrap/vendor/select2/dist/js/i18n/ko.js +3 -0
  538. data/mod/bootstrap/vendor/select2/dist/js/i18n/lt.js +3 -0
  539. data/mod/bootstrap/vendor/select2/dist/js/i18n/lv.js +3 -0
  540. data/mod/bootstrap/vendor/select2/dist/js/i18n/mk.js +3 -0
  541. data/mod/bootstrap/vendor/select2/dist/js/i18n/ms.js +3 -0
  542. data/mod/bootstrap/vendor/select2/dist/js/i18n/nb.js +3 -0
  543. data/mod/bootstrap/vendor/select2/dist/js/i18n/nl.js +3 -0
  544. data/mod/bootstrap/vendor/select2/dist/js/i18n/pl.js +3 -0
  545. data/mod/bootstrap/vendor/select2/dist/js/i18n/ps.js +3 -0
  546. data/mod/bootstrap/vendor/select2/dist/js/i18n/pt-BR.js +3 -0
  547. data/mod/bootstrap/vendor/select2/dist/js/i18n/pt.js +3 -0
  548. data/mod/bootstrap/vendor/select2/dist/js/i18n/ro.js +3 -0
  549. data/mod/bootstrap/vendor/select2/dist/js/i18n/ru.js +3 -0
  550. data/mod/bootstrap/vendor/select2/dist/js/i18n/sk.js +3 -0
  551. data/mod/bootstrap/vendor/select2/dist/js/i18n/sl.js +3 -0
  552. data/mod/bootstrap/vendor/select2/dist/js/i18n/sr-Cyrl.js +3 -0
  553. data/mod/bootstrap/vendor/select2/dist/js/i18n/sr.js +3 -0
  554. data/mod/bootstrap/vendor/select2/dist/js/i18n/sv.js +3 -0
  555. data/mod/bootstrap/vendor/select2/dist/js/i18n/th.js +3 -0
  556. data/mod/bootstrap/vendor/select2/dist/js/i18n/tr.js +3 -0
  557. data/mod/bootstrap/vendor/select2/dist/js/i18n/uk.js +3 -0
  558. data/mod/bootstrap/vendor/select2/dist/js/i18n/vi.js +3 -0
  559. data/mod/bootstrap/vendor/select2/dist/js/i18n/zh-CN.js +3 -0
  560. data/mod/bootstrap/vendor/select2/dist/js/i18n/zh-TW.js +3 -0
  561. data/mod/bootstrap/vendor/select2/dist/js/select2.full.js +6457 -0
  562. data/mod/bootstrap/vendor/select2/dist/js/select2.full.min.js +1 -0
  563. data/mod/bootstrap/{lib/javascript/script_select2.js → vendor/select2/dist/js/select2.js} +90 -69
  564. data/mod/bootstrap/vendor/select2/dist/js/select2.min.js +1 -0
  565. data/mod/bootstrap/vendor/select2/docs/README.md +1 -0
  566. data/mod/bootstrap/vendor/select2/docs/announcements-4.0.html +12 -0
  567. data/mod/bootstrap/vendor/select2/docs/community.html +12 -0
  568. data/mod/bootstrap/vendor/select2/docs/examples.html +12 -0
  569. data/mod/bootstrap/vendor/select2/docs/index.html +12 -0
  570. data/mod/bootstrap/vendor/select2/docs/options-old.html +12 -0
  571. data/mod/bootstrap/vendor/select2/docs/options.html +12 -0
  572. data/mod/bootstrap/vendor/select2/package.json +73 -0
  573. data/mod/bootstrap/vendor/select2/select2.jquery.json +32 -0
  574. data/mod/bootstrap/vendor/select2/src/js/banner.end.js +6 -0
  575. data/mod/bootstrap/vendor/select2/src/js/banner.start.js +6 -0
  576. data/mod/bootstrap/vendor/select2/src/js/jquery.mousewheel.shim.js +6 -0
  577. data/mod/bootstrap/vendor/select2/src/js/jquery.select2.js +57 -0
  578. data/mod/bootstrap/vendor/select2/src/js/jquery.shim.js +14 -0
  579. data/mod/bootstrap/vendor/select2/src/js/select2/compat/containerCss.js +56 -0
  580. data/mod/bootstrap/vendor/select2/src/js/select2/compat/dropdownCss.js +56 -0
  581. data/mod/bootstrap/vendor/select2/src/js/select2/compat/initSelection.js +42 -0
  582. data/mod/bootstrap/vendor/select2/src/js/select2/compat/inputData.js +127 -0
  583. data/mod/bootstrap/vendor/select2/src/js/select2/compat/matcher.js +42 -0
  584. data/mod/bootstrap/vendor/select2/src/js/select2/compat/query.js +26 -0
  585. data/mod/bootstrap/vendor/select2/src/js/select2/compat/utils.js +43 -0
  586. data/mod/bootstrap/vendor/select2/src/js/select2/core.js +612 -0
  587. data/mod/bootstrap/vendor/select2/src/js/select2/data/ajax.js +109 -0
  588. data/mod/bootstrap/vendor/select2/src/js/select2/data/array.js +79 -0
  589. data/mod/bootstrap/vendor/select2/src/js/select2/data/base.js +40 -0
  590. data/mod/bootstrap/vendor/select2/src/js/select2/data/maximumInputLength.js +31 -0
  591. data/mod/bootstrap/vendor/select2/src/js/select2/data/maximumSelectionLength.js +31 -0
  592. data/mod/bootstrap/vendor/select2/src/js/select2/data/minimumInputLength.js +30 -0
  593. data/mod/bootstrap/vendor/select2/src/js/select2/data/select.js +285 -0
  594. data/mod/bootstrap/vendor/select2/src/js/select2/data/tags.js +128 -0
  595. data/mod/bootstrap/vendor/select2/src/js/select2/data/tokenizer.js +116 -0
  596. data/mod/bootstrap/vendor/select2/src/js/select2/defaults.js +396 -0
  597. data/mod/bootstrap/vendor/select2/src/js/select2/diacritics.js +847 -0
  598. data/mod/bootstrap/vendor/select2/src/js/select2/dropdown.js +42 -0
  599. data/mod/bootstrap/vendor/select2/src/js/select2/dropdown/attachBody.js +222 -0
  600. data/mod/bootstrap/vendor/select2/src/js/select2/dropdown/attachContainer.js +18 -0
  601. data/mod/bootstrap/vendor/select2/src/js/select2/dropdown/closeOnSelect.js +35 -0
  602. data/mod/bootstrap/vendor/select2/src/js/select2/dropdown/hidePlaceholder.js +42 -0
  603. data/mod/bootstrap/vendor/select2/src/js/select2/dropdown/infiniteScroll.js +89 -0
  604. data/mod/bootstrap/vendor/select2/src/js/select2/dropdown/minimumResultsForSearch.js +39 -0
  605. data/mod/bootstrap/vendor/select2/src/js/select2/dropdown/search.js +101 -0
  606. data/mod/bootstrap/vendor/select2/src/js/select2/dropdown/selectOnClose.js +50 -0
  607. data/mod/bootstrap/vendor/select2/src/js/select2/dropdown/stopPropagation.js +38 -0
  608. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/af.js +44 -0
  609. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/ar.js +30 -0
  610. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/az.js +27 -0
  611. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/bg.js +47 -0
  612. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/bs.js +55 -0
  613. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/ca.js +52 -0
  614. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/cs.js +61 -0
  615. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/da.js +36 -0
  616. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/de.js +40 -0
  617. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/dsb.js +48 -0
  618. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/el.js +52 -0
  619. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/en.js +44 -0
  620. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/es.js +52 -0
  621. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/et.js +53 -0
  622. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/eu.js +51 -0
  623. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/fa.js +38 -0
  624. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/fi.js +30 -0
  625. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/fr.js +33 -0
  626. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/gl.js +39 -0
  627. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/he.js +56 -0
  628. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/hi.js +39 -0
  629. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/hr.js +44 -0
  630. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/hsb.js +48 -0
  631. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/hu.js +30 -0
  632. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/hy.js +38 -0
  633. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/id.js +30 -0
  634. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/is.js +41 -0
  635. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/it.js +48 -0
  636. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/ja.js +36 -0
  637. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/km.js +36 -0
  638. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/ko.js +36 -0
  639. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/lt.js +52 -0
  640. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/lv.js +51 -0
  641. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/mk.js +47 -0
  642. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/ms.js +30 -0
  643. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/nb.js +32 -0
  644. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/nl.js +43 -0
  645. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/pl.js +45 -0
  646. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/ps.js +45 -0
  647. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/pt-BR.js +46 -0
  648. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/pt.js +40 -0
  649. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/ro.js +46 -0
  650. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/ru.js +58 -0
  651. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/sk.js +59 -0
  652. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/sl.js +54 -0
  653. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/sr-Cyrl.js +55 -0
  654. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/sr.js +55 -0
  655. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/sv.js +37 -0
  656. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/th.js +36 -0
  657. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/tr.js +36 -0
  658. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/uk.js +43 -0
  659. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/vi.js +37 -0
  660. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/zh-CN.js +36 -0
  661. data/mod/bootstrap/vendor/select2/src/js/select2/i18n/zh-TW.js +33 -0
  662. data/mod/bootstrap/vendor/select2/src/js/select2/keys.js +25 -0
  663. data/mod/bootstrap/vendor/select2/src/js/select2/options.js +122 -0
  664. data/mod/bootstrap/vendor/select2/src/js/select2/results.js +523 -0
  665. data/mod/bootstrap/vendor/select2/src/js/select2/selection/allowClear.js +97 -0
  666. data/mod/bootstrap/vendor/select2/src/js/select2/selection/base.js +158 -0
  667. data/mod/bootstrap/vendor/select2/src/js/select2/selection/clickMask.js +29 -0
  668. data/mod/bootstrap/vendor/select2/src/js/select2/selection/eventRelay.js +45 -0
  669. data/mod/bootstrap/vendor/select2/src/js/select2/selection/multiple.js +109 -0
  670. data/mod/bootstrap/vendor/select2/src/js/select2/selection/placeholder.js +49 -0
  671. data/mod/bootstrap/vendor/select2/src/js/select2/selection/search.js +222 -0
  672. data/mod/bootstrap/vendor/select2/src/js/select2/selection/single.js +99 -0
  673. data/mod/bootstrap/vendor/select2/src/js/select2/selection/stopPropagation.js +38 -0
  674. data/mod/bootstrap/vendor/select2/src/js/select2/translation.js +36 -0
  675. data/mod/bootstrap/vendor/select2/src/js/select2/utils.js +276 -0
  676. data/mod/bootstrap/vendor/select2/src/js/wrapper.end.js +12 -0
  677. data/mod/bootstrap/vendor/select2/src/js/wrapper.start.js +38 -0
  678. data/mod/bootstrap/vendor/select2/src/scss/_dropdown.scss +73 -0
  679. data/mod/bootstrap/vendor/select2/src/scss/_multiple.scss +35 -0
  680. data/mod/bootstrap/vendor/select2/src/scss/_single.scss +34 -0
  681. data/mod/bootstrap/vendor/select2/src/scss/core.scss +48 -0
  682. data/mod/bootstrap/vendor/select2/src/scss/mixins/_gradients.scss +13 -0
  683. data/mod/bootstrap/vendor/select2/src/scss/theme/classic/_defaults.scss +34 -0
  684. data/mod/bootstrap/vendor/select2/src/scss/theme/classic/_multiple.scss +93 -0
  685. data/mod/bootstrap/vendor/select2/src/scss/theme/classic/_single.scss +124 -0
  686. data/mod/bootstrap/vendor/select2/src/scss/theme/classic/layout.scss +64 -0
  687. data/mod/bootstrap/vendor/select2/src/scss/theme/default/_multiple.scss +98 -0
  688. data/mod/bootstrap/vendor/select2/src/scss/theme/default/_single.scss +83 -0
  689. data/mod/bootstrap/vendor/select2/src/scss/theme/default/layout.scss +97 -0
  690. data/mod/bootstrap/vendor/select2/tests/a11y/search-tests.js +51 -0
  691. data/mod/bootstrap/vendor/select2/tests/a11y/selection-tests.js +154 -0
  692. data/mod/bootstrap/vendor/select2/tests/data/array-tests.js +318 -0
  693. data/mod/bootstrap/vendor/select2/tests/data/base-tests.js +29 -0
  694. data/mod/bootstrap/vendor/select2/tests/data/inputData-tests.js +158 -0
  695. data/mod/bootstrap/vendor/select2/tests/data/maximumInputLength-tests.js +138 -0
  696. data/mod/bootstrap/vendor/select2/tests/data/maximumSelectionLength-tests.js +202 -0
  697. data/mod/bootstrap/vendor/select2/tests/data/minimumInputLength-tests.js +138 -0
  698. data/mod/bootstrap/vendor/select2/tests/data/select-tests.js +489 -0
  699. data/mod/bootstrap/vendor/select2/tests/data/tags-tests.js +276 -0
  700. data/mod/bootstrap/vendor/select2/tests/data/tokenizer-tests.js +219 -0
  701. data/mod/bootstrap/vendor/select2/tests/dropdown/dropdownCss-tests.js +104 -0
  702. data/mod/bootstrap/vendor/select2/tests/dropdown/positioning-tests.js +177 -0
  703. data/mod/bootstrap/vendor/select2/tests/dropdown/selectOnClose-tests.js +137 -0
  704. data/mod/bootstrap/vendor/select2/tests/dropdown/stopPropagation-tests.js +33 -0
  705. data/mod/bootstrap/vendor/select2/tests/helpers.js +46 -0
  706. data/mod/bootstrap/vendor/select2/tests/integration.html +21 -0
  707. data/mod/bootstrap/vendor/select2/tests/integration/dom-changes.js +257 -0
  708. data/mod/bootstrap/vendor/select2/tests/integration/jquery-calls.js +30 -0
  709. data/mod/bootstrap/vendor/select2/tests/integration/select2-methods.js +139 -0
  710. data/mod/bootstrap/vendor/select2/tests/options/ajax-tests.js +32 -0
  711. data/mod/bootstrap/vendor/select2/tests/options/data-tests.js +44 -0
  712. data/mod/bootstrap/vendor/select2/tests/options/deprecated-tests.js +250 -0
  713. data/mod/bootstrap/vendor/select2/tests/options/translation-tests.js +28 -0
  714. data/mod/bootstrap/vendor/select2/tests/options/width-tests.js +66 -0
  715. data/mod/bootstrap/vendor/select2/tests/results/focusing-tests.js +138 -0
  716. data/mod/bootstrap/vendor/select2/tests/selection/allowClear-tests.js +218 -0
  717. data/mod/bootstrap/vendor/select2/tests/selection/containerCss-tests.js +104 -0
  718. data/mod/bootstrap/vendor/select2/tests/selection/multiple-tests.js +149 -0
  719. data/mod/bootstrap/vendor/select2/tests/selection/placeholder-tests.js +74 -0
  720. data/mod/bootstrap/vendor/select2/tests/selection/search-tests.js +191 -0
  721. data/mod/bootstrap/vendor/select2/tests/selection/single-tests.js +117 -0
  722. data/mod/bootstrap/vendor/select2/tests/selection/stopPropagation-tests.js +33 -0
  723. data/mod/bootstrap/vendor/select2/tests/unit.html +95 -0
  724. data/mod/bootstrap/vendor/select2/tests/utils/decorator-tests.js +189 -0
  725. data/mod/bootstrap/vendor/select2/tests/utils/escapeMarkup-tests.js +36 -0
  726. data/mod/bootstrap/vendor/select2/tests/vendor/jquery-1.7.2.js +9404 -0
  727. data/mod/bootstrap/vendor/select2/tests/vendor/qunit-1.23.1.css +305 -0
  728. data/mod/bootstrap/vendor/select2/tests/vendor/qunit-1.23.1.js +4334 -0
  729. data/mod/bootstrap/vendor/select2/vendor/jquery-2.1.0.js +9111 -0
  730. data/mod/carrierwave/lib/carrier_wave/cardmount.rb +6 -1
  731. data/mod/carrierwave/lib/carrier_wave/file_card_uploader.rb +4 -0
  732. data/mod/carrierwave/set/abstract/attachment.rb +13 -6
  733. data/mod/carrierwave/set/abstract/attachment/storage_type.rb +15 -12
  734. data/mod/carrierwave/set/abstract/attachment/upload_cache.rb +2 -3
  735. data/mod/carrierwave/set/type/file.rb +17 -17
  736. data/mod/carrierwave/set/type/image.rb +40 -37
  737. data/mod/carrierwave/spec/set/type/file_spec.rb +15 -15
  738. data/mod/carrierwave/spec/set/type/image_spec.rb +3 -3
  739. data/mod/core/chunk/reference.rb +3 -3
  740. data/mod/core/chunk/view_stub.rb +12 -4
  741. data/mod/core/format/html_format.rb +1 -1
  742. data/mod/core/format/text_format.rb +5 -0
  743. data/mod/core/set/abstract/code_file.rb +8 -3
  744. data/mod/core/set/all/actify.rb +8 -50
  745. data/mod/core/set/all/assign_attributes.rb +1 -1
  746. data/mod/core/set/all/cache.rb +1 -1
  747. data/mod/core/set/all/collection.rb +7 -7
  748. data/mod/core/set/all/content.rb +12 -6
  749. data/mod/core/set/all/fetch.rb +23 -15
  750. data/mod/core/set/all/fetch_helper.rb +11 -9
  751. data/mod/core/set/all/haml.rb +4 -0
  752. data/mod/core/set/all/initialize.rb +2 -2
  753. data/mod/core/set/all/mark.rb +17 -35
  754. data/mod/core/set/all/name.rb +25 -25
  755. data/mod/core/set/all/name_validations.rb +6 -6
  756. data/mod/core/set/all/permissions.rb +1 -1
  757. data/mod/core/set/all/phases.rb +3 -3
  758. data/mod/core/set/all/references.rb +4 -4
  759. data/mod/core/set/all/rename.rb +6 -7
  760. data/mod/core/set/all/rules.rb +2 -2
  761. data/mod/core/set/all/stages.rb +2 -11
  762. data/mod/core/set/all/subcards.rb +1 -1
  763. data/mod/core/set/all/templating.rb +4 -4
  764. data/mod/core/set/all/type.rb +2 -2
  765. data/mod/core/set/all/update_read_rules.rb +2 -56
  766. data/mod/core/set_pattern/04_star.rb +1 -1
  767. data/mod/core/set_pattern/05_rstar.rb +1 -1
  768. data/mod/core/set_pattern/06_right.rb +1 -1
  769. data/mod/core/set_pattern/07_type_plus_right.rb +2 -3
  770. data/mod/core/spec/format/html_format_spec.rb +4 -4
  771. data/mod/core/spec/set/all/actify_spec.rb +107 -42
  772. data/mod/core/spec/set/all/event_conditions_spec.rb +1 -1
  773. data/mod/core/spec/set/all/fetch_spec.rb +57 -13
  774. data/mod/core/spec/set/all/name_spec.rb +1 -1
  775. data/mod/core/spec/set/all/permissions/reader_rules_spec.rb +1 -1
  776. data/mod/core/spec/set/all/permissions_spec.rb +2 -2
  777. data/mod/core/spec/set/all/rename_spec.rb +7 -5
  778. data/mod/core/spec/set/all/templating_spec.rb +5 -5
  779. data/mod/core/spec/set/all/type_spec.rb +1 -1
  780. data/mod/developer/set/all/event_viz.rb +1 -3
  781. data/mod/history/lib/card/act.rb +2 -6
  782. data/mod/history/lib/card/act/act_renderer.rb +6 -11
  783. data/mod/history/lib/card/action/action_renderer.rb +1 -1
  784. data/mod/history/lib/card/change.rb +1 -1
  785. data/mod/history/set/all/action_view.rb +1 -1
  786. data/mod/history/set/all/actions.rb +10 -1
  787. data/mod/history/set/all/content_history.rb +9 -9
  788. data/mod/history/set/all/history.rb +40 -27
  789. data/mod/machines/lib/javascript/decko.js.coffee +1 -1
  790. data/mod/machines/lib/javascript/decko_filter.js.coffee +40 -0
  791. data/mod/machines/lib/javascript/decko_layout.js.coffee +16 -8
  792. data/mod/machines/lib/stylesheets/style_cards.scss +9 -0
  793. data/mod/machines/set/abstract/machine.rb +12 -9
  794. data/mod/machines/set/abstract/script.rb +4 -0
  795. data/mod/machines/set/self/script_slot.rb +2 -1
  796. data/mod/machines/set/type/css.rb +4 -0
  797. data/mod/machines/spec/set/type/skin_spec.rb +2 -2
  798. data/mod/machines/spec/shared_examples/machine_input.rb +3 -3
  799. data/mod/notifications/format/email_html_format.rb +4 -0
  800. data/mod/notifications/set/all/follow.rb +1 -1
  801. data/mod/notifications/set/all/send_notifications.rb +18 -17
  802. data/mod/notifications/set/right/bcc.rb +1 -1
  803. data/mod/notifications/set/right/follow.rb +3 -3
  804. data/mod/notifications/set/right/followers.rb +1 -1
  805. data/mod/notifications/set/right/following.rb +2 -2
  806. data/mod/notifications/set/right/html_message.rb +0 -5
  807. data/mod/notifications/set/right/text_message.rb +0 -5
  808. data/mod/notifications/set/self/follow_defaults.rb +3 -3
  809. data/mod/notifications/set/type_plus_right/user/follow.rb +1 -1
  810. data/mod/notifications/spec/set/right/followers_spec.rb +1 -1
  811. data/mod/pointer/set/abstract/01_paging.rb +1 -1
  812. data/mod/pointer/set/abstract/02_pointer.rb +2 -2
  813. data/mod/pointer/set/abstract/02_pointer/edit.rb +10 -8
  814. data/mod/pointer/set/abstract/code_pointer.rb +1 -1
  815. data/mod/pointer/set/self/input_options.rb +1 -1
  816. data/mod/pointer/spec/set/type/pointer_spec.rb +1 -1
  817. data/mod/prosemirror_editor/set/abstract/prosemirror_editor.rb +1 -1
  818. data/mod/{standard → search}/set/abstract/01_search_params.rb +0 -0
  819. data/mod/{standard → search}/set/abstract/search.rb +1 -1
  820. data/mod/{standard → search}/set/abstract/wql_search.rb +2 -2
  821. data/mod/search/set/all/filter.rb +12 -0
  822. data/mod/{standard → search}/set/self/navbox.rb +1 -1
  823. data/mod/{standard → search}/set/self/recent.rb +1 -1
  824. data/mod/{standard → search}/set/self/search.rb +2 -2
  825. data/mod/{standard → search}/set/type/search_type.rb +2 -2
  826. data/mod/search/spec/set/all/filter_spec.rb +37 -0
  827. data/mod/{standard → search}/spec/set/self/navbox_spec.rb +0 -0
  828. data/mod/{standard → search}/spec/set/self/recent_spec.rb +0 -0
  829. data/mod/{standard → search}/spec/set/self/search_spec.rb +0 -0
  830. data/mod/search/template/all/filter/_filter_input.haml +8 -0
  831. data/mod/search/template/all/filter/filter_form.haml +32 -0
  832. data/mod/settings/lib/card/setting.rb +11 -11
  833. data/mod/settings/set/abstract/permission.rb +3 -3
  834. data/mod/settings/set/right/read.rb +56 -0
  835. data/mod/settings/set/type/setting.rb +1 -1
  836. data/mod/solid_cache/set/right/solid_cache.rb +1 -1
  837. data/mod/standard/set/abstract/toolbar_split_button.rb +1 -1
  838. data/mod/standard/set/all/error.rb +1 -1
  839. data/mod/standard/set/all/links.rb +3 -3
  840. data/mod/standard/set/all/list_changes.rb +7 -3
  841. data/mod/standard/set/all/rich_html/content.rb +17 -17
  842. data/mod/standard/set/all/rich_html/editing.rb +3 -3
  843. data/mod/standard/set/all/rich_html/editor.rb +1 -1
  844. data/mod/standard/set/all/rich_html/form.rb +2 -2
  845. data/mod/standard/set/all/rich_html/formgroup.rb +1 -1
  846. data/mod/standard/set/all/rich_html/header.rb +3 -3
  847. data/mod/standard/set/all/rich_html/menu.rb +7 -7
  848. data/mod/standard/set/all/rich_html/modal.rb +3 -3
  849. data/mod/standard/set/all/rich_html/new.rb +3 -3
  850. data/mod/standard/set/all/rich_html/toolbar.rb +16 -14
  851. data/mod/standard/set/all/rich_html/wrapper.rb +7 -7
  852. data/mod/standard/set/rstar/rules.rb +5 -5
  853. data/mod/standard/set/rstar/rules_editor.rb +5 -5
  854. data/mod/standard/set/type/cardtype.rb +1 -1
  855. data/mod/standard/set/type/list.rb +6 -6
  856. data/mod/standard/set/type/listed_by.rb +29 -24
  857. data/mod/standard/set/type/session.rb +0 -4
  858. data/mod/standard/set/type/set.rb +23 -26
  859. data/mod/standard/set/type/toggle.rb +2 -2
  860. data/mod/standard/spec/set/all/history_spec.rb +1 -0
  861. data/mod/standard/spec/set/all/rich_html/editing_spec.rb +1 -1
  862. data/mod/standard/spec/set/all/rich_html/wrapper_spec.rb +2 -2
  863. data/mod/standard/spec/set/type/list_spec.rb +7 -3
  864. data/mod/standard/spec/set/type/listed_by_spec.rb +3 -2
  865. data/mod/standard/spec/set/type/uri_spec.rb +8 -8
  866. data/spec/config/initializers/core_extensions_spec.rb +2 -2
  867. data/spec/lib/card/cache_spec.rb +3 -3
  868. data/spec/lib/card/codename_spec.rb +40 -2
  869. data/spec/lib/card/format_spec.rb +6 -6
  870. data/spec/lib/card/query_spec.rb +0 -2
  871. data/spec/lib/card/reference_spec.rb +3 -3
  872. data/spec/lib/card/stage_director_spec.rb +52 -17
  873. data/spec/lib/card/success_spec.rb +1 -1
  874. data/spec/models/card/trash_spec.rb +1 -1
  875. data/spec/models/card_spec.rb +3 -3
  876. data/spec/support/helper/event_helper.rb +14 -0
  877. data/spec/support/helper/render_helper.rb +1 -1
  878. data/spec/support/matchers/card_matchers.rb +7 -9
  879. metadata +643 -111
  880. data/lib/active_record/connection_adapters_ext.rb +0 -52
  881. data/lib/active_support/callbacks_ext.rb +0 -9
  882. data/lib/card/name/view_name.rb +0 -50
  883. data/mod/bootstrap/db/migrate_cards/20170719163701_update_bootswatch_themes.rb +0 -80
  884. data/mod/bootstrap/lib/javascript/bootstrap.js +0 -3535
  885. data/mod/bootstrap/lib/javascript/bootstrap.min.js +0 -7
  886. data/mod/bootstrap/lib/javascript/select2.min.js +0 -3
  887. data/mod/bootstrap/lib/javascript/tether.min.js +0 -1
  888. data/mod/bootstrap/lib/stylesheets/bootstrap.css +0 -9320
  889. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/.scss-lint.yml +0 -548
  890. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_alert.scss +0 -55
  891. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_badge.scss +0 -77
  892. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_breadcrumb.scss +0 -38
  893. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_buttons.scss +0 -170
  894. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_card.scss +0 -276
  895. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_carousel.scss +0 -178
  896. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_close.scss +0 -31
  897. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_code.scss +0 -64
  898. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_custom-forms.scss +0 -263
  899. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_custom.scss +0 -4
  900. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_dropdown.scss +0 -161
  901. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_forms.scss +0 -388
  902. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_grid.scss +0 -52
  903. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_images.scss +0 -43
  904. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_input-group.scss +0 -178
  905. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_jumbotron.scss +0 -20
  906. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_list-group.scss +0 -141
  907. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_media.scss +0 -8
  908. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_mixins.scss +0 -57
  909. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_modal.scss +0 -142
  910. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_nav.scss +0 -119
  911. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_navbar.scss +0 -268
  912. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_normalize.scss +0 -461
  913. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_pagination.scss +0 -67
  914. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_popover.scss +0 -171
  915. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_print.scss +0 -119
  916. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_progress.scss +0 -32
  917. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_reboot.scss +0 -389
  918. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_tables.scss +0 -153
  919. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_tooltip.scss +0 -90
  920. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_transitions.scss +0 -34
  921. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_type.scss +0 -143
  922. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_utilities.scss +0 -13
  923. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/_variables.scss +0 -961
  924. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/bootstrap-grid.scss +0 -43
  925. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/bootstrap-reboot.scss +0 -10
  926. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/bootstrap.scss +0 -54
  927. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_alert.scss +0 -14
  928. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_background-variant.scss +0 -12
  929. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_badge.scss +0 -11
  930. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_border-radius.scss +0 -35
  931. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_breakpoints.scss +0 -95
  932. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_buttons.scss +0 -86
  933. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_cards.scss +0 -47
  934. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_clearfix.scss +0 -7
  935. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_float.scss +0 -9
  936. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_forms.scss +0 -79
  937. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_gradients.scss +0 -37
  938. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_grid-framework.scss +0 -65
  939. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_grid.scss +0 -100
  940. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_hover.scss +0 -60
  941. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_image.scss +0 -36
  942. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_list-group.scss +0 -28
  943. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_lists.scss +0 -7
  944. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_pagination.scss +0 -21
  945. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_screen-reader.scss +0 -32
  946. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_size.scss +0 -6
  947. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_table-row.scss +0 -30
  948. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_text-emphasis.scss +0 -12
  949. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_text-hide.scss +0 -8
  950. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_transforms.scss +0 -14
  951. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/mixins/_visibility.scss +0 -5
  952. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_align.scss +0 -6
  953. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_background.scss +0 -19
  954. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_borders.scss +0 -37
  955. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_clearfix.scss +0 -3
  956. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_display.scss +0 -18
  957. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_flex.scss +0 -48
  958. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_float.scss +0 -9
  959. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_position.scss +0 -23
  960. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_screenreaders.scss +0 -11
  961. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_sizing.scss +0 -10
  962. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_spacing.scss +0 -43
  963. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_text.scss +0 -61
  964. data/mod/bootstrap/lib/stylesheets/bootstrap/scss/utilities/_visibility.scss +0 -55
  965. data/mod/bootstrap/lib/stylesheets/select2-boostrap-v4-alpha-6.scss +0 -828
@@ -1,4 +1,4 @@
1
- <div class="navbar navbar-inverse bg-primary navbar-toggleable-md navbar-static-top mb-3">
1
+ <div class="navbar navbar-inverse bg-primary navbar-expand-md navbar-static-top mb-3">
2
2
  <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbar-collapse-1" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
3
3
  <span class="navbar-toggler-icon"></span>
4
4
  </button>
@@ -2,7 +2,7 @@
2
2
  require "carrierwave"
3
3
 
4
4
  Object.const_remove_if_defined :Card
5
- #ActiveSupport::Dependencies.loaded.clear
5
+ # ActiveSupport::Dependencies.loaded.clear
6
6
 
7
7
  # Cards are wiki-inspired building blocks.
8
8
  #
@@ -15,24 +15,48 @@ Object.const_remove_if_defined :Card
15
15
  #
16
16
  # Throughout this document we will refer to @card as an instance of a Card object.
17
17
  #
18
- # ##Names
18
+ # ## Names
19
19
  #
20
20
  # There are four important card identifiers, sometimes called "marks". Every card has a unique _name_, _key_, and _id_. Some cards also have a _codename_.
21
21
  #
22
- # @card.name # The name, a String, is the most recognizable card mark.
22
+ # @card.name # The name, a {Card::Name} object, is the most recognizable card mark.
23
23
  # @card.key # The key, a String, is a simple lower-case name variant.
24
24
  # @card.id # The id is an Integer.
25
25
  # @card.codename # The codename, a Symbol, is the name by which a card can be referred to in code.
26
26
  #
27
- # All names with the same key (including the key itself) are considered variants of each other. No two cards can have names with the same key.
27
+ # All names with the same key (including the key itself) are considered variants of each other. No two cards can have names with the same key. Card::Name objects inherit from Strings but add many other methods for common card name patterns, eg `"A+B".to_name.right => "B"`.
28
28
  #
29
- # `@card.cardname` refers to the same name as ``@card.name``, but it is a {Card::Name} object and has many additional methods.
29
+ # Setting a card's name, eg `@card.name = "New Name"`, will automatically update the key. {Card::Name More on names.}
30
30
  #
31
- # {Card::Codename More about codenames.}
31
+ # {Card::Codename More on codenames.}
32
32
  #
33
- # ## Fetching
33
+ # ## Type
34
+ #
35
+ # Every card has a type, and every type itself has an associated card. For example, _Paula_'s type might be _User_, so there is also a _User_ card.
36
+ #
37
+ # The type may be accessed in several ways:
38
+ #
39
+ # @card.type_id # returns id of type card [Integer]
40
+ # @card.type_name # returns name of type card [Card::Name]
41
+ # @card.type_code # returns codename of type card [Symbol]
42
+ # @card.type_card # returns Cardtype card associated with @card's type [Card]
43
+ #
44
+ # {file:mod/core/set/all/type.rb Common type methods}
45
+ #
46
+ # ## Content
47
+ #
48
+ # There are two primary methods for accessing a card's content:
49
+ #
50
+ # @card.db_content # the content as it appears in the database
51
+ # @card.content # the "official" content, which may be different from db_content when db_content is overridden with a structure rule.
52
+ #
53
+ # {Card::Content Processing card content}
34
54
  #
35
- # The two main ways to retrieve cards are fetching (retrieving cards one at a time) and querying (retrieving lists of cards).
55
+ # {file:mod/core/set/all/content.rb Common content methods}
56
+ #
57
+ # ## Fetch
58
+ #
59
+ # The two main ways to retrieve cards are fetching (retrieving cards one at a time) and querying (retrieving lists of cards). More on querying below.
36
60
  #
37
61
  # Any of the above marks (name, key, id, codename) can be used to fetch a card, eg:
38
62
  #
@@ -42,42 +66,36 @@ Object.const_remove_if_defined :Card
42
66
  #
43
67
  # The fetch API will first try to find the card in the cache and will only look in the database if necessary.
44
68
  #
45
- # {file:mod/core/set/all/fetch.rb More about fetching}
69
+ # {file:mod/core/set/all/fetch.rb More on fetching.}
46
70
  #
47
- # ## Type
71
+ # ## Query
48
72
  #
49
- # Every card has a type, and every type itself has an associated card. For example, _Paula_'s type might be _User_, so there is also a _User_ card.
73
+ # Card queries find and return lists of cards, eg:
50
74
  #
51
- # The type may be accessed in several ways:
75
+ # Card.search type_id: 4 # returns an Array of cards with the type_id of 4.
52
76
  #
53
- # @card.type_card # returns type card [Card]
54
- # @card.type_id # returns id of type card [Integer]
55
- # @card.type_name # returns name of type card [String]
56
- # @card.type_code # returns codename of type card [Symbol]
77
+ # {Card::Query More on queries}
57
78
  #
58
- # {file:mod/core/set/all/type.rb set module with type methods}
79
+ # ## Views and Events
59
80
  #
60
- # ## Content
61
- # chunks
81
+ # Views and events are a _Decker's_ primary tools for manipulating cards. Views customize card presentation, while events customize card transactions. Or, if you like, views and events respectively alter cards in _space_ and _time_.
62
82
  #
63
- # ## Query
64
- # reference, query
83
+ # Both views and events are defined in {Card::Mod mods}, short for modules or modifications.
65
84
  #
66
- # ## Accounts
67
- # permission
85
+ # {Card::Format More on views}
68
86
  #
87
+ # {Card::Set::Act More on events}
69
88
  #
70
- # ## History
71
- # acts, actions, changes
72
- # subcards, act_manager
89
+ # ## Accounts and Permissions
73
90
  #
74
- # ## Events
75
- # mailer
91
+ # Card code is always executed in the context of a given user account. Permissions for that account are automatically checked when running a query, performing an action, or rendering a view. A typical query, for example, can only return cards that the current user has permission to read.
92
+ #
93
+ # You can see the current user with `Card::Auth.current`. The permissions of a proxy user can be temporarily assumed using `Card::Auth#as`.
94
+ #
95
+ # {Card::Auth More on accounts}
76
96
  #
77
- # ## Caching
78
-
79
97
  class Card < ApplicationRecord
80
- require_dependency "active_record/connection_adapters_ext"
98
+ require_dependency "card/name"
81
99
  require_dependency "card/codename"
82
100
  require_dependency "card/query"
83
101
  require_dependency "card/format"
@@ -92,6 +110,7 @@ class Card < ApplicationRecord
92
110
  require_dependency "card/subcards"
93
111
  require_dependency "card/view"
94
112
  require_dependency "card/act_manager"
113
+ require_dependency "card/dirty"
95
114
 
96
115
  has_many :references_in, class_name: :Reference, foreign_key: :referee_id
97
116
  has_many :references_out, class_name: :Reference, foreign_key: :referer_id
@@ -100,7 +119,7 @@ class Card < ApplicationRecord
100
119
  has_many :drafts, -> { where(draft: true).order :id }, class_name: :Action
101
120
 
102
121
  cattr_accessor :set_patterns, :serializable_attributes, :error_codes,
103
- :set_specific_attributes, :current_act
122
+ :set_specific_attributes
104
123
  self.set_patterns = []
105
124
  self.error_codes = {}
106
125
 
@@ -112,7 +131,7 @@ class Card < ApplicationRecord
112
131
 
113
132
  serializable_attr_accessor(
114
133
  :action, :supercard, :superleft,
115
- :current_act, :current_action,
134
+ :current_action,
116
135
  :comment, # obviated soon
117
136
  :update_referers, # wrong mechanism for this
118
137
  :update_all_users, # if the above is wrong then this one too
@@ -153,7 +172,7 @@ class Card < ApplicationRecord
153
172
  before_validation :validation_phase, unless: -> { only_storage_phase? }
154
173
  around_save :storage_phase
155
174
  after_commit :integration_phase, unless: -> { only_storage_phase? }
156
- after_rollback :clean_up, unless: -> { only_storage_phase? }
175
+ # after_rollback :clean_up, unless: -> { only_storage_phase? }
157
176
 
158
177
  extend CarrierWave::Mount
159
178
  ActiveSupport.run_load_hooks(:card, self)
@@ -34,17 +34,17 @@ class Card
34
34
  # validation | storage | integration
35
35
  # I P2V V | P2S S F | IG IGwD
36
36
  #-------------------------------------------------------------------------
37
- # attach subcard yes! yes! yes | yes yes yes | yes
37
+ # attach subcard yes! yes! yes | yes yes yes | yes no
38
38
  # detach subcard yes! yes! yes | yes no no! | no!
39
39
  # validate yes yes yes! | no | no
40
- # 1 insecure change yes yes! no | no! | no!
41
- # 2 secure change yes | yes! no! no! | no!
40
+ # 1) insecure change yes yes! no | no! | no!
41
+ # 2) secure change yes | yes! no! no! | no!
42
42
  # abort yes! | yes | yes?
43
43
  # add errors yes! | no! | no!
44
- # 3 create other cards yes | yes | yes
44
+ # 3) create other cards yes | yes | yes
45
45
  # has id no | no no? yes | yes
46
46
  # within web request yes | yes | yes no
47
- # 4 within transaction yes | yes | no
47
+ # 4) within transaction yes | yes | no
48
48
 
49
49
  # available values:
50
50
  # dirty attributes yes | yes | yes
@@ -66,15 +66,18 @@ class Card
66
66
  # 1) 'insecure' means a change of a card attribute that can possibly make
67
67
  # the card invalid to save
68
68
  # 2) 'secure' means you are sure that the change doesn't affect the validation
69
- # 3) If you call 'create', 'update_attributes' or 'save' the card will become
69
+ # 3) In all stages except IGwD:
70
+ # If you call 'create', 'update_attributes' or 'save' the card will become
70
71
  # part of the same act and all stage of the validation and storage phase
71
72
  # will be executed immediately for that card. The integration phase will be
72
- # executed together with the act card and its subcards
73
+ # executed together with the act card and its subcards.
74
+ #
75
+ # In IGwD all these methods create a new act.
73
76
  # 4) This means if an exception is raised in the validation or storage phase
74
77
  # everything will rollback. If the integration phase fails the db changes
75
78
  # of the other two phases will remain persistent.
76
79
  class ActManager
77
- cattr_accessor :act_card
80
+ cattr_accessor :act, :act_card
78
81
 
79
82
  class << self
80
83
  def act_director
@@ -86,8 +89,20 @@ class Card
86
89
  @directors ||= {}
87
90
  end
88
91
 
92
+ def run_act card
93
+ self.act_card = card
94
+ yield
95
+ ensure
96
+ clear
97
+ end
98
+
99
+ def need_act
100
+ self.act ||= Card::Act.create ip_address: Env.ip
101
+ end
102
+
89
103
  def clear
90
- ActManager.act_card = nil
104
+ self.act_card = nil
105
+ self.act = nil
91
106
  directors.each_pair do |card, _dir|
92
107
  card.director = nil
93
108
  end
@@ -97,7 +112,7 @@ class Card
97
112
  def fetch card, opts={}
98
113
  return directors[card] if directors[card]
99
114
  directors.each_key do |dir_card|
100
- return dir_card.director if dir_card.name == card.name
115
+ return dir_card.director if dir_card.name == card.name && dir_card.director
101
116
  end
102
117
  directors[card] = new_director card, opts
103
118
  end
@@ -143,6 +158,45 @@ class Card
143
158
  (dir = act_director) && dir.running?
144
159
  end
145
160
 
161
+ # If active jobs (and hence the integrate_with_delay events) don't run
162
+ # in a background process then Card::Env.deserialize! decouples the
163
+ # controller's params hash and the Card::Env's params hash with the
164
+ # effect that params changes in the CardController get lost
165
+ # (a crucial example are success params that are processed in
166
+ # CardController#update_params_for_success)
167
+ def contextualize_delayed_event act_id, card, env, auth
168
+ if delaying?
169
+ contextualize_for_delay(act_id, card, env, auth) { yield }
170
+ else
171
+ yield
172
+ end
173
+ end
174
+
175
+ def delaying?
176
+ Delayed::Worker.delay_jobs && Card.config.active_job.queue_adapter == :delayed_job
177
+ end
178
+
179
+ # The whole ActManager setup is gone once we reach a integrate with delay
180
+ # event processed by ActiveJob.
181
+ # This is the improvised resetup to get subcards working.
182
+ def contextualize_for_delay act_id, card, env, auth, &block
183
+ self.act = Act.find act_id if act_id
184
+ with_env_and_auth env, auth do
185
+ return yield unless act
186
+ run_act(act.card || card) do
187
+ act_card.director.run_delayed_event act, &block
188
+ end
189
+ end
190
+ end
191
+
192
+ def with_env_and_auth env, auth
193
+ Card::Auth.with auth do
194
+ Card::Env.with env do
195
+ yield
196
+ end
197
+ end
198
+ end
199
+
146
200
  def to_s
147
201
  act_director.to_s
148
202
  #directors.values.map(&:to_s).join "\n"
@@ -102,6 +102,14 @@ class Card
102
102
  end
103
103
  end
104
104
 
105
+ def run_delayed_event act
106
+ @running = true
107
+ @act = act
108
+ @stage = stage_index(:integrate_with_delay)
109
+ yield
110
+ run_subdirector_stages :integrate_with_delay
111
+ end
112
+
105
113
  def reset_stage
106
114
  @stage = -1
107
115
  end
@@ -119,8 +127,7 @@ class Card
119
127
  unless act_director
120
128
  raise Card::Error, "act requested without a main stage director"
121
129
  end
122
- act_director.act ||= Card::Act.create(ip_address: Env.ip)
123
- @card.current_act = @act = act_director.act
130
+ @act = act_director.act ||= ActManager.need_act
124
131
  end
125
132
 
126
133
  def main_director
@@ -146,6 +153,10 @@ class Card
146
153
  ActManager.card_changed old_card
147
154
  end
148
155
 
156
+ def finished_stage? stage
157
+ @stage > stage_index(stage)
158
+ end
159
+
149
160
  private
150
161
 
151
162
  def upto_stage stage
@@ -26,13 +26,15 @@ class Card
26
26
  run_single_stage :integrate_with_delay
27
27
  rescue => e # don't rollback
28
28
  Card::Error.current = e
29
- warn "exception in integrate stage: #{e.message}"
30
- warn e.backtrace.join "\n"
31
- @card.notable_exception_raised
29
+ unless e.class == Card::Error::Abort
30
+ warn "exception in integrate phase: #{e.message}"
31
+ warn e.backtrace.join "\n"
32
+ @card.notable_exception_raised
33
+ end
32
34
  return false
33
35
  ensure
34
36
  @card.clear_changes_information unless @abort
35
- ActManager.clear if main? && !@card.only_storage_phase
37
+ # ActManager.clear if main? && !@card.only_storage_phase
36
38
  end
37
39
  end
38
40
  end
@@ -4,7 +4,9 @@ require_dependency "card/auth/proxy"
4
4
  require_dependency "card/auth/setup"
5
5
 
6
6
  class Card
7
- # Singleton methods for authentication. Manages current user,
7
+ # Singleton methods for account authentication and contextualization.
8
+ #
9
+ # Manages current user,
8
10
  # "as" user, and password verification.
9
11
  module Auth
10
12
  extend Permissions
@@ -28,7 +28,7 @@ class Card
28
28
  end
29
29
  end
30
30
 
31
- # The {Cache} class manages and integrates {Temporary} and {Persistent
31
+ # The {Cache} class manages and integrates {Temporary} and {Persistent}
32
32
  # caching. The {Temporary} cache is typically process- and request- specific
33
33
  # and is often "ahead" of the database; the {Persistent} cache is typically
34
34
  # shared across processes and tends to stay true to the database.
@@ -60,7 +60,6 @@ class Card
60
60
  store: cache_type
61
61
  end
62
62
 
63
- # establish clean context;
64
63
  # clear the temporary caches and ensure we're using the latest stamp
65
64
  # on the persistent caches.
66
65
  def renew
@@ -70,6 +69,12 @@ class Card
70
69
  end
71
70
  end
72
71
 
72
+ # reset standard cached for all classes
73
+ def reset
74
+ reset_hard
75
+ reset_soft
76
+ end
77
+
73
78
  # reset all caches for all classes
74
79
  def reset_all
75
80
  reset_hard
@@ -91,6 +96,7 @@ class Card
91
96
 
92
97
  # reset the Persistent cache for all classes
93
98
  def reset_hard
99
+ Card::Cache::Persistent.reset
94
100
  cache_by_class.each_value do |cache|
95
101
  cache.hard.reset if cache.hard
96
102
  end
@@ -20,12 +20,30 @@ class Card
20
20
  class << self
21
21
  # name of current database; used here to insure that different databases
22
22
  # are cached separately
23
- # @todo find better home for this method
23
+ # TODO: find better home for this method
24
24
  def database_name
25
25
  @database_name ||= (cfg = Cardio.config) &&
26
26
  (dbcfg = cfg.database_configuration) &&
27
27
  dbcfg[Rails.env]["database"]
28
28
  end
29
+
30
+ def stamp
31
+ @stamp ||= Cardio.cache.fetch(stamp_key) { new_stamp }
32
+ end
33
+
34
+ # stamp generator
35
+ def new_stamp
36
+ Time.now.to_i.to_s(36) + rand(999).to_s(36)
37
+ end
38
+
39
+ def stamp_key
40
+ "#{database_name}-stamp"
41
+ end
42
+
43
+ def reset
44
+ @stamp = new_stamp
45
+ Cardio.cache.write stamp_key, @stamp
46
+ end
29
47
  end
30
48
 
31
49
  # @param opts [Hash]
@@ -48,7 +66,7 @@ class Card
48
66
 
49
67
  # reset effectively clears the cache by setting a new stamp
50
68
  def reset
51
- @stamp = new_stamp
69
+ @stamp = self.class.new_stamp
52
70
  @prefix = nil
53
71
  Cardio.cache.write stamp_key, @stamp
54
72
  end
@@ -63,22 +81,17 @@ class Card
63
81
  # the cache. Note that Cardio.cache is a simple Rails::Cache, not
64
82
  # a Card::Cache object.
65
83
  def stamp
66
- @stamp ||= Cardio.cache.fetch(stamp_key) { new_stamp }
84
+ @stamp ||= Cardio.cache.fetch(stamp_key) { self.class.new_stamp }
67
85
  end
68
86
 
69
87
  # key for looking up the current stamp
70
88
  def stamp_key
71
- "#{@database}/#{@class_key}/stamp"
72
- end
73
-
74
- # stamp generator
75
- def new_stamp
76
- Time.now.to_i.to_s(32) + rand(9999).to_s(32)
89
+ "#{@database}-#{@class_key}-#{self.class.stamp}-stamp"
77
90
  end
78
91
 
79
92
  # prefix added to cache key to create a system-wide unique key
80
93
  def prefix
81
- @prefix ||= "#{@database}/#{@class_key}/#{stamp}"
94
+ @prefix ||= "#{@database}-#{@class_key}-#{stamp}:"
82
95
  end
83
96
 
84
97
  # returns prefix/key