card 1.91 → 1.92

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 (779) hide show
  1. checksums.yaml +4 -4
  2. data/README.rdoc +80 -0
  3. data/VERSION +1 -1
  4. data/card.gemspec +29 -22
  5. data/config/i18n-tasks.yml +8 -1
  6. data/config/initializers/01_core_extensions/module.rb +46 -4
  7. data/config/initializers/02_patches/action_dispatch.rb +16 -0
  8. data/config/initializers/02_patches/active_job.rb +35 -0
  9. data/config/initializers/patches.rb +12 -0
  10. data/config/initializers/recaptcha.rb +8 -2
  11. data/config/locales/de.yml +36 -23
  12. data/config/locales/en.yml +508 -15
  13. data/db/migrate/20110511221913_require_earlier_migrations.rb +1 -1
  14. data/db/migrate/20120105203350_require_1_8_migrations.rb +1 -1
  15. data/db/migrate/20121111025347_require_1_10_migrations.rb +1 -1
  16. data/db/migrate/20121118114000_split_link_type.rb +1 -1
  17. data/db/migrate/20121118115000_update_link_type.rb +2 -2
  18. data/db/migrate/20130106052640_table_cleanup.rb +1 -1
  19. data/db/migrate/20130109015336_trunk_left.rb +1 -1
  20. data/db/migrate/20130411210957_update_codenames.rb +1 -1
  21. data/db/migrate/20140822073704_create_new_revision_tables.rb +1 -1
  22. data/db/migrate/20141001105348_move_revisions_to_actions.rb +6 -6
  23. data/db/migrate/20141121172918_rename_card_migration_table.rb +1 -1
  24. data/db/migrate/20141208132159_remove_present_from_reference_table.rb +1 -1
  25. data/db/migrate/20141216053032_better_index_names.rb +1 -1
  26. data/db/migrate/20150724210803_add_comment_to_actions.rb +1 -1
  27. data/db/migrate/20151105225559_more_space_for_db_content.rb +1 -1
  28. data/db/migrate/20160122153608_new_indeces.rb +1 -1
  29. data/db/migrate/20170908114442_create_delayed_jobs.rb +22 -0
  30. data/db/migrate_core_cards/20140307231621_user_data_to_cards.rb +1 -1
  31. data/db/migrate_core_cards/20140512155840_add_script_cards.rb +2 -2
  32. data/db/migrate_core_cards/20140629222005_add_email_cards.rb +1 -1
  33. data/db/migrate_core_cards/20150202143810_import_bootstrap_layout.rb +1 -1
  34. data/db/migrate_core_cards/20150317162412_bootstrap_themes.rb +1 -1
  35. data/db/migrate_core_cards/20150429090551_search_card_context.rb +1 -0
  36. data/db/migrate_core_cards/20150508212032_menu_compatibility.rb +1 -1
  37. data/db/migrate_core_cards/20150824135418_update_file_history.rb +1 -0
  38. data/db/migrate_core_cards/20161103154836_update_keys.rb +1 -1
  39. data/db/migrate_core_cards/20170209132834_email_test_context.rb +1 -1
  40. data/db/migrate_core_cards/20170830210517_correct_signup_success_message.rb +10 -0
  41. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/bootstrap_default/_bootswatch.scss +0 -0
  42. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/bootstrap_default/_variables.scss +0 -0
  43. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/cerulean/_bootswatch.scss +0 -0
  44. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/cerulean/_variables.scss +0 -0
  45. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/cerulean/thumbnail.png +0 -0
  46. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/cosmo/_bootswatch.scss +0 -0
  47. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/cosmo/_variables.scss +0 -0
  48. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/cosmo/thumbnail.png +0 -0
  49. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/cyborg/_bootswatch.scss +0 -0
  50. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/cyborg/_variables.scss +0 -0
  51. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/cyborg/thumbnail.png +0 -0
  52. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/darkly/_bootswatch.scss +0 -0
  53. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/darkly/_variables.scss +0 -0
  54. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/darkly/thumbnail.png +0 -0
  55. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/flatly/_bootswatch.scss +0 -0
  56. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/flatly/_variables.scss +0 -0
  57. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/flatly/thumbnail.png +0 -0
  58. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/journal/_bootswatch.scss +0 -0
  59. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/journal/_variables.scss +0 -0
  60. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/journal/thumbnail.png +0 -0
  61. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/litera/_bootswatch.scss +0 -0
  62. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/litera/_variables.scss +0 -0
  63. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/litera/thumbnail.png +0 -0
  64. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/lumen/_bootswatch.scss +0 -0
  65. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/lumen/_variables.scss +0 -0
  66. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/lumen/thumbnail.png +0 -0
  67. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/lux/_bootswatch.scss +0 -0
  68. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/lux/_variables.scss +0 -0
  69. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/lux/thumbnail.png +0 -0
  70. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/materia/_bootswatch.scss +0 -0
  71. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/materia/_variables.scss +0 -0
  72. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/materia/thumbnail.png +0 -0
  73. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/minty/_bootswatch.scss +0 -0
  74. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/minty/_variables.scss +0 -0
  75. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/minty/thumbnail.png +0 -0
  76. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/paper/_bootswatch.scss +0 -0
  77. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/paper/_variables.scss +0 -0
  78. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/pulse/_bootswatch.scss +0 -0
  79. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/pulse/_variables.scss +0 -0
  80. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/pulse/thumbnail.png +0 -0
  81. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/readable/_bootswatch.scss +0 -0
  82. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/readable/_variables.scss +0 -0
  83. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/sandstone/_bootswatch.scss +0 -0
  84. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/sandstone/_variables.scss +0 -0
  85. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/sandstone/thumbnail.png +0 -0
  86. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/simplex/_bootswatch.scss +0 -0
  87. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/simplex/_variables.scss +0 -0
  88. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/simplex/thumbnail.png +0 -0
  89. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/slate/_bootswatch.scss +0 -0
  90. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/slate/_variables.scss +0 -0
  91. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/slate/thumbnail.png +0 -0
  92. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/solar/_bootswatch.scss +0 -0
  93. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/solar/_variables.scss +0 -0
  94. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/solar/thumbnail.png +0 -0
  95. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/spacelab/_bootswatch.scss +0 -0
  96. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/spacelab/_variables.scss +0 -0
  97. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/spacelab/thumbnail.png +0 -0
  98. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/superhero/_bootswatch.scss +0 -0
  99. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/superhero/_variables.scss +0 -0
  100. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/superhero/thumbnail.png +0 -0
  101. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/united/_bootswatch.scss +0 -0
  102. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/united/_variables.scss +0 -0
  103. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/united/thumbnail.png +0 -0
  104. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/yeti/_bootswatch.scss +0 -0
  105. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/yeti/_full.scss +0 -0
  106. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/yeti/_variables.scss +0 -0
  107. data/db/migrate_core_cards/data/{b4_themes → b4_alpha_themes}/yeti/thumbnail.png +0 -0
  108. data/db/migrate_core_cards/data/b4_beta_themes/bootstrap_default/_bootswatch.scss +0 -0
  109. data/db/migrate_core_cards/data/b4_beta_themes/bootstrap_default/_variables.scss +961 -0
  110. data/db/migrate_core_cards/data/b4_beta_themes/cerulean/_bootswatch.scss +67 -0
  111. data/db/migrate_core_cards/data/b4_beta_themes/cerulean/_variables.scss +961 -0
  112. data/db/migrate_core_cards/data/b4_beta_themes/cerulean/thumbnail.png +0 -0
  113. data/db/migrate_core_cards/data/b4_beta_themes/cosmo/_bootswatch.scss +45 -0
  114. data/db/migrate_core_cards/data/b4_beta_themes/cosmo/_variables.scss +961 -0
  115. data/db/migrate_core_cards/data/b4_beta_themes/cosmo/thumbnail.png +0 -0
  116. data/db/migrate_core_cards/data/b4_beta_themes/cyborg/_bootswatch.scss +141 -0
  117. data/db/migrate_core_cards/data/b4_beta_themes/cyborg/_variables.scss +961 -0
  118. data/db/migrate_core_cards/data/b4_beta_themes/cyborg/thumbnail.png +0 -0
  119. data/db/migrate_core_cards/data/b4_beta_themes/darkly/_bootswatch.scss +142 -0
  120. data/db/migrate_core_cards/data/b4_beta_themes/darkly/_variables.scss +961 -0
  121. data/db/migrate_core_cards/data/b4_beta_themes/darkly/thumbnail.png +0 -0
  122. data/db/migrate_core_cards/data/b4_beta_themes/flatly/_bootswatch.scss +107 -0
  123. data/db/migrate_core_cards/data/b4_beta_themes/flatly/_variables.scss +961 -0
  124. data/db/migrate_core_cards/data/b4_beta_themes/flatly/thumbnail.png +0 -0
  125. data/db/migrate_core_cards/data/b4_beta_themes/journal/_bootswatch.scss +69 -0
  126. data/db/migrate_core_cards/data/b4_beta_themes/journal/_variables.scss +961 -0
  127. data/db/migrate_core_cards/data/b4_beta_themes/journal/thumbnail.png +0 -0
  128. data/db/migrate_core_cards/data/b4_beta_themes/litera/_bootswatch.scss +130 -0
  129. data/db/migrate_core_cards/data/b4_beta_themes/litera/_variables.scss +961 -0
  130. data/db/migrate_core_cards/data/b4_beta_themes/litera/thumbnail.png +0 -0
  131. data/db/migrate_core_cards/data/b4_beta_themes/lumen/_bootswatch.scss +294 -0
  132. data/db/migrate_core_cards/data/b4_beta_themes/lumen/_variables.scss +961 -0
  133. data/db/migrate_core_cards/data/b4_beta_themes/lumen/thumbnail.png +0 -0
  134. data/db/migrate_core_cards/data/b4_beta_themes/lux/_bootswatch.scss +111 -0
  135. data/db/migrate_core_cards/data/b4_beta_themes/lux/_variables.scss +961 -0
  136. data/db/migrate_core_cards/data/b4_beta_themes/lux/thumbnail.png +0 -0
  137. data/db/migrate_core_cards/data/b4_beta_themes/materia/_bootswatch.scss +610 -0
  138. data/db/migrate_core_cards/data/b4_beta_themes/materia/_variables.scss +961 -0
  139. data/db/migrate_core_cards/data/b4_beta_themes/materia/thumbnail.png +0 -0
  140. data/db/migrate_core_cards/data/b4_beta_themes/minty/_bootswatch.scss +85 -0
  141. data/db/migrate_core_cards/data/b4_beta_themes/minty/_variables.scss +961 -0
  142. data/db/migrate_core_cards/data/b4_beta_themes/minty/thumbnail.png +0 -0
  143. data/db/migrate_core_cards/data/b4_beta_themes/paper/_bootswatch.scss +607 -0
  144. data/db/migrate_core_cards/data/b4_beta_themes/paper/_variables.scss +861 -0
  145. data/db/migrate_core_cards/data/b4_beta_themes/pulse/_bootswatch.scss +122 -0
  146. data/db/migrate_core_cards/data/b4_beta_themes/pulse/_variables.scss +961 -0
  147. data/db/migrate_core_cards/data/b4_beta_themes/pulse/thumbnail.png +0 -0
  148. data/db/migrate_core_cards/data/b4_beta_themes/readable/_bootswatch.scss +174 -0
  149. data/db/migrate_core_cards/data/b4_beta_themes/readable/_variables.scss +861 -0
  150. data/db/migrate_core_cards/data/b4_beta_themes/sandstone/_bootswatch.scss +152 -0
  151. data/db/migrate_core_cards/data/b4_beta_themes/sandstone/_variables.scss +961 -0
  152. data/db/migrate_core_cards/data/b4_beta_themes/sandstone/thumbnail.png +0 -0
  153. data/db/migrate_core_cards/data/b4_beta_themes/simplex/_bootswatch.scss +103 -0
  154. data/db/migrate_core_cards/data/b4_beta_themes/simplex/_variables.scss +961 -0
  155. data/db/migrate_core_cards/data/b4_beta_themes/simplex/thumbnail.png +0 -0
  156. data/db/migrate_core_cards/data/b4_beta_themes/slate/_bootswatch.scss +274 -0
  157. data/db/migrate_core_cards/data/b4_beta_themes/slate/_variables.scss +961 -0
  158. data/db/migrate_core_cards/data/b4_beta_themes/slate/thumbnail.png +0 -0
  159. data/db/migrate_core_cards/data/b4_beta_themes/solar/_bootswatch.scss +45 -0
  160. data/db/migrate_core_cards/data/b4_beta_themes/solar/_variables.scss +961 -0
  161. data/db/migrate_core_cards/data/b4_beta_themes/solar/thumbnail.png +0 -0
  162. data/db/migrate_core_cards/data/b4_beta_themes/spacelab/_bootswatch.scss +125 -0
  163. data/db/migrate_core_cards/data/b4_beta_themes/spacelab/_variables.scss +961 -0
  164. data/db/migrate_core_cards/data/b4_beta_themes/spacelab/thumbnail.png +0 -0
  165. data/db/migrate_core_cards/data/b4_beta_themes/superhero/_bootswatch.scss +136 -0
  166. data/db/migrate_core_cards/data/b4_beta_themes/superhero/_variables.scss +961 -0
  167. data/db/migrate_core_cards/data/b4_beta_themes/superhero/thumbnail.png +0 -0
  168. data/db/migrate_core_cards/data/b4_beta_themes/united/_bootswatch.scss +32 -0
  169. data/db/migrate_core_cards/data/b4_beta_themes/united/_variables.scss +961 -0
  170. data/db/migrate_core_cards/data/b4_beta_themes/united/thumbnail.png +0 -0
  171. data/db/migrate_core_cards/data/b4_beta_themes/variables/_variables.scss +0 -0
  172. data/db/migrate_core_cards/data/b4_beta_themes/yeti/_bootswatch.scss +304 -0
  173. data/db/migrate_core_cards/data/b4_beta_themes/yeti/_full.scss +9921 -0
  174. data/db/migrate_core_cards/data/b4_beta_themes/yeti/_variables.scss +961 -0
  175. data/db/migrate_core_cards/data/b4_beta_themes/yeti/thumbnail.png +0 -0
  176. data/db/migrate_core_cards/data/cards.yml +2 -2
  177. data/db/migrate_core_cards/data/cards/*header +2 -2
  178. data/db/schema.rb +89 -106
  179. data/db/seed/new/card_actions.yml +2146 -1922
  180. data/db/seed/new/card_acts.yml +2 -248
  181. data/db/seed/new/card_changes.yml +1 -32341
  182. data/db/seed/new/card_references.yml +1162 -980
  183. data/db/seed/new/cards.yml +23244 -14385
  184. data/db/seed/test/fixtures/card_actions.yml +3459 -3011
  185. data/db/seed/test/fixtures/card_acts.yml +470 -608
  186. data/db/seed/test/fixtures/card_changes.yml +109 -37619
  187. data/db/seed/test/fixtures/card_references.yml +2264 -1865
  188. data/db/seed/test/fixtures/cards.yml +26422 -16915
  189. data/db/seed/test/seed.rb +247 -179
  190. data/db/seed_consts.rb +10 -0
  191. data/db/seeds.rb +1 -6
  192. data/db/version.txt +1 -1
  193. data/db/version_core_cards.txt +1 -1
  194. data/lib/active_record/connection_adapters_ext.rb +1 -1
  195. data/lib/application_job.rb +2 -0
  196. data/lib/application_record.rb +3 -0
  197. data/lib/card.rb +77 -13
  198. data/lib/card/act_manager.rb +3 -0
  199. data/lib/card/act_manager/stage_director.rb +3 -38
  200. data/lib/card/act_manager/stage_director/phases.rb +39 -0
  201. data/lib/card/codename.rb +15 -9
  202. data/lib/card/content.rb +4 -0
  203. data/lib/card/content/chunk.rb +4 -0
  204. data/lib/card/env.rb +6 -2
  205. data/lib/card/env/location_history.rb +1 -1
  206. data/lib/card/env/success.rb +5 -2
  207. data/lib/card/error.rb +3 -2
  208. data/lib/card/format.rb +13 -21
  209. data/lib/card/format/context_names.rb +40 -0
  210. data/lib/card/format/error.rb +8 -4
  211. data/lib/card/format/nest.rb +7 -7
  212. data/lib/card/format/nest/fetch.rb +1 -1
  213. data/lib/card/format/nest/mode.rb +75 -0
  214. data/lib/card/format/nest/subformat.rb +18 -5
  215. data/lib/card/format/permission.rb +1 -1
  216. data/lib/card/format/registration.rb +18 -12
  217. data/lib/card/format/render.rb +22 -11
  218. data/lib/card/migration.rb +1 -1
  219. data/lib/card/mod.rb +63 -0
  220. data/lib/card/mod/dirs.rb +73 -4
  221. data/lib/card/mod/load_strategy.rb +64 -0
  222. data/lib/card/mod/load_strategy/eval.rb +16 -0
  223. data/lib/card/mod/load_strategy/pattern_tmp_files.rb +29 -0
  224. data/lib/card/mod/load_strategy/set_binding_magic.rb +48 -0
  225. data/lib/card/mod/load_strategy/set_tmp_files.rb +33 -0
  226. data/lib/card/mod/load_strategy/tmp_files.rb +38 -0
  227. data/lib/card/mod/loader.rb +44 -129
  228. data/lib/card/mod/loader/set_loader.rb +85 -0
  229. data/lib/card/mod/loader/set_pattern_loader.rb +58 -0
  230. data/lib/card/mod/module_template.rb +67 -0
  231. data/lib/card/model/save_helper.rb +27 -4
  232. data/lib/card/name.rb +8 -10
  233. data/lib/card/name/fields_and_traits.rb +7 -5
  234. data/lib/card/name/view_name.rb +4 -4
  235. data/lib/card/query.rb +11 -5
  236. data/lib/card/query/attributes.rb +1 -1
  237. data/lib/card/query/interpretation.rb +3 -3
  238. data/lib/card/reference.rb +2 -2
  239. data/lib/card/set.rb +6 -28
  240. data/lib/card/set/advanced_api.rb +2 -2
  241. data/lib/card/set/event.rb +39 -14
  242. data/lib/card/set/helpers.rb +8 -7
  243. data/lib/card/set/i18n_scanner.rb +22 -0
  244. data/lib/card/set/i18n_scope.rb +41 -7
  245. data/lib/card/set/loader.rb +3 -52
  246. data/lib/card/set_pattern.rb +22 -38
  247. data/lib/card/subcards.rb +1 -1
  248. data/lib/card/tasks/card.rake +43 -3
  249. data/lib/card/tasks/card/migrate.rake +77 -0
  250. data/lib/card/view.rb +34 -5
  251. data/lib/card/view/cache.rb +69 -32
  252. data/lib/card/view/cache_action.rb +158 -0
  253. data/lib/card/view/options.rb +107 -57
  254. data/lib/card/view/stub.rb +46 -12
  255. data/lib/card/view/visibility.rb +3 -3
  256. data/lib/cardio.rb +9 -5
  257. data/mod/account/set/right/account.rb +2 -3
  258. data/mod/account/set/right/email.rb +4 -5
  259. data/mod/account/set/right/password.rb +2 -2
  260. data/mod/account/set/right/salt.rb +1 -1
  261. data/mod/account/set/right/status.rb +1 -1
  262. data/mod/account/set/right/token.rb +5 -5
  263. data/mod/account/set/self/account_links.rb +1 -1
  264. data/mod/account/set/self/signin.rb +7 -7
  265. data/mod/account/set/type/signup.rb +6 -4
  266. data/mod/account/set/type/user.rb +16 -15
  267. data/mod/account/spec/set/all/account_spec.rb +96 -103
  268. data/mod/account/spec/set/right/account_spec.rb +1 -1
  269. data/mod/account/spec/set/self/account_links_spec.rb +2 -2
  270. data/mod/account/spec/set/self/signin_spec.rb +1 -1
  271. data/mod/account/template/type/signup/core.haml +22 -0
  272. data/mod/admin/set/self/admin.rb +26 -4
  273. data/mod/admin/set/self/admin_info.rb +7 -2
  274. data/mod/admin/spec/set/self/admin_spec.rb +47 -30
  275. data/mod/admin/spec/set/self/version_spec.rb +2 -2
  276. data/mod/basic_formats/format/css_format.rb +9 -0
  277. data/mod/basic_formats/format/csv_format.rb +10 -0
  278. data/mod/basic_formats/format/js_format.rb +4 -0
  279. data/mod/basic_formats/format/json_format.rb +15 -0
  280. data/mod/basic_formats/format/xml_format.rb +4 -0
  281. data/mod/basic_formats/set/all/all_csv.rb +1 -1
  282. data/mod/basic_formats/set/all/base.rb +17 -9
  283. data/mod/basic_formats/set/all/json.rb +1 -1
  284. data/mod/basic_formats/set/self/01_head/javascript.rb +11 -7
  285. data/mod/basic_formats/set/self/head.rb +3 -2
  286. data/{db/migrate_core_cards/20170719163708_update_bootswatch_themes.rb → mod/bootstrap/db/migrate_cards/20170719163701_update_bootswatch_themes.rb} +1 -1
  287. data/{db/migrate_core_cards → mod/bootstrap/db/migrate_cards}/20170726111053_add_bootstrap_mixins.rb +0 -0
  288. data/{db/migrate_core_cards → mod/bootstrap/db/migrate_cards}/20170726145012_select2.rb +0 -0
  289. data/mod/bootstrap/file/cerulean_skin_image/image-icon.png +0 -0
  290. data/mod/bootstrap/file/cerulean_skin_image/image-large.png +0 -0
  291. data/mod/bootstrap/file/cerulean_skin_image/image-medium.png +0 -0
  292. data/mod/bootstrap/file/cerulean_skin_image/image-small.png +0 -0
  293. data/mod/bootstrap/file/cosmo_skin_image/image-icon.png +0 -0
  294. data/mod/bootstrap/file/cosmo_skin_image/image-large.png +0 -0
  295. data/mod/bootstrap/file/cosmo_skin_image/image-medium.png +0 -0
  296. data/mod/bootstrap/file/cosmo_skin_image/image-small.png +0 -0
  297. data/mod/bootstrap/file/cyborg_skin_image/image-icon.png +0 -0
  298. data/mod/bootstrap/file/cyborg_skin_image/image-large.png +0 -0
  299. data/mod/bootstrap/file/cyborg_skin_image/image-medium.png +0 -0
  300. data/mod/bootstrap/file/cyborg_skin_image/image-small.png +0 -0
  301. data/mod/bootstrap/file/darkly_skin_image/image-icon.png +0 -0
  302. data/mod/bootstrap/file/darkly_skin_image/image-large.png +0 -0
  303. data/mod/bootstrap/file/darkly_skin_image/image-medium.png +0 -0
  304. data/mod/bootstrap/file/darkly_skin_image/image-small.png +0 -0
  305. data/mod/bootstrap/file/flatly_skin_image/image-icon.png +0 -0
  306. data/mod/bootstrap/file/flatly_skin_image/image-large.png +0 -0
  307. data/mod/bootstrap/file/flatly_skin_image/image-medium.png +0 -0
  308. data/mod/bootstrap/file/flatly_skin_image/image-small.png +0 -0
  309. data/mod/bootstrap/file/journal_skin_image/image-icon.png +0 -0
  310. data/mod/bootstrap/file/journal_skin_image/image-large.png +0 -0
  311. data/mod/bootstrap/file/journal_skin_image/image-medium.png +0 -0
  312. data/mod/bootstrap/file/journal_skin_image/image-small.png +0 -0
  313. data/mod/bootstrap/file/litera_skin_image/image-icon.png +0 -0
  314. data/mod/bootstrap/file/litera_skin_image/image-large.png +0 -0
  315. data/mod/bootstrap/file/litera_skin_image/image-medium.png +0 -0
  316. data/mod/bootstrap/file/litera_skin_image/image-original.png +0 -0
  317. data/mod/bootstrap/file/litera_skin_image/image-small.png +0 -0
  318. data/mod/bootstrap/file/lumen_skin_image/image-icon.png +0 -0
  319. data/mod/bootstrap/file/lumen_skin_image/image-large.png +0 -0
  320. data/mod/bootstrap/file/lumen_skin_image/image-medium.png +0 -0
  321. data/mod/bootstrap/file/lumen_skin_image/image-small.png +0 -0
  322. data/mod/bootstrap/file/lux_skin_image/image-icon.png +0 -0
  323. data/mod/bootstrap/file/lux_skin_image/image-large.png +0 -0
  324. data/mod/bootstrap/file/lux_skin_image/image-medium.png +0 -0
  325. data/mod/bootstrap/file/lux_skin_image/image-original.png +0 -0
  326. data/mod/bootstrap/file/lux_skin_image/image-small.png +0 -0
  327. data/mod/bootstrap/file/materia_skin_image/image-icon.png +0 -0
  328. data/mod/bootstrap/file/materia_skin_image/image-large.png +0 -0
  329. data/mod/bootstrap/file/materia_skin_image/image-medium.png +0 -0
  330. data/mod/bootstrap/file/materia_skin_image/image-original.png +0 -0
  331. data/mod/bootstrap/file/materia_skin_image/image-small.png +0 -0
  332. data/mod/bootstrap/file/minty_skin_image/image-icon.png +0 -0
  333. data/mod/bootstrap/file/minty_skin_image/image-large.png +0 -0
  334. data/mod/bootstrap/file/minty_skin_image/image-medium.png +0 -0
  335. data/mod/bootstrap/file/minty_skin_image/image-original.png +0 -0
  336. data/mod/bootstrap/file/minty_skin_image/image-small.png +0 -0
  337. data/mod/bootstrap/file/pulse_skin_image/image-icon.png +0 -0
  338. data/mod/bootstrap/file/pulse_skin_image/image-large.png +0 -0
  339. data/mod/bootstrap/file/pulse_skin_image/image-medium.png +0 -0
  340. data/mod/bootstrap/file/pulse_skin_image/image-original.png +0 -0
  341. data/mod/bootstrap/file/pulse_skin_image/image-small.png +0 -0
  342. data/mod/bootstrap/file/sandstone_skin_image/image-icon.png +0 -0
  343. data/mod/bootstrap/file/sandstone_skin_image/image-large.png +0 -0
  344. data/mod/bootstrap/file/sandstone_skin_image/image-medium.png +0 -0
  345. data/mod/bootstrap/file/sandstone_skin_image/image-small.png +0 -0
  346. data/mod/bootstrap/file/simplex_skin_image/image-icon.png +0 -0
  347. data/mod/bootstrap/file/simplex_skin_image/image-large.png +0 -0
  348. data/mod/bootstrap/file/simplex_skin_image/image-medium.png +0 -0
  349. data/mod/bootstrap/file/simplex_skin_image/image-small.png +0 -0
  350. data/mod/bootstrap/file/slate_skin_image/image-icon.png +0 -0
  351. data/mod/bootstrap/file/slate_skin_image/image-large.png +0 -0
  352. data/mod/bootstrap/file/slate_skin_image/image-medium.png +0 -0
  353. data/mod/bootstrap/file/slate_skin_image/image-small.png +0 -0
  354. data/mod/bootstrap/file/solar_skin_image/image-icon.png +0 -0
  355. data/mod/bootstrap/file/solar_skin_image/image-large.png +0 -0
  356. data/mod/bootstrap/file/solar_skin_image/image-medium.png +0 -0
  357. data/mod/bootstrap/file/solar_skin_image/image-original.png +0 -0
  358. data/mod/bootstrap/file/solar_skin_image/image-small.png +0 -0
  359. data/mod/bootstrap/file/spacelab_skin_image/image-icon.png +0 -0
  360. data/mod/bootstrap/file/spacelab_skin_image/image-large.png +0 -0
  361. data/mod/bootstrap/file/spacelab_skin_image/image-medium.png +0 -0
  362. data/mod/bootstrap/file/spacelab_skin_image/image-small.png +0 -0
  363. data/mod/bootstrap/file/superhero_skin_image/image-icon.png +0 -0
  364. data/mod/bootstrap/file/superhero_skin_image/image-large.png +0 -0
  365. data/mod/bootstrap/file/superhero_skin_image/image-medium.png +0 -0
  366. data/mod/bootstrap/file/superhero_skin_image/image-small.png +0 -0
  367. data/mod/bootstrap/file/united_skin_image/image-icon.png +0 -0
  368. data/mod/bootstrap/file/united_skin_image/image-large.png +0 -0
  369. data/mod/bootstrap/file/united_skin_image/image-medium.png +0 -0
  370. data/mod/bootstrap/file/united_skin_image/image-small.png +0 -0
  371. data/mod/bootstrap/file/yeti_skin_image/image-icon.png +0 -0
  372. data/mod/bootstrap/file/yeti_skin_image/image-large.png +0 -0
  373. data/mod/bootstrap/file/yeti_skin_image/image-medium.png +0 -0
  374. data/mod/bootstrap/file/yeti_skin_image/image-small.png +0 -0
  375. data/mod/bootstrap/lib/bootstrap/basic_tags.rb +3 -3
  376. data/mod/bootstrap/lib/bootstrap/component.rb +124 -37
  377. data/mod/bootstrap/lib/bootstrap/component/carousel.rb +68 -0
  378. data/mod/bootstrap/lib/bootstrap/component/form.rb +49 -16
  379. data/mod/bootstrap/lib/bootstrap/component/horizontal_form.rb +35 -10
  380. data/mod/bootstrap/lib/bootstrap/component/layout.rb +10 -2
  381. data/mod/bootstrap/lib/bootstrap/component/panel.rb +4 -4
  382. data/mod/bootstrap/lib/bootstrap/old_component.rb +182 -0
  383. data/mod/bootstrap/lib/javascript/bootstrap_modal_wagn.js +1 -1
  384. data/mod/bootstrap/set/all/bootstrap/accordion.rb +10 -10
  385. data/mod/bootstrap/set/all/bootstrap/helper.rb +2 -0
  386. data/mod/bootstrap/set/all/bootstrap/tabs.rb +1 -1
  387. data/mod/bootstrap/spec/set/all/bootstrap/bootstrap_builder_spec.rb +24 -14
  388. data/mod/bootstrap/spec/set/all/bootstrap/bootstrap_spec.rb +2 -2
  389. data/mod/bootstrap/spec/set/all/bootstrap/carousel_spec.rb +65 -0
  390. data/mod/bootstrap/spec/set/all/bootstrap/form_spec.rb +4 -44
  391. data/mod/bootstrap/spec/set/all/bootstrap/horizontal_form_spec.rb +46 -0
  392. data/mod/bootstrap/spec/set/all/bootstrap/layout_spec.rb +85 -91
  393. data/mod/carrierwave/lib/carrier_wave/file_card_uploader.rb +7 -1
  394. data/mod/carrierwave/set/abstract/attachment/paths.rb +2 -2
  395. data/mod/carrierwave/set/abstract/attachment/upload_cache.rb +10 -3
  396. data/mod/carrierwave/set/type/file.rb +5 -5
  397. data/mod/carrierwave/set/type/image.rb +4 -4
  398. data/mod/carrierwave/spec/lib/carrier_wave/file_card_uploader_spec.rb +1 -0
  399. data/mod/carrierwave/spec/set/type/file/bucket_config_spec.rb +90 -0
  400. data/mod/carrierwave/spec/set/type/file_spec.rb +41 -99
  401. data/mod/core/chunk/link.rb +1 -2
  402. data/mod/core/chunk/nest.rb +1 -1
  403. data/mod/core/chunk/reference.rb +1 -1
  404. data/mod/core/chunk/view_stub.rb +8 -0
  405. data/mod/core/format/html_format.rb +9 -3
  406. data/mod/core/set/abstract/code_file.rb +1 -1
  407. data/mod/core/set/all/actify.rb +34 -0
  408. data/mod/core/set/all/assign_attributes.rb +13 -0
  409. data/mod/core/set/all/cache.rb +96 -0
  410. data/mod/core/set/all/collection.rb +16 -8
  411. data/mod/core/set/all/{event.rb → event_conditions.rb} +1 -1
  412. data/mod/core/set/all/fetch.rb +43 -315
  413. data/mod/core/set/all/fetch_helper.rb +130 -0
  414. data/mod/core/set/all/haml.rb +13 -0
  415. data/mod/core/set/all/i18n.rb +5 -4
  416. data/mod/core/set/all/mark.rb +66 -0
  417. data/mod/core/set/all/name.rb +35 -57
  418. data/mod/core/set/all/permissions.rb +6 -3
  419. data/mod/core/set/all/references.rb +5 -5
  420. data/mod/core/set/all/rename.rb +34 -0
  421. data/mod/core/set/all/rules.rb +1 -1
  422. data/mod/core/set/all/states.rb +12 -0
  423. data/mod/core/set/all/trash.rb +4 -3
  424. data/mod/core/set/all/type.rb +4 -0
  425. data/mod/core/set/all/update_read_rules.rb +1 -1
  426. data/mod/core/spec/set/all/actify_spec.rb +9 -8
  427. data/mod/core/spec/set/all/assign_attributes_spec.rb +33 -299
  428. data/mod/core/spec/set/all/collection_spec.rb +2 -2
  429. data/mod/core/spec/set/all/event_conditions_spec.rb +54 -0
  430. data/mod/core/spec/set/all/fetch_spec.rb +21 -29
  431. data/mod/core/spec/set/all/i18n_spec.rb +17 -0
  432. data/mod/core/spec/set/all/name_spec.rb +39 -3
  433. data/mod/core/spec/set/all/name_validations_spec.rb +21 -0
  434. data/mod/core/spec/set/all/permissions/reader_rules_spec.rb +166 -0
  435. data/mod/core/spec/set/all/permissions_spec.rb +25 -171
  436. data/mod/core/spec/set/all/rename_spec.rb +171 -0
  437. data/mod/core/spec/set/all/rules2_spec.rb +45 -49
  438. data/mod/core/spec/set/all/trash_spec.rb +84 -61
  439. data/mod/history/lib/card/act.rb +5 -4
  440. data/mod/history/lib/card/act/act_renderer.rb +55 -28
  441. data/mod/history/lib/card/act/act_renderer/absolute_act_renderer.rb +10 -2
  442. data/mod/history/lib/card/act/act_renderer/relative_act_renderer.rb +8 -1
  443. data/mod/history/lib/card/action.rb +35 -3
  444. data/mod/history/lib/card/action/action_renderer.rb +3 -3
  445. data/mod/history/lib/card/action/admin.rb +17 -0
  446. data/mod/history/lib/card/change.rb +1 -1
  447. data/mod/history/set/all/act_view.rb +16 -9
  448. data/mod/history/set/all/actions.rb +35 -9
  449. data/mod/history/set/all/content_history.rb +22 -14
  450. data/mod/history/set/all/history.rb +52 -19
  451. data/mod/machines/file/all_script_machine_output/file.js +34 -16
  452. data/mod/machines/file/script_html5shiv_printshiv_machine_output/file.js +2 -0
  453. data/mod/machines/lib/card/machine.rb +49 -0
  454. data/mod/machines/lib/javascript/decko.js.coffee +9 -0
  455. data/mod/machines/lib/javascript/decko_mod.js.coffee +3 -0
  456. data/mod/machines/lib/stylesheets/style_cards.scss +10 -14
  457. data/mod/machines/set/abstract/machine.rb +1 -1
  458. data/mod/machines/spec/set/abstract/machine_spec.rb +1 -1
  459. data/mod/machines/spec/set/type/scss_spec.rb +5 -7
  460. data/mod/machines/spec/shared_examples/machine.rb +3 -3
  461. data/mod/notifications/set/all/follow.rb +2 -2
  462. data/mod/notifications/set/all/send_notifications.rb +21 -15
  463. data/mod/notifications/set/right/bcc.rb +1 -1
  464. data/mod/notifications/set/right/follow.rb +1 -1
  465. data/mod/notifications/set/right/html_message.rb +6 -0
  466. data/mod/notifications/set/right/text_message.rb +6 -0
  467. data/mod/notifications/spec/set/all/notify_spec.rb +87 -166
  468. data/mod/notifications/spec/set/type/notification_template_spec.rb +3 -2
  469. data/mod/pointer/set/abstract/02_pointer.rb +4 -4
  470. data/mod/pointer/set/abstract/02_pointer/edit.rb +41 -14
  471. data/mod/pointer/spec/set/type/pointer_spec.rb +10 -9
  472. data/mod/prosemirror_editor/lib/javascript/script_prosemirror.js +305 -143
  473. data/mod/settings/set/abstract/permission.rb +1 -1
  474. data/mod/settings/set/right/structure.rb +0 -1
  475. data/mod/settings/set/self/recent_settings.rb +4 -0
  476. data/mod/standard/file/credit_image/image-icon.png +0 -0
  477. data/mod/standard/file/credit_image/image-large.png +0 -0
  478. data/mod/standard/file/credit_image/image-medium.png +0 -0
  479. data/mod/standard/file/credit_image/image-small.png +0 -0
  480. data/mod/standard/file/favicon/image-icon.png +0 -0
  481. data/mod/standard/file/favicon/image-large.png +0 -0
  482. data/mod/standard/file/favicon/image-medium.png +0 -0
  483. data/mod/standard/file/favicon/image-small.png +0 -0
  484. data/mod/standard/file/logo/image-icon.png +0 -0
  485. data/mod/standard/file/logo/image-large.png +0 -0
  486. data/mod/standard/file/logo/image-medium.png +0 -0
  487. data/mod/standard/file/logo/image-small.png +0 -0
  488. data/mod/standard/set/abstract/search.rb +1 -1
  489. data/mod/standard/set/all/error.rb +5 -5
  490. data/mod/standard/set/all/links.rb +1 -2
  491. data/mod/standard/set/all/list_changes.rb +1 -1
  492. data/mod/standard/set/all/rich_html/content.rb +20 -14
  493. data/mod/standard/set/all/rich_html/editing.rb +9 -7
  494. data/mod/standard/set/all/rich_html/form.rb +24 -27
  495. data/mod/standard/set/all/rich_html/header.rb +1 -1
  496. data/mod/standard/set/all/rich_html/new.rb +12 -10
  497. data/mod/standard/set/all/rich_html/toolbar.rb +2 -2
  498. data/mod/standard/set/all/rich_html/wrapper.rb +4 -4
  499. data/mod/standard/set/self/activity_toolbar_button.rb +1 -1
  500. data/mod/standard/set/self/recent.rb +4 -2
  501. data/mod/standard/set/type/basic.rb +2 -2
  502. data/mod/standard/set/type/cardtype.rb +11 -8
  503. data/mod/standard/set/type/list.rb +4 -4
  504. data/mod/standard/set/type/search_type.rb +4 -4
  505. data/mod/standard/set/type/session.rb +4 -0
  506. data/mod/standard/set/type/set.rb +1 -1
  507. data/mod/standard/set/type/toggle.rb +2 -2
  508. data/mod/standard/spec/chunk/link_spec.rb +1 -1
  509. data/mod/standard/spec/set/all/history_spec.rb +31 -12
  510. data/mod/standard/spec/set/all/rich_html/form_spec.rb +2 -2
  511. data/mod/standard/spec/set/all/rich_html/toolbar_spec.rb +1 -0
  512. data/mod/standard/spec/set/type/cardtype_spec.rb +44 -1
  513. data/mod/standard/spec/set/type/email_template/email_config_spec.rb +2 -1
  514. data/mod/standard/spec/set/type/list_spec.rb +8 -3
  515. data/mod/standard/spec/set/type/listed_by_spec.rb +0 -6
  516. data/spec/config/initializers/patches/active_job_spec.rb +7 -0
  517. data/spec/lib/card/action_spec.rb +3 -2
  518. data/spec/lib/card/codename_spec.rb +7 -2
  519. data/spec/lib/card/content_spec.rb +19 -1
  520. data/spec/lib/card/format/render_spec.rb +5 -5
  521. data/spec/lib/card/i18n_spec.rb +5 -20
  522. data/spec/lib/card/{loader → mod/loader}/mod_dirs.rb +0 -0
  523. data/spec/lib/card/mod/loader/set_loader_spec.rb +19 -0
  524. data/spec/lib/card/mod/loader/set_pattern_loader_spec.rb +19 -0
  525. data/spec/lib/card/name/fields_and_traits_spec.rb +18 -0
  526. data/spec/lib/card/name_spec.rb +3 -3
  527. data/spec/lib/card/query/sorting_spec.rb +1 -1
  528. data/spec/lib/card/query_spec.rb +16 -9
  529. data/spec/lib/card/reference_spec.rb +5 -6
  530. data/spec/lib/card/set_pattern_spec.rb +4 -0
  531. data/spec/lib/card/view_cache_spec.rb +17 -0
  532. data/spec/models/card/create_spec.rb +40 -22
  533. data/spec/models/card/trash_spec.rb +8 -70
  534. data/spec/models/card_spec.rb +16 -46
  535. data/spec/spec_helper.rb +1 -3
  536. data/spec/support/card_spec_helper.rb +5 -2
  537. data/spec/support/card_spec_loader.rb +34 -6
  538. data/spec/support/helper/event_helper.rb +1 -1
  539. data/spec/support/helper/save_helper.rb +4 -0
  540. data/spec/support/helper/set_helper.rb +1 -1
  541. data/spec/support/matchers/card_matchers.rb +136 -0
  542. data/spec/support/matchers/expectations.rb +5 -0
  543. data/spec/support/matchers/file_matchers.rb +71 -0
  544. data/spec/support/matchers/negated_matchers.rb +2 -0
  545. data/spec/support/test_mods/mod1/set/all/test_set.rb +3 -0
  546. data/spec/support/test_mods/mod2/set_pattern/test_pattern.rb +0 -0
  547. data/tmpsets/set/mod001-admin/self/admin.rb +130 -0
  548. data/tmpsets/set/mod001-admin/self/admin_info.rb +110 -0
  549. data/tmpsets/set/mod001-admin/self/version.rb +15 -0
  550. data/tmpsets/set/mod002-core/abstract/code_file.rb +79 -0
  551. data/tmpsets/set/mod002-core/all/actify.rb +101 -0
  552. data/tmpsets/set/mod002-core/all/active_card.rb +42 -0
  553. data/tmpsets/set/mod002-core/all/collection.rb +313 -0
  554. data/tmpsets/set/mod002-core/all/content.rb +69 -0
  555. data/tmpsets/set/mod002-core/all/debug.rb +30 -0
  556. data/tmpsets/set/mod002-core/all/erb.rb +18 -0
  557. data/tmpsets/set/mod002-core/all/event.rb +62 -0
  558. data/tmpsets/set/mod002-core/all/export.rb +49 -0
  559. data/tmpsets/set/mod002-core/all/fetch.rb +335 -0
  560. data/tmpsets/set/mod002-core/all/haml.rb +14 -0
  561. data/tmpsets/set/mod002-core/all/initialize.rb +42 -0
  562. data/tmpsets/set/mod002-core/all/location_history.rb +15 -0
  563. data/tmpsets/set/mod002-core/all/name.rb +282 -0
  564. data/tmpsets/set/mod002-core/all/name_validations.rb +65 -0
  565. data/tmpsets/set/mod002-core/all/pattern.rb +67 -0
  566. data/tmpsets/set/mod002-core/all/permissions.rb +319 -0
  567. data/tmpsets/set/mod002-core/all/phases.rb +23 -0
  568. data/tmpsets/set/mod002-core/all/references.rb +187 -0
  569. data/tmpsets/set/mod002-core/all/rules.rb +311 -0
  570. data/tmpsets/set/mod002-core/all/stages.rb +31 -0
  571. data/tmpsets/set/mod002-core/all/states.rb +31 -0
  572. data/tmpsets/set/mod002-core/all/subcards.rb +85 -0
  573. data/tmpsets/set/mod002-core/all/templating.rb +78 -0
  574. data/tmpsets/set/mod002-core/all/tracked_attributes.rb +78 -0
  575. data/tmpsets/set/mod002-core/all/trash.rb +113 -0
  576. data/tmpsets/set/mod002-core/all/type.rb +60 -0
  577. data/tmpsets/set/mod002-core/all/update_read_rules.rb +91 -0
  578. data/tmpsets/set/mod002-core/all/utils.rb +62 -0
  579. data/tmpsets/set/mod002-core/all/view_cache.rb +16 -0
  580. data/tmpsets/set/mod003-history/all/actions.rb +60 -0
  581. data/tmpsets/set/mod003-history/all/content_history.rb +168 -0
  582. data/tmpsets/set/mod003-history/all/history.rb +408 -0
  583. data/tmpsets/set/mod004-basic_formats/all/all_css.rb +45 -0
  584. data/tmpsets/set/mod004-basic_formats/all/all_csv.rb +56 -0
  585. data/tmpsets/set/mod004-basic_formats/all/all_js.rb +13 -0
  586. data/tmpsets/set/mod004-basic_formats/all/base.rb +155 -0
  587. data/tmpsets/set/mod004-basic_formats/all/file.rb +16 -0
  588. data/tmpsets/set/mod004-basic_formats/all/json.rb +76 -0
  589. data/tmpsets/set/mod004-basic_formats/all/rss.rb +77 -0
  590. data/tmpsets/set/mod004-basic_formats/all/text.rb +13 -0
  591. data/tmpsets/set/mod004-basic_formats/self/01_head/javascript.rb +79 -0
  592. data/tmpsets/set/mod004-basic_formats/self/head.rb +101 -0
  593. data/tmpsets/set/mod005-pointer/abstract/01_pointer.rb +193 -0
  594. data/tmpsets/set/mod005-pointer/abstract/01_pointer/edit.rb +224 -0
  595. data/tmpsets/set/mod005-pointer/abstract/code_pointer.rb +16 -0
  596. data/tmpsets/set/mod005-pointer/self/script_editors.rb +8 -0
  597. data/tmpsets/set/mod005-pointer/self/script_mods.rb +8 -0
  598. data/tmpsets/set/mod005-pointer/self/script_pointer_config.rb +10 -0
  599. data/tmpsets/set/mod005-pointer/type/pointer.rb +8 -0
  600. data/tmpsets/set/mod006-ace_editor/abstract/ace_editor.rb +18 -0
  601. data/tmpsets/set/mod006-ace_editor/self/script_ace.rb +10 -0
  602. data/tmpsets/set/mod006-ace_editor/self/script_ace_config.rb +12 -0
  603. data/tmpsets/set/mod007-prosemirror_editor/abstract/prosemirror_editor.rb +14 -0
  604. data/tmpsets/set/mod007-prosemirror_editor/self/script_prosemirror.rb +10 -0
  605. data/tmpsets/set/mod007-prosemirror_editor/self/script_prosemirror_config.rb +13 -0
  606. data/tmpsets/set/mod009-solid_cache/abstract/solid_cache.rb +106 -0
  607. data/tmpsets/set/mod009-solid_cache/all/solid_cache.rb +21 -0
  608. data/tmpsets/set/mod009-solid_cache/right/solid_cache.rb +39 -0
  609. data/tmpsets/set/mod010-basic_types/type/html.rb +26 -0
  610. data/tmpsets/set/mod010-basic_types/type/plain_text.rb +19 -0
  611. data/tmpsets/set/mod011-machines/abstract/machine.rb +277 -0
  612. data/tmpsets/set/mod011-machines/abstract/machine_input.rb +83 -0
  613. data/tmpsets/set/mod011-machines/abstract/script.rb +49 -0
  614. data/tmpsets/set/mod011-machines/all/reset_machines.rb +19 -0
  615. data/tmpsets/set/mod011-machines/right/machine_cache.rb +18 -0
  616. data/tmpsets/set/mod011-machines/right/machine_input.rb +10 -0
  617. data/tmpsets/set/mod011-machines/right/machine_output.rb +47 -0
  618. data/tmpsets/set/mod011-machines/self/script_card_menu.rb +8 -0
  619. data/tmpsets/set/mod011-machines/self/script_html5shiv_printshiv.rb +8 -0
  620. data/tmpsets/set/mod011-machines/self/script_jquery.rb +8 -0
  621. data/tmpsets/set/mod011-machines/self/script_jquery_helper.rb +16 -0
  622. data/tmpsets/set/mod011-machines/self/script_slot.rb +14 -0
  623. data/tmpsets/set/mod011-machines/self/style_bootstrap_compatible.rb +8 -0
  624. data/tmpsets/set/mod011-machines/self/style_cards.rb +8 -0
  625. data/tmpsets/set/mod011-machines/self/style_jquery_ui_smoothness.rb +8 -0
  626. data/tmpsets/set/mod011-machines/type/coffee_script.rb +43 -0
  627. data/tmpsets/set/mod011-machines/type/css.rb +67 -0
  628. data/tmpsets/set/mod011-machines/type/java_script.rb +36 -0
  629. data/tmpsets/set/mod011-machines/type/scss.rb +21 -0
  630. data/tmpsets/set/mod011-machines/type/skin.rb +13 -0
  631. data/tmpsets/set/mod012-settings/abstract/permission.rb +119 -0
  632. data/tmpsets/set/mod012-settings/right/add_help.rb +18 -0
  633. data/tmpsets/set/mod012-settings/right/comment.rb +8 -0
  634. data/tmpsets/set/mod012-settings/right/create.rb +8 -0
  635. data/tmpsets/set/mod012-settings/right/default.rb +14 -0
  636. data/tmpsets/set/mod012-settings/right/delete.rb +8 -0
  637. data/tmpsets/set/mod012-settings/right/help.rb +10 -0
  638. data/tmpsets/set/mod012-settings/right/read.rb +10 -0
  639. data/tmpsets/set/mod012-settings/right/script.rb +16 -0
  640. data/tmpsets/set/mod012-settings/right/structure.rb +68 -0
  641. data/tmpsets/set/mod012-settings/right/style.rb +17 -0
  642. data/tmpsets/set/mod012-settings/right/update.rb +8 -0
  643. data/tmpsets/set/mod012-settings/self/accountable.rb +10 -0
  644. data/tmpsets/set/mod012-settings/self/add_help.rb +9 -0
  645. data/tmpsets/set/mod012-settings/self/autoname.rb +9 -0
  646. data/tmpsets/set/mod012-settings/self/captcha.rb +9 -0
  647. data/tmpsets/set/mod012-settings/self/create.rb +9 -0
  648. data/tmpsets/set/mod012-settings/self/default.rb +9 -0
  649. data/tmpsets/set/mod012-settings/self/default_html_view.rb +9 -0
  650. data/tmpsets/set/mod012-settings/self/delete.rb +9 -0
  651. data/tmpsets/set/mod012-settings/self/follow_fields.rb +9 -0
  652. data/tmpsets/set/mod012-settings/self/help.rb +9 -0
  653. data/tmpsets/set/mod012-settings/self/input.rb +11 -0
  654. data/tmpsets/set/mod012-settings/self/layout.rb +9 -0
  655. data/tmpsets/set/mod012-settings/self/on_create.rb +9 -0
  656. data/tmpsets/set/mod012-settings/self/on_delete.rb +9 -0
  657. data/tmpsets/set/mod012-settings/self/on_update.rb +9 -0
  658. data/tmpsets/set/mod012-settings/self/options.rb +11 -0
  659. data/tmpsets/set/mod012-settings/self/options_label.rb +11 -0
  660. data/tmpsets/set/mod012-settings/self/read.rb +9 -0
  661. data/tmpsets/set/mod012-settings/self/recent_settings.rb +10 -0
  662. data/tmpsets/set/mod012-settings/self/script.rb +9 -0
  663. data/tmpsets/set/mod012-settings/self/structure.rb +9 -0
  664. data/tmpsets/set/mod012-settings/self/style.rb +9 -0
  665. data/tmpsets/set/mod012-settings/self/table_of_contents.rb +9 -0
  666. data/tmpsets/set/mod012-settings/self/thanks.rb +9 -0
  667. data/tmpsets/set/mod012-settings/self/update.rb +9 -0
  668. data/tmpsets/set/mod012-settings/type/setting.rb +111 -0
  669. data/tmpsets/set/mod013-email/all/email_html.rb +11 -0
  670. data/tmpsets/set/mod013-email/all/email_text.rb +12 -0
  671. data/tmpsets/set/mod013-email/all/follow.rb +253 -0
  672. data/tmpsets/set/mod013-email/all/notify.rb +271 -0
  673. data/tmpsets/set/mod013-email/all/observer.rb +33 -0
  674. data/tmpsets/set/mod013-email/right/bcc.rb +47 -0
  675. data/tmpsets/set/mod013-email/right/cc.rb +10 -0
  676. data/tmpsets/set/mod013-email/right/follow.rb +106 -0
  677. data/tmpsets/set/mod013-email/right/follow_fields.rb +10 -0
  678. data/tmpsets/set/mod013-email/right/followers.rb +41 -0
  679. data/tmpsets/set/mod013-email/right/following.rb +65 -0
  680. data/tmpsets/set/mod013-email/right/from.rb +10 -0
  681. data/tmpsets/set/mod013-email/right/html_message.rb +10 -0
  682. data/tmpsets/set/mod013-email/right/to.rb +10 -0
  683. data/tmpsets/set/mod013-email/self/always.rb +20 -0
  684. data/tmpsets/set/mod013-email/self/created.rb +26 -0
  685. data/tmpsets/set/mod013-email/self/edited.rb +27 -0
  686. data/tmpsets/set/mod013-email/self/follow.rb +9 -0
  687. data/tmpsets/set/mod013-email/self/follow_defaults.rb +75 -0
  688. data/tmpsets/set/mod013-email/self/never.rb +20 -0
  689. data/tmpsets/set/mod013-email/type/email_template.rb +133 -0
  690. data/tmpsets/set/mod013-email/type_plus_right/user/follow.rb +180 -0
  691. data/tmpsets/set/mod014-developer/all/event_viz.rb +59 -0
  692. data/tmpsets/set/mod014-developer/all/view_viz.rb +30 -0
  693. data/tmpsets/set/mod014-developer/right/debug.rb +96 -0
  694. data/tmpsets/set/mod015-carrierwave/abstract/attachment.rb +118 -0
  695. data/tmpsets/set/mod015-carrierwave/abstract/attachment/paths.rb +57 -0
  696. data/tmpsets/set/mod015-carrierwave/abstract/attachment/storage_type.rb +326 -0
  697. data/tmpsets/set/mod015-carrierwave/abstract/attachment/upload_cache.rb +84 -0
  698. data/tmpsets/set/mod015-carrierwave/all/file_utils.rb +35 -0
  699. data/tmpsets/set/mod015-carrierwave/self/admin.rb +30 -0
  700. data/tmpsets/set/mod015-carrierwave/type/file.rb +158 -0
  701. data/tmpsets/set/mod015-carrierwave/type/image.rb +97 -0
  702. data/tmpsets/set/mod016-standard/all/comment.rb +67 -0
  703. data/tmpsets/set/mod016-standard/all/error.rb +229 -0
  704. data/tmpsets/set/mod016-standard/all/links.rb +165 -0
  705. data/tmpsets/set/mod016-standard/all/list_changes.rb +53 -0
  706. data/tmpsets/set/mod016-standard/all/rich_html/content.rb +261 -0
  707. data/tmpsets/set/mod016-standard/all/rich_html/editing.rb +247 -0
  708. data/tmpsets/set/mod016-standard/all/rich_html/form.rb +298 -0
  709. data/tmpsets/set/mod016-standard/all/rich_html/header.rb +78 -0
  710. data/tmpsets/set/mod016-standard/all/rich_html/menu.rb +154 -0
  711. data/tmpsets/set/mod016-standard/all/rich_html/modal.rb +58 -0
  712. data/tmpsets/set/mod016-standard/all/rich_html/toolbar.rb +312 -0
  713. data/tmpsets/set/mod016-standard/all/rich_html/wrapper.rb +191 -0
  714. data/tmpsets/set/mod016-standard/right/discussion.rb +10 -0
  715. data/tmpsets/set/mod016-standard/right/when_created.rb +14 -0
  716. data/tmpsets/set/mod016-standard/right/when_last_edited.rb +14 -0
  717. data/tmpsets/set/mod016-standard/rstar/rules.rb +107 -0
  718. data/tmpsets/set/mod016-standard/rstar/rules_editor.rb +371 -0
  719. data/tmpsets/set/mod016-standard/self/alerts.rb +12 -0
  720. data/tmpsets/set/mod016-standard/self/codenames.rb +7 -0
  721. data/tmpsets/set/mod016-standard/self/foot.rb +15 -0
  722. data/tmpsets/set/mod016-standard/self/navbox.rb +36 -0
  723. data/tmpsets/set/mod016-standard/self/now.rb +14 -0
  724. data/tmpsets/set/mod016-standard/self/recent.rb +34 -0
  725. data/tmpsets/set/mod016-standard/self/search.rb +71 -0
  726. data/tmpsets/set/mod016-standard/type/basic.rb +59 -0
  727. data/tmpsets/set/mod016-standard/type/cardtype.rb +81 -0
  728. data/tmpsets/set/mod016-standard/type/date.rb +15 -0
  729. data/tmpsets/set/mod016-standard/type/layout_type.rb +17 -0
  730. data/tmpsets/set/mod016-standard/type/list.rb +120 -0
  731. data/tmpsets/set/mod016-standard/type/listed_by.rb +85 -0
  732. data/tmpsets/set/mod016-standard/type/number.rb +25 -0
  733. data/tmpsets/set/mod016-standard/type/phrase.rb +10 -0
  734. data/tmpsets/set/mod016-standard/type/search_type.rb +339 -0
  735. data/tmpsets/set/mod016-standard/type/session.rb +42 -0
  736. data/tmpsets/set/mod016-standard/type/set.rb +371 -0
  737. data/tmpsets/set/mod016-standard/type/toggle.rb +19 -0
  738. data/tmpsets/set/mod016-standard/type/uri.rb +18 -0
  739. data/tmpsets/set/mod017-account/all/account.rb +72 -0
  740. data/tmpsets/set/mod017-account/right/account.rb +196 -0
  741. data/tmpsets/set/mod017-account/right/email.rb +61 -0
  742. data/tmpsets/set/mod017-account/right/password.rb +54 -0
  743. data/tmpsets/set/mod017-account/right/salt.rb +12 -0
  744. data/tmpsets/set/mod017-account/right/status.rb +16 -0
  745. data/tmpsets/set/mod017-account/right/token.rb +57 -0
  746. data/tmpsets/set/mod017-account/self/account_links.rb +72 -0
  747. data/tmpsets/set/mod017-account/self/signin.rb +165 -0
  748. data/tmpsets/set/mod017-account/type/signup.rb +175 -0
  749. data/tmpsets/set/mod017-account/type/user.rb +88 -0
  750. data/tmpsets/set/mod018-bootstrap/all/bootstrap/form.rb +42 -0
  751. data/tmpsets/set/mod018-bootstrap/all/bootstrap/helper.rb +236 -0
  752. data/tmpsets/set/mod018-bootstrap/all/bootstrap/table.rb +68 -0
  753. data/tmpsets/set/mod018-bootstrap/all/bootstrap/tabs.rb +88 -0
  754. data/tmpsets/set/mod018-bootstrap/all/bootstrap/wrapper.rb +18 -0
  755. data/tmpsets/set/mod018-bootstrap/all/rich_bootstrap.rb +13 -0
  756. data/tmpsets/set/mod018-bootstrap/self/bootstrap_cards.rb +8 -0
  757. data/tmpsets/set/mod018-bootstrap/self/bootstrap_js.rb +12 -0
  758. data/tmpsets/set/mod018-bootstrap/self/bootswatch_shared.rb +47 -0
  759. data/tmpsets/set/mod018-bootstrap/self/script_mods.rb +7 -0
  760. data/tmpsets/set/mod018-bootstrap/self/smartmenu_css.rb +12 -0
  761. data/tmpsets/set/mod018-bootstrap/self/smartmenu_js.rb +12 -0
  762. data/tmpsets/set_pattern/100-all.rb +24 -0
  763. data/tmpsets/set_pattern/101-all_plus.rb +26 -0
  764. data/tmpsets/set_pattern/102-type.rb +36 -0
  765. data/tmpsets/set_pattern/103-star.rb +28 -0
  766. data/tmpsets/set_pattern/104-rstar.rb +30 -0
  767. data/tmpsets/set_pattern/105-right.rb +33 -0
  768. data/tmpsets/set_pattern/106-type_plus_right.rb +39 -0
  769. data/tmpsets/set_pattern/107-self.rb +32 -0
  770. metadata +494 -167
  771. data/README_Developers.rdoc +0 -100
  772. data/lib/card/format/names.rb +0 -43
  773. data/lib/card/format/nest/view.rb +0 -65
  774. data/lib/card/view/fetch.rb +0 -121
  775. data/mod/core/spec/set/all/attribute_tracking_spec.rb +0 -21
  776. data/spec/models/card/cardtype_spec.rb +0 -189
  777. data/spec/models/card/type_transition_spec.rb +0 -132
  778. data/spec/models/card/validation_spec.rb +0 -34
  779. data/spec/support/matchers.rb +0 -74
@@ -106,7 +106,7 @@ format :html do
106
106
  def core_inherit_for_content_for_self_set set_context
107
107
  task = card.tag.codename
108
108
  ancestor = Card[set_context.trunk_name.trunk_name]
109
- links = ancestor.who_can(task.to_sym).map do |card_id|
109
+ links = ancestor.who_can(task).map do |card_id|
110
110
  link_to_card card_id, nil, target: args[:target]
111
111
  end * ", "
112
112
  "Inherit ( #{links} )"
@@ -3,7 +3,6 @@ format :rss do
3
3
  [card]
4
4
  end
5
5
  end
6
-
7
6
  format :html do
8
7
  include AddHelp::HtmlFormat
9
8
  end
@@ -1,3 +1,7 @@
1
+ def history?
2
+ false
3
+ end
4
+
1
5
  def followable?
2
6
  false
3
7
  end
@@ -97,7 +97,7 @@ format :csv do
97
97
 
98
98
  view :card_list do
99
99
  items = super()
100
- if @depth.zero?
100
+ if depth.zero?
101
101
  title_row + items
102
102
  else
103
103
  items
@@ -43,7 +43,7 @@ format do
43
43
  end
44
44
 
45
45
  view :too_slow, perms: :none, closed: true do
46
- %( Timed out! #{showname} took too long to load. )
46
+ %( Timed out! #{title_in_context} took too long to load. )
47
47
  end
48
48
  end
49
49
 
@@ -99,19 +99,19 @@ format :html do
99
99
  view :missing do
100
100
  return "" unless card.ok? :create # should this be moved into ok_view?
101
101
  path_opts = voo.type ? { card: { type: voo.type } } : {}
102
- link_text = "Add #{fancy_title _render_title}"
102
+ link_text = "Add #{_render_title}"
103
103
  klass = "slotter missing-#{@denied_view || voo.home_view}"
104
104
  wrap { link_to_view :new, link_text, path: path_opts, class: klass }
105
105
  end
106
106
 
107
107
  view :closed_missing, perms: :none do
108
- wrap_with :span, showname, class: "faint"
108
+ wrap_with :span, title_in_context, class: "faint"
109
109
  end
110
110
 
111
- view :conflict, error_code: 409 do
111
+ view :conflict, error_code: 409, cache: :never do
112
112
  actor_link = link_to_card card.last_action.act.actor.cardname
113
113
  expanded_act = wrap do
114
- _render_act_expanded act: card.last_action.act, current_rev_nr: 0
114
+ _render_act act: card.last_action.act, act_seq: 0
115
115
  end
116
116
  class_up "card-slot", "error-view"
117
117
  wrap do # ENGLISH below
@@ -53,9 +53,8 @@ format do
53
53
  def link_to_card cardish, text=nil, opts={}
54
54
  opts[:path] ||= {}
55
55
  name = opts[:path][:mark] = Card::Name.cardish cardish
56
- text ||= name.to_name.to_show @context_names
57
56
  add_known_or_wanted_class opts, name
58
- link_to text, opts
57
+ link_to (text || name), opts
59
58
  end
60
59
 
61
60
  def add_known_or_wanted_class opts, name
@@ -16,7 +16,7 @@ end
16
16
  event :trunk_cardtype_of_a_list_relation_changed, :finalize,
17
17
  changed: :type, on: :update,
18
18
  when: proc { Codename[:list] } do
19
- type_key_was = (tk = Card.quick_fetch(type_id_was)) && tk.key
19
+ type_key_was = (tk = Card.quick_fetch(type_id_before_last_save)) && tk.key
20
20
 
21
21
  list_fields.each do |card|
22
22
  card.update_listed_by_cache_for card.item_keys, type_key: type_key_was
@@ -89,7 +89,7 @@ format :html do
89
89
  end
90
90
 
91
91
  view :title_link do |args|
92
- title_text = args[:title_ready] || showname(voo.title)
92
+ title_text = args[:title_ready] || pov_name(voo.title)
93
93
  link_to_card card.cardname, title_text
94
94
  end
95
95
 
@@ -119,12 +119,14 @@ format :html do
119
119
  end
120
120
 
121
121
  view :closed do
122
- voo.show :toggle
123
- voo.hide! :toolbar
124
- class_up "d0-card-body", "closed-content"
125
- @content_body = true
126
- @toggle_mode = :close
127
- frame { _optional_render :closed_content }
122
+ with_nest_mode :closed do
123
+ voo.show :toggle
124
+ voo.hide! :toolbar
125
+ class_up "d0-card-body", "closed-content"
126
+ @content_body = true
127
+ @toggle_mode = :close
128
+ frame { _optional_render :closed_content }
129
+ end
128
130
  end
129
131
 
130
132
  view :change do
@@ -171,15 +173,20 @@ format :html do
171
173
 
172
174
  def related_options args
173
175
  options = (args[:related] || params[:related])
174
- options = { name: options } if options.is_a? String
175
- return unless options.is_a? Hash
176
- options.symbolize_keys
176
+ case options
177
+ when String
178
+ { name: options }
179
+ when Hash
180
+ options.symbolize_keys
181
+ when ActionController::Parameters
182
+ options.to_unsafe_h.symbolize_keys
183
+ end
177
184
  end
178
185
 
179
186
  def related_card_from_options options
180
187
  related_card = options.delete :card
181
188
  return related_card if related_card
182
- related_name = options.delete(:name).to_name.to_absolute_name card.cardname
189
+ related_name = options.delete(:name).to_name.absolute_name card.cardname
183
190
  Card.fetch related_name, new: {}
184
191
  end
185
192
 
@@ -220,11 +227,9 @@ format :html do
220
227
  )
221
228
  end
222
229
 
223
- private
224
-
225
230
  def fancy_title title=nil
226
231
  wrap_with :span, class: classy("card-title") do
227
- showname(title).to_name.parts.join fancy_joint
232
+ title.to_name.parts.join fancy_joint
228
233
  end
229
234
  end
230
235
 
@@ -232,3 +237,4 @@ format :html do
232
237
  wrap_with :span, "+", classy("joint")
233
238
  end
234
239
  end
240
+
@@ -1,13 +1,15 @@
1
1
  format :html do
2
2
  ###---( TOP_LEVEL (used by menu) NEW / EDIT VIEWS )
3
3
  view :edit, perms: :update, tags: :unknown_ok, cache: :never do
4
- voo.show :toolbar, :help
5
- frame_and_form :update, edit_form_opts do
6
- [
7
- edit_view_hidden,
8
- _optional_render_content_formgroup,
9
- _optional_render_edit_buttons
10
- ]
4
+ with_nest_mode :edit do
5
+ voo.show :toolbar, :help
6
+ frame_and_form :update, edit_form_opts do
7
+ [
8
+ edit_view_hidden,
9
+ _optional_render_content_formgroup,
10
+ _optional_render_edit_buttons
11
+ ]
12
+ end
11
13
  end
12
14
  end
13
15
 
@@ -20,7 +20,8 @@ format :html do
20
20
 
21
21
  view :edit_in_form, cache: :never, perms: :update, tags: :unknown_ok do
22
22
  @form = form_for_multi
23
- multi_edit_slot
23
+ @within_multi_edit = true
24
+ edit_slot
24
25
  end
25
26
 
26
27
  def wrap_type_formgroup
@@ -78,40 +79,36 @@ format :html do
78
79
  end
79
80
 
80
81
  def edit_slot
81
- if inline_nests_editor?
82
- _render_core
83
- elsif multi_edit?
84
- process_nested_fields
85
- else
86
- single_card_edit_slot
82
+ case
83
+ when inline_nests_editor? then _render_core
84
+ when multi_card_editor? then multi_card_edit_fields
85
+ when in_multi_card_editor? then editor_in_multi_card
86
+ else single_card_edit_field
87
87
  end
88
88
  end
89
89
 
90
- def multi_edit_slot
91
- if inline_nests_editor?
92
- _render_core
93
- elsif multi_edit?
94
- process_nested_fields
95
- else
96
- multi_card_edit_slot
97
- end
90
+ # test: render nests within a normal rendering of the card's content? (as opposed to a standardized form)
91
+ def inline_nests_editor?
92
+ voo.editor == :inline_nests
98
93
  end
99
94
 
100
- def multi_edit?
101
- nests_editor? || # editor configured in voo
95
+ # test: are we opening a new multi-card form?
96
+ def multi_card_editor?
97
+ nests_editor? || # editor configured in voo
102
98
  voo.structure || voo.edit_structure || # structure configured in voo
103
99
  card.structure # structure in card rule
104
100
  end
105
101
 
106
- def inline_nests_editor?
107
- voo.editor == :inline_nests
102
+ # test: are we already within a multi-card form?
103
+ def in_multi_card_editor?
104
+ @within_multi_edit.present?
108
105
  end
109
106
 
110
107
  def nests_editor?
111
108
  voo.editor == :nests
112
109
  end
113
110
 
114
- def single_card_edit_slot
111
+ def single_card_edit_field
115
112
  if voo.show?(:type_formgroup) || voo.show?(:name_formgroup)
116
113
  # display content field in formgroup for consistency with other fields
117
114
  formgroup("", editor: :content, help: false) { content_field }
@@ -120,15 +117,15 @@ format :html do
120
117
  end
121
118
  end
122
119
 
123
- def multi_card_edit_slot
120
+ def editor_in_multi_card
124
121
  add_junction_class
125
- formgroup fancy_title(voo.title),
122
+ formgroup render_title,
126
123
  editor: "content", help: true, class: classy("card-editor") do
127
124
  [content_field, (form.hidden_field(:type_id) if card.new_card?)]
128
125
  end
129
126
  end
130
127
 
131
- def process_nested_fields
128
+ def multi_card_edit_fields
132
129
  nested_fields_for_edit.map do |name, options|
133
130
  options[:hide] = [options[:hide], :toolbar].compact
134
131
  nest name, options
@@ -158,7 +155,7 @@ format :html do
158
155
  # then the subfield cards should be created on the new card not the existing
159
156
  # card that build the form
160
157
  def name_in_form
161
- relative_names_in_form? ? card.relative_name : card.contextual_name
158
+ relative_names_in_form? ? card.relative_name : card.raw_name
162
159
  end
163
160
 
164
161
  def form
@@ -168,9 +165,9 @@ format :html do
168
165
  def card_form action, opts={}
169
166
  @form_root = true
170
167
  success = opts.delete(:success)
171
- form_for card, card_form_opts(action, opts) do |form|
172
- @form = form
173
- success_tags(success) + output(yield(form))
168
+ form_for card, card_form_opts(action, opts) do |cform|
169
+ @form = cform
170
+ success_tags(success) + output(yield(cform))
174
171
  end
175
172
  end
176
173
 
@@ -1,7 +1,7 @@
1
1
  format :html do
2
2
  view :header do
3
3
  voo.hide :toggle, :toolbar
4
- main_header + _optional_render_toolbar
4
+ main_header + _optional_render_toolbar.to_s.html_safe
5
5
  end
6
6
 
7
7
  def main_header
@@ -1,15 +1,17 @@
1
1
  format :html do
2
2
  view :new, perms: :create, tags: :unknown_ok, cache: :never do
3
- voo.title ||= new_view_title if new_name_prompt?
4
- voo.show :help
5
- frame_and_form :create, new_form_opts do
6
- [
7
- new_view_hidden,
8
- new_view_name,
9
- new_view_type,
10
- _optional_render_content_formgroup,
11
- _optional_render_new_buttons
12
- ]
3
+ with_nest_mode :edit do
4
+ voo.title ||= new_view_title if new_name_prompt?
5
+ voo.show :help
6
+ frame_and_form :create, new_form_opts do
7
+ [
8
+ new_view_hidden,
9
+ new_view_name,
10
+ new_view_type,
11
+ _optional_render_content_formgroup,
12
+ _optional_render_new_buttons
13
+ ]
14
+ end
13
15
  end
14
16
  end
15
17
 
@@ -156,7 +156,7 @@ format :html do
156
156
  def related_codename related_card
157
157
  return nil unless related_card
158
158
  tag_card = Card.quick_fetch related_card.cardname.right
159
- tag_card && tag_card.codename && tag_card.codename.to_sym
159
+ tag_card && tag_card.codename
160
160
  end
161
161
 
162
162
  def close_link extra_class, opts={}
@@ -165,7 +165,7 @@ format :html do
165
165
  wrap_with :div, class: css_classes do
166
166
  [
167
167
  # toolbar_pin_button,
168
- link_to_view(voo.home_view, icon_tag(:remove),
168
+ link_to_view(voo.home_view || :open, icon_tag(:remove),
169
169
  title: "cancel",
170
170
  class: "btn-toolbar-control toolbar-close ml-3 p-0")
171
171
  ]
@@ -53,15 +53,15 @@ format :html do
53
53
  end
54
54
 
55
55
  def debug_slot_wrap
56
- pre = "<!--\n\n#{' ' * @depth}"
56
+ pre = "<!--\n\n#{' ' * depth}"
57
57
  post = " SLOT: #{h card.name}\n\n-->"
58
58
  [pre, "BEGIN", post, yield, pre, "END", post].join
59
59
  end
60
60
 
61
61
  def wrap_classes slot
62
- list = ["card-slot", "#{@current_view}-view", card.safe_set_keys]
63
- list.push "STRUCTURE-#{voo.structure.to_name.key}" if voo.structure
64
- list.shift unless slot
62
+ list = slot ? ["card-slot"] : []
63
+ list += ["#{@current_view}-view", card.safe_set_keys]
64
+ list << "STRUCTURE-#{voo.structure.to_name.key}" if voo.structure
65
65
  classy list
66
66
  end
67
67
 
@@ -1,7 +1,7 @@
1
1
  include_set Abstract::ToolbarSplitButton
2
2
 
3
3
  format :html do
4
- view :core do
4
+ view :core, cache: :never do
5
5
  subject.toolbar_split_button "activity", view: :history, icon: :history do
6
6
  {
7
7
  history: (subject._render_history_link if card.history?),
@@ -22,13 +22,15 @@ format :html do
22
22
  view :recent_acts, cache: :never do
23
23
  acts = Act.all_viewable.order(id: :desc)
24
24
  .page(page_from_params).per(ACTS_PER_PAGE)
25
- render_act_list acts: acts, act_context: :absolute
25
+ act_accordion acts do |act, act_seq|
26
+ act.card.format(:html).render_act act: act, act_seq: act_seq, act_context: :absolute
27
+ end
26
28
  end
27
29
 
28
30
  def act_paging
29
31
  acts = Act.all_viewable.order(id: :desc).page(page_from_params).per(ACTS_PER_PAGE)
30
32
  wrap_with :span, class: "slotter" do
31
- paginate acts, remote: true, theme: "twitter-bootstrap-3"
33
+ paginate acts, remote: true, theme: "twitter-bootstrap-4"
32
34
  end
33
35
  end
34
36
  end
@@ -5,7 +5,7 @@ format :html do
5
5
  end
6
6
 
7
7
  def table_of_contents content
8
- return if @mode == :closed || !content.present?
8
+ return if nest_mode == :closed || !content.present?
9
9
  min = card.rule(:table_of_contents).to_i
10
10
  # warn "table_of #{name}, #{min}"
11
11
  return unless min && min > 0
@@ -33,7 +33,7 @@ format :html do
33
33
 
34
34
  if toc.flatten.length >= min
35
35
  content.replace(
36
- %( <div class="table-of-contents"> <h5>Table of Contents</h5> ) +
36
+ %( <div class="table-of-contents"> <h5>#{tr(:toc)}</h5> ) +
37
37
  make_table_of_contents_list(toc) + "</div>" + content
38
38
  )
39
39
  end
@@ -12,17 +12,14 @@ format :html do
12
12
 
13
13
  view :type_formgroup do |args|
14
14
  if card.cards_of_type_exist?
15
- wrap_with :div do
16
- "Sorry, this card must remain a Cardtype so long as " \
17
- "there are <strong>#{card.name}</strong> cards."
18
- end
15
+ wrap_with :div, tr(:cards_exist, cardname: card.name)
19
16
  else
20
17
  super args
21
18
  end
22
19
  end
23
20
 
24
21
  view :add_link do |args|
25
- voo.title ||= "Add #{card.name}"
22
+ voo.title ||= tr(:add_card, cardname: card.name)
26
23
  title = _render_title args
27
24
  link_to title, path: _render_add_path(args), class: args[:css_class]
28
25
  end
@@ -41,8 +38,8 @@ format :html do
41
38
  if voo.params
42
39
  context = ((@parent && @parent.card) || card).name
43
40
  Rack::Utils.parse_nested_query(voo.params).each do |key, value|
44
- value = value.to_name.to_absolute(context) if value
45
- key = key.to_name.to_absolute(context)
41
+ value = value.to_name.absolute(context) if value
42
+ key = key.to_name.absolute(context)
46
43
  path_args[key] = value
47
44
  end
48
45
  end
@@ -76,6 +73,12 @@ end
76
73
 
77
74
  event :check_for_cards_of_type, after: :validate_delete do
78
75
  if cards_of_type_exist?
79
- errors.add :cardtype, "can't alter this type; #{name} cards still exist"
76
+ errors.add :cardtype, tr(:cards_exist, name: name)
77
+ end
78
+ end
79
+
80
+ event :check_for_cards_of_type_when_type_changed, :validate, changed: :type do
81
+ if cards_of_type_exist?
82
+ errors.add :cardtype, tr(:error_cant_alter, name: name)
80
83
  end
81
84
  end