card 1.101.5 → 1.101.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (471) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +4 -4
  3. data/VERSION +1 -1
  4. data/config/locales/en.yml +1 -0
  5. data/db/migrate/20200805200729_add_unique_pair_indeces.rb +35 -1
  6. data/db/migrate_core_cards/20190829093961_cardtype_grouping.rb +7 -7
  7. data/db/test_seed.rb +2 -2
  8. data/lib/card/content/diff/result.rb +0 -125
  9. data/lib/card/content/diff/summary.rb +136 -0
  10. data/lib/card/mailer.rb +15 -12
  11. data/lib/card/query/act_query.rb +2 -2
  12. data/lib/card/query/action_query.rb +1 -1
  13. data/lib/card/query/card_query/conjunctions.rb +1 -1
  14. data/lib/card/query/card_query/reference_attributes.rb +1 -1
  15. data/lib/card/query/card_query/relational_attributes.rb +2 -2
  16. data/lib/card/set/advanced_api.rb +1 -2
  17. data/lib/card/set/event.rb +8 -4
  18. data/lib/cardio/mod.rb +1 -1
  19. data/mod/core/set/all/content.rb +0 -69
  20. data/mod/core/set/all/debug.rb +7 -10
  21. data/mod/core/set/all/initialize.rb +4 -0
  22. data/mod/core/set/all/trash.rb +4 -0
  23. data/mod/{admin → core}/set/self/trash.rb +0 -0
  24. data/mod/core/set/self/version.rb +0 -4
  25. data/mod/{admin → core}/spec/set/self/trash_spec.rb +0 -0
  26. data/tmpsets/set/mod001-admin/self/admin.rb +6 -3
  27. data/tmpsets/set/mod001-admin/self/admin_info.rb +3 -8
  28. data/tmpsets/set/mod002-core/all/abort.rb +8 -8
  29. data/tmpsets/set/mod002-core/all/assign_attributes.rb +12 -28
  30. data/tmpsets/set/mod002-core/all/autoname.rb +26 -0
  31. data/tmpsets/set/mod002-core/all/codename.rb +3 -2
  32. data/tmpsets/set/mod002-core/all/collection.rb +4 -6
  33. data/tmpsets/set/mod002-core/all/content.rb +55 -99
  34. data/tmpsets/set/mod002-core/all/contextual_content.rb +2 -4
  35. data/tmpsets/set/mod002-core/all/debug.rb +8 -10
  36. data/tmpsets/set/mod002-core/all/initialize.rb +13 -9
  37. data/tmpsets/set/mod002-core/all/name_events.rb +78 -58
  38. data/tmpsets/set/mod002-core/all/reference_events.rb +78 -0
  39. data/tmpsets/set/mod002-core/all/states.rb +4 -4
  40. data/tmpsets/set/mod002-core/all/subcards.rb +1 -101
  41. data/tmpsets/set/mod002-core/all/trash.rb +20 -14
  42. data/tmpsets/set/mod002-core/all/type.rb +11 -11
  43. data/tmpsets/set/mod002-core/all/utils.rb +4 -1
  44. data/tmpsets/set/mod002-core/right/autoname.rb +12 -0
  45. data/tmpsets/set/{mod003-settings → mod002-core}/self/autoname.rb +2 -2
  46. data/tmpsets/set/{mod001-admin → mod002-core}/self/trash.rb +5 -4
  47. data/tmpsets/set/mod002-core/self/version.rb +0 -4
  48. data/tmpsets/set/mod002-core/type/cardtype.rb +37 -0
  49. data/tmpsets/set/{mod005-card-mod-email → mod004-card-mod-email}/abstract/email_field.rb +1 -2
  50. data/tmpsets/set/{mod005-card-mod-email → mod004-card-mod-email}/abstract/test_context.rb +1 -0
  51. data/tmpsets/set/{mod005-card-mod-email → mod004-card-mod-email}/all/email_html.rb +0 -0
  52. data/tmpsets/set/{mod005-card-mod-email → mod004-card-mod-email}/all/email_text.rb +0 -1
  53. data/tmpsets/set/{mod005-card-mod-email → mod004-card-mod-email}/right/bcc.rb +0 -0
  54. data/tmpsets/set/{mod005-card-mod-email → mod004-card-mod-email}/right/cc.rb +0 -0
  55. data/tmpsets/set/{mod005-card-mod-email → mod004-card-mod-email}/right/from.rb +0 -0
  56. data/tmpsets/set/{mod005-card-mod-email → mod004-card-mod-email}/right/html_message.rb +1 -0
  57. data/tmpsets/set/{mod005-card-mod-email → mod004-card-mod-email}/right/subject.rb +0 -0
  58. data/tmpsets/set/{mod005-card-mod-email → mod004-card-mod-email}/right/text_message.rb +0 -0
  59. data/tmpsets/set/{mod005-card-mod-email → mod004-card-mod-email}/right/to.rb +0 -0
  60. data/tmpsets/set/{mod005-card-mod-email → mod004-card-mod-email}/type/email_template.rb +4 -3
  61. data/tmpsets/set/{mod005-card-mod-email → mod004-card-mod-email}/type/email_template/email_config.rb +3 -1
  62. data/tmpsets/set/{mod006-card-mod-collection → mod005-card-mod-collection}/abstract/items.rb +5 -1
  63. data/tmpsets/set/{mod006-card-mod-collection → mod005-card-mod-collection}/abstract/paging.rb +1 -0
  64. data/tmpsets/set/{mod006-card-mod-collection → mod005-card-mod-collection}/abstract/paging/paging_links.rb +1 -0
  65. data/tmpsets/set/{mod006-card-mod-collection → mod005-card-mod-collection}/abstract/paging/paging_views.rb +1 -0
  66. data/tmpsets/set/{mod006-card-mod-collection → mod005-card-mod-collection}/all/extended.rb +2 -1
  67. data/tmpsets/set/{mod006-card-mod-collection → mod005-card-mod-collection}/all/item.rb +7 -1
  68. data/tmpsets/set/{mod007-card-mod-content → mod006-card-mod-content}/abstract/code_file.rb +0 -1
  69. data/tmpsets/set/{mod007-card-mod-content → mod006-card-mod-content}/abstract/haml_file.rb +0 -1
  70. data/tmpsets/set/{mod007-card-mod-content → mod006-card-mod-content}/abstract/lock.rb +1 -0
  71. data/tmpsets/set/{mod007-card-mod-content → mod006-card-mod-content}/abstract/templated_nests.rb +0 -0
  72. data/tmpsets/set/{mod007-card-mod-content → mod006-card-mod-content}/abstract/vendor_code_file.rb +0 -0
  73. data/tmpsets/set/{mod007-card-mod-content → mod006-card-mod-content}/all/chunk.rb +8 -8
  74. data/tmpsets/set/{mod007-card-mod-content → mod006-card-mod-content}/all/templating.rb +1 -1
  75. data/tmpsets/set/{mod007-card-mod-content → mod006-card-mod-content}/right/default.rb +0 -0
  76. data/tmpsets/set/{mod007-card-mod-content → mod006-card-mod-content}/right/structure.rb +5 -1
  77. data/tmpsets/set/{mod007-card-mod-content → mod006-card-mod-content}/self/default.rb +0 -0
  78. data/tmpsets/set/{mod007-card-mod-content → mod006-card-mod-content}/self/structure.rb +0 -0
  79. data/tmpsets/set/{mod008-card-mod-format → mod007-card-mod-format}/all/active_card.rb +1 -2
  80. data/tmpsets/set/{mod008-card-mod-format → mod007-card-mod-format}/all/base.rb +3 -1
  81. data/tmpsets/set/{mod008-card-mod-format → mod007-card-mod-format}/all/css.rb +0 -1
  82. data/tmpsets/set/{mod008-card-mod-format → mod007-card-mod-format}/all/csv.rb +2 -1
  83. data/tmpsets/set/mod007-card-mod-format/all/demo.rb +45 -0
  84. data/tmpsets/set/{mod008-card-mod-format → mod007-card-mod-format}/all/error.rb +12 -19
  85. data/tmpsets/set/{mod008-card-mod-format → mod007-card-mod-format}/all/export.rb +2 -0
  86. data/tmpsets/set/{mod008-card-mod-format → mod007-card-mod-format}/all/file.rb +0 -0
  87. data/tmpsets/set/{mod008-card-mod-format → mod007-card-mod-format}/all/frame.rb +6 -10
  88. data/tmpsets/set/{mod008-card-mod-format → mod007-card-mod-format}/all/haml.rb +0 -0
  89. data/tmpsets/set/{mod008-card-mod-format → mod007-card-mod-format}/all/head.rb +5 -1
  90. data/tmpsets/set/{mod008-card-mod-format → mod007-card-mod-format}/all/header.rb +0 -0
  91. data/tmpsets/set/{mod008-card-mod-format → mod007-card-mod-format}/all/html_content.rb +2 -1
  92. data/tmpsets/set/{mod008-card-mod-format → mod007-card-mod-format}/all/html_error.rb +25 -10
  93. data/tmpsets/set/{mod008-card-mod-format → mod007-card-mod-format}/all/html_show.rb +0 -0
  94. data/tmpsets/set/{mod008-card-mod-format → mod007-card-mod-format}/all/html_title.rb +0 -0
  95. data/tmpsets/set/{mod008-card-mod-format → mod007-card-mod-format}/all/html_wrapper.rb +13 -8
  96. data/tmpsets/set/{mod008-card-mod-format → mod007-card-mod-format}/all/js.rb +0 -1
  97. data/tmpsets/set/{mod008-card-mod-format → mod007-card-mod-format}/all/json.rb +1 -2
  98. data/tmpsets/set/{mod008-card-mod-format → mod007-card-mod-format}/all/links.rb +5 -4
  99. data/tmpsets/set/{mod008-card-mod-format → mod007-card-mod-format}/all/menu.rb +1 -1
  100. data/tmpsets/set/{mod008-card-mod-format → mod007-card-mod-format}/all/path.rb +1 -0
  101. data/tmpsets/set/{mod008-card-mod-format → mod007-card-mod-format}/all/rich_html.rb +12 -0
  102. data/tmpsets/set/{mod008-card-mod-format → mod007-card-mod-format}/all/rss.rb +3 -2
  103. data/tmpsets/set/{mod008-card-mod-format → mod007-card-mod-format}/all/text.rb +0 -1
  104. data/tmpsets/set/{mod008-card-mod-format → mod007-card-mod-format}/self/home.rb +0 -0
  105. data/tmpsets/set/mod007-card-mod-format/type/cardtype.rb +98 -0
  106. data/tmpsets/set/{mod008-card-mod-format → mod007-card-mod-format}/type/html.rb +0 -0
  107. data/tmpsets/set/{mod008-card-mod-format → mod007-card-mod-format}/type/json.rb +1 -1
  108. data/tmpsets/set/{mod008-card-mod-format → mod007-card-mod-format}/type/number.rb +4 -2
  109. data/tmpsets/set/{mod008-card-mod-format → mod007-card-mod-format}/type/phrase.rb +0 -0
  110. data/tmpsets/set/{mod008-card-mod-format → mod007-card-mod-format}/type/plain_text.rb +0 -0
  111. data/tmpsets/set/{mod008-card-mod-format → mod007-card-mod-format}/type/toggle.rb +2 -2
  112. data/tmpsets/set/{mod008-card-mod-format → mod007-card-mod-format}/type/uri.rb +0 -0
  113. data/tmpsets/set/{mod009-card-mod-list → mod008-card-mod-list}/abstract/01_pointer.rb +0 -0
  114. data/tmpsets/set/{mod009-card-mod-list → mod008-card-mod-list}/abstract/01_pointer/events.rb +0 -0
  115. data/tmpsets/set/{mod009-card-mod-list → mod008-card-mod-list}/abstract/01_pointer/html_views.rb +1 -2
  116. data/tmpsets/set/{mod009-card-mod-list → mod008-card-mod-list}/abstract/01_pointer/html_views/filter.rb +1 -0
  117. data/tmpsets/set/{mod009-card-mod-list → mod008-card-mod-list}/abstract/01_pointer/options_api.rb +0 -0
  118. data/tmpsets/set/{mod009-card-mod-list → mod008-card-mod-list}/abstract/01_pointer/other_views.rb +1 -0
  119. data/tmpsets/set/{mod009-card-mod-list → mod008-card-mod-list}/abstract/code_pointer.rb +0 -0
  120. data/tmpsets/set/{mod009-card-mod-list → mod008-card-mod-list}/abstract/id_pointer.rb +1 -1
  121. data/tmpsets/set/{mod009-card-mod-list → mod008-card-mod-list}/all/supports_content_options.rb +0 -0
  122. data/tmpsets/set/{mod009-card-mod-list → mod008-card-mod-list}/right/content_option_view.rb +0 -0
  123. data/tmpsets/set/{mod009-card-mod-list → mod008-card-mod-list}/right/content_options.rb +0 -0
  124. data/tmpsets/set/{mod009-card-mod-list → mod008-card-mod-list}/self/content_option_view.rb +0 -0
  125. data/tmpsets/set/{mod009-card-mod-list → mod008-card-mod-list}/self/content_options.rb +0 -0
  126. data/tmpsets/set/{mod009-card-mod-list → mod008-card-mod-list}/self/input_options.rb +1 -0
  127. data/tmpsets/set/{mod009-card-mod-list → mod008-card-mod-list}/type/link_list.rb +0 -0
  128. data/tmpsets/set/{mod009-card-mod-list → mod008-card-mod-list}/type/list.rb +0 -0
  129. data/tmpsets/set/{mod009-card-mod-list → mod008-card-mod-list}/type/nest_list.rb +1 -1
  130. data/tmpsets/set/{mod009-card-mod-list → mod008-card-mod-list}/type/pointer.rb +0 -0
  131. data/tmpsets/set/{mod010-card-mod-permissions → mod009-card-mod-permissions}/abstract/permission.rb +3 -2
  132. data/tmpsets/set/{mod010-card-mod-permissions → mod009-card-mod-permissions}/all/permissions.rb +11 -7
  133. data/tmpsets/set/{mod010-card-mod-permissions → mod009-card-mod-permissions}/all/update_read_rules.rb +2 -3
  134. data/tmpsets/set/{mod010-card-mod-permissions → mod009-card-mod-permissions}/right/create.rb +0 -0
  135. data/tmpsets/set/{mod010-card-mod-permissions → mod009-card-mod-permissions}/right/delete.rb +0 -0
  136. data/tmpsets/set/{mod010-card-mod-permissions → mod009-card-mod-permissions}/right/read.rb +3 -5
  137. data/tmpsets/set/{mod010-card-mod-permissions → mod009-card-mod-permissions}/right/update.rb +0 -0
  138. data/tmpsets/set/{mod010-card-mod-permissions → mod009-card-mod-permissions}/self/create.rb +0 -0
  139. data/tmpsets/set/{mod010-card-mod-permissions → mod009-card-mod-permissions}/self/delete.rb +0 -0
  140. data/tmpsets/set/{mod010-card-mod-permissions → mod009-card-mod-permissions}/self/read.rb +0 -0
  141. data/tmpsets/set/{mod010-card-mod-permissions → mod009-card-mod-permissions}/self/update.rb +0 -0
  142. data/tmpsets/set/{mod011-card-mod-account → mod010-card-mod-account}/abstract/account_field.rb +5 -0
  143. data/tmpsets/set/{mod011-card-mod-account → mod010-card-mod-account}/abstract/accountable.rb +5 -1
  144. data/tmpsets/set/{mod011-card-mod-account → mod010-card-mod-account}/all/account.rb +16 -7
  145. data/tmpsets/set/{mod011-card-mod-account → mod010-card-mod-account}/right/account.rb +3 -8
  146. data/tmpsets/set/{mod011-card-mod-account → mod010-card-mod-account}/right/account/events.rb +2 -2
  147. data/tmpsets/set/{mod011-card-mod-account → mod010-card-mod-account}/right/account/views.rb +0 -0
  148. data/tmpsets/set/{mod011-card-mod-account → mod010-card-mod-account}/right/email.rb +5 -4
  149. data/tmpsets/set/{mod011-card-mod-account → mod010-card-mod-account}/right/password.rb +4 -3
  150. data/tmpsets/set/{mod011-card-mod-account → mod010-card-mod-account}/right/roles.rb +2 -2
  151. data/tmpsets/set/{mod011-card-mod-account → mod010-card-mod-account}/right/salt.rb +1 -1
  152. data/tmpsets/set/{mod011-card-mod-account → mod010-card-mod-account}/right/status.rb +1 -1
  153. data/tmpsets/set/{mod011-card-mod-account → mod010-card-mod-account}/self/signin.rb +37 -50
  154. data/tmpsets/set/{mod011-card-mod-account → mod010-card-mod-account}/type/role.rb +0 -0
  155. data/tmpsets/set/{mod011-card-mod-account → mod010-card-mod-account}/type/signup.rb +0 -0
  156. data/tmpsets/set/{mod011-card-mod-account → mod010-card-mod-account}/type/signup/views.rb +7 -2
  157. data/tmpsets/set/{mod011-card-mod-account → mod010-card-mod-account}/type/user.rb +1 -1
  158. data/tmpsets/set/{mod011-card-mod-account → mod010-card-mod-account}/type_plus_right/user/email.rb +0 -0
  159. data/tmpsets/set/{mod012-card-mod-edit → mod011-card-mod-edit}/all/bridge.rb +3 -3
  160. data/tmpsets/set/{mod012-card-mod-edit → mod011-card-mod-edit}/all/bridge/bridge_pills.rb +0 -0
  161. data/tmpsets/set/{mod012-card-mod-edit → mod011-card-mod-edit}/all/bridge/follow_section.rb +0 -0
  162. data/tmpsets/set/{mod012-card-mod-edit → mod011-card-mod-edit}/all/bridge/related_section.rb +2 -2
  163. data/tmpsets/set/{mod012-card-mod-edit → mod011-card-mod-edit}/all/bridge/tab_views.rb +0 -0
  164. data/tmpsets/set/{mod012-card-mod-edit → mod011-card-mod-edit}/all/bridge/tab_visibility.rb +10 -5
  165. data/tmpsets/set/{mod012-card-mod-edit → mod011-card-mod-edit}/all/edit_content.rb +0 -0
  166. data/tmpsets/set/{mod012-card-mod-edit → mod011-card-mod-edit}/all/edit_inline.rb +0 -0
  167. data/tmpsets/set/{mod012-card-mod-edit → mod011-card-mod-edit}/all/edit_name.rb +18 -20
  168. data/tmpsets/set/{mod012-card-mod-edit → mod011-card-mod-edit}/all/edit_type.rb +52 -33
  169. data/tmpsets/set/{mod012-card-mod-edit → mod011-card-mod-edit}/all/editing.rb +0 -0
  170. data/tmpsets/set/{mod012-card-mod-edit → mod011-card-mod-edit}/all/editor.rb +3 -5
  171. data/tmpsets/set/{mod012-card-mod-edit → mod011-card-mod-edit}/all/form.rb +14 -11
  172. data/tmpsets/set/{mod012-card-mod-edit → mod011-card-mod-edit}/all/form_buttons.rb +11 -2
  173. data/tmpsets/set/{mod012-card-mod-edit → mod011-card-mod-edit}/all/form_elements.rb +1 -0
  174. data/tmpsets/set/{mod012-card-mod-edit → mod011-card-mod-edit}/all/formgroup.rb +0 -0
  175. data/tmpsets/set/{mod012-card-mod-edit → mod011-card-mod-edit}/all/new.rb +2 -2
  176. data/tmpsets/set/{mod012-card-mod-edit → mod011-card-mod-edit}/all/overlay_guide.rb +0 -0
  177. data/tmpsets/set/{mod012-card-mod-edit → mod011-card-mod-edit}/all/template_nest.rb +0 -0
  178. data/tmpsets/set/{mod012-card-mod-edit → mod011-card-mod-edit}/right/input_type.rb +0 -0
  179. data/tmpsets/set/{mod012-card-mod-edit → mod011-card-mod-edit}/self/input_type.rb +0 -0
  180. data/tmpsets/set/{mod012-card-mod-edit → mod011-card-mod-edit}/type/list.rb +0 -0
  181. data/tmpsets/set/{mod012-card-mod-edit → mod011-card-mod-edit}/type/plain_text.rb +0 -0
  182. data/tmpsets/set/{mod012-card-mod-edit → mod011-card-mod-edit}/type/pointer.rb +0 -0
  183. data/tmpsets/set/{mod013-card-mod-history → mod012-card-mod-history}/all/history.rb +2 -1
  184. data/tmpsets/set/{mod013-card-mod-history → mod012-card-mod-history}/all/history/act_listing.rb +9 -6
  185. data/tmpsets/set/{mod013-card-mod-history → mod012-card-mod-history}/all/history/actions.rb +8 -4
  186. data/tmpsets/set/{mod013-card-mod-history → mod012-card-mod-history}/all/history/acts.rb +0 -0
  187. data/tmpsets/set/{mod013-card-mod-history → mod012-card-mod-history}/all/history/events.rb +3 -3
  188. data/tmpsets/set/{mod013-card-mod-history → mod012-card-mod-history}/all/history/last.rb +0 -0
  189. data/tmpsets/set/{mod013-card-mod-history → mod012-card-mod-history}/all/history/revision.rb +0 -0
  190. data/tmpsets/set/{mod013-card-mod-history → mod012-card-mod-history}/all/history/selected.rb +3 -3
  191. data/tmpsets/set/{mod013-card-mod-history → mod012-card-mod-history}/all/history/views.rb +31 -0
  192. data/tmpsets/set/{mod013-card-mod-history → mod012-card-mod-history}/all/history_bridge.rb +31 -17
  193. data/tmpsets/set/{mod014-card-mod-carrierwave → mod013-card-mod-carrierwave}/abstract/attachment.rb +36 -13
  194. data/tmpsets/set/{mod014-card-mod-carrierwave → mod013-card-mod-carrierwave}/abstract/attachment/cloud.rb +5 -1
  195. data/tmpsets/set/{mod014-card-mod-carrierwave → mod013-card-mod-carrierwave}/abstract/attachment/coded.rb +7 -2
  196. data/tmpsets/set/{mod014-card-mod-carrierwave → mod013-card-mod-carrierwave}/abstract/attachment/local.rb +4 -1
  197. data/tmpsets/set/{mod014-card-mod-carrierwave → mod013-card-mod-carrierwave}/abstract/attachment/paths.rb +1 -0
  198. data/tmpsets/set/{mod014-card-mod-carrierwave → mod013-card-mod-carrierwave}/abstract/attachment/storage_type.rb +33 -32
  199. data/tmpsets/set/{mod014-card-mod-carrierwave → mod013-card-mod-carrierwave}/abstract/attachment/upload_cache.rb +4 -0
  200. data/tmpsets/set/{mod014-card-mod-carrierwave → mod013-card-mod-carrierwave}/abstract/attachment/web.rb +0 -0
  201. data/tmpsets/set/{mod014-card-mod-carrierwave → mod013-card-mod-carrierwave}/all/file_utils.rb +0 -0
  202. data/tmpsets/set/{mod014-card-mod-carrierwave → mod013-card-mod-carrierwave}/self/admin.rb +0 -0
  203. data/tmpsets/set/{mod014-card-mod-carrierwave → mod013-card-mod-carrierwave}/self/favicon.rb +1 -0
  204. data/tmpsets/set/{mod014-card-mod-carrierwave → mod013-card-mod-carrierwave}/self/new_file.rb +0 -0
  205. data/tmpsets/set/{mod014-card-mod-carrierwave → mod013-card-mod-carrierwave}/self/new_image.rb +0 -0
  206. data/tmpsets/set/{mod014-card-mod-carrierwave → mod013-card-mod-carrierwave}/type/file.rb +27 -10
  207. data/tmpsets/set/{mod014-card-mod-carrierwave → mod013-card-mod-carrierwave}/type/image.rb +7 -4
  208. data/tmpsets/set/{mod014-card-mod-carrierwave → mod013-card-mod-carrierwave}/type/image/html_views.rb +13 -3
  209. data/tmpsets/set/{mod015-card-mod-virtual → mod014-card-mod-virtual}/abstract/virtual_cache.rb +0 -0
  210. data/tmpsets/set/{mod016-card-mod-machines → mod015-card-mod-machines}/abstract/machine.rb +2 -2
  211. data/tmpsets/set/{mod016-card-mod-machines → mod015-card-mod-machines}/abstract/machine/output_cache.rb +0 -0
  212. data/tmpsets/set/{mod016-card-mod-machines → mod015-card-mod-machines}/abstract/machine/output_update.rb +7 -0
  213. data/tmpsets/set/{mod016-card-mod-machines → mod015-card-mod-machines}/abstract/machine_input.rb +1 -0
  214. data/tmpsets/set/{mod016-card-mod-machines → mod015-card-mod-machines}/all/reset_machines.rb +0 -0
  215. data/tmpsets/set/{mod016-card-mod-machines → mod015-card-mod-machines}/right/machine_cache.rb +0 -0
  216. data/tmpsets/set/{mod016-card-mod-machines → mod015-card-mod-machines}/right/machine_input.rb +0 -0
  217. data/tmpsets/set/{mod016-card-mod-machines → mod015-card-mod-machines}/right/machine_output.rb +0 -0
  218. data/tmpsets/set/{mod017-card-mod-script → mod016-card-mod-script}/abstract/script.rb +1 -1
  219. data/tmpsets/set/{mod017-card-mod-script → mod016-card-mod-script}/right/script.rb +0 -0
  220. data/tmpsets/set/{mod017-card-mod-script → mod016-card-mod-script}/self/01_script_libraries.rb +0 -0
  221. data/tmpsets/set/{mod017-card-mod-script → mod016-card-mod-script}/self/script.rb +0 -0
  222. data/tmpsets/set/{mod017-card-mod-script → mod016-card-mod-script}/self/script_decko.rb +0 -0
  223. data/tmpsets/set/{mod017-card-mod-script → mod016-card-mod-script}/self/script_editors.rb +0 -0
  224. data/tmpsets/set/{mod017-card-mod-script → mod016-card-mod-script}/self/script_html5shiv_printshiv.rb +0 -0
  225. data/tmpsets/set/{mod017-card-mod-script → mod016-card-mod-script}/self/script_jquery.rb +0 -0
  226. data/tmpsets/set/{mod017-card-mod-script → mod016-card-mod-script}/self/script_jquery_helper.rb +0 -0
  227. data/tmpsets/set/{mod017-card-mod-script → mod016-card-mod-script}/self/script_mods.rb +0 -0
  228. data/tmpsets/set/{mod017-card-mod-script → mod016-card-mod-script}/self/script_pointer_config.rb +0 -0
  229. data/tmpsets/set/{mod017-card-mod-script → mod016-card-mod-script}/type/coffee_script.rb +1 -1
  230. data/tmpsets/set/{mod017-card-mod-script → mod016-card-mod-script}/type/java_script.rb +0 -0
  231. data/tmpsets/set/{mod018-card-mod-ace_editor → mod017-card-mod-ace_editor}/all/ace_editor.rb +0 -1
  232. data/tmpsets/set/{mod018-card-mod-ace_editor → mod017-card-mod-ace_editor}/self/ace.rb +0 -0
  233. data/tmpsets/set/{mod018-card-mod-ace_editor → mod017-card-mod-ace_editor}/self/script_ace.rb +0 -0
  234. data/tmpsets/set/{mod018-card-mod-ace_editor → mod017-card-mod-ace_editor}/self/script_ace_config.rb +0 -0
  235. data/tmpsets/set/mod018-card-mod-alias/all/alias.rb +30 -0
  236. data/tmpsets/set/mod018-card-mod-alias/all_plus/alias.rb +31 -0
  237. data/tmpsets/set/mod018-card-mod-alias/type/alias.rb +42 -0
  238. data/tmpsets/set/mod019-card-mod-api_key/right/account.rb +18 -0
  239. data/tmpsets/set/mod019-card-mod-api_key/right/api_key.rb +103 -0
  240. data/tmpsets/set/{mod019-card-mod-style → mod020-card-mod-style}/abstract/skin_box.rb +2 -0
  241. data/tmpsets/set/{mod019-card-mod-style → mod020-card-mod-style}/right/style.rb +0 -0
  242. data/tmpsets/set/{mod019-card-mod-style → mod020-card-mod-style}/self/style.rb +0 -0
  243. data/tmpsets/set/{mod019-card-mod-style → mod020-card-mod-style}/self/style_bootstrap_compatible.rb +0 -0
  244. data/tmpsets/set/{mod019-card-mod-style → mod020-card-mod-style}/self/style_cards.rb +0 -0
  245. data/tmpsets/set/{mod019-card-mod-style → mod020-card-mod-style}/self/style_jquery_ui_smoothness.rb +0 -0
  246. data/tmpsets/set/{mod019-card-mod-style → mod020-card-mod-style}/self/style_libraries.rb +0 -0
  247. data/tmpsets/set/{mod019-card-mod-style → mod020-card-mod-style}/self/style_mods.rb +0 -0
  248. data/tmpsets/set/{mod019-card-mod-style → mod020-card-mod-style}/type/css.rb +5 -4
  249. data/tmpsets/set/{mod019-card-mod-style → mod020-card-mod-style}/type/scss.rb +1 -1
  250. data/tmpsets/set/{mod019-card-mod-style → mod020-card-mod-style}/type/skin.rb +0 -0
  251. data/tmpsets/set/{mod020-card-mod-bar_and_box → mod021-card-mod-bar_and_box}/abstract/media.rb +0 -0
  252. data/tmpsets/set/{mod020-card-mod-bar_and_box → mod021-card-mod-bar_and_box}/all/bar.rb +1 -1
  253. data/tmpsets/set/{mod020-card-mod-bar_and_box → mod021-card-mod-bar_and_box}/all/box.rb +0 -0
  254. data/tmpsets/set/{mod020-card-mod-bar_and_box → mod021-card-mod-bar_and_box}/self/style_media.rb +0 -0
  255. data/tmpsets/set/{mod020-card-mod-bar_and_box → mod021-card-mod-bar_and_box}/type/image.rb +1 -1
  256. data/tmpsets/set/{mod021-card-mod-bootstrap → mod022-card-mod-bootstrap}/abstract/bootstrap_code_file.rb +0 -1
  257. data/tmpsets/set/{mod021-card-mod-bootstrap → mod022-card-mod-bootstrap}/abstract/bootswatch_theme.rb +1 -0
  258. data/tmpsets/set/{mod021-card-mod-bootstrap → mod022-card-mod-bootstrap}/abstract/bootswatch_theme/html_views.rb +0 -0
  259. data/tmpsets/set/{mod021-card-mod-bootstrap → mod022-card-mod-bootstrap}/abstract/bs_badge.rb +0 -0
  260. data/tmpsets/set/{mod021-card-mod-bootstrap → mod022-card-mod-bootstrap}/all/bootstrap/accordion.rb +0 -0
  261. data/tmpsets/set/{mod021-card-mod-bootstrap → mod022-card-mod-bootstrap}/all/bootstrap/dropdown.rb +13 -15
  262. data/tmpsets/set/{mod021-card-mod-bootstrap → mod022-card-mod-bootstrap}/all/bootstrap/form.rb +0 -0
  263. data/tmpsets/set/{mod021-card-mod-bootstrap → mod022-card-mod-bootstrap}/all/bootstrap/helper.rb +23 -12
  264. data/tmpsets/set/{mod021-card-mod-bootstrap → mod022-card-mod-bootstrap}/all/bootstrap/icon.rb +16 -11
  265. data/tmpsets/set/{mod021-card-mod-bootstrap → mod022-card-mod-bootstrap}/all/bootstrap/navbar.rb +8 -28
  266. data/tmpsets/set/{mod021-card-mod-bootstrap → mod022-card-mod-bootstrap}/all/bootstrap/table.rb +9 -7
  267. data/tmpsets/set/{mod021-card-mod-bootstrap → mod022-card-mod-bootstrap}/all/bootstrap/tabs.rb +0 -0
  268. data/tmpsets/set/{mod021-card-mod-bootstrap → mod022-card-mod-bootstrap}/all/bootstrap/wrapper.rb +2 -3
  269. data/tmpsets/set/{mod021-card-mod-bootstrap → mod022-card-mod-bootstrap}/all/rich_bootstrap.rb +0 -0
  270. data/tmpsets/set/{mod021-card-mod-bootstrap → mod022-card-mod-bootstrap}/self/bootstrap_core.rb +7 -6
  271. data/tmpsets/set/{mod021-card-mod-bootstrap → mod022-card-mod-bootstrap}/self/bootstrap_functions.rb +0 -0
  272. data/tmpsets/set/{mod021-card-mod-bootstrap → mod022-card-mod-bootstrap}/self/font_awesome.rb +0 -0
  273. data/tmpsets/set/{mod021-card-mod-bootstrap → mod022-card-mod-bootstrap}/self/material_icons.rb +0 -0
  274. data/tmpsets/set/{mod021-card-mod-bootstrap → mod022-card-mod-bootstrap}/self/script_bootstrap.rb +0 -0
  275. data/tmpsets/set/{mod021-card-mod-bootstrap → mod022-card-mod-bootstrap}/self/script_load_select2.rb +0 -0
  276. data/tmpsets/set/{mod021-card-mod-bootstrap → mod022-card-mod-bootstrap}/self/script_select2.rb +0 -0
  277. data/tmpsets/set/{mod021-card-mod-bootstrap → mod022-card-mod-bootstrap}/self/smartmenu_css.rb +0 -0
  278. data/tmpsets/set/{mod021-card-mod-bootstrap → mod022-card-mod-bootstrap}/self/smartmenu_js.rb +0 -0
  279. data/tmpsets/set/{mod021-card-mod-bootstrap → mod022-card-mod-bootstrap}/self/style_bootstrap_cards.rb +0 -0
  280. data/tmpsets/set/{mod021-card-mod-bootstrap → mod022-card-mod-bootstrap}/self/style_bootstrap_colorpicker.rb +0 -0
  281. data/tmpsets/set/{mod021-card-mod-bootstrap → mod022-card-mod-bootstrap}/self/style_select2.rb +0 -0
  282. data/tmpsets/set/{mod021-card-mod-bootstrap → mod022-card-mod-bootstrap}/self/style_select2_bootstrap.rb +0 -0
  283. data/tmpsets/set/{mod021-card-mod-bootstrap → mod022-card-mod-bootstrap}/type/bootswatch_skin.rb +0 -0
  284. data/tmpsets/set/{mod021-card-mod-bootstrap → mod022-card-mod-bootstrap}/type/customized_bootswatch_skin.rb +11 -7
  285. data/tmpsets/set/{mod021-card-mod-bootstrap → mod022-card-mod-bootstrap}/type/customized_bootswatch_skin/html_views.rb +0 -0
  286. data/tmpsets/set/{mod021-card-mod-bootstrap → mod022-card-mod-bootstrap}/type_plus_right/customized_bootswatch_skin/colors.rb +3 -2
  287. data/tmpsets/set/{mod022-card-mod-comment → mod023-card-mod-comment}/all/comment.rb +4 -1
  288. data/tmpsets/set/{mod022-card-mod-comment → mod023-card-mod-comment}/right/comment.rb +0 -0
  289. data/tmpsets/set/{mod022-card-mod-comment → mod023-card-mod-comment}/right/discussion.rb +0 -0
  290. data/tmpsets/set/{mod023-card-mod-date → mod024-card-mod-date}/all/calendar.rb +0 -0
  291. data/tmpsets/set/{mod023-card-mod-date → mod024-card-mod-date}/right/when_created.rb +1 -0
  292. data/tmpsets/set/{mod023-card-mod-date → mod024-card-mod-date}/right/when_last_edited.rb +1 -0
  293. data/tmpsets/set/{mod023-card-mod-date → mod024-card-mod-date}/self/datepicker.rb +1 -1
  294. data/tmpsets/set/{mod023-card-mod-date → mod024-card-mod-date}/self/now.rb +0 -1
  295. data/tmpsets/set/{mod023-card-mod-date → mod024-card-mod-date}/self/script_datepicker.rb +0 -0
  296. data/tmpsets/set/{mod023-card-mod-date → mod024-card-mod-date}/self/script_datepicker_config.rb +0 -0
  297. data/tmpsets/set/{mod023-card-mod-date → mod024-card-mod-date}/self/style_datepicker.rb +0 -0
  298. data/tmpsets/set/{mod023-card-mod-date → mod024-card-mod-date}/type/date.rb +0 -0
  299. data/tmpsets/set/{mod025-card-mod-follow → mod026-card-mod-follow}/abstract/follow_option.rb +0 -0
  300. data/tmpsets/set/{mod025-card-mod-follow → mod026-card-mod-follow}/all/follow.rb +0 -0
  301. data/tmpsets/set/{mod025-card-mod-follow → mod026-card-mod-follow}/all/follow/follow_link.rb +3 -2
  302. data/tmpsets/set/{mod025-card-mod-follow → mod026-card-mod-follow}/all/follow/follow_link_views.rb +0 -0
  303. data/tmpsets/set/{mod025-card-mod-follow → mod026-card-mod-follow}/all/follow/followed_by.rb +0 -0
  304. data/tmpsets/set/{mod025-card-mod-follow → mod026-card-mod-follow}/all/follow/follower_ids.rb +0 -0
  305. data/tmpsets/set/{mod025-card-mod-follow → mod026-card-mod-follow}/all/follow/start_follow_link.rb +0 -0
  306. data/tmpsets/set/{mod025-card-mod-follow → mod026-card-mod-follow}/all/follow/stop_follow_link.rb +0 -0
  307. data/tmpsets/set/{mod025-card-mod-follow → mod026-card-mod-follow}/all/notify.rb +1 -0
  308. data/tmpsets/set/{mod025-card-mod-follow → mod026-card-mod-follow}/all/notify/base_views.rb +1 -0
  309. data/tmpsets/set/{mod025-card-mod-follow → mod026-card-mod-follow}/all/notify/html_views.rb +0 -0
  310. data/tmpsets/set/{mod025-card-mod-follow → mod026-card-mod-follow}/right/account.rb +0 -0
  311. data/tmpsets/set/{mod025-card-mod-follow → mod026-card-mod-follow}/right/follow.rb +1 -1
  312. data/tmpsets/set/{mod025-card-mod-follow → mod026-card-mod-follow}/right/follow_fields.rb +0 -0
  313. data/tmpsets/set/{mod025-card-mod-follow → mod026-card-mod-follow}/right/followers.rb +0 -0
  314. data/tmpsets/set/{mod025-card-mod-follow → mod026-card-mod-follow}/right/following.rb +0 -0
  315. data/tmpsets/set/{mod025-card-mod-follow → mod026-card-mod-follow}/self/always.rb +0 -0
  316. data/tmpsets/set/{mod025-card-mod-follow → mod026-card-mod-follow}/self/created.rb +0 -0
  317. data/tmpsets/set/{mod025-card-mod-follow → mod026-card-mod-follow}/self/edited.rb +0 -0
  318. data/tmpsets/set/{mod025-card-mod-follow → mod026-card-mod-follow}/self/follow.rb +0 -0
  319. data/tmpsets/set/{mod025-card-mod-follow → mod026-card-mod-follow}/self/follow_defaults.rb +5 -4
  320. data/tmpsets/set/{mod025-card-mod-follow → mod026-card-mod-follow}/self/follow_fields.rb +0 -0
  321. data/tmpsets/set/{mod025-card-mod-follow → mod026-card-mod-follow}/self/never.rb +0 -0
  322. data/tmpsets/set/{mod025-card-mod-follow → mod026-card-mod-follow}/type/cardtype.rb +1 -1
  323. data/tmpsets/set/{mod025-card-mod-follow → mod026-card-mod-follow}/type/notification_template.rb +0 -0
  324. data/tmpsets/set/{mod025-card-mod-follow → mod026-card-mod-follow}/type/set.rb +0 -0
  325. data/tmpsets/set/{mod025-card-mod-follow → mod026-card-mod-follow}/type/user.rb +0 -0
  326. data/tmpsets/set/{mod025-card-mod-follow → mod026-card-mod-follow}/type_plus_right/user/follow.rb +3 -2
  327. data/tmpsets/set/{mod025-card-mod-follow → mod026-card-mod-follow}/type_plus_right/user/follow/follow_editor_helper.rb +0 -0
  328. data/tmpsets/set/{mod026-card-mod-google_analytics → mod027-card-mod-google_analytics}/all/google_analytics.rb +0 -0
  329. data/tmpsets/set/{mod027-card-mod-help → mod028-card-mod-help}/all/guide.rb +0 -0
  330. data/tmpsets/set/{mod027-card-mod-help → mod028-card-mod-help}/all/help.rb +0 -0
  331. data/tmpsets/set/{mod027-card-mod-help → mod028-card-mod-help}/right/guide.rb +0 -0
  332. data/tmpsets/set/{mod027-card-mod-help → mod028-card-mod-help}/right/help.rb +1 -1
  333. data/tmpsets/set/{mod027-card-mod-help → mod028-card-mod-help}/self/guide.rb +0 -0
  334. data/tmpsets/set/{mod027-card-mod-help → mod028-card-mod-help}/self/help.rb +0 -0
  335. data/tmpsets/set/{mod028-card-mod-integrate → mod029-card-mod-integrate}/all/observer.rb +0 -0
  336. data/tmpsets/set/{mod028-card-mod-integrate → mod029-card-mod-integrate}/self/on_create.rb +0 -0
  337. data/tmpsets/set/{mod028-card-mod-integrate → mod029-card-mod-integrate}/self/on_delete.rb +0 -0
  338. data/tmpsets/set/{mod028-card-mod-integrate → mod029-card-mod-integrate}/self/on_update.rb +0 -0
  339. data/tmpsets/set/{mod028-card-mod-integrate → mod029-card-mod-integrate}/self/thanks.rb +0 -0
  340. data/tmpsets/set/{mod029-card-mod-session → mod030-card-mod-session}/all/location_history.rb +0 -0
  341. data/tmpsets/set/{mod029-card-mod-session → mod030-card-mod-session}/type/session.rb +0 -0
  342. data/tmpsets/set/{mod030-card-mod-layout → mod031-card-mod-layout}/abstract/account_dropdown.rb +2 -4
  343. data/tmpsets/set/{mod030-card-mod-layout → mod031-card-mod-layout}/abstract/pointer/html_views.rb +0 -0
  344. data/tmpsets/set/{mod030-card-mod-layout → mod031-card-mod-layout}/all/alert.rb +0 -0
  345. data/tmpsets/set/{mod030-card-mod-layout → mod031-card-mod-layout}/all/layouts.rb +0 -0
  346. data/tmpsets/set/{mod030-card-mod-layout → mod031-card-mod-layout}/all/modal.rb +1 -0
  347. data/tmpsets/set/{mod030-card-mod-layout → mod031-card-mod-layout}/all/navbar_links.rb +0 -0
  348. data/tmpsets/set/{mod030-card-mod-layout → mod031-card-mod-layout}/all/overlay.rb +7 -10
  349. data/tmpsets/set/{mod030-card-mod-layout → mod031-card-mod-layout}/all/process_layout.rb +31 -29
  350. data/tmpsets/set/{mod030-card-mod-layout → mod031-card-mod-layout}/all/tabs.rb +1 -0
  351. data/tmpsets/set/{mod030-card-mod-layout → mod031-card-mod-layout}/right/enabled_roles.rb +0 -0
  352. data/tmpsets/set/{mod030-card-mod-layout → mod031-card-mod-layout}/right/head.rb +0 -0
  353. data/tmpsets/set/{mod030-card-mod-layout → mod031-card-mod-layout}/self/account_links.rb +6 -7
  354. data/tmpsets/set/{mod030-card-mod-layout → mod031-card-mod-layout}/self/alerts.rb +0 -0
  355. data/tmpsets/set/{mod030-card-mod-layout → mod031-card-mod-layout}/self/dropdown_divider.rb +0 -0
  356. data/tmpsets/set/{mod030-card-mod-layout → mod031-card-mod-layout}/self/foot.rb +0 -1
  357. data/tmpsets/set/{mod030-card-mod-layout → mod031-card-mod-layout}/self/head.rb +1 -1
  358. data/tmpsets/set/{mod030-card-mod-layout → mod031-card-mod-layout}/self/layout.rb +0 -0
  359. data/tmpsets/set/{mod030-card-mod-layout → mod031-card-mod-layout}/self/navbox.rb +0 -0
  360. data/tmpsets/set/{mod030-card-mod-layout → mod031-card-mod-layout}/self/sidebar.rb +0 -0
  361. data/tmpsets/set/{mod030-card-mod-layout → mod031-card-mod-layout}/type/html.rb +0 -0
  362. data/tmpsets/set/{mod030-card-mod-layout → mod031-card-mod-layout}/type/layout_type.rb +0 -0
  363. data/tmpsets/set/{mod031-card-mod-legacy → mod032-card-mod-legacy}/abstract/table_of_contents.rb +9 -6
  364. data/tmpsets/set/{mod031-card-mod-legacy → mod032-card-mod-legacy}/self/csv_structure.rb +0 -0
  365. data/tmpsets/set/{mod031-card-mod-legacy → mod032-card-mod-legacy}/self/default_html_view.rb +0 -0
  366. data/tmpsets/set/{mod031-card-mod-legacy → mod032-card-mod-legacy}/self/table_of_contents.rb +0 -0
  367. data/tmpsets/set/{mod031-card-mod-legacy → mod032-card-mod-legacy}/type/basic.rb +0 -0
  368. data/tmpsets/set/{mod032-card-mod-markdown → mod033-card-mod-markdown}/type/markdown.rb +0 -0
  369. data/tmpsets/set/{mod033-card-mod-prosemirror_editor → mod034-card-mod-prosemirror_editor}/all/prosemirror_editor.rb +0 -1
  370. data/tmpsets/set/{mod033-card-mod-prosemirror_editor → mod034-card-mod-prosemirror_editor}/self/script_prosemirror.rb +0 -0
  371. data/tmpsets/set/{mod033-card-mod-prosemirror_editor → mod034-card-mod-prosemirror_editor}/self/script_prosemirror_config.rb +0 -0
  372. data/tmpsets/set/{mod033-card-mod-prosemirror_editor → mod034-card-mod-prosemirror_editor}/self/style_prosemirror.rb +0 -0
  373. data/tmpsets/set/{mod034-card-mod-recaptcha → mod035-card-mod-recaptcha}/all/recaptcha.rb +6 -6
  374. data/tmpsets/set/{mod034-card-mod-recaptcha → mod035-card-mod-recaptcha}/self/admin_info.rb +6 -11
  375. data/tmpsets/set/{mod011-card-mod-account → mod035-card-mod-recaptcha}/self/captcha.rb +2 -2
  376. data/tmpsets/set/{mod034-card-mod-recaptcha → mod035-card-mod-recaptcha}/self/recaptcha_proxy.rb +0 -0
  377. data/tmpsets/set/{mod034-card-mod-recaptcha → mod035-card-mod-recaptcha}/self/recaptcha_secret_key.rb +0 -0
  378. data/tmpsets/set/{mod034-card-mod-recaptcha → mod035-card-mod-recaptcha}/self/recaptcha_settings.rb +9 -22
  379. data/tmpsets/set/{mod034-card-mod-recaptcha → mod035-card-mod-recaptcha}/self/recaptcha_site_key.rb +0 -0
  380. data/tmpsets/set/{mod035-card-mod-search → mod036-card-mod-search}/abstract/00_filter_helper.rb +0 -0
  381. data/tmpsets/set/{mod035-card-mod-search → mod036-card-mod-search}/abstract/02_search_params.rb +1 -3
  382. data/tmpsets/set/{mod035-card-mod-search → mod036-card-mod-search}/abstract/03_filter.rb +0 -0
  383. data/tmpsets/set/{mod035-card-mod-search → mod036-card-mod-search}/abstract/03_filter/filter_form.rb +0 -0
  384. data/tmpsets/set/{mod035-card-mod-search → mod036-card-mod-search}/abstract/03_filter/form_helper.rb +1 -1
  385. data/tmpsets/set/{mod035-card-mod-search → mod036-card-mod-search}/abstract/03_filter/query_construction.rb +0 -0
  386. data/tmpsets/set/{mod035-card-mod-search → mod036-card-mod-search}/abstract/04_right_filter_form.rb +0 -0
  387. data/tmpsets/set/{mod035-card-mod-search → mod036-card-mod-search}/abstract/05_search.rb +4 -0
  388. data/tmpsets/set/{mod035-card-mod-search → mod036-card-mod-search}/abstract/05_search/views.rb +3 -5
  389. data/tmpsets/set/{mod035-card-mod-search → mod036-card-mod-search}/abstract/06_cql_search.rb +2 -0
  390. data/tmpsets/set/{mod035-card-mod-search → mod036-card-mod-search}/abstract/filterable.rb +0 -0
  391. data/tmpsets/set/{mod035-card-mod-search → mod036-card-mod-search}/abstract/filterable_bar.rb +0 -0
  392. data/tmpsets/set/{mod035-card-mod-search → mod036-card-mod-search}/right/children.rb +0 -0
  393. data/tmpsets/set/{mod035-card-mod-search → mod036-card-mod-search}/right/created.rb +0 -0
  394. data/tmpsets/set/{mod035-card-mod-search → mod036-card-mod-search}/right/edited.rb +0 -0
  395. data/tmpsets/set/{mod035-card-mod-search → mod036-card-mod-search}/right/editors.rb +0 -0
  396. data/tmpsets/set/{mod035-card-mod-search → mod036-card-mod-search}/right/follow.rb +0 -0
  397. data/tmpsets/set/{mod035-card-mod-search → mod036-card-mod-search}/right/linked_to_by.rb +0 -0
  398. data/tmpsets/set/{mod035-card-mod-search → mod036-card-mod-search}/right/links_to.rb +0 -0
  399. data/tmpsets/set/{mod035-card-mod-search → mod036-card-mod-search}/right/mates.rb +0 -0
  400. data/tmpsets/set/{mod035-card-mod-search → mod036-card-mod-search}/right/nested_by.rb +0 -0
  401. data/tmpsets/set/{mod035-card-mod-search → mod036-card-mod-search}/right/nests.rb +0 -0
  402. data/tmpsets/set/{mod035-card-mod-search → mod036-card-mod-search}/right/referred_to_by.rb +0 -0
  403. data/tmpsets/set/{mod035-card-mod-search → mod036-card-mod-search}/right/refers_to.rb +0 -0
  404. data/tmpsets/set/{mod035-card-mod-search → mod036-card-mod-search}/self/recent.rb +0 -0
  405. data/tmpsets/set/{mod035-card-mod-search → mod036-card-mod-search}/self/search.rb +3 -1
  406. data/tmpsets/set/{mod035-card-mod-search → mod036-card-mod-search}/type/cardtype.rb +0 -0
  407. data/tmpsets/set/{mod035-card-mod-search → mod036-card-mod-search}/type/search_type.rb +1 -0
  408. data/tmpsets/set/mod037-card-mod-rules/all/related_sets.rb +34 -0
  409. data/tmpsets/set/{mod036-card-mod-rules → mod037-card-mod-rules}/right/self.rb +0 -0
  410. data/tmpsets/set/{mod036-card-mod-rules → mod037-card-mod-rules}/right/type_plus_right.rb +0 -0
  411. data/tmpsets/set/{mod036-card-mod-rules → mod037-card-mod-rules}/rstar/rule_user.rb +2 -3
  412. data/tmpsets/set/{mod036-card-mod-rules → mod037-card-mod-rules}/rule/bar_view.rb +0 -0
  413. data/tmpsets/set/{mod036-card-mod-rules → mod037-card-mod-rules}/rule/bridge_rules_editor.rb +0 -0
  414. data/tmpsets/set/{mod036-card-mod-rules → mod037-card-mod-rules}/rule/editor.rb +1 -1
  415. data/tmpsets/set/{mod036-card-mod-rules → mod037-card-mod-rules}/rule/html_views.rb +0 -0
  416. data/tmpsets/set/{mod036-card-mod-rules → mod037-card-mod-rules}/rule/quick_editor.rb +0 -0
  417. data/tmpsets/set/{mod036-card-mod-rules → mod037-card-mod-rules}/rule/rule_form.rb +2 -3
  418. data/tmpsets/set/{mod036-card-mod-rules → mod037-card-mod-rules}/rule/rule_form/buttons.rb +1 -2
  419. data/tmpsets/set/{mod036-card-mod-rules → mod037-card-mod-rules}/rule/rule_form/form_elements.rb +2 -2
  420. data/tmpsets/set/{mod036-card-mod-rules → mod037-card-mod-rules}/rule/rule_form/rule_set_radio.rb +1 -0
  421. data/tmpsets/set/{mod036-card-mod-rules → mod037-card-mod-rules}/rule/rule_form/set_selection.rb +0 -0
  422. data/tmpsets/set/{mod036-card-mod-rules → mod037-card-mod-rules}/rule/rules.rb +5 -5
  423. data/tmpsets/set/{mod036-card-mod-rules → mod037-card-mod-rules}/self/cardtype.rb +0 -0
  424. data/tmpsets/set/{mod036-card-mod-rules → mod037-card-mod-rules}/self/recent_settings.rb +0 -0
  425. data/tmpsets/set/{mod036-card-mod-rules → mod037-card-mod-rules}/self/script_rules.rb +0 -0
  426. data/tmpsets/set/mod037-card-mod-rules/type/cardtype.rb +14 -0
  427. data/tmpsets/set/{mod036-card-mod-rules → mod037-card-mod-rules}/type/set.rb +1 -1
  428. data/tmpsets/set/{mod036-card-mod-rules → mod037-card-mod-rules}/type/set/html_views.rb +0 -0
  429. data/tmpsets/set/{mod036-card-mod-rules → mod037-card-mod-rules}/type/set/html_views/rule_lists.rb +0 -0
  430. data/tmpsets/set/{mod036-card-mod-rules → mod037-card-mod-rules}/type/set/html_views/template.rb +0 -0
  431. data/tmpsets/set/{mod036-card-mod-rules → mod037-card-mod-rules}/type/set/rules_filter.rb +0 -0
  432. data/tmpsets/set/{mod036-card-mod-rules → mod037-card-mod-rules}/type/set/setting_lists.rb +1 -1
  433. data/tmpsets/set/{mod036-card-mod-rules → mod037-card-mod-rules}/type/setting.rb +5 -7
  434. data/tmpsets/set/{mod037-card-mod-tinymce_editor → mod038-card-mod-tinymce_editor}/all/reference_editor.rb +18 -6
  435. data/tmpsets/set/{mod037-card-mod-tinymce_editor → mod038-card-mod-tinymce_editor}/all/reference_editor/link_editor.rb +0 -0
  436. data/tmpsets/set/{mod037-card-mod-tinymce_editor → mod038-card-mod-tinymce_editor}/all/reference_editor/link_editor/link_parser.rb +0 -0
  437. data/tmpsets/set/{mod037-card-mod-tinymce_editor → mod038-card-mod-tinymce_editor}/all/reference_editor/nest_editor.rb +1 -2
  438. data/tmpsets/set/{mod037-card-mod-tinymce_editor → mod038-card-mod-tinymce_editor}/all/reference_editor/nest_image.rb +0 -2
  439. data/tmpsets/set/{mod037-card-mod-tinymce_editor → mod038-card-mod-tinymce_editor}/all/tinymce_editor.rb +0 -1
  440. data/tmpsets/set/{mod037-card-mod-tinymce_editor → mod038-card-mod-tinymce_editor}/self/script_tinymce.rb +0 -0
  441. data/tmpsets/set/{mod037-card-mod-tinymce_editor → mod038-card-mod-tinymce_editor}/self/script_tinymce_config.rb +0 -0
  442. data/tmpsets/set/{mod037-card-mod-tinymce_editor → mod038-card-mod-tinymce_editor}/self/tiny_mce.rb +2 -2
  443. data/tmpsets/set/{mod039-card-mod-monkey → mod040-card-mod-monkey}/all/event_viz.rb +3 -3
  444. data/tmpsets/set/{mod039-card-mod-monkey → mod040-card-mod-monkey}/all/view_viz.rb +2 -0
  445. data/tmpsets/set/{mod039-card-mod-monkey → mod040-card-mod-monkey}/right/debug.rb +2 -3
  446. data/tmpsets/set_pattern/100-all.rb +0 -1
  447. data/tmpsets/set_pattern/101-all_plus.rb +0 -1
  448. data/tmpsets/set_pattern/102-type.rb +0 -1
  449. data/tmpsets/set_pattern/103-star.rb +0 -1
  450. data/tmpsets/set_pattern/104-rstar.rb +0 -1
  451. data/tmpsets/set_pattern/105-rule.rb +1 -2
  452. data/tmpsets/set_pattern/106-right.rb +0 -1
  453. data/tmpsets/set_pattern/107-type_plus_right.rb +0 -1
  454. data/tmpsets/set_pattern/108-self.rb +0 -1
  455. metadata +410 -412
  456. data/mod/core/set/all/contextual_content.rb +0 -26
  457. data/tmpsets/set/mod002-core/all/actify.rb +0 -77
  458. data/tmpsets/set/mod002-core/all/cache.rb +0 -118
  459. data/tmpsets/set/mod002-core/all/event_conditions.rb +0 -181
  460. data/tmpsets/set/mod002-core/all/fetch.rb +0 -131
  461. data/tmpsets/set/mod002-core/all/fetch_helper.rb +0 -44
  462. data/tmpsets/set/mod002-core/all/i18n.rb +0 -20
  463. data/tmpsets/set/mod002-core/all/name.rb +0 -238
  464. data/tmpsets/set/mod002-core/all/pattern.rb +0 -63
  465. data/tmpsets/set/mod002-core/all/references.rb +0 -200
  466. data/tmpsets/set/mod002-core/all/rename.rb +0 -42
  467. data/tmpsets/set/mod002-core/all/rules.rb +0 -90
  468. data/tmpsets/set/mod003-settings/right/autoname.rb +0 -12
  469. data/tmpsets/set/mod004-standard/all/rich_html/html_views/info.rb +0 -93
  470. data/tmpsets/set/mod004-standard/type/cardtype.rb +0 -128
  471. data/tmpsets/set/mod011-card-mod-account/right/api_key.rb +0 -57
@@ -59,6 +59,7 @@ module HtmlFormat; module_parent.send :register_set_format, Card::Format::HtmlFo
59
59
  # redirect to *previous if no :href is given
60
60
  def cancel_button args={}
61
61
  return unless voo.show? :cancel_button
62
+
62
63
  text = args.delete(:text) || "Cancel"
63
64
  add_class args, "btn btn-#{args.delete(:situation) || 'secondary'}"
64
65
  add_class args, cancel_strategy(args[:redirect], args[:href])
@@ -82,7 +82,7 @@ module HtmlFormat; module_parent.send :register_set_format, Card::Format::HtmlFo
82
82
  end
83
83
 
84
84
  def new_form_opts
85
- { "main-success" => "REDIRECT" }
85
+ { "data-main-success": JSON(redirect: true) }
86
86
  end
87
87
 
88
88
  def new_view_title
@@ -97,7 +97,7 @@ module HtmlFormat; module_parent.send :register_set_format, Card::Format::HtmlFo
97
97
  end
98
98
 
99
99
  def new_success
100
- card.rule(:thanks) || "_self"
100
+ { mark: (card.rule(:thanks) || "_self") }
101
101
  end
102
102
 
103
103
  def new_in_modal_success; end
@@ -8,6 +8,7 @@ def self.source_location; "/Users/ethan/dev/decko/gem/card-mod-history/set/all/h
8
8
  event :update_ancestor_timestamps, :integrate do
9
9
  ids = history_ancestor_ids
10
10
  return unless ids.present?
11
+
11
12
  Card.where(id: ids).update_all(updater_id: Auth.current_id, updated_at: Time.now)
12
13
  ids.map { |anc_id| Card.expire anc_id.cardname }
13
14
  end
@@ -31,7 +32,7 @@ def history_ancestor_ids recursion_level=0
31
32
  return [] if recursion_level > 5
32
33
 
33
34
  ids = history_parent_ids +
34
- history_parent_ids.map { |id| Card[id].history_ancestor_ids(recursion_level + 1) }
35
+ history_parent_ids.map { |id| Card[id].history_ancestor_ids(recursion_level + 1) }
35
36
  ids.flatten
36
37
  end
37
38
 
@@ -5,8 +5,6 @@ class Card; module Set; class All; module History;
5
5
  module ActListing;
6
6
  extend Card::Set
7
7
  def self.source_location; "/Users/ethan/dev/decko/gem/card-mod-history/set/all/history/act_listing.rb"; end
8
- ACTS_PER_PAGE = Card.config.acts_per_page
9
-
10
8
  module HtmlFormat; module_parent.send :register_set_format, Card::Format::HtmlFormat, self; extend Card::Set::AbstractFormat
11
9
  def act_from_context
12
10
  if (act_id = params["act_id"])
@@ -86,7 +84,7 @@ module HtmlFormat; module_parent.send :register_set_format, Card::Format::HtmlFo
86
84
  end
87
85
 
88
86
  def acts_per_page
89
- @acts_per_page || ACTS_PER_PAGE
87
+ @acts_per_page ||= Card.config.acts_per_page || 10
90
88
  end
91
89
 
92
90
  def acts_page_from_params
@@ -94,11 +92,16 @@ module HtmlFormat; module_parent.send :register_set_format, Card::Format::HtmlFo
94
92
  end
95
93
 
96
94
  def act_paging acts, context
95
+ return unless controller.request # paginate requires a request
96
+
97
97
  wrap_with :div, class: "slotter btn-sm" do
98
- acts = current_page_acts acts
99
- opts = { remote: true, theme: "twitter-bootstrap-4" }
98
+ paginate current_page_acts(acts), act_paging_opts(context)
99
+ end
100
+ end
101
+
102
+ def act_paging_opts context
103
+ { remote: true, theme: "twitter-bootstrap-4" }.tap do |opts|
100
104
  opts[:total_pages] = 10 if limited_paging? context
101
- paginate acts, opts
102
105
  end
103
106
  end
104
107
 
@@ -14,12 +14,16 @@ end
14
14
  def action_from_id action_id
15
15
  return unless action_id.is_a?(Integer) || action_id =~ /^\d+$/
16
16
 
17
- # if not an integer revision id is probably a mod (e.g. if you request
17
+ # if not an integer, action_id is probably a mod (e.g. if you request
18
18
  # files/:logo/standard.png)
19
- action = Action.fetch action_id
20
- return unless action.card_id == id
21
19
 
22
- action
20
+ action_if_on_self Action.fetch(action_id)
21
+ end
22
+
23
+ def action_if_on_self action
24
+ return unless action.is_a? Action
25
+
26
+ action if action.card_id == id
23
27
  end
24
28
 
25
29
  def old_actions
@@ -25,7 +25,7 @@ def actionable?
25
25
  end
26
26
 
27
27
  event :detect_conflict, :validate, on: :update, when: :edit_conflict? do
28
- errors.add :conflict, tr(:error_not_latest_revision)
28
+ errors.add :conflict, Cardio.t(:history_error_not_latest_revision)
29
29
  end
30
30
 
31
31
  def edit_conflict?
@@ -41,7 +41,7 @@ event :finalize_action, :finalize, when: :finalize_action? do
41
41
  if changed_fields.present?
42
42
  @current_action.update! card_id: id
43
43
 
44
- # Note: #last_change_on uses the id to sort by date
44
+ # NOTE: #last_change_on uses the id to sort by date
45
45
  # so the changes for the create changes have to be created before the first change
46
46
  store_card_changes_for_create_action if first_change?
47
47
  store_card_changes unless first_create?
@@ -71,7 +71,7 @@ def store_each_history_field action_id, fields=nil
71
71
  if false # Card::Change.supports_import?
72
72
  # attach.feature fails with this
73
73
  values = fields.map.with_index { |field, index| [index, yield(field), action_id] }
74
- Card::Change.import [:field, :value, :card_action_id], values #, validate: false
74
+ Card::Change.import %i[field value card_action_id], values # , validate: false
75
75
  else
76
76
  fields.each do |field|
77
77
  Card::Change.create field: field,
@@ -31,7 +31,7 @@ def select_action action_id
31
31
  end
32
32
 
33
33
  def selected_action_id
34
- @selected_action_id || (@current_action&.id) || last_action_id
34
+ @selected_action_id || @current_action&.id || last_action_id
35
35
  end
36
36
 
37
37
  def selected_action_id= action_id
@@ -48,8 +48,8 @@ def selected_content
48
48
  end
49
49
 
50
50
  def content_at_time_of_selected_action
51
- lc = last_change_on(:db_content, not_after: @selected_action_id, including_drafts: true)
52
- lc&.value
51
+ last_change_on(:db_content, not_after: selected_action_id,
52
+ including_drafts: true)&.value
53
53
  end
54
54
 
55
55
  def with_selected_action_id action_id
@@ -39,6 +39,37 @@ module HtmlFormat; module_parent.send :register_set_format, Card::Format::HtmlFo
39
39
  view :action_expanded do
40
40
  action_content action_from_context, :expanded
41
41
  end
42
+
43
+ view :change do
44
+ voo.show :title_link
45
+ voo.hide :menu
46
+ wrap do
47
+ [_render_title,
48
+ _render_menu,
49
+ _render_last_action]
50
+ end
51
+ end
52
+
53
+ view :last_action do
54
+ %(
55
+ <span class="last-update">
56
+ #{render_last_action_verb} #{render_acted_at} ago by
57
+ #{nest card.last_actor, view: :link}
58
+ </span>
59
+ )
60
+ end
61
+
62
+ view :last_action_verb, cache: :never do
63
+ return unless (act = card.last_act)
64
+ return unless (action = act.action_on card.id)
65
+
66
+ case action.action_type
67
+ when :create then "added"
68
+ when :delete then "deleted"
69
+ else
70
+ link_to_view :history, "edited", class: "last-edited", rel: "nofollow"
71
+ end
72
+ end
42
73
  end
43
74
  end;end;end;end;end;
44
75
  # ~~ generated from /Users/ethan/dev/decko/gem/card-mod-history/set/all/history/views.rb ~~
@@ -9,30 +9,17 @@ module HtmlFormat; module_parent.send :register_set_format, Card::Format::HtmlFo
9
9
  view :creator_credit,
10
10
  wrap: { div: { class: "text-muted creator-credit" } }, cache: :never do
11
11
  return "" unless card.real?
12
+
12
13
  "Created by #{nest card.creator, view: :link} "\
13
14
  "#{time_ago_in_words(card.created_at)} ago"
14
15
  end
15
16
 
16
17
  view :updated_by, wrap: { div: { class: "text-muted" } } do
17
- return "" unless card.id
18
- updaters = Card.search(updater_of: { id: card.id })
19
- return "" unless updaters.present?
20
-
21
- updaters = updater_links updaters, others_target: Card.fetch(card, :editors)
22
- "Updated by #{updaters}"
23
- end
24
-
25
- def updater_links updaters, item_view: :link, max_count: 3, others_target: card
18
+ updaters = Card.search(updater_of: { id: card.id }) if card.id
26
19
  return "" unless updaters.present?
27
20
 
28
- total = updaters.size
29
- fetch_count = total > max_count ? max_count - 1 : max_count
30
-
31
- reduced = first_card(fetch_count).map { |c| nest c, view: item_view }
32
- if total > max_count
33
- reduced << link_to_card(others_target, "#{total - fetch_count} others")
34
- end
35
- reduced.to_sentence
21
+ links = updater_links updaters, others_target: card.fetch(:editors)
22
+ "Updated by #{links}"
36
23
  end
37
24
 
38
25
  def acts_bridge_layout acts, context=:bridge
@@ -69,6 +56,33 @@ module HtmlFormat; module_parent.send :register_set_format, Card::Format::HtmlFo
69
56
  act_listing(act, opts[:act_seq], :bridge)
70
57
  end
71
58
  end
59
+
60
+ private
61
+
62
+ def updater_links updaters, item_view: :link, max_count: 3, others_target: card
63
+ total = updaters.size
64
+ num_to_show = number_of_updaters_to_show total, max_count
65
+
66
+ links =
67
+ links_to_updaters(updaters, num_to_show, item_view) +
68
+ link_to_other_updaters(total, others_target, num_to_show)
69
+
70
+ links.to_sentence
71
+ end
72
+
73
+ def number_of_updaters_to_show total, max_count
74
+ total > max_count ? max_count - 1 : max_count
75
+ end
76
+
77
+ def links_to_updaters updaters, num_to_show, item_view
78
+ updaters[0..(num_to_show - 1)].map { |c| nest c, view: item_view }
79
+ end
80
+
81
+ def link_to_other_updaters total, target, num_to_show
82
+ return [] unless total > num_to_show
83
+
84
+ link_to_card target, "#{total - num_to_show} others"
85
+ end
72
86
  end
73
87
  end;end;end;end;
74
88
  # ~~ generated from /Users/ethan/dev/decko/gem/card-mod-history/set/all/history_bridge.rb ~~
@@ -24,11 +24,13 @@ end
24
24
 
25
25
  event :save_original_filename, :prepare_to_store, on: :save, when: :file_ready_to_save? do
26
26
  return unless @current_action
27
+
27
28
  @current_action.update! comment: original_filename
28
29
  end
29
30
 
30
31
  event :validate_file_exist, :validate, on: :create do
31
32
  return if empty_ok?
33
+
32
34
  if will_be_stored_as == :web
33
35
  errors.add "url is missing" if content.blank?
34
36
  elsif !attachment.file.present?
@@ -47,12 +49,14 @@ def file_ready_to_save?
47
49
  attachment_is_changing?
48
50
  end
49
51
 
50
- def item_names _args={} # needed for flexmail attachments. hacky.
52
+ # needed for flexmail attachments. hacky.
53
+ def item_names _args={}
51
54
  [name]
52
55
  end
53
56
 
54
57
  def original_filename
55
58
  return content.split("/").last if web?
59
+
56
60
  attachment.original_filename
57
61
  end
58
62
 
@@ -82,7 +86,7 @@ end
82
86
 
83
87
  def assign_set_specific_attributes
84
88
  # reset content if we really have something to upload
85
- self.content = nil if set_specific[attachment_name.to_s].present?
89
+ self.content = nil if set_specific[attachment_name].present?
86
90
  super
87
91
  end
88
92
 
@@ -97,25 +101,44 @@ end
97
101
 
98
102
  def revision action, before_action=false
99
103
  return unless (result = super)
104
+
100
105
  result[:empty_ok] = true
101
106
  result
102
107
  end
103
108
 
104
109
  def attachment_format ext
105
- if ext.present? && attachment && (original_ext = attachment.extension.sub(/^\./, ""))
106
- if ["file", original_ext].member? ext
107
- original_ext
108
- elsif (exts = Mime::Types[attachment.content_type])
109
- if exts.find { |mt| mt.extensions.member? ext }
110
- ext
111
- else
112
- exts[0].extensions[0]
113
- end
114
- end
110
+ rescuing_extension_issues do
111
+ return unless ext.present? && original_extension
112
+
113
+ confirm_original_extension(ext) || detect_extension(ext)
115
114
  end
116
- rescue => e
115
+ end
116
+
117
+ def rescuing_extension_issues
118
+ yield
119
+ rescue StandardError => e
117
120
  Rails.logger.info "attachment_format issue: #{e.message}"
118
121
  nil
119
122
  end
123
+
124
+ def detect_extension ext
125
+ return unless (mime_types = MIME::Types[attachment.content_type])
126
+
127
+ recognized_extension?(mime_types, ext) ? ext : mime_types[0].extensions[0]
128
+ end
129
+
130
+ def recognized_extension? mime_types, ext
131
+ mime_types.find { |mt| mt.extensions.member? ext }
132
+ end
133
+
134
+ def confirm_original_extension ext
135
+ return unless ["file", original_extension].member? ext
136
+
137
+ original_extension
138
+ end
139
+
140
+ def original_extension
141
+ @original_extension ||= attachment&.extension&.sub(/^\./, "")
142
+ end
120
143
  end;end;end;end;
121
144
  # ~~ generated from /Users/ethan/dev/decko/gem/card-mod-carrierwave/set/abstract/attachment.rb ~~
@@ -18,7 +18,7 @@ event :validate_storage_type_update, :validate, on: :update, when: :cloud? do
18
18
  # `update storage_type: :local, file: [file handle]` is ok
19
19
  return unless storage_type_changed? && !attachment_is_changing?
20
20
 
21
- errors.add :storage_type, tr(:moving_files_is_not_supported)
21
+ errors.add :storage_type, t(:carrierwave_moving_files_is_not_supported)
22
22
  end
23
23
 
24
24
  def bucket
@@ -27,6 +27,7 @@ end
27
27
 
28
28
  def new_card_bucket
29
29
  return unless new_card?
30
+
30
31
  # If the file is assigned before the bucket option we have to
31
32
  # check if there is a bucket options in set_specific.
32
33
  # That happens for exmaple when the file appears before the bucket in the
@@ -41,6 +42,7 @@ end
41
42
 
42
43
  def load_bucket_config
43
44
  return {} unless bucket
45
+
44
46
  bucket_config = Cardio.config.file_buckets&.dig(bucket.to_sym) || {}
45
47
  bucket_config.symbolize_keys!
46
48
  bucket_config[:credentials]&.symbolize_keys!
@@ -103,6 +105,7 @@ def each_credential_from_env
103
105
  regexp = credential_from_env_regexp
104
106
  ENV.each_key do |env_key|
105
107
  next unless (m = regexp.match env_key)
108
+
106
109
  yield m[:option].downcase.to_sym
107
110
  end
108
111
  end
@@ -119,6 +122,7 @@ end
119
122
 
120
123
  def bucket_from_content
121
124
  return unless content
125
+
122
126
  content.match(/^\((?<bucket>[^)]+)\)/) { |m| m[:bucket] }
123
127
  end
124
128
 
@@ -8,12 +8,17 @@ def self.source_location; "/Users/ethan/dev/decko/gem/card-mod-carrierwave/set/a
8
8
  event :lose_coded_status_on_update, :initialize, on: :update, when: :coded? do
9
9
  # unless explicit
10
10
  return if @new_mod
11
+
11
12
  @new_storage_type ||= storage_type_from_config
12
13
  end
13
14
 
14
15
  event :validate_coded_storage_type, :validate, on: :save, when: :will_become_coded? do
15
- errors.add :storage_type, tr(:mod_argument_needed_to_save) unless mod || @new_mod
16
- errors.add :storage_type, tr(:codename_needed_for_storage) if codename.blank?
16
+ storage_type_error :mod_argument_needed_to_save unless mod || @new_mod
17
+ storage_type_error :codename_needed_for_storage if codename.blank?
18
+ end
19
+
20
+ def storage_type_error error_name
21
+ errors.add :storage_type, t("carrierwave_#{error_name}")
17
22
  end
18
23
 
19
24
  def will_become_coded?
@@ -5,7 +5,6 @@ class Card; module Set; class Abstract; module Attachment;
5
5
  module Local;
6
6
  extend Card::Set
7
7
  def self.source_location; "/Users/ethan/dev/decko/gem/card-mod-carrierwave/set/abstract/attachment/local.rb"; end
8
-
9
8
  event :update_public_link_on_create, :integrate, on: :create, when: :local? do
10
9
  update_public_link
11
10
  end
@@ -16,6 +15,7 @@ end
16
15
 
17
16
  event :update_public_link, after: :update_read_rule, when: :local? do
18
17
  return if content.blank?
18
+
19
19
  if who_can(:read).include? Card::AnyoneID
20
20
  create_public_links
21
21
  else
@@ -28,6 +28,7 @@ private
28
28
  def create_public_links
29
29
  path = attachment.public_path
30
30
  return if File.exist? path
31
+
31
32
  FileUtils.mkdir_p File.dirname(path)
32
33
  File.symlink attachment.path, path unless File.symlink? path
33
34
  create_versions_public_links
@@ -36,6 +37,7 @@ end
36
37
  def create_versions_public_links
37
38
  attachment.versions.each_value do |version|
38
39
  next if File.symlink? version.public_path
40
+
39
41
  File.symlink version.path, version.public_path
40
42
  end
41
43
  end
@@ -43,6 +45,7 @@ end
43
45
  def remove_public_links
44
46
  symlink_dir = File.dirname attachment.public_path
45
47
  return unless Dir.exist? symlink_dir
48
+
46
49
  FileUtils.rm_rf symlink_dir
47
50
  end
48
51
  end;end;end;end;end;