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,31 +0,0 @@
1
- require 'thor'
2
-
3
- module Alchemy::Upgrader::Tasks
4
- class ThreePointTwoTask < Thor
5
- include Thor::Actions
6
-
7
- no_tasks do
8
- def patch_acts_as_taggable_on_migrations
9
- sentinel = /def self.up/
10
-
11
- aato_file = Dir.glob('db/migrate/*_acts_as_taggable_on_migration.*.rb').first
12
- if aato_file
13
- inject_into_file aato_file,
14
- "\n # inserted by Alchemy CMS upgrader\n return if table_exists?(:tags)\n",
15
- { after: sentinel, verbose: true }
16
- end
17
-
18
- aato_file = Dir.glob('db/migrate/*_add_missing_unique_indices.*.rb').first
19
- if aato_file
20
- inject_into_file aato_file,
21
- "\n # inserted by Alchemy CMS upgrader\n return if index_exists?(:tags, :name)\n",
22
- { after: sentinel, verbose: true }
23
- end
24
- end
25
-
26
- def inject_seeder
27
- append_file "./db/seeds.rb", "Alchemy::Seeder.seed!\n"
28
- end
29
- end
30
- end
31
- end
@@ -1,32 +0,0 @@
1
- require_relative 'tasks/install_dragonfly_config'
2
-
3
- module Alchemy
4
- class Upgrader::ThreePointFive < Upgrader
5
- class << self
6
- def install_dragonfly_config
7
- desc 'Install dragonfly config into `config/initializers`'
8
- Alchemy::Upgrader::Tasks::InstallDragonflyConfig.new.install
9
- end
10
-
11
- def alchemy_3_5_todos
12
- notice = <<-NOTE
13
-
14
- Picture rendering switched to Dragonfly middleware
15
- --------------------------------------------------
16
-
17
- Alchemy now uses the Dragonfly middleware to render the pictures and
18
- REMOVED THE LOCAL PICTURE CACHING!
19
-
20
- This has effect on your production setup and NEEDS FURTHER ACTION in order to
21
- provide a caching option that works for your setup.
22
-
23
- Please follow the guidelines about picture caching on the Dragonfly homepage:
24
-
25
- http://markevans.github.io/dragonfly/cache/
26
-
27
- NOTE
28
- todo notice, 'Alchemy v3.5 changes'
29
- end
30
- end
31
- end
32
- end
@@ -1,52 +0,0 @@
1
- require_relative 'tasks/install_asset_manifests'
2
-
3
- module Alchemy
4
- class Upgrader::ThreePointFour < Upgrader
5
- class << self
6
- def install_asset_manifests
7
- desc 'Install asset manifests into `vendor/assets`'
8
- Alchemy::Upgrader::Tasks::InstallAssetManifests.new.install
9
- end
10
-
11
- def store_image_file_format
12
- desc 'Store image file format'
13
- pictures = Alchemy::Picture.where(image_file_format: nil)
14
- count = pictures.size
15
- converted_pics = 0
16
- errored_pics = 0
17
- puts "-- Storing file format of #{count} pictures"
18
- pictures.find_each(batch_size: 100).with_index do |pic, i|
19
- begin
20
- puts " -> Reading file format of #{pic.image_file_name} (#{i + 1}/#{count})"
21
- format = pic.image_file.identify('-ping -format "%m"')
22
- pic.update_column('image_file_format', format.to_s.chomp.downcase)
23
- converted_pics += 1
24
- rescue Dragonfly::Job::Fetch::NotFound => e
25
- puts " -> #{e.message}"
26
- errored_pics += 1
27
- end
28
- end
29
- puts "-- Done! Converted #{converted_pics} images."
30
- unless errored_pics.zero?
31
- puts " !! But #{errored_pics} images caused errors."
32
- puts " Please check errors above and re-run `rake alchemy:upgrade:3.4:store_image_file_format`"
33
- end
34
- end
35
-
36
- def alchemy_3_4_todos
37
- notice = <<-NOTE
38
-
39
- Time-based publishing
40
- ---------------------
41
-
42
- Alchemy now uses time-based publishing on the page models. Gems that
43
- rely on the #public method will break. If you are using an older version
44
- of `alchemy-pg_search`, you should now upgrade to a more recent version.
45
-
46
- Ref: https://github.com/AlchemyCMS/alchemy-pg_search/pull/8
47
- NOTE
48
- todo notice, 'Alchemy v3.4 changes'
49
- end
50
- end
51
- end
52
- end
@@ -1,54 +0,0 @@
1
- module Alchemy
2
- class Upgrader::ThreePointOne < Upgrader
3
- class << self
4
- def alchemy_3_1_todos
5
- notice = <<-NOTE
6
-
7
- JSON API moved into '/api' namespace
8
- ------------------------------------
9
-
10
- The JSON API now lives under /api and not as additional format to default controllers.
11
- Also the serialization changed into more useful payload.
12
-
13
- Please upgrade your API calls to use the new /api namespace.
14
-
15
-
16
- TinyMCE default paste behavior changed
17
- --------------------------------------
18
-
19
- Text is now always pasted in as plain text. To change this, the user has to
20
- disable it with the toolbar button, as they had to before to enable it.
21
-
22
- If you have a custom TinyMCE configuration you have to enable this by adding
23
-
24
- paste_as_text: true
25
-
26
- into you custom TinyMCE configuration.
27
-
28
-
29
- TinyMCE toolbar config has changed
30
- ----------------------------------
31
-
32
- The 'toolbar' configuration now takes an array of toolbar rows, instead of
33
- using 'toolbarN' syntax. Please update your TinyMCE configuration.
34
-
35
- Visit http://www.tinymce.com/wiki.php/Configuration:toolbar for more information.
36
-
37
-
38
- ApplicationController patch removed
39
- -----------------------------------
40
-
41
- If you have controllers that loads Alchemy content or uses Alchemy helpers in
42
- the views (i.e. `render_navigation` or `render_elements`) you should
43
-
44
- include Alchemy::ControllerActions
45
-
46
- in these controllers.
47
-
48
-
49
- NOTE
50
- todo notice, 'Alchemy v3.1 changes'
51
- end
52
- end
53
- end
54
- end
@@ -1,50 +0,0 @@
1
- require_relative 'tasks/available_contents_upgrader'
2
- require_relative 'tasks/nestable_elements_migration'
3
-
4
- module Alchemy
5
- class Upgrader::ThreePointThree < Upgrader
6
- class << self
7
- def convert_available_contents
8
- desc 'Convert `available_contents` config to `nestable_elements`.'
9
- Alchemy::Upgrader::Tasks::AvailableContentsUpgrader.new.convert_available_contents
10
- end
11
-
12
- def migrate_existing_elements
13
- desc 'Migrate existing elements to `nestable_elements`.'
14
- Alchemy::Upgrader::Tasks::NestableElementsMigration.new.migrate_existing_elements
15
- end
16
-
17
- def alchemy_3_3_todos
18
- notice = <<-NOTE
19
-
20
- Element's "available_contents" feature removed
21
- ----------------------------------------------
22
-
23
- The `available_contents` feature of elements was removed and has been replaced by nestable elements.
24
-
25
- The automatic updater that just ran updated your `config/alchemy/elements.yml`. A backup was made.
26
- Nevertheless, you should have a look into it and double check the changes.
27
-
28
- We defined elements for each content type former defined in `available_contents` and put its name
29
- into a new `nestable_elements` collection in the elements definition.
30
-
31
- We also updated your element view partials so they render the child elements.
32
- Please review and fix markup, if necessary.
33
-
34
- The code for the available contents buttons and links in the element editor partials were removed
35
- without replacement, because the nested elements editor partials render automatically.
36
-
37
- PLEASE DOUBLE CHECK YOUR ELEMENT PARTIALS AND ADJUST ACCORDINGLY!
38
-
39
- Uploader `allowed_filetypes` setting changed
40
- --------------------------------------------
41
-
42
- The name of the model is now namespaced. `alchemy/pictures` instead of just `pictures`.
43
- Please ensure, to copy the new setting from the `config.yml.defaults` file.
44
-
45
- NOTE
46
- todo notice, 'Alchemy v3.3 changes'
47
- end
48
- end
49
- end
50
- end
@@ -1,40 +0,0 @@
1
- require_relative 'tasks/three_point_two_task'
2
-
3
- module Alchemy
4
- class Upgrader::ThreePointTwo < Upgrader
5
- class << self
6
- def upgrade_acts_as_taggable_on_migrations
7
- desc 'Install and patch acts_as_taggable_on migrations.'
8
- if !`bundle exec rake railties:install:migrations FROM=acts_as_taggable_on_engine`.empty?
9
- Alchemy::Upgrader::Tasks::ThreePointTwoTask.new.patch_acts_as_taggable_on_migrations
10
- end
11
- `bundle exec rake db:migrate`
12
- end
13
-
14
- def inject_seeder
15
- desc 'Add Alchemy seeder to `db/seeds.rb` file.'
16
- Alchemy::Upgrader::Tasks::ThreePointTwoTask.new.inject_seeder
17
- end
18
-
19
- def alchemy_3_2_todos
20
- notice = <<-NOTE
21
-
22
- Capistrano 2 deploy script removed
23
- ----------------------------------
24
-
25
- The Capistrano 2 based deploy script has been removed and replaced by an Capistrano 3 extension.
26
-
27
- Please update your Gemfile:
28
-
29
- group :development do
30
- gem 'capistrano-alchemy', github: 'AlchemyCMS/capistrano-alchemy', branch: 'master', require: false
31
- end
32
-
33
- For more information please visit https://github.com/AlchemyCMS/capistrano-alchemy.
34
-
35
- NOTE
36
- todo notice, 'Alchemy v3.2 changes'
37
- end
38
- end
39
- end
40
- end
@@ -1,92 +0,0 @@
1
- module Alchemy
2
- class Upgrader::ThreePointZero < Upgrader
3
- class << self
4
- def rename_registered_role_ro_member
5
- if Alchemy.user_class.column_names.include?('alchemy_roles')
6
- desc 'Rename the `registered` user role to `member`'
7
- registered_users = Alchemy.user_class.where("alchemy_roles LIKE '%registered%'")
8
- if registered_users.any?
9
- registered_users.each do |user|
10
- roles = user.read_attribute(:alchemy_roles).sub(/registered/, 'member')
11
- user.update_column(:alchemy_roles, roles)
12
- log "Renamed #{user.inspect} role to `member`"
13
- end
14
- else
15
- log 'No users with `registered` role found.', :skip
16
- end
17
- else
18
- log 'No users with `alchemy_roles` database column found.', :skip
19
- end
20
- end
21
-
22
- def publish_unpublished_public_pages
23
- desc 'Sets `published_at` of public pages without a `published_at` date set to their `updated_at` value'
24
- public_pages = Alchemy::Page.published.where('published_at IS NULL')
25
- if public_pages.any?
26
- public_pages.each do |page|
27
- page.update_column(:published_at, page.updated_at)
28
- log "Sets `published_at` of #{page.name} to #{page.updated_at}"
29
- end
30
- else
31
- log 'No unpublished public pages found.', :skip
32
- end
33
- end
34
-
35
- def alchemy_3_0_todos
36
- notice = <<-NOTE
37
-
38
- Alchemy User Class Removed
39
- --------------------------
40
-
41
- We removed the users model from Alchemy core!
42
-
43
- You have to provide your own user model or
44
- add the `alchemy-devise` gem to your Gemfile.
45
-
46
- If you want to use the default user class from Alchemy:
47
-
48
- # Gemfile
49
- gem 'alchemy-devise'
50
-
51
- $ bin/rake alchemy_devise:install:migrations db:migrate
52
-
53
- In order to add your own user class to Alchemy, please
54
- make shure it meets the API:
55
-
56
- https://github.com/magiclabs/alchemy_cms/blob/master/lib/alchemy/auth_accessors.rb
57
-
58
-
59
- TinyMCE 4 Upgrade
60
- -----------------
61
-
62
- The TinyMCE configuration syntax has changed!
63
-
64
- If you have custom TinyMCE confugurations, like a customized toolbar
65
- then you have to upgrade the syntax to a TinyMCE 4 compatible one.
66
-
67
- Please have a look in the default TinyMCE configuration from Alchemy and
68
- also read the official TinyMCE documentation in how to upgrade.
69
-
70
- Alchemy default TinyMCE config: https://github.com/magiclabs/alchemy_cms/blob/master/lib/alchemy/tinymce.rb#L5-L19
71
- Offical TinyMCE documentation: http://www.tinymce.com/wiki.php/Configuration
72
-
73
-
74
- Essence Validation Syntax changed
75
- ---------------------------------
76
-
77
- The API of the format validations for essences has changed.
78
- You can now define individual format matchers in the config.yml.
79
-
80
- * `format_as` and `format_with` options has been removed and renamed to simply `format`
81
-
82
- Pleae have a look at this commit:
83
- https://github.com/AlchemyCMS/alchemy_cms/commit/44866dbebaed00ffa3b77201f93a04616001b955
84
-
85
- for a detailed explanation.
86
-
87
- NOTE
88
- todo notice, 'Alchemy v3.0 changes'
89
- end
90
- end
91
- end
92
- end
@@ -1,3 +0,0 @@
1
- // @preserve jQuery.floatThead 1.2.9 - http://mkoryak.github.io/floatThead/ - Copyright (c) 2012 - 2014 Misha Koryak
2
- // @license MIT
3
- !function(a){function b(a,b,c){if(8==g){var d=j.width(),e=f.debounce(function(){var a=j.width();d!=a&&(d=a,c())},a);j.on(b,e)}else j.on(b,f.debounce(c,a))}function c(a){window.console&&window.console&&window.console.log&&window.console.log(a)}function d(){var b=a('<div style="width:50px;height:50px;overflow-y:scroll;position:absolute;top:-200px;left:-200px;"><div style="height:100px;width:100%"></div>');a("body").append(b);var c=b.innerWidth(),d=a("div",b).innerWidth();return b.remove(),c-d}function e(a){if(a.dataTableSettings)for(var b=0;b<a.dataTableSettings.length;b++){var c=a.dataTableSettings[b].nTable;if(a[0]==c)return!0}return!1}a.floatThead=a.floatThead||{},a.floatThead.defaults={cellTag:null,headerCellSelector:"tr:first>th:visible",zIndex:1001,debounceResizeMs:10,useAbsolutePositioning:!0,scrollingTop:0,scrollingBottom:0,scrollContainer:function(){return a([])},getSizingRow:function(a){return a.find("tbody tr:visible:first>*")},floatTableClass:"floatThead-table",floatWrapperClass:"floatThead-wrapper",floatContainerClass:"floatThead-container",copyTableClass:!0,debug:!1};var f=window._,g=function(){for(var a=3,b=document.createElement("b"),c=b.all||[];a=1+a,b.innerHTML="<!--[if gt IE "+a+"]><i><![endif]-->",c[0];);return a>4?a:document.documentMode}(),h=null,i=function(){if(g)return!1;var b=a("<table><colgroup><col></colgroup><tbody><tr><td style='width:10px'></td></tbody></table>");a("body").append(b);var c=b.find("col").width();return b.remove(),0==c},j=a(window),k=0;a.fn.floatThead=function(l){if(l=l||{},!f&&(f=window._||a.floatThead._,!f))throw new Error("jquery.floatThead-slim.js requires underscore. You should use the non-lite version since you do not have underscore.");if(8>g)return this;if(null==h&&(h=i(),h&&(document.createElement("fthtr"),document.createElement("fthtd"),document.createElement("fthfoot"))),f.isString(l)){var m=l,n=this;return this.filter("table").each(function(){var b=a(this).data("floatThead-attached");if(b&&f.isFunction(b[m])){var c=b[m]();"undefined"!=typeof c&&(n=c)}}),n}var o=a.extend({},a.floatThead.defaults||{},l);return a.each(l,function(b){b in a.floatThead.defaults||!o.debug||c("jQuery.floatThead: used ["+b+"] key to init plugin, but that param is not an option for the plugin. Valid options are: "+f.keys(a.floatThead.defaults).join(", "))}),this.filter(":not(."+o.floatTableClass+")").each(function(){function c(a){return a+".fth-"+y+".floatTHead"}function i(){var b=0;A.find("tr:visible").each(function(){b+=a(this).outerHeight(!0)}),Z.outerHeight(b),$.outerHeight(b)}function l(){var a=z.outerWidth(),b=I.width()||a;if(X.width(b-F.vertical),O){var c=100*a/(b-F.vertical);S.css("width",c+"%")}else S.outerWidth(a)}function m(){C=(f.isFunction(o.scrollingTop)?o.scrollingTop(z):o.scrollingTop)||0,D=(f.isFunction(o.scrollingBottom)?o.scrollingBottom(z):o.scrollingBottom)||0}function n(){var b,c;if(V)b=U.find("col").length;else{var d;d=null==o.cellTag&&o.headerCellSelector?o.headerCellSelector:"tr:first>"+o.cellTag,c=A.find(d),b=0,c.each(function(){b+=parseInt(a(this).attr("colspan")||1,10)})}if(b!=H){H=b;for(var e=[],f=[],g=[],i=0;b>i;i++)e.push('<th class="floatThead-col"/>'),f.push("<col/>"),g.push("<fthtd style='display:table-cell;height:0;width:auto;'/>");f=f.join(""),e=e.join(""),h&&(g=g.join(""),W.html(g),bb=W.find("fthtd")),Z.html(e),$=Z.find("th"),V||U.html(f),_=U.find("col"),T.html(f),ab=T.find("col")}return b}function p(){if(!E){if(E=!0,J){var a=z.width(),b=Q.width();a>b&&z.css("minWidth",a)}z.css(db),S.css(db),S.append(A),B.before(Y),i()}}function q(){E&&(E=!1,J&&z.width(fb),Y.detach(),z.prepend(A),z.css(eb),S.css(eb))}function r(a){J!=a&&(J=a,X.css({position:J?"absolute":"fixed"}))}function s(a,b,c,d){return h?c:d?o.getSizingRow(a,b,c):b}function t(){var a,b=n();return function(){var c=s(z,_,bb,g);if(c.length==b&&b>0){if(!V)for(a=0;b>a;a++)_.eq(a).css("width","");q();var d=[];for(a=0;b>a;a++)d[a]=c.get(a).offsetWidth;for(a=0;b>a;a++)ab.eq(a).width(d[a]),_.eq(a).width(d[a]);p()}else S.append(A),z.css(eb),S.css(eb),i()}}function u(a){var b=I.css("border-"+a+"-width"),c=0;return b&&~b.indexOf("px")&&(c=parseInt(b,10)),c}function v(){var a,b=I.scrollTop(),c=0,d=L?K.outerHeight(!0):0,e=M?d:-d,f=X.height(),g=z.offset(),i=0;if(O){var k=I.offset();c=g.top-k.top+b,L&&M&&(c+=d),c-=u("top"),i=u("left")}else a=g.top-C-f+D+F.horizontal;var l=j.scrollTop(),m=j.scrollLeft(),n=I.scrollLeft();return b=I.scrollTop(),function(k){if("windowScroll"==k?(l=j.scrollTop(),m=j.scrollLeft()):"containerScroll"==k?(b=I.scrollTop(),n=I.scrollLeft()):"init"!=k&&(l=j.scrollTop(),m=j.scrollLeft(),b=I.scrollTop(),n=I.scrollLeft()),!h||!(0>l||0>m)){if(R)r("windowScrollDone"==k?!0:!1);else if("windowScrollDone"==k)return null;g=z.offset(),L&&M&&(g.top+=d);var o,s,t=z.outerHeight();if(O&&J){if(c>=b){var u=c-b;o=u>0?u:0}else o=P?0:b;s=i}else!O&&J?(l>a+t+e?o=t-f+e:g.top>l+C?(o=0,q()):(o=C+l-g.top+c+(M?d:0),p()),s=0):O&&!J?(c>b||b-c>t?(o=g.top-l,q()):(o=g.top+b-l-c,p()),s=g.left+n-m):O||J||(l>a+t+e?o=t+C-l+a+e:g.top>l+C?(o=g.top-l,p()):o=C,s=g.left-m);return{top:o,left:s}}}}function w(){var a=null,b=null,c=null;return function(d,e,f){null==d||a==d.top&&b==d.left||(X.css({top:d.top,left:d.left}),a=d.top,b=d.left),e&&l(),f&&i();var g=I.scrollLeft();J&&c==g||(X.scrollLeft(g),c=g)}}function x(){if(I.length){var a=I.width(),b=I.height(),c=z.height(),d=z.width(),e=d>a?G:0,f=c>b?G:0;F.horizontal=d>a-f?G:0,F.vertical=c>b-e?G:0}}var y=k,z=a(this);if(z.data("floatThead-attached"))return!0;if(!z.is("table"))throw new Error('jQuery.floatThead must be run on a table element. ex: $("table").floatThead();');var A=z.find("thead:first"),B=z.find("tbody:first");if(0==A.length)throw new Error("jQuery.floatThead must be run on a table that contains a <thead> element");var C,D,E=!1,F={vertical:0,horizontal:0},G=d(),H=0,I=o.scrollContainer(z)||a([]),J=o.useAbsolutePositioning;null==J&&(J=o.scrollContainer(z).length);var K=z.find("caption"),L=1==K.length;if(L)var M="top"===(K.css("caption-side")||K.attr("align")||"top");var N=a('<fthfoot style="display:table-footer-group;"/>'),O=I.length>0,P=!1,Q=a([]),R=9>=g&&!O&&J,S=a("<table/>"),T=a("<colgroup/>"),U=z.find("colgroup:first"),V=!0;0==U.length&&(U=a("<colgroup/>"),V=!1);var W=a('<fthrow style="display:table-row;height:0;"/>'),X=a('<div style="overflow: hidden;"></div>'),Y=a("<thead/>"),Z=a('<tr class="size-row"/>'),$=a([]),_=a([]),ab=a([]),bb=a([]);if(Y.append(Z),z.prepend(U),h&&(N.append(W),z.append(N)),S.append(T),X.append(S),o.copyTableClass&&S.attr("class",z.attr("class")),S.attr({cellpadding:z.attr("cellpadding"),cellspacing:z.attr("cellspacing"),border:z.attr("border")}),S.css({borderCollapse:z.css("borderCollapse"),border:z.css("border")}),S.addClass(o.floatTableClass).css("margin",0),J){var cb=function(a,b){var c=a.css("position"),d="relative"==c||"absolute"==c;if(!d||b){var e={paddingLeft:a.css("paddingLeft"),paddingRight:a.css("paddingRight")};X.css(e),a=a.wrap("<div class='"+o.floatWrapperClass+"' style='position: relative; clear:both;'></div>").parent(),P=!0}return a};O?(Q=cb(I,!0),Q.append(X)):(Q=cb(z),z.after(X))}else z.after(X);X.css({position:J?"absolute":"fixed",marginTop:0,top:J?0:"auto",zIndex:o.zIndex}),X.addClass(o.floatContainerClass),m();var db={"table-layout":"fixed"},eb={"table-layout":z.css("tableLayout")||"auto"},fb=z[0].style.width||"";x();var gb,hb=function(){(gb=t())()};hb();var ib=v(),jb=w();jb(ib("init"),!0);var kb=f.debounce(function(){jb(ib("windowScrollDone"),!1)},300),lb=function(){jb(ib("windowScroll"),!1),kb()},mb=function(){jb(ib("containerScroll"),!1)},nb=function(){m(),x(),hb(),ib=v(),(jb=w())(ib("resize"),!0,!0)},ob=f.debounce(function(){x(),m(),hb(),ib=v(),jb(ib("reflow"),!0)},1);O?J?I.on(c("scroll"),mb):(I.on(c("scroll"),mb),j.on(c("scroll"),lb)):j.on(c("scroll"),lb),j.on(c("load"),ob),b(o.debounceResizeMs,c("resize"),nb),z.on("reflow",ob),e(z)&&z.on("filter",ob).on("sort",ob).on("page",ob),z.data("floatThead-attached",{destroy:function(){var a=".fth-"+y;q(),z.css(eb),U.remove(),h&&N.remove(),Y.parent().length&&Y.replaceWith(A),z.off("reflow"),I.off(a),P&&(I.length?I.unwrap():z.unwrap()),J&&z.css("minWidth",""),X.remove(),z.data("floatThead-attached",!1),j.off(a)},reflow:function(){ob()},setHeaderHeight:function(){i()},getFloatContainer:function(){return X},getRowGroups:function(){return E?X.find("thead").add(z.find("tbody,tfoot")):z.find("thead,tbody,tfoot")}}),k++}),this}}(jQuery),function(a){a.floatThead=a.floatThead||{},a.floatThead._=window._||function(){var b={},c=Object.prototype.hasOwnProperty,d=["Arguments","Function","String","Number","Date","RegExp"];return b.has=function(a,b){return c.call(a,b)},b.keys=function(a){if(a!==Object(a))throw new TypeError("Invalid object");var c=[];for(var d in a)b.has(a,d)&&c.push(d);return c},a.each(d,function(){var a=this;b["is"+a]=function(b){return Object.prototype.toString.call(b)=="[object "+a+"]"}}),b.debounce=function(a,b,c){var d,e,f,g,h;return function(){f=this,e=arguments,g=new Date;var i=function(){var j=new Date-g;b>j?d=setTimeout(i,b-j):(d=null,c||(h=a.apply(f,e)))},j=c&&!d;return d||(d=setTimeout(i,b)),j&&(h=a.apply(f,e)),h}},b}()}(jQuery);
@@ -1,219 +0,0 @@
1
- tinymce.addI18n('de',{
2
- "Cut": "Ausschneiden",
3
- "Heading 5": "\u00dcberschrift 5",
4
- "Header 2": "\u00dcberschrift 2",
5
- "Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Ihr Browser unterst\u00fctzt leider keinen direkten Zugriff auf die Zwischenablage. Bitte benutzen Sie die Strg + X \/ C \/ V Tastenkombinationen.",
6
- "Heading 4": "\u00dcberschrift 4",
7
- "Div": "Textblock",
8
- "Heading 2": "\u00dcberschrift 2",
9
- "Paste": "Einf\u00fcgen",
10
- "Close": "Schlie\u00dfen",
11
- "Font Family": "Schriftart",
12
- "Pre": "Vorformatierter Text",
13
- "Align right": "Rechtsb\u00fcndig ausrichten",
14
- "New document": "Neues Dokument",
15
- "Blockquote": "Zitat",
16
- "Numbered list": "Nummerierte Liste",
17
- "Heading 1": "\u00dcberschrift 1",
18
- "Headings": "\u00dcberschriften",
19
- "Increase indent": "Einzug vergr\u00f6\u00dfern",
20
- "Formats": "Formate",
21
- "Headers": "\u00dcberschriften",
22
- "Select all": "Alles ausw\u00e4hlen",
23
- "Header 3": "\u00dcberschrift 3",
24
- "Blocks": "Absatzformate",
25
- "Undo": "R\u00fcckg\u00e4ngig",
26
- "Strikethrough": "Durchgestrichen",
27
- "Bullet list": "Aufz\u00e4hlung",
28
- "Header 1": "\u00dcberschrift 1",
29
- "Superscript": "Hochgestellt",
30
- "Clear formatting": "Formatierung entfernen",
31
- "Font Sizes": "Schriftgr\u00f6\u00dfe",
32
- "Subscript": "Tiefgestellt",
33
- "Header 6": "\u00dcberschrift 6",
34
- "Redo": "Wiederholen",
35
- "Paragraph": "Absatz",
36
- "Ok": "Ok",
37
- "Bold": "Fett",
38
- "Code": "Quelltext",
39
- "Italic": "Kursiv",
40
- "Align center": "Zentriert ausrichten",
41
- "Header 5": "\u00dcberschrift 5",
42
- "Heading 6": "\u00dcberschrift 6",
43
- "Heading 3": "\u00dcberschrift 3",
44
- "Decrease indent": "Einzug verkleinern",
45
- "Header 4": "\u00dcberschrift 4",
46
- "Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Einf\u00fcgen ist nun im einfachen Textmodus. Inhalte werden ab jetzt als unformatierter Text eingef\u00fcgt, bis Sie diese Einstellung wieder ausschalten!",
47
- "Underline": "Unterstrichen",
48
- "Cancel": "Abbrechen",
49
- "Justify": "Blocksatz",
50
- "Inline": "Zeichenformate",
51
- "Copy": "Kopieren",
52
- "Align left": "Linksb\u00fcndig ausrichten",
53
- "Visual aids": "Visuelle Hilfen",
54
- "Lower Greek": "Griechische Kleinbuchstaben",
55
- "Square": "Quadrat",
56
- "Default": "Standard",
57
- "Lower Alpha": "Kleinbuchstaben",
58
- "Circle": "Kreis",
59
- "Disc": "Punkt",
60
- "Upper Alpha": "Gro\u00dfbuchstaben",
61
- "Upper Roman": "R\u00f6mische Zahlen (Gro\u00dfbuchstaben)",
62
- "Lower Roman": "R\u00f6mische Zahlen (Kleinbuchstaben)",
63
- "Name": "Name",
64
- "Anchor": "Textmarke",
65
- "You have unsaved changes are you sure you want to navigate away?": "Die \u00c4nderungen wurden noch nicht gespeichert, sind Sie sicher, dass Sie diese Seite verlassen wollen?",
66
- "Restore last draft": "Letzten Entwurf wiederherstellen",
67
- "Special character": "Sonderzeichen",
68
- "Source code": "Quelltext",
69
- "B": "B",
70
- "R": "R",
71
- "G": "G",
72
- "Color": "Farbe",
73
- "Right to left": "Von rechts nach links",
74
- "Left to right": "Von links nach rechts",
75
- "Emoticons": "Emoticons",
76
- "Robots": "Robots",
77
- "Document properties": "Dokumenteigenschaften",
78
- "Title": "Titel",
79
- "Keywords": "Sch\u00fcsselw\u00f6rter",
80
- "Encoding": "Zeichenkodierung",
81
- "Description": "Beschreibung",
82
- "Author": "Verfasser",
83
- "Fullscreen": "Vollbild",
84
- "Horizontal line": "Horizontale Linie",
85
- "Horizontal space": "Horizontaler Abstand",
86
- "Insert\/edit image": "Bild einf\u00fcgen\/bearbeiten",
87
- "General": "Allgemein",
88
- "Advanced": "Erweitert",
89
- "Source": "Quelle",
90
- "Border": "Rahmen",
91
- "Constrain proportions": "Seitenverh\u00e4ltnis beibehalten",
92
- "Vertical space": "Vertikaler Abstand",
93
- "Image description": "Bildbeschreibung",
94
- "Style": "Stil",
95
- "Dimensions": "Abmessungen",
96
- "Insert image": "Bild einf\u00fcgen",
97
- "Zoom in": "Ansicht vergr\u00f6\u00dfern",
98
- "Contrast": "Kontrast",
99
- "Back": "Zur\u00fcck",
100
- "Gamma": "Gamma",
101
- "Flip horizontally": "Horizontal spiegeln",
102
- "Resize": "Skalieren",
103
- "Sharpen": "Sch\u00e4rfen",
104
- "Zoom out": "Ansicht verkleinern",
105
- "Image options": "Bildeigenschaften",
106
- "Apply": "Anwenden",
107
- "Brightness": "Helligkeit",
108
- "Rotate clockwise": "Im Uhrzeigersinn drehen",
109
- "Rotate counterclockwise": "Gegen den Uhrzeigersinn drehen",
110
- "Edit image": "Bild bearbeiten",
111
- "Color levels": "Farbwerte",
112
- "Crop": "Bescheiden",
113
- "Orientation": "Ausrichtung",
114
- "Flip vertically": "Vertikal spiegeln",
115
- "Invert": "Invertieren",
116
- "Insert date\/time": "Datum\/Uhrzeit einf\u00fcgen ",
117
- "Remove link": "Link entfernen",
118
- "Url": "URL",
119
- "Text to display": "Anzuzeigender Text",
120
- "Anchors": "Textmarken",
121
- "Insert link": "Link einf\u00fcgen",
122
- "New window": "Neues Fenster",
123
- "None": "Keine",
124
- "The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "Diese Adresse scheint ein externer Link zu sein. M\u00f6chten Sie das dazu ben\u00f6tigte \"http:\/\/\" voranstellen?",
125
- "Target": "Ziel",
126
- "The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "Diese Adresse scheint eine E-Mail-Adresse zu sein. M\u00f6chten Sie das dazu ben\u00f6tigte \"mailto:\" voranstellen?",
127
- "Insert\/edit link": "Link einf\u00fcgen\/bearbeiten",
128
- "Insert\/edit video": "Video einf\u00fcgen\/bearbeiten",
129
- "Poster": "Poster",
130
- "Alternative source": "Alternative Quelle",
131
- "Paste your embed code below:": "F\u00fcgen Sie Ihren Einbettungscode hier ein:",
132
- "Insert video": "Video einf\u00fcgen",
133
- "Embed": "Einbetten",
134
- "Nonbreaking space": "Gesch\u00fctztes Leerzeichen",
135
- "Page break": "Seitenumbruch",
136
- "Paste as text": "Als Text einf\u00fcgen",
137
- "Preview": "Vorschau",
138
- "Print": "Drucken",
139
- "Save": "Speichern",
140
- "Could not find the specified string.": "Die Zeichenfolge wurde nicht gefunden.",
141
- "Replace": "Ersetzen",
142
- "Next": "Weiter",
143
- "Whole words": "Nur ganze W\u00f6rter",
144
- "Find and replace": "Suchen und ersetzen",
145
- "Replace with": "Ersetzen durch",
146
- "Find": "Suchen",
147
- "Replace all": "Alles ersetzen",
148
- "Match case": "Gro\u00df-\/Kleinschreibung beachten",
149
- "Prev": "Zur\u00fcck",
150
- "Spellcheck": "Rechtschreibpr\u00fcfung",
151
- "Finish": "Ende",
152
- "Ignore all": "Alles Ignorieren",
153
- "Ignore": "Ignorieren",
154
- "Add to Dictionary": "Zum W\u00f6rterbuch hinzuf\u00fcgen",
155
- "Insert row before": "Neue Zeile davor einf\u00fcgen ",
156
- "Rows": "Zeilen",
157
- "Height": "H\u00f6he",
158
- "Paste row after": "Zeile danach einf\u00fcgen",
159
- "Alignment": "Ausrichtung",
160
- "Border color": "Rahmenfarbe",
161
- "Column group": "Spaltengruppe",
162
- "Row": "Zeile",
163
- "Insert column before": "Neue Spalte davor einf\u00fcgen",
164
- "Split cell": "Zelle aufteilen",
165
- "Cell padding": "Zelleninnenabstand",
166
- "Cell spacing": "Zellenabstand",
167
- "Row type": "Zeilentyp",
168
- "Insert table": "Tabelle einf\u00fcgen",
169
- "Body": "Inhalt",
170
- "Caption": "Beschriftung",
171
- "Footer": "Fu\u00dfzeile",
172
- "Delete row": "Zeile l\u00f6schen",
173
- "Paste row before": "Zeile davor einf\u00fcgen",
174
- "Scope": "G\u00fcltigkeitsbereich",
175
- "Delete table": "Tabelle l\u00f6schen",
176
- "H Align": "Horizontale Ausrichtung",
177
- "Top": "Oben",
178
- "Header cell": "Kopfzelle",
179
- "Column": "Spalte",
180
- "Row group": "Zeilengruppe",
181
- "Cell": "Zelle",
182
- "Middle": "Mitte",
183
- "Cell type": "Zellentyp",
184
- "Copy row": "Zeile kopieren",
185
- "Row properties": "Zeileneigenschaften",
186
- "Table properties": "Tabelleneigenschaften",
187
- "Bottom": "Unten",
188
- "V Align": "Vertikale Ausrichtung",
189
- "Header": "Kopfzeile",
190
- "Right": "Rechtsb\u00fcndig",
191
- "Insert column after": "Neue Spalte danach einf\u00fcgen",
192
- "Cols": "Spalten",
193
- "Insert row after": "Neue Zeile danach einf\u00fcgen",
194
- "Width": "Breite",
195
- "Cell properties": "Zelleneigenschaften",
196
- "Left": "Linksb\u00fcndig",
197
- "Cut row": "Zeile ausschneiden",
198
- "Delete column": "Spalte l\u00f6schen",
199
- "Center": "Zentriert",
200
- "Merge cells": "Zellen verbinden",
201
- "Insert template": "Vorlage einf\u00fcgen ",
202
- "Templates": "Vorlagen",
203
- "Background color": "Hintergrundfarbe",
204
- "Custom...": "Benutzerdefiniert...",
205
- "Custom color": "Benutzerdefinierte Farbe",
206
- "No color": "Keine Farbe",
207
- "Text color": "Textfarbe",
208
- "Show blocks": " Bl\u00f6cke anzeigen",
209
- "Show invisible characters": "Unsichtbare Zeichen anzeigen",
210
- "Words: {0}": "W\u00f6rter: {0}",
211
- "Insert": "Einf\u00fcgen",
212
- "File": "Datei",
213
- "Edit": "Bearbeiten",
214
- "Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Rich-Text- Area. Dr\u00fccken Sie ALT-F9 f\u00fcr das Men\u00fc. Dr\u00fccken Sie ALT-F10 f\u00fcr Symbolleiste. Dr\u00fccken Sie ALT-0 f\u00fcr Hilfe",
215
- "Tools": "Werkzeuge",
216
- "View": "Ansicht",
217
- "Table": "Tabelle",
218
- "Format": "Format"
219
- });