alchemy_cms 4.0.5 → 4.1.0.beta

Sign up to get free protection for your applications and to get access to all the features.
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 +8 -11
  7. data/CHANGELOG.md +5 -20
  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 +6 -2
  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 +77 -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
- });