alchemy_cms 4.0.6 → 4.1.0.beta

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 (340) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +1 -0
  3. data/.gitignore +1 -0
  4. data/.localeapp/config.rb +8 -0
  5. data/.rubocop.yml +26 -13
  6. data/.travis.yml +12 -14
  7. data/CHANGELOG.md +5 -24
  8. data/Gemfile +10 -7
  9. data/README.md +16 -14
  10. data/Rakefile +1 -1
  11. data/alchemy_cms.gemspec +6 -7
  12. data/app/assets/images/alchemy/alchemy-logo.png +0 -0
  13. data/app/assets/images/alchemy/alchemy-logo.svg +1 -70
  14. data/app/assets/images/alchemy/favicon.ico +0 -0
  15. data/app/assets/images/alchemy/icon.svg +1 -14
  16. data/app/assets/javascripts/alchemy/admin.js +0 -7
  17. data/app/assets/javascripts/alchemy/alchemy.base.js.coffee +2 -2
  18. data/app/assets/javascripts/alchemy/alchemy.buttons.js.coffee +1 -1
  19. data/app/assets/javascripts/alchemy/alchemy.confirm_dialog.js.coffee +1 -1
  20. data/app/assets/javascripts/alchemy/alchemy.datepicker.js.coffee +1 -0
  21. data/app/assets/javascripts/alchemy/alchemy.dialog.js.coffee +19 -6
  22. data/app/assets/javascripts/alchemy/alchemy.dirty.js.coffee +2 -7
  23. data/app/assets/javascripts/alchemy/alchemy.element_editors.js.coffee +36 -26
  24. data/app/assets/javascripts/alchemy/alchemy.elements_window.js.coffee +6 -15
  25. data/app/assets/javascripts/alchemy/alchemy.file_progress.js.coffee +1 -1
  26. data/app/assets/javascripts/alchemy/alchemy.growler.js.coffee +8 -11
  27. data/app/assets/javascripts/alchemy/alchemy.gui.js.coffee +4 -1
  28. data/app/assets/javascripts/alchemy/alchemy.image_overlay.coffee +1 -1
  29. data/app/assets/javascripts/alchemy/alchemy.initializer.js.coffee +5 -14
  30. data/app/assets/javascripts/alchemy/alchemy.preview.js.coffee +54 -75
  31. data/app/assets/javascripts/alchemy/alchemy.preview_window.js.coffee +4 -13
  32. data/app/assets/javascripts/alchemy/alchemy.sitemap.js.coffee +1 -0
  33. data/app/assets/javascripts/alchemy/alchemy.tinymce.js.coffee +12 -6
  34. data/app/assets/javascripts/alchemy/alchemy.translations.js.coffee +0 -158
  35. data/app/assets/stylesheets/alchemy/_defaults.scss +0 -2
  36. data/app/assets/stylesheets/alchemy/_extends.scss +13 -18
  37. data/app/assets/stylesheets/alchemy/_mixins.scss +72 -46
  38. data/app/assets/stylesheets/alchemy/_variables.scss +128 -59
  39. data/app/assets/stylesheets/alchemy/admin.scss +7 -1
  40. data/app/assets/stylesheets/alchemy/archive.scss +23 -27
  41. data/app/assets/stylesheets/alchemy/base.scss +5 -355
  42. data/app/assets/stylesheets/alchemy/buttons.scss +23 -60
  43. data/app/assets/stylesheets/alchemy/clipboard.scss +26 -0
  44. data/app/assets/stylesheets/alchemy/dashboard.scss +7 -40
  45. data/app/assets/stylesheets/alchemy/dialogs.scss +23 -36
  46. data/app/assets/stylesheets/alchemy/elements.scss +80 -156
  47. data/app/assets/stylesheets/alchemy/errors.scss +2 -2
  48. data/app/assets/stylesheets/alchemy/flash.scss +19 -10
  49. data/app/assets/stylesheets/alchemy/fonts.scss +13 -0
  50. data/app/assets/stylesheets/alchemy/forms.scss +6 -1
  51. data/app/assets/stylesheets/alchemy/frame.scss +24 -65
  52. data/app/assets/stylesheets/alchemy/hints.scss +2 -2
  53. data/app/assets/stylesheets/alchemy/icons.scss +3 -337
  54. data/app/assets/stylesheets/alchemy/image_library.scss +9 -10
  55. data/app/assets/stylesheets/alchemy/jquery-ui.scss +21 -839
  56. data/app/assets/stylesheets/alchemy/jquery.datetimepicker.scss +32 -57
  57. data/app/assets/stylesheets/alchemy/lists.scss +4 -8
  58. data/app/assets/stylesheets/alchemy/menubar.scss +26 -29
  59. data/app/assets/stylesheets/alchemy/navigation.scss +23 -25
  60. data/app/assets/stylesheets/alchemy/notices.scss +25 -25
  61. data/app/assets/stylesheets/alchemy/pagination.scss +12 -7
  62. data/app/assets/stylesheets/alchemy/preview_window.scss +20 -0
  63. data/app/assets/stylesheets/alchemy/resource_info.scss +1 -1
  64. data/app/assets/stylesheets/alchemy/search.scss +19 -15
  65. data/app/assets/stylesheets/alchemy/selects.scss +63 -32
  66. data/app/assets/stylesheets/alchemy/sitemap.scss +70 -148
  67. data/app/assets/stylesheets/alchemy/tables.scss +16 -59
  68. data/app/assets/stylesheets/alchemy/toolbar.scss +9 -36
  69. data/app/assets/stylesheets/alchemy/trash.scss +8 -0
  70. data/app/assets/stylesheets/alchemy/upload.scss +5 -6
  71. data/app/assets/stylesheets/tinymce/skins/alchemy/content.min.css.scss +1 -0
  72. data/app/assets/stylesheets/tinymce/skins/alchemy/skin.min.css.scss +78 -43
  73. data/app/controllers/alchemy/admin/attachments_controller.rb +6 -6
  74. data/app/controllers/alchemy/admin/base_controller.rb +9 -9
  75. data/app/controllers/alchemy/admin/contents_controller.rb +0 -17
  76. data/app/controllers/alchemy/admin/elements_controller.rb +1 -4
  77. data/app/controllers/alchemy/admin/essence_files_controller.rb +1 -3
  78. data/app/controllers/alchemy/admin/essence_pictures_controller.rb +1 -3
  79. data/app/controllers/alchemy/admin/languages_controller.rb +1 -1
  80. data/app/controllers/alchemy/admin/pictures_controller.rb +5 -5
  81. data/app/controllers/alchemy/admin/resources_controller.rb +10 -10
  82. data/app/controllers/alchemy/admin/tags_controller.rb +7 -7
  83. data/app/controllers/alchemy/api/contents_controller.rb +6 -1
  84. data/app/controllers/alchemy/api/elements_controller.rb +5 -1
  85. data/app/controllers/alchemy/api/pages_controller.rb +6 -1
  86. data/app/controllers/alchemy/base_controller.rb +5 -3
  87. data/app/controllers/alchemy/pages_controller.rb +1 -1
  88. data/app/helpers/alchemy/admin/base_helper.rb +14 -15
  89. data/app/helpers/alchemy/admin/contents_helper.rb +1 -2
  90. data/app/helpers/alchemy/admin/elements_helper.rb +7 -6
  91. data/app/helpers/alchemy/admin/tags_helper.rb +3 -4
  92. data/app/helpers/alchemy/base_helper.rb +35 -5
  93. data/app/helpers/alchemy/elements_helper.rb +2 -2
  94. data/app/helpers/alchemy/pages_helper.rb +4 -2
  95. data/app/models/alchemy/attachment.rb +14 -23
  96. data/app/models/alchemy/base_record.rb +13 -0
  97. data/app/models/alchemy/cell.rb +1 -1
  98. data/app/models/alchemy/content.rb +1 -2
  99. data/app/models/alchemy/content/factory.rb +1 -1
  100. data/app/models/alchemy/element.rb +10 -12
  101. data/app/models/alchemy/essence_boolean.rb +1 -1
  102. data/app/models/alchemy/essence_date.rb +2 -2
  103. data/app/models/alchemy/essence_file.rb +1 -1
  104. data/app/models/alchemy/essence_html.rb +1 -1
  105. data/app/models/alchemy/essence_link.rb +1 -1
  106. data/app/models/alchemy/essence_picture.rb +1 -1
  107. data/app/models/alchemy/essence_richtext.rb +1 -1
  108. data/app/models/alchemy/essence_select.rb +1 -1
  109. data/app/models/alchemy/essence_text.rb +1 -1
  110. data/app/models/alchemy/folded_page.rb +1 -1
  111. data/app/models/alchemy/language.rb +21 -5
  112. data/app/models/alchemy/page.rb +17 -5
  113. data/app/models/alchemy/page/page_elements.rb +14 -2
  114. data/app/models/alchemy/page/page_naming.rb +17 -4
  115. data/app/models/alchemy/picture.rb +4 -7
  116. data/app/models/alchemy/site.rb +3 -3
  117. data/app/models/alchemy/tag.rb +3 -3
  118. data/app/models/concerns/alchemy/content_touching.rb +23 -0
  119. data/app/serializers/alchemy/element_serializer.rb +2 -0
  120. data/app/views/alchemy/admin/attachments/_archive_overlay.html.erb +1 -1
  121. data/app/views/alchemy/admin/attachments/_attachment.html.erb +11 -21
  122. data/app/views/alchemy/admin/attachments/_files_list.html.erb +26 -29
  123. data/app/views/alchemy/admin/attachments/_filter_bar.html.erb +2 -3
  124. data/app/views/alchemy/admin/attachments/_overlay_file_list.html.erb +3 -4
  125. data/app/views/alchemy/admin/attachments/_replace_button.html.erb +2 -3
  126. data/app/views/alchemy/admin/attachments/_tag_list.html.erb +3 -3
  127. data/app/views/alchemy/admin/attachments/destroy.js.erb +1 -1
  128. data/app/views/alchemy/admin/attachments/edit.html.erb +2 -2
  129. data/app/views/alchemy/admin/attachments/index.html.erb +3 -2
  130. data/app/views/alchemy/admin/attachments/show.html.erb +7 -8
  131. data/app/views/alchemy/admin/clipboard/clear.js.erb +1 -1
  132. data/app/views/alchemy/admin/clipboard/index.html.erb +23 -7
  133. data/app/views/alchemy/admin/clipboard/insert.js.erb +1 -1
  134. data/app/views/alchemy/admin/clipboard/remove.js.erb +2 -2
  135. data/app/views/alchemy/admin/contents/create.js.erb +1 -1
  136. data/app/views/alchemy/admin/dashboard/_locked_pages.html.erb +9 -6
  137. data/app/views/alchemy/admin/dashboard/_recent_pages.html.erb +6 -4
  138. data/app/views/alchemy/admin/dashboard/_sites.html.erb +4 -2
  139. data/app/views/alchemy/admin/dashboard/_users.html.erb +6 -4
  140. data/app/views/alchemy/admin/dashboard/index.html.erb +3 -3
  141. data/app/views/alchemy/admin/dashboard/info.html.erb +6 -7
  142. data/app/views/alchemy/admin/elements/_add_picture.html.erb +1 -1
  143. data/app/views/alchemy/admin/elements/_element.html.erb +1 -1
  144. data/app/views/alchemy/admin/elements/_element_header.html.erb +14 -14
  145. data/app/views/alchemy/admin/elements/_element_toolbar.html.erb +3 -3
  146. data/app/views/alchemy/admin/elements/_new_element_form.html.erb +2 -3
  147. data/app/views/alchemy/admin/elements/index.html.erb +2 -4
  148. data/app/views/alchemy/admin/elements/new.html.erb +1 -2
  149. data/app/views/alchemy/admin/elements/publish.js.erb +5 -5
  150. data/app/views/alchemy/admin/languages/_language.html.erb +4 -9
  151. data/app/views/alchemy/admin/languages/_table.html.erb +1 -1
  152. data/app/views/alchemy/admin/languages/index.html.erb +1 -1
  153. data/app/views/alchemy/admin/layoutpages/_layoutpage.html.erb +5 -5
  154. data/app/views/alchemy/admin/layoutpages/index.html.erb +5 -4
  155. data/app/views/alchemy/admin/leave.html.erb +1 -1
  156. data/app/views/alchemy/admin/legacy_page_urls/_legacy_page_url.html.erb +1 -1
  157. data/app/views/alchemy/admin/legacy_page_urls/_new.html.erb +1 -1
  158. data/app/views/alchemy/admin/pages/_form.html.erb +1 -1
  159. data/app/views/alchemy/admin/pages/_locked_page.html.erb +1 -1
  160. data/app/views/alchemy/admin/pages/_page.html.erb +31 -23
  161. data/app/views/alchemy/admin/pages/_page_for_links.html.erb +5 -5
  162. data/app/views/alchemy/admin/pages/_page_infos.html.erb +3 -3
  163. data/app/views/alchemy/admin/pages/_publication_fields.html.erb +1 -1
  164. data/app/views/alchemy/admin/pages/edit.html.erb +22 -21
  165. data/app/views/alchemy/admin/pages/index.html.erb +5 -21
  166. data/app/views/alchemy/admin/pages/info.html.erb +5 -5
  167. data/app/views/alchemy/admin/pages/sort.html.erb +1 -1
  168. data/app/views/alchemy/admin/pages/unlock.js.erb +2 -4
  169. data/app/views/alchemy/admin/partials/_flash.html.erb +1 -1
  170. data/app/views/alchemy/admin/partials/_main_navigation_entry.html.erb +7 -3
  171. data/app/views/alchemy/admin/partials/_remote_search_form.html.erb +2 -2
  172. data/app/views/alchemy/admin/partials/_search_form.html.erb +3 -3
  173. data/app/views/alchemy/admin/pictures/_archive.html.erb +19 -17
  174. data/app/views/alchemy/admin/pictures/_archive_overlay.html.erb +1 -1
  175. data/app/views/alchemy/admin/pictures/_filter_and_size_bar.html.erb +13 -13
  176. data/app/views/alchemy/admin/pictures/_filter_bar.html.erb +2 -3
  177. data/app/views/alchemy/admin/pictures/_form.html.erb +3 -3
  178. data/app/views/alchemy/admin/pictures/_overlay_picture_list.html.erb +2 -3
  179. data/app/views/alchemy/admin/pictures/_picture.html.erb +7 -7
  180. data/app/views/alchemy/admin/pictures/_tag_list.html.erb +3 -3
  181. data/app/views/alchemy/admin/pictures/edit_multiple.html.erb +6 -7
  182. data/app/views/alchemy/admin/pictures/index.html.erb +12 -12
  183. data/app/views/alchemy/admin/pictures/index.js.erb +0 -1
  184. data/app/views/alchemy/admin/pictures/show.html.erb +9 -9
  185. data/app/views/alchemy/admin/resources/_filter_bar.html.erb +2 -3
  186. data/app/views/alchemy/admin/resources/_form.html.erb +10 -2
  187. data/app/views/alchemy/admin/resources/_resource.html.erb +9 -14
  188. data/app/views/alchemy/admin/resources/_table.html.erb +1 -1
  189. data/app/views/alchemy/admin/resources/_tag_list.html.erb +4 -4
  190. data/app/views/alchemy/admin/resources/index.html.erb +2 -3
  191. data/app/views/alchemy/admin/sites/index.html.erb +1 -1
  192. data/app/views/alchemy/admin/tags/_tag.html.erb +7 -11
  193. data/app/views/alchemy/admin/tags/index.html.erb +4 -4
  194. data/app/views/alchemy/admin/trash/index.html.erb +2 -3
  195. data/app/views/alchemy/admin/uploader/_button.html.erb +1 -2
  196. data/app/views/alchemy/base/500.html.erb +1 -1
  197. data/app/views/alchemy/base/permission_denied.js.erb +1 -1
  198. data/app/views/alchemy/base/redirect.js.erb +1 -2
  199. data/app/views/alchemy/elements/_editor_not_found.html.erb +2 -3
  200. data/app/views/alchemy/essences/_essence_date_editor.html.erb +1 -1
  201. data/app/views/alchemy/essences/_essence_file_editor.html.erb +7 -11
  202. data/app/views/alchemy/essences/_essence_picture_editor.html.erb +9 -7
  203. data/app/views/alchemy/essences/shared/_essence_picture_tools.html.erb +1 -1
  204. data/app/views/alchemy/pages/_meta_data.html.erb +1 -1
  205. data/app/views/kaminari/alchemy/_first_page.html.erb +7 -3
  206. data/app/views/kaminari/alchemy/_gap.html.erb +1 -1
  207. data/app/views/kaminari/alchemy/_last_page.html.erb +7 -3
  208. data/app/views/kaminari/alchemy/_next_page.html.erb +4 -2
  209. data/app/views/kaminari/alchemy/_page.html.erb +1 -1
  210. data/app/views/kaminari/alchemy/_prev_page.html.erb +4 -2
  211. data/app/views/layouts/alchemy/admin.html.erb +8 -6
  212. data/bin/rails +2 -2
  213. data/bin/rspec +1 -1
  214. data/config/alchemy/config.yml +0 -2
  215. data/config/alchemy/modules.yml +5 -5
  216. data/config/initializers/simple_form.rb +45 -8
  217. data/config/locales/alchemy.en.yml +66 -179
  218. data/config/routes.rb +1 -1
  219. data/db/migrate/20180226123013_alchemy_four_point_zero.rb +392 -0
  220. data/db/migrate/20180227224537_migrate_tags_to_gutentag.rb +41 -0
  221. data/lib/alchemy/config.rb +0 -2
  222. data/lib/alchemy/engine.rb +5 -9
  223. data/lib/alchemy/essence.rb +6 -6
  224. data/lib/alchemy/filetypes.rb +13 -1
  225. data/lib/alchemy/forms/builder.rb +5 -3
  226. data/lib/alchemy/i18n.rb +8 -6
  227. data/lib/alchemy/modules.rb +1 -1
  228. data/lib/alchemy/name_conversions.rb +0 -2
  229. data/lib/alchemy/page_layout.rb +3 -2
  230. data/lib/alchemy/paths.rb +5 -5
  231. data/lib/alchemy/resource.rb +9 -9
  232. data/lib/alchemy/resources_helper.rb +11 -15
  233. data/lib/alchemy/routing_constraints.rb +2 -2
  234. data/lib/alchemy/shell.rb +0 -1
  235. data/lib/alchemy/taggable.rb +40 -0
  236. data/lib/alchemy/tasks/tidy.rb +1 -9
  237. data/lib/alchemy/test_support/factories/content_factory.rb +10 -0
  238. data/lib/alchemy/test_support/factories/element_factory.rb +5 -0
  239. data/lib/alchemy/test_support/shared_contexts.rb +1 -1
  240. data/lib/alchemy/tinymce.rb +2 -2
  241. data/lib/alchemy/upgrader/four_point_one.rb +42 -0
  242. data/lib/alchemy/upgrader/tasks/harden_acts_as_taggable_on_migrations.rb +27 -0
  243. data/lib/alchemy/version.rb +1 -1
  244. data/lib/alchemy_cms.rb +2 -3
  245. data/lib/rails/generators/alchemy/elements/elements_generator.rb +2 -2
  246. data/lib/rails/generators/alchemy/essence/essence_generator.rb +1 -1
  247. data/lib/rails/generators/alchemy/install/install_generator.rb +4 -8
  248. data/lib/rails/generators/alchemy/module/module_generator.rb +1 -1
  249. data/lib/rails/generators/alchemy/page_layouts/page_layouts_generator.rb +2 -2
  250. data/lib/rails/generators/alchemy/site_layouts/site_layouts_generator.rb +2 -2
  251. data/lib/rails/generators/alchemy/views/views_generator.rb +1 -1
  252. data/lib/tasks/alchemy/db.rake +2 -1
  253. data/lib/tasks/alchemy/tidy.rake +0 -6
  254. data/lib/tasks/alchemy/upgrade.rake +11 -144
  255. data/vendor/assets/fonts/fa-regular-400.eot +0 -0
  256. data/vendor/assets/fonts/fa-regular-400.svg +363 -0
  257. data/vendor/assets/fonts/fa-regular-400.ttf +0 -0
  258. data/vendor/assets/fonts/fa-regular-400.woff +0 -0
  259. data/vendor/assets/fonts/fa-regular-400.woff2 +0 -0
  260. data/vendor/assets/fonts/fa-solid-900.eot +0 -0
  261. data/vendor/assets/fonts/fa-solid-900.svg +1413 -0
  262. data/vendor/assets/fonts/fa-solid-900.ttf +0 -0
  263. data/vendor/assets/fonts/fa-solid-900.woff +0 -0
  264. data/vendor/assets/fonts/fa-solid-900.woff2 +0 -0
  265. data/vendor/assets/javascripts/tinymce/license.txt +6 -6
  266. data/vendor/assets/javascripts/tinymce/tinymce.min.js +2 -15
  267. data/vendor/assets/stylesheets/fontawesome/_animated.scss +20 -0
  268. data/vendor/assets/stylesheets/fontawesome/_bordered-pulled.scss +20 -0
  269. data/vendor/assets/stylesheets/fontawesome/_core.scss +16 -0
  270. data/vendor/assets/stylesheets/fontawesome/_fixed-width.scss +6 -0
  271. data/vendor/assets/stylesheets/fontawesome/_icons.scss +792 -0
  272. data/vendor/assets/stylesheets/fontawesome/_larger.scss +23 -0
  273. data/vendor/assets/stylesheets/fontawesome/_list.scss +18 -0
  274. data/vendor/assets/stylesheets/fontawesome/_mixins.scss +57 -0
  275. data/vendor/assets/stylesheets/fontawesome/_rotated-flipped.scss +23 -0
  276. data/vendor/assets/stylesheets/fontawesome/_screen-reader.scss +5 -0
  277. data/vendor/assets/stylesheets/fontawesome/_stacked.scss +31 -0
  278. data/vendor/assets/stylesheets/fontawesome/_variables.scss +805 -0
  279. data/vendor/assets/stylesheets/fontawesome/fa-regular.scss +22 -0
  280. data/vendor/assets/stylesheets/fontawesome/fa-solid.scss +23 -0
  281. data/vendor/assets/stylesheets/fontawesome/fontawesome.scss +16 -0
  282. metadata +78 -112
  283. data/app/assets/fonts/alchemy/icons.eot +0 -0
  284. data/app/assets/fonts/alchemy/icons.svg +0 -33
  285. data/app/assets/fonts/alchemy/icons.ttf +0 -0
  286. data/app/assets/fonts/alchemy/icons.woff +0 -0
  287. data/app/assets/images/alchemy/icons.png +0 -0
  288. data/app/assets/images/alchemy/ui-icons_666666_256x240.png +0 -0
  289. data/app/assets/images/sassy-ie-overlay.png +0 -0
  290. data/app/assets/javascripts/alchemy/alchemy.jquery_loader.js +0 -42
  291. data/app/assets/stylesheets/alchemy/icon-font.scss +0 -75
  292. data/app/assets/stylesheets/alchemy/modules.scss +0 -27
  293. data/app/models/alchemy.rb +0 -7
  294. data/app/views/alchemy/admin/contents/destroy.js.erb +0 -4
  295. data/app/views/alchemy/admin/pictures/flush.js.erb +0 -2
  296. data/config/locales/alchemy.de.yml +0 -932
  297. data/config/locales/alchemy.es.yml +0 -960
  298. data/config/locales/alchemy.fr.yml +0 -938
  299. data/config/locales/alchemy.it.yml +0 -938
  300. data/config/locales/alchemy.nl.yml +0 -918
  301. data/config/locales/alchemy.ru.yml +0 -830
  302. data/config/locales/simple_form.de.yml +0 -26
  303. data/config/locales/simple_form.en.yml +0 -25
  304. data/config/locales/simple_form.es.yml +0 -6
  305. data/config/locales/simple_form.fr.yml +0 -26
  306. data/config/locales/simple_form.it.yml +0 -25
  307. data/config/locales/simple_form.nl.yml +0 -25
  308. data/config/locales/simple_form.ru.yml +0 -25
  309. data/db/migrate/20130827094554_alchemy_two_point_six.rb +0 -378
  310. data/db/migrate/20130828121054_remove_do_not_index_from_alchemy_essence_texts.rb +0 -5
  311. data/db/migrate/20130828121120_remove_do_not_index_from_alchemy_essence_richtexts.rb +0 -5
  312. data/db/migrate/20130918201742_add_published_at_to_alchemy_pages.rb +0 -5
  313. data/db/migrate/20150608204610_add_parent_element_id_to_alchemy_elements.rb +0 -6
  314. data/db/migrate/20150729151825_add_link_text_to_alchemy_essence_files.rb +0 -5
  315. data/db/migrate/20150906195818_add_locale_to_alchemy_languages.rb +0 -7
  316. data/db/migrate/20160108174834_add_timebased_publishing_columns_to_pages.rb +0 -32
  317. data/db/migrate/20160422195310_add_image_file_format_to_alchemy_pictures.rb +0 -9
  318. data/db/migrate/20160617224938_change_alchemy_pages_locked_to_locked_at.rb +0 -22
  319. data/db/migrate/20160912223112_add_index_to_alchemy_pages_rgt.rb +0 -9
  320. data/db/migrate/20160927205604_add_foreign_key_indices_and_null_constraints.rb +0 -20
  321. data/db/migrate/20160928080104_add_foreign_keys.rb +0 -27
  322. data/lib/alchemy/touching.rb +0 -42
  323. data/lib/alchemy/upgrader/tasks/available_contents_upgrader.rb +0 -161
  324. data/lib/alchemy/upgrader/tasks/install_asset_manifests.rb +0 -15
  325. data/lib/alchemy/upgrader/tasks/install_dragonfly_config.rb +0 -14
  326. data/lib/alchemy/upgrader/tasks/nestable_elements_migration.rb +0 -71
  327. data/lib/alchemy/upgrader/tasks/three_point_two_task.rb +0 -31
  328. data/lib/alchemy/upgrader/three_point_five.rb +0 -32
  329. data/lib/alchemy/upgrader/three_point_four.rb +0 -52
  330. data/lib/alchemy/upgrader/three_point_one.rb +0 -54
  331. data/lib/alchemy/upgrader/three_point_three.rb +0 -50
  332. data/lib/alchemy/upgrader/three_point_two.rb +0 -40
  333. data/lib/alchemy/upgrader/three_point_zero.rb +0 -92
  334. data/vendor/assets/javascripts/jquery_plugins/jquery.floatThead.min.js +0 -3
  335. data/vendor/assets/javascripts/tinymce/langs/de.js +0 -219
  336. data/vendor/assets/javascripts/tinymce/langs/es.js +0 -219
  337. data/vendor/assets/javascripts/tinymce/langs/fr.js +0 -219
  338. data/vendor/assets/javascripts/tinymce/langs/it.js +0 -219
  339. data/vendor/assets/javascripts/tinymce/langs/nl.js +0 -219
  340. data/vendor/assets/javascripts/tinymce/langs/ru.js +0 -219
@@ -1,5 +1,3 @@
1
- # encoding: UTF-8
2
-
3
1
  en:
4
2
 
5
3
  # = Alchemy Translations
@@ -199,7 +197,7 @@ en:
199
197
  "Flush picture cache": "Flush picture cache"
200
198
  "Global shortcuts": "Global shortcuts"
201
199
  "Hide childpages": "Hide childpages"
202
- hide_elements: hide_elements
200
+ hide_elements: Hide Elements
203
201
  hide_element: "Hide element"
204
202
  "Image missing": "Image missing"
205
203
  "Image size": "Image size"
@@ -435,6 +433,8 @@ en:
435
433
  pages: "Pages"
436
434
  tags: "Tags"
437
435
  sites: "Sites"
436
+ user_sessions: "Login"
437
+ users: "Users"
438
438
  name: "Name"
439
439
  names: "Names"
440
440
  navigation_name: "Navigation name"
@@ -590,149 +590,45 @@ en:
590
590
  "Update available": 'Update available'
591
591
  "Update status unavailable": 'Update status unavailable'
592
592
  "Uploading": "Uploading"
593
+ cannot_signup_more_then_once: "You can't signup more then once."
594
+ confirm_to_delete_user: "Do you really want to delete this user?"
595
+ create_user: "Create a new user"
596
+ delete_user: "Delete this user"
597
+ edit_user: "Edit the user´s properties."
598
+ "No users found": "No users found."
599
+
600
+ # Kaminari pagination translations
601
+ pagination:
602
+ first: "First Page"
603
+ previous_page: "Previous Page"
604
+ next_page: "Next Page"
605
+ last: "Last Page"
593
606
 
594
- # END of Alchemy translation
595
-
596
- # == Rails translations
597
- # Below are Rails specific translations for date, time, number, currency, error messages and so on.
598
- date:
599
- formats:
600
- default: "%Y-%m-%d"
601
- datepicker: "%Y-%m-%d"
602
- short: "%b %d"
603
- long: "%B %d, %Y"
604
- only_day: "%e"
605
- day_names: [Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday]
606
- abbr_day_names: [Sun, Mon, Tue, Wed, Thu, Fri, Sat]
607
- month_names: [~, January, February, March, April, May, June, July, August, September, October, November, December]
608
- abbr_month_names: [~, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec]
609
- order:
610
- - :year
611
- - :month
612
- - :day
607
+ # Simple form translations
608
+ forms:
609
+ "yes": 'Yes'
610
+ "no": 'No'
611
+ required:
612
+ text: 'required'
613
+ mark: '*'
614
+ error_notification:
615
+ default_message: "Please review the problems below:"
616
+
617
+ # Alchemy time formats
613
618
  time:
614
619
  formats:
615
- default: "%a, %d %b %Y %H:%M:%S %z"
616
- short: "%d %b %H:%M"
617
- long: "%B %d, %Y %H:%M"
618
- page_status: "%m.%d.%Y %H:%M"
619
- date: "%Y-%m-%d"
620
- datepicker: "%Y-%m-%d"
621
- timepicker: "%H:%M"
622
- datetimepicker: "%Y-%m-%d %H:%M"
623
- am: "am"
624
- pm: "pm"
625
- support:
626
- array:
627
- sentence_connector: "and"
628
-
629
- number:
630
- # Used in number_with_delimiter()
631
- # These are also the defaults for 'currency', 'percentage', 'precision', and 'human'
632
- format:
633
- # Sets the separator between the units, for more precision (e.g. 1.0 / 2.0 == 0.5)
634
- separator: "."
635
- # Delimets thousands (e.g. 1,000,000 is a million) (always in groups of three)
636
- delimiter: ","
637
- # Number of decimals, behind the separator (1 with a precision of 2 gives: 1.00)
638
- precision: 3
639
-
640
- # Used in number_to_currency()
641
- currency:
642
- format:
643
- # Where is the currency sign? %u is the currency unit, %n the number (default: $5.00)
644
- format: "%u%n"
645
- unit: "$"
646
- # These three are to override number.format and are optional
647
- separator: "."
648
- delimiter: ","
649
- precision: 2
650
-
651
- # Used in number_to_percentage()
652
- percentage:
653
- format:
654
- # These three are to override number.format and are optional
655
- # separator:
656
- delimiter: ""
657
- # precision:
658
-
659
- # Used in number_to_precision()
660
- precision:
661
- format:
662
- # These three are to override number.format and are optional
663
- # separator:
664
- delimiter: ""
665
- # precision:
666
-
667
- # Used in number_to_human_size()
668
- human:
669
- format:
670
- # These three are to override number.format and are optional
671
- # separator:
672
- delimiter: ""
673
- precision: 1
674
-
675
- # Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words()
676
- datetime:
677
- distance_in_words:
678
- half_a_minute: "half a minute"
679
- less_than_x_seconds:
680
- one: "less than 1 second"
681
- many: "less than %{count} seconds"
682
- x_seconds:
683
- one: "1 second"
684
- many: "%{count} seconds"
685
- less_than_x_minutes:
686
- one: "less than a minute"
687
- many: "less than %{count} minutes"
688
- x_minutes:
689
- one: "1 minute"
690
- many: "%{count} minutes"
691
- about_x_hours:
692
- one: "about 1 hour"
693
- many: "about %{count} hours"
694
- x_days:
695
- one: "1 day"
696
- many: "%{count} days"
697
- about_x_months:
698
- one: "about 1 month"
699
- many: "about %{count} months"
700
- x_months:
701
- one: "1 month"
702
- many: "%{count} months"
703
- about_x_years:
704
- one: "about 1 year"
705
- many: "about %{count} years"
706
- over_x_years:
707
- one: "over 1 year"
708
- many: "over %{count} years"
709
-
710
- errors: &errors
711
- template:
712
- header: "Validation failed"
713
- body: "Please review the form and check the errors."
714
-
715
- messages:
716
- inclusion: "is not included in the list"
717
- exclusion: "is reserved"
718
- invalid: "is invalid"
719
- record_invalid: 'Validation of %{errors} failed'
720
- confirmation: "doesn't match confirmation"
721
- accepted: "must be accepted"
722
- empty: "can't be empty"
723
- blank: "can't be blank"
724
- too_long: "is too long (maximum is %{count} characters)"
725
- too_short: "is too short (minimum is %{count} characters)"
726
- wrong_length: "is the wrong length (should be %{count} characters)"
727
- taken: "has already been taken"
728
- not_a_number: "is not a number"
729
- greater_than: "must be greater than %{count}"
730
- greater_than_or_equal_to: "must be greater than or equal to %{count}"
731
- equal_to: "must be equal to %{count}"
732
- less_than: "must be less than %{count}"
733
- less_than_or_equal_to: "must be less than or equal to %{count}"
734
- odd: "must be odd"
735
- even: "must be even"
620
+ alchemy:
621
+ datepicker: "%Y-%m-%d"
622
+ datetimepicker: "%Y-%m-%d %H:%M"
623
+ default: "%a, %d %b %Y %H:%M:%S %z"
624
+ essence_date: "%Y-%m-%d"
625
+ page_status: "%m.%d.%Y %H:%M"
626
+ short_datetime: "%d %b %H:%M"
627
+ time: "%H:%M"
628
+ timepicker: "%H:%M"
629
+
630
+ # Translations for error messages.
631
+ errors:
736
632
  models:
737
633
  alchemy/content:
738
634
  attributes:
@@ -765,13 +661,19 @@ en:
765
661
  attributes:
766
662
  image_file:
767
663
  blank: "Please attach a picture."
664
+ alchemy/user:
665
+ attributes:
666
+ email:
667
+ invalid: "is not a valid email address"
668
+ alchemy_roles:
669
+ blank: "at least one role must be given"
768
670
 
671
+ # Translations for Alchemy models
769
672
  activemodel:
770
673
  models:
771
674
  alchemy/message:
772
675
  one: Message
773
676
  other: Messages
774
-
775
677
  attributes:
776
678
  alchemy/message:
777
679
  salutation: 'Salutation'
@@ -784,51 +686,40 @@ en:
784
686
  email: 'Email'
785
687
  message: 'Message'
786
688
 
787
- errors:
788
- <<: *errors
789
-
790
- # Translations for active record database models and error messages.
689
+ # Translations for Alchemy database models
791
690
  activerecord:
792
-
793
691
  models:
794
- acts_as_taggable_on/tag:
692
+ gutentag/tag:
795
693
  one: Tag
796
694
  other: Tags
797
-
798
695
  alchemy/attachment:
799
696
  one: File
800
697
  other: Files
801
-
802
698
  alchemy/element:
803
699
  one: "Element"
804
700
  other: "Elements"
805
-
806
701
  alchemy/legacy_page_url:
807
702
  one: "Link"
808
703
  other: "Links"
809
-
810
704
  alchemy/language:
811
705
  one: "Language"
812
706
  other: "Languages"
813
-
814
707
  alchemy/page:
815
708
  one: "Page"
816
709
  other: "Pages"
817
-
818
710
  alchemy/site:
819
711
  one: Website
820
712
  other: Websites
821
-
822
713
  alchemy/picture:
823
714
  one: Picture
824
715
  other: Pictures
825
-
716
+ alchemy/user:
717
+ one: User
718
+ other: User
826
719
  attributes:
827
-
828
- acts_as_taggable_on/tag:
720
+ gutentag/tag:
829
721
  taggings_types: Used for
830
722
  taggings_count: Usage count
831
-
832
723
  alchemy/attachment:
833
724
  file_mime_type: Filetype
834
725
  created_at: "Created at"
@@ -838,16 +729,13 @@ en:
838
729
  tag_list: Tags
839
730
  url: "URL"
840
731
  download_url: "Download-URL"
841
-
842
732
  alchemy/element:
843
733
  display_name: "Name"
844
734
  name: "Name"
845
735
  public: "visible"
846
736
  tag_list: Tags
847
-
848
737
  alchemy/essence_file:
849
738
  css_class: Style
850
-
851
739
  alchemy/essence_picture:
852
740
  caption: "Caption"
853
741
  title: "Title"
@@ -861,7 +749,6 @@ en:
861
749
  crop_from: Crop from
862
750
  crop_size: Crop size
863
751
  picture_id: Bild
864
-
865
752
  alchemy/language:
866
753
  country_code: "Country code"
867
754
  language_code: "Language code"
@@ -872,10 +759,8 @@ en:
872
759
  public: "Public"
873
760
  locale: Localization
874
761
  code: ISO Code
875
-
876
762
  alchemy/legacy_page_url:
877
763
  urlname: "URL path"
878
-
879
764
  alchemy/page:
880
765
  created_at: "Created at"
881
766
  language: "Language"
@@ -895,7 +780,6 @@ en:
895
780
  updated_at: "Updated at"
896
781
  urlname: "Urlname"
897
782
  visible: "visible in navigation"
898
-
899
783
  alchemy/picture:
900
784
  image_file_name: "Filename"
901
785
  image_file_height: "Height"
@@ -904,20 +788,23 @@ en:
904
788
  image_file_size: "Filesize"
905
789
  name: "Name"
906
790
  tag_list: Tags
907
-
908
791
  alchemy/site:
909
792
  name: "Name"
910
793
  host: "Primary Host"
911
794
  public: "Public"
912
795
  aliases: "Domain-Aliases"
913
796
  redirect_to_primary_host: "Redirect to primary Host"
914
-
915
- errors:
916
- <<: *errors
917
-
918
- views:
919
- pagination:
920
- first: "First Page"
921
- previous_page: "Previous Page"
922
- next_page: "Next Page"
923
- last: "Last Page"
797
+ alchemy/user:
798
+ email: "Email"
799
+ firstname: "Firstname"
800
+ gender: "Gender"
801
+ language: "Language"
802
+ lastname: "Lastname"
803
+ last_sign_in_at: "Last Login At"
804
+ login: "Username"
805
+ name: "Name"
806
+ password: "Password"
807
+ password_confirmation: "Password confirmation"
808
+ alchemy_roles: "User roles"
809
+ send_credentials: "Send email with credentials"
810
+ tag_list: Tags
data/config/routes.rb CHANGED
@@ -15,7 +15,7 @@ Alchemy::Engine.routes.draw do
15
15
  end
16
16
 
17
17
  namespace :admin, {path: Alchemy.admin_path, constraints: Alchemy.admin_constraints} do
18
- resources :contents do
18
+ resources :contents, only: [:create] do
19
19
  collection do
20
20
  post :order
21
21
  end
@@ -0,0 +1,392 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AlchemyFourPointZero < ActiveRecord::Migration[5.0]
4
+ def up
5
+ unless table_exists?(:alchemy_attachments)
6
+ create_table :alchemy_attachments do |t|
7
+ t.string "name"
8
+ t.string "file_name"
9
+ t.string "file_mime_type"
10
+ t.integer "file_size"
11
+ t.integer "creator_id"
12
+ t.integer "updater_id"
13
+ t.datetime "created_at", null: false, precision: 6
14
+ t.datetime "updated_at", null: false, precision: 6
15
+ t.text "cached_tag_list"
16
+ t.string "file_uid"
17
+ t.index ["file_uid"], name: "index_alchemy_attachments_on_file_uid"
18
+ end
19
+ end
20
+
21
+ unless table_exists?(:alchemy_cells)
22
+ create_table :alchemy_cells do |t|
23
+ t.integer "page_id", null: false
24
+ t.string "name"
25
+ t.datetime "created_at", null: false, precision: 6
26
+ t.datetime "updated_at", null: false, precision: 6
27
+ t.index ["page_id"], name: "index_alchemy_cells_on_page_id"
28
+ end
29
+ end
30
+
31
+ unless table_exists?(:alchemy_contents)
32
+ create_table :alchemy_contents do |t|
33
+ t.string "name"
34
+ t.string "essence_type", null: false
35
+ t.integer "essence_id", null: false
36
+ t.integer "element_id", null: false
37
+ t.integer "position"
38
+ t.datetime "created_at", null: false, precision: 6
39
+ t.datetime "updated_at", null: false, precision: 6
40
+ t.integer "creator_id"
41
+ t.integer "updater_id"
42
+ t.index ["element_id", "position"], name: "index_contents_on_element_id_and_position"
43
+ t.index ["essence_id", "essence_type"], name: "index_alchemy_contents_on_essence_id_and_essence_type", unique: true
44
+ end
45
+ end
46
+
47
+ unless table_exists?(:alchemy_elements)
48
+ create_table :alchemy_elements do |t|
49
+ t.string "name"
50
+ t.integer "position"
51
+ t.integer "page_id", null: false
52
+ t.boolean "public", default: true
53
+ t.boolean "folded", default: false
54
+ t.boolean "unique", default: false
55
+ t.datetime "created_at", null: false, precision: 6
56
+ t.datetime "updated_at", null: false, precision: 6
57
+ t.integer "creator_id"
58
+ t.integer "updater_id"
59
+ t.integer "cell_id"
60
+ t.text "cached_tag_list"
61
+ t.integer "parent_element_id"
62
+ t.index ["cell_id"], name: "index_alchemy_elements_on_cell_id"
63
+ t.index ["page_id", "parent_element_id"], name: "index_alchemy_elements_on_page_id_and_parent_element_id"
64
+ t.index ["page_id", "position"], name: "index_elements_on_page_id_and_position"
65
+ end
66
+ end
67
+
68
+ unless table_exists?(:alchemy_elements_alchemy_pages)
69
+ create_table :alchemy_elements_alchemy_pages, id: false do |t|
70
+ t.integer "element_id"
71
+ t.integer "page_id"
72
+ end
73
+ end
74
+
75
+ unless table_exists?(:alchemy_essence_booleans)
76
+ create_table :alchemy_essence_booleans do |t|
77
+ t.boolean "value"
78
+ t.datetime "created_at", null: false, precision: 6
79
+ t.datetime "updated_at", null: false, precision: 6
80
+ t.integer "creator_id"
81
+ t.integer "updater_id"
82
+ t.index ["value"], name: "index_alchemy_essence_booleans_on_value"
83
+ end
84
+ end
85
+
86
+ unless table_exists?(:alchemy_essence_dates)
87
+ create_table :alchemy_essence_dates do |t|
88
+ t.datetime "date"
89
+ t.integer "creator_id"
90
+ t.integer "updater_id"
91
+ t.datetime "created_at", null: false, precision: 6
92
+ t.datetime "updated_at", null: false, precision: 6
93
+ end
94
+ end
95
+
96
+ unless table_exists?(:alchemy_essence_files)
97
+ create_table :alchemy_essence_files do |t|
98
+ t.integer "attachment_id"
99
+ t.string "title"
100
+ t.string "css_class"
101
+ t.integer "creator_id"
102
+ t.integer "updater_id"
103
+ t.datetime "created_at", null: false, precision: 6
104
+ t.datetime "updated_at", null: false, precision: 6
105
+ t.string "link_text"
106
+ t.index ["attachment_id"], name: "index_alchemy_essence_files_on_attachment_id"
107
+ end
108
+ end
109
+
110
+ unless table_exists?(:alchemy_essence_htmls)
111
+ create_table :alchemy_essence_htmls do |t|
112
+ t.text "source"
113
+ t.integer "creator_id"
114
+ t.integer "updater_id"
115
+ t.datetime "created_at", null: false, precision: 6
116
+ t.datetime "updated_at", null: false, precision: 6
117
+ end
118
+ end
119
+
120
+ unless table_exists?(:alchemy_essence_links)
121
+ create_table :alchemy_essence_links do |t|
122
+ t.string "link"
123
+ t.string "link_title"
124
+ t.string "link_target"
125
+ t.string "link_class_name"
126
+ t.datetime "created_at", null: false, precision: 6
127
+ t.datetime "updated_at", null: false, precision: 6
128
+ t.integer "creator_id"
129
+ t.integer "updater_id"
130
+ end
131
+ end
132
+
133
+ unless table_exists?(:alchemy_essence_pictures)
134
+ create_table :alchemy_essence_pictures do |t|
135
+ t.integer "picture_id"
136
+ t.string "caption"
137
+ t.string "title"
138
+ t.string "alt_tag"
139
+ t.string "link"
140
+ t.string "link_class_name"
141
+ t.string "link_title"
142
+ t.string "css_class"
143
+ t.string "link_target"
144
+ t.integer "creator_id"
145
+ t.integer "updater_id"
146
+ t.datetime "created_at", null: false, precision: 6
147
+ t.datetime "updated_at", null: false, precision: 6
148
+ t.string "crop_from"
149
+ t.string "crop_size"
150
+ t.string "render_size"
151
+ t.index ["picture_id"], name: "index_alchemy_essence_pictures_on_picture_id"
152
+ end
153
+ end
154
+
155
+ unless table_exists?(:alchemy_essence_richtexts)
156
+ create_table :alchemy_essence_richtexts do |t|
157
+ t.text "body"
158
+ t.text "stripped_body"
159
+ t.boolean "public"
160
+ t.integer "creator_id"
161
+ t.integer "updater_id"
162
+ t.datetime "created_at", null: false, precision: 6
163
+ t.datetime "updated_at", null: false, precision: 6
164
+ end
165
+ end
166
+
167
+ unless table_exists?(:alchemy_essence_selects)
168
+ create_table :alchemy_essence_selects do |t|
169
+ t.string "value"
170
+ t.datetime "created_at", null: false, precision: 6
171
+ t.datetime "updated_at", null: false, precision: 6
172
+ t.integer "creator_id"
173
+ t.integer "updater_id"
174
+ t.index ["value"], name: "index_alchemy_essence_selects_on_value"
175
+ end
176
+ end
177
+
178
+ unless table_exists?(:alchemy_essence_texts)
179
+ create_table :alchemy_essence_texts do |t|
180
+ t.text "body"
181
+ t.string "link"
182
+ t.string "link_title"
183
+ t.string "link_class_name"
184
+ t.boolean "public", default: false
185
+ t.string "link_target"
186
+ t.integer "creator_id"
187
+ t.integer "updater_id"
188
+ t.datetime "created_at", null: false, precision: 6
189
+ t.datetime "updated_at", null: false, precision: 6
190
+ end
191
+ end
192
+
193
+ unless table_exists?(:alchemy_folded_pages)
194
+ create_table :alchemy_folded_pages do |t|
195
+ t.integer "page_id", null: false
196
+ t.integer "user_id", null: false
197
+ t.boolean "folded", default: false
198
+ t.index ["page_id", "user_id"], name: "index_alchemy_folded_pages_on_page_id_and_user_id", unique: true
199
+ end
200
+ end
201
+
202
+ unless table_exists?(:alchemy_languages)
203
+ create_table :alchemy_languages do |t|
204
+ t.string "name"
205
+ t.string "language_code"
206
+ t.string "frontpage_name"
207
+ t.string "page_layout", default: "intro"
208
+ t.boolean "public", default: false
209
+ t.datetime "created_at", null: false, precision: 6
210
+ t.datetime "updated_at", null: false, precision: 6
211
+ t.integer "creator_id"
212
+ t.integer "updater_id"
213
+ t.boolean "default", default: false
214
+ t.string "country_code", default: "", null: false
215
+ t.integer "site_id", null: false
216
+ t.string "locale"
217
+ t.index ["language_code", "country_code"], name: "index_alchemy_languages_on_language_code_and_country_code"
218
+ t.index ["language_code"], name: "index_alchemy_languages_on_language_code"
219
+ t.index ["site_id"], name: "index_alchemy_languages_on_site_id"
220
+ end
221
+ end
222
+
223
+ unless table_exists?(:alchemy_legacy_page_urls)
224
+ create_table :alchemy_legacy_page_urls do |t|
225
+ t.string "urlname", null: false
226
+ t.integer "page_id", null: false
227
+ t.datetime "created_at", null: false, precision: 6
228
+ t.datetime "updated_at", null: false, precision: 6
229
+ t.index ["page_id"], name: "index_alchemy_legacy_page_urls_on_page_id"
230
+ t.index ["urlname"], name: "index_alchemy_legacy_page_urls_on_urlname"
231
+ end
232
+ end
233
+
234
+ unless table_exists?(:alchemy_pages)
235
+ create_table :alchemy_pages do |t|
236
+ t.string "name"
237
+ t.string "urlname"
238
+ t.string "title"
239
+ t.string "language_code"
240
+ t.boolean "language_root"
241
+ t.string "page_layout"
242
+ t.text "meta_keywords"
243
+ t.text "meta_description"
244
+ t.integer "lft"
245
+ t.integer "rgt"
246
+ t.integer "parent_id"
247
+ t.integer "depth"
248
+ t.boolean "visible", default: false
249
+ t.integer "locked_by"
250
+ t.boolean "restricted", default: false
251
+ t.boolean "robot_index", default: true
252
+ t.boolean "robot_follow", default: true
253
+ t.boolean "sitemap", default: true
254
+ t.boolean "layoutpage", default: false
255
+ t.datetime "created_at", null: false, precision: 6
256
+ t.datetime "updated_at", null: false, precision: 6
257
+ t.integer "creator_id"
258
+ t.integer "updater_id"
259
+ t.integer "language_id"
260
+ t.text "cached_tag_list"
261
+ t.datetime "published_at"
262
+ t.datetime "public_on"
263
+ t.datetime "public_until"
264
+ t.datetime "locked_at"
265
+ t.index ["language_id"], name: "index_pages_on_language_id"
266
+ t.index ["locked_at", "locked_by"], name: "index_alchemy_pages_on_locked_at_and_locked_by"
267
+ t.index ["parent_id", "lft"], name: "index_pages_on_parent_id_and_lft"
268
+ t.index ["public_on", "public_until"], name: "index_alchemy_pages_on_public_on_and_public_until"
269
+ t.index ["rgt"], name: "index_alchemy_pages_on_rgt"
270
+ t.index ["urlname"], name: "index_pages_on_urlname"
271
+ end
272
+ end
273
+
274
+ unless table_exists?(:alchemy_pictures)
275
+ create_table :alchemy_pictures do |t|
276
+ t.string "name"
277
+ t.string "image_file_name"
278
+ t.integer "image_file_width"
279
+ t.integer "image_file_height"
280
+ t.datetime "created_at", null: false, precision: 6
281
+ t.datetime "updated_at", null: false, precision: 6
282
+ t.integer "creator_id"
283
+ t.integer "updater_id"
284
+ t.string "upload_hash"
285
+ t.text "cached_tag_list"
286
+ t.string "image_file_uid"
287
+ t.integer "image_file_size"
288
+ t.string "image_file_format"
289
+ end
290
+ end
291
+
292
+ unless table_exists?(:alchemy_sites)
293
+ create_table :alchemy_sites do |t|
294
+ t.string "host"
295
+ t.string "name"
296
+ t.datetime "created_at", null: false, precision: 6
297
+ t.datetime "updated_at", null: false, precision: 6
298
+ t.boolean "public", default: false
299
+ t.text "aliases"
300
+ t.boolean "redirect_to_primary_host"
301
+ t.index ["host", "public"], name: "alchemy_sites_public_hosts_idx"
302
+ t.index ["host"], name: "index_alchemy_sites_on_host"
303
+ end
304
+ end
305
+
306
+ unless table_exists?(:taggings)
307
+ create_table :taggings do |t|
308
+ t.integer "tag_id"
309
+ t.string "taggable_type"
310
+ t.integer "taggable_id"
311
+ t.string "tagger_type"
312
+ t.integer "tagger_id"
313
+ t.string "context", limit: 128
314
+ t.datetime "created_at", precision: 6
315
+ t.index ["context"], name: "index_taggings_on_context"
316
+ t.index ["tag_id", "taggable_id", "taggable_type", "context", "tagger_id", "tagger_type"], name: "taggings_idx", unique: true
317
+ t.index ["tag_id"], name: "index_taggings_on_tag_id"
318
+ t.index ["taggable_id", "taggable_type", "context"], name: "index_taggings_on_taggable_id_and_taggable_type_and_context"
319
+ t.index ["taggable_id", "taggable_type", "tagger_id", "context"], name: "taggings_idy"
320
+ t.index ["taggable_id"], name: "index_taggings_on_taggable_id"
321
+ t.index ["taggable_type"], name: "index_taggings_on_taggable_type"
322
+ t.index ["tagger_id", "tagger_type"], name: "index_taggings_on_tagger_id_and_tagger_type"
323
+ t.index ["tagger_id"], name: "index_taggings_on_tagger_id"
324
+ end
325
+ end
326
+
327
+ unless table_exists?(:tags)
328
+ create_table :tags do |t|
329
+ t.string "name"
330
+ t.integer "taggings_count", default: 0
331
+ t.index ["name"], name: "index_tags_on_name", unique: true
332
+ end
333
+ end
334
+
335
+ unless foreign_key_exists?(:alchemy_cells, column: :page_id)
336
+ add_foreign_key :alchemy_cells, :alchemy_pages,
337
+ column: :page_id,
338
+ on_update: :cascade,
339
+ on_delete: :cascade,
340
+ name: :alchemy_cells_page_id_fkey
341
+ end
342
+
343
+ unless foreign_key_exists?(:alchemy_contents, column: :element_id)
344
+ add_foreign_key :alchemy_contents, :alchemy_elements,
345
+ column: :element_id,
346
+ on_update: :cascade,
347
+ on_delete: :cascade,
348
+ name: :alchemy_contents_element_id_fkey
349
+ end
350
+
351
+ unless foreign_key_exists?(:alchemy_elements, column: :page_id)
352
+ add_foreign_key :alchemy_elements, :alchemy_pages,
353
+ column: :page_id,
354
+ on_update: :cascade,
355
+ on_delete: :cascade,
356
+ name: :alchemy_elements_page_id_fkey
357
+ end
358
+
359
+ unless foreign_key_exists?(:alchemy_elements, column: :cell_id)
360
+ add_foreign_key :alchemy_elements, :alchemy_cells,
361
+ column: :cell_id,
362
+ on_update: :cascade,
363
+ on_delete: :cascade,
364
+ name: :alchemy_elements_cell_id_fkey
365
+ end
366
+ end
367
+
368
+ def down
369
+ drop_table(:alchemy_attachments) if table_exists?(:alchemy_attachments)
370
+ drop_table(:alchemy_cells) if table_exists?(:alchemy_cells)
371
+ drop_table(:alchemy_contents) if table_exists?(:alchemy_contents)
372
+ drop_table(:alchemy_elements) if table_exists?(:alchemy_elements)
373
+ drop_table(:alchemy_elements_alchemy_pages) if table_exists?(:alchemy_elements_alchemy_pages)
374
+ drop_table(:alchemy_essence_booleans) if table_exists?(:alchemy_essence_booleans)
375
+ drop_table(:alchemy_essence_dates) if table_exists?(:alchemy_essence_dates)
376
+ drop_table(:alchemy_essence_files) if table_exists?(:alchemy_essence_files)
377
+ drop_table(:alchemy_essence_htmls) if table_exists?(:alchemy_essence_htmls)
378
+ drop_table(:alchemy_essence_links) if table_exists?(:alchemy_essence_links)
379
+ drop_table(:alchemy_essence_pictures) if table_exists?(:alchemy_essence_pictures)
380
+ drop_table(:alchemy_essence_richtexts) if table_exists?(:alchemy_essence_richtexts)
381
+ drop_table(:alchemy_essence_selects) if table_exists?(:alchemy_essence_selects)
382
+ drop_table(:alchemy_essence_texts) if table_exists?(:alchemy_essence_texts)
383
+ drop_table(:alchemy_folded_pages) if table_exists?(:alchemy_folded_pages)
384
+ drop_table(:alchemy_languages) if table_exists?(:alchemy_languages)
385
+ drop_table(:alchemy_legacy_page_urls) if table_exists?(:alchemy_legacy_page_urls)
386
+ drop_table(:alchemy_pages) if table_exists?(:alchemy_pages)
387
+ drop_table(:alchemy_pictures) if table_exists?(:alchemy_pictures)
388
+ drop_table(:alchemy_sites) if table_exists?(:alchemy_sites)
389
+ drop_table(:taggings) if table_exists?(:taggings)
390
+ drop_table(:tags) if table_exists?(:tags)
391
+ end
392
+ end