alchemy_cms 2.5.3.1 → 2.6.0.rc5

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 (331) hide show
  1. data/.gitignore +1 -1
  2. data/.travis.yml +5 -13
  3. data/Gemfile +6 -3
  4. data/README.md +3 -2
  5. data/alchemy_cms.gemspec +22 -22
  6. data/app/assets/fonts/alchemy-icons.eot +0 -0
  7. data/app/assets/fonts/alchemy-icons.svg +54 -0
  8. data/app/assets/fonts/alchemy-icons.ttf +0 -0
  9. data/app/assets/fonts/alchemy-icons.woff +0 -0
  10. data/app/assets/images/alchemy/icons.png +0 -0
  11. data/app/assets/javascripts/alchemy/alchemy.base.js.coffee +151 -0
  12. data/app/assets/javascripts/alchemy/alchemy.buttons.js.coffee +3 -2
  13. data/app/assets/javascripts/alchemy/alchemy.datepicker.js.coffee +31 -0
  14. data/app/assets/javascripts/alchemy/alchemy.dragndrop.js +1 -1
  15. data/app/assets/javascripts/alchemy/alchemy.element_editors.js.coffee +98 -0
  16. data/app/assets/javascripts/alchemy/alchemy.elements_window.js.coffee +23 -24
  17. data/app/assets/javascripts/alchemy/alchemy.growler.js.coffee +27 -0
  18. data/app/assets/javascripts/alchemy/alchemy.gui.js.coffee +11 -8
  19. data/app/assets/javascripts/alchemy/alchemy.hotkeys.js.coffee +32 -0
  20. data/app/assets/javascripts/alchemy/alchemy.image_cropper.js.coffee +46 -0
  21. data/app/assets/javascripts/alchemy/alchemy.js +8 -2
  22. data/app/assets/javascripts/alchemy/alchemy.link_overlay.js.coffee +5 -4
  23. data/app/assets/javascripts/alchemy/alchemy.list_filter.js.coffee +49 -0
  24. data/app/assets/javascripts/alchemy/alchemy.onload.js.coffee +3 -0
  25. data/app/assets/javascripts/alchemy/alchemy.preview_window.js.coffee +71 -0
  26. data/app/assets/javascripts/alchemy/alchemy.sitemap.js.coffee +61 -0
  27. data/app/assets/javascripts/alchemy/alchemy.spinner.js.coffee +35 -0
  28. data/app/assets/javascripts/alchemy/alchemy.string_extension.js.coffee +11 -0
  29. data/app/assets/javascripts/alchemy/alchemy.windows.js.coffee +278 -0
  30. data/app/assets/stylesheets/alchemy/admin.css.scss +2 -0
  31. data/app/assets/stylesheets/alchemy/archive.scss +109 -65
  32. data/app/assets/stylesheets/alchemy/base.scss +16 -188
  33. data/app/assets/stylesheets/alchemy/dashboard.scss +2 -2
  34. data/app/assets/stylesheets/alchemy/defaults.scss +2 -1
  35. data/app/assets/stylesheets/alchemy/elements.scss +58 -94
  36. data/app/assets/stylesheets/alchemy/errors.scss +2 -2
  37. data/app/assets/stylesheets/alchemy/{mixins.scss → extends.scss} +104 -80
  38. data/app/assets/stylesheets/alchemy/flash.scss +4 -6
  39. data/app/assets/stylesheets/alchemy/fonts.scss +46 -0
  40. data/app/assets/stylesheets/alchemy/form_elements.scss +46 -45
  41. data/app/assets/stylesheets/alchemy/frame.scss +20 -15
  42. data/app/assets/stylesheets/alchemy/icons.scss +22 -9
  43. data/app/assets/stylesheets/alchemy/jquery-ui.scss +476 -399
  44. data/app/assets/stylesheets/alchemy/login.scss +1 -1
  45. data/app/assets/stylesheets/alchemy/menubar.css.scss +1 -1
  46. data/app/assets/stylesheets/alchemy/notices.scss +5 -5
  47. data/app/assets/stylesheets/alchemy/pagination.scss +25 -13
  48. data/app/assets/stylesheets/alchemy/search.scss +29 -17
  49. data/app/assets/stylesheets/alchemy/sitemap.scss +41 -36
  50. data/app/assets/stylesheets/alchemy/tables.scss +102 -50
  51. data/app/assets/stylesheets/alchemy/tinymce_dialog.css.scss +18 -16
  52. data/app/assets/stylesheets/alchemy/toolbar.scss +84 -24
  53. data/app/assets/stylesheets/alchemy/upload.scss +14 -9
  54. data/app/assets/stylesheets/alchemy/variables.scss +1 -0
  55. data/app/assets/stylesheets/tiny_mce/plugins/inlinepopups/skins/alchemy/window.css.scss +18 -21
  56. data/app/controllers/alchemy/admin/attachments_controller.rb +29 -39
  57. data/app/controllers/alchemy/admin/base_controller.rb +3 -9
  58. data/app/controllers/alchemy/admin/clipboard_controller.rb +1 -1
  59. data/app/controllers/alchemy/admin/contents_controller.rb +1 -1
  60. data/app/controllers/alchemy/admin/dashboard_controller.rb +1 -1
  61. data/app/controllers/alchemy/admin/elements_controller.rb +3 -3
  62. data/app/controllers/alchemy/admin/essence_files_controller.rb +1 -1
  63. data/app/controllers/alchemy/admin/essence_pictures_controller.rb +5 -5
  64. data/app/controllers/alchemy/admin/languages_controller.rb +1 -1
  65. data/app/controllers/alchemy/admin/pages_controller.rb +18 -16
  66. data/app/controllers/alchemy/admin/pictures_controller.rb +11 -10
  67. data/app/controllers/alchemy/admin/resources_controller.rb +87 -14
  68. data/app/controllers/alchemy/admin/tags_controller.rb +3 -3
  69. data/app/controllers/alchemy/admin/trash_controller.rb +3 -3
  70. data/app/controllers/alchemy/admin/users_controller.rb +6 -11
  71. data/app/controllers/alchemy/attachments_controller.rb +8 -9
  72. data/app/controllers/alchemy/base_controller.rb +17 -10
  73. data/app/controllers/alchemy/pages_controller.rb +7 -19
  74. data/app/controllers/alchemy/passwords_controller.rb +15 -3
  75. data/app/controllers/alchemy/user_sessions_controller.rb +5 -4
  76. data/app/controllers/alchemy/users_controller.rb +1 -1
  77. data/app/helpers/alchemy/admin/attachments_helper.rb +2 -2
  78. data/app/helpers/alchemy/admin/base_helper.rb +62 -90
  79. data/app/helpers/alchemy/admin/elements_helper.rb +13 -5
  80. data/app/helpers/alchemy/admin/essences_helper.rb +3 -5
  81. data/app/helpers/alchemy/admin/pages_helper.rb +6 -3
  82. data/app/helpers/alchemy/admin/tags_helper.rb +60 -0
  83. data/app/helpers/alchemy/base_helper.rb +16 -20
  84. data/app/helpers/alchemy/elements_helper.rb +7 -11
  85. data/app/helpers/alchemy/essences_helper.rb +2 -2
  86. data/app/helpers/alchemy/pages_helper.rb +31 -69
  87. data/app/helpers/alchemy/url_helper.rb +11 -3
  88. data/app/models/alchemy/attachment.rb +73 -45
  89. data/app/models/alchemy/cell.rb +1 -1
  90. data/app/models/alchemy/content.rb +20 -9
  91. data/app/models/alchemy/element.rb +9 -7
  92. data/app/models/alchemy/page.rb +15 -248
  93. data/app/models/alchemy/page/cells.rb +71 -0
  94. data/app/models/alchemy/page/elements.rb +147 -0
  95. data/app/models/alchemy/page/naming.rb +90 -0
  96. data/app/models/alchemy/picture.rb +18 -13
  97. data/app/models/alchemy/tag.rb +1 -1
  98. data/app/models/alchemy/user.rb +38 -6
  99. data/app/views/alchemy/admin/attachments/_archive_overlay.html.erb +14 -7
  100. data/app/views/alchemy/admin/attachments/_attachment.html.erb +17 -12
  101. data/app/views/alchemy/admin/attachments/_file_to_assign.html.erb +3 -8
  102. data/app/views/alchemy/admin/attachments/_files_list.html.erb +20 -12
  103. data/app/views/alchemy/admin/attachments/_overlay_file_list.html.erb +11 -0
  104. data/app/views/alchemy/admin/attachments/_tag_list.html.erb +31 -0
  105. data/app/views/alchemy/admin/attachments/archive_overlay.js.erb +4 -0
  106. data/app/views/alchemy/admin/attachments/edit.html.erb +8 -7
  107. data/app/views/alchemy/admin/attachments/index.html.erb +19 -12
  108. data/app/views/alchemy/admin/attachments/new.html.erb +2 -2
  109. data/app/views/alchemy/admin/attachments/show.html.erb +3 -0
  110. data/app/views/alchemy/admin/contents/_missing.html.erb +4 -4
  111. data/app/views/alchemy/admin/contents/create.js.erb +1 -1
  112. data/app/views/alchemy/admin/contents/new.html.erb +6 -3
  113. data/app/views/alchemy/admin/dashboard/_locked_pages.html.erb +1 -1
  114. data/app/views/alchemy/admin/dashboard/_users.html.erb +1 -1
  115. data/app/views/alchemy/admin/dashboard/index.html.erb +3 -3
  116. data/app/views/alchemy/admin/dashboard/info.html.erb +16 -13
  117. data/app/views/alchemy/admin/elements/_add_picture.html.erb +1 -1
  118. data/app/views/alchemy/admin/elements/_element_foot.html.erb +4 -4
  119. data/app/views/alchemy/admin/elements/_element_head.html.erb +1 -7
  120. data/app/views/alchemy/admin/elements/_elements_select.html.erb +2 -2
  121. data/app/views/alchemy/admin/elements/_new_element_form.html.erb +4 -4
  122. data/app/views/alchemy/admin/elements/_picture_gallery_editor.html.erb +1 -1
  123. data/app/views/alchemy/admin/elements/create.js.erb +2 -2
  124. data/app/views/alchemy/admin/elements/fold.js.erb +3 -6
  125. data/app/views/alchemy/admin/elements/new.html.erb +1 -1
  126. data/app/views/alchemy/admin/elements/order.js.erb +1 -1
  127. data/app/views/alchemy/admin/elements/trash.js.erb +1 -1
  128. data/app/views/alchemy/admin/elements/update.js.erb +2 -2
  129. data/app/views/alchemy/admin/essence_files/edit.html.erb +4 -4
  130. data/app/views/alchemy/admin/essence_pictures/crop.html.erb +17 -18
  131. data/app/views/alchemy/admin/essence_pictures/edit.html.erb +2 -2
  132. data/app/views/alchemy/admin/essence_pictures/update.js.erb +1 -0
  133. data/app/views/alchemy/admin/languages/_form.html.erb +12 -10
  134. data/app/views/alchemy/admin/languages/_language.html.erb +2 -1
  135. data/app/views/alchemy/admin/languages/_table.html.erb +3 -3
  136. data/app/views/alchemy/admin/languages/index.html.erb +15 -15
  137. data/app/views/alchemy/admin/layoutpages/_layoutpage.html.erb +6 -6
  138. data/app/views/alchemy/admin/layoutpages/index.html.erb +41 -40
  139. data/app/views/alchemy/admin/pages/_contactform_links.html.erb +4 -4
  140. data/app/views/alchemy/admin/pages/_create_language_form.html.erb +6 -6
  141. data/app/views/alchemy/admin/pages/_external_link.html.erb +2 -2
  142. data/app/views/alchemy/admin/pages/_file_link.html.erb +3 -3
  143. data/app/views/alchemy/admin/pages/_internal_link.html.erb +1 -1
  144. data/app/views/alchemy/admin/pages/_new_page_form.html.erb +1 -1
  145. data/app/views/alchemy/admin/pages/_page.html.erb +13 -13
  146. data/app/views/alchemy/admin/pages/_page_for_links.html.erb +2 -4
  147. data/app/views/alchemy/admin/pages/_sitemap.html.erb +5 -0
  148. data/app/views/alchemy/admin/pages/configure.html.erb +7 -7
  149. data/app/views/alchemy/admin/pages/configure_external.html.erb +4 -4
  150. data/app/views/alchemy/admin/pages/edit.html.erb +23 -30
  151. data/app/views/alchemy/admin/pages/index.html.erb +34 -23
  152. data/app/views/alchemy/admin/pages/new.html.erb +1 -1
  153. data/app/views/alchemy/admin/pages/sort.js.erb +1 -1
  154. data/app/views/alchemy/admin/partials/_flash_upload.html.erb +2 -3
  155. data/app/views/alchemy/admin/partials/_remote_search_form.html.erb +2 -2
  156. data/app/views/alchemy/admin/partials/_search_form.html.erb +3 -3
  157. data/app/views/alchemy/admin/partials/_upload_form.html.erb +2 -2
  158. data/app/views/alchemy/admin/pictures/_archive.html.erb +7 -7
  159. data/app/views/alchemy/admin/pictures/_archive_overlay.html.erb +1 -1
  160. data/app/views/alchemy/admin/pictures/_filter_and_size_bar.html.erb +6 -6
  161. data/app/views/alchemy/admin/pictures/_filter_bar.html.erb +4 -4
  162. data/app/views/alchemy/admin/pictures/_overlay_picture_list.html.erb +1 -1
  163. data/app/views/alchemy/admin/pictures/_picture.html.erb +3 -8
  164. data/app/views/alchemy/admin/pictures/_picture_to_assign.html.erb +9 -14
  165. data/app/views/alchemy/admin/pictures/_tag_list.html.erb +27 -25
  166. data/app/views/alchemy/admin/pictures/archive_overlay.js.erb +3 -1
  167. data/app/views/alchemy/admin/pictures/index.html.erb +49 -42
  168. data/app/views/alchemy/admin/pictures/new.html.erb +2 -2
  169. data/app/views/alchemy/admin/pictures/show.html.erb +11 -0
  170. data/app/views/alchemy/admin/resources/_boolean.html.erb +2 -2
  171. data/app/views/alchemy/admin/resources/_datetime.html.erb +2 -2
  172. data/app/views/alchemy/admin/resources/_form.html.erb +9 -8
  173. data/app/views/alchemy/admin/resources/_resource.html.erb +15 -21
  174. data/app/views/alchemy/admin/resources/_string.html.erb +2 -2
  175. data/app/views/alchemy/admin/resources/_table.html.erb +11 -13
  176. data/app/views/alchemy/admin/resources/_text.html.erb +2 -2
  177. data/app/views/alchemy/admin/resources/index.csv.erb +13 -0
  178. data/app/views/alchemy/admin/resources/index.html.erb +24 -15
  179. data/app/views/alchemy/admin/sites/index.html.erb +23 -0
  180. data/app/views/alchemy/admin/tags/_radio_tag.html.erb +1 -1
  181. data/app/views/alchemy/admin/tags/_tag.html.erb +2 -1
  182. data/app/views/alchemy/admin/tags/edit.html.erb +1 -1
  183. data/app/views/alchemy/admin/tags/index.html.erb +16 -11
  184. data/app/views/alchemy/admin/tags/new.html.erb +3 -3
  185. data/app/views/alchemy/admin/trash/clear.js.coffee +1 -1
  186. data/app/views/alchemy/admin/users/_table.html.erb +12 -5
  187. data/app/views/alchemy/admin/users/_user.html.erb +16 -16
  188. data/app/views/alchemy/admin/users/index.html.erb +28 -16
  189. data/app/views/alchemy/breadcrumb/_page.html.erb +15 -0
  190. data/app/views/alchemy/breadcrumb/_spacer.html.erb +1 -0
  191. data/app/views/alchemy/elements/_editor_not_found.html.erb +1 -1
  192. data/app/views/alchemy/essences/_essence_file_editor.html.erb +16 -16
  193. data/app/views/alchemy/essences/_essence_file_view.html.erb +8 -9
  194. data/app/views/alchemy/essences/_essence_picture_editor.html.erb +3 -6
  195. data/app/views/alchemy/essences/_essence_picture_tools.html.erb +9 -8
  196. data/app/views/alchemy/essences/_essence_richtext_editor.html.erb +0 -5
  197. data/app/views/alchemy/essences/_linkable_essence_tools.html.erb +2 -2
  198. data/app/views/alchemy/navigation/_link.html.erb +7 -7
  199. data/app/views/alchemy/navigation/_renderer.html.erb +29 -36
  200. data/app/views/alchemy/notifications/admin_user_created.de.text.erb +5 -1
  201. data/app/views/alchemy/notifications/admin_user_created.en.text.erb +5 -1
  202. data/app/views/alchemy/notifications/registered_user_created.de.text.erb +13 -0
  203. data/app/views/alchemy/notifications/registered_user_created.en.text.erb +13 -0
  204. data/app/views/alchemy/search/_result.html.erb +4 -6
  205. data/app/views/alchemy/search/_results.html.erb +4 -5
  206. data/app/views/alchemy/user_sessions/leave.html.erb +1 -1
  207. data/app/views/alchemy/user_sessions/new.html.erb +2 -2
  208. data/app/views/kaminari/_first_page.html.erb +11 -0
  209. data/app/views/kaminari/_gap.html.erb +1 -1
  210. data/app/views/kaminari/_last_page.html.erb +11 -0
  211. data/app/views/kaminari/_next_page.html.erb +2 -2
  212. data/app/views/kaminari/_page.html.erb +1 -1
  213. data/app/views/kaminari/_paginator.html.erb +2 -0
  214. data/app/views/kaminari/_prev_page.html.erb +2 -2
  215. data/app/views/layouts/alchemy/admin.html.erb +4 -5
  216. data/config/alchemy/config.yml +8 -12
  217. data/config/authorization_rules.rb +4 -3
  218. data/config/initializers/dragonfly.rb +20 -12
  219. data/config/locales/alchemy.de.yml +20 -15
  220. data/config/locales/alchemy.en.yml +15 -10
  221. data/config/locales/devise.de.yml +1 -0
  222. data/config/routes.rb +3 -3
  223. data/{spec/dummy/db/migrate/20121118000000_alchemy_two_point_four.rb → db/migrate/20130214233001_alchemy_two_point_five.rb} +50 -36
  224. data/db/migrate/20130221200514_migrate_attachments_to_dragonfly.rb +21 -0
  225. data/db/migrate/20130312205327_change_alchemy_users_role_to_roles.rb +11 -0
  226. data/lib/alchemy/capistrano.rb +10 -8
  227. data/lib/alchemy/errors.rb +7 -0
  228. data/lib/alchemy/filetypes.rb +33 -0
  229. data/lib/alchemy/i18n.rb +9 -1
  230. data/lib/alchemy/name_conversions.rb +28 -0
  231. data/lib/alchemy/page_layout.rb +5 -3
  232. data/lib/alchemy/resource.rb +132 -29
  233. data/lib/alchemy/resources_helper.rb +81 -12
  234. data/lib/alchemy/upgrader.rb +14 -276
  235. data/lib/alchemy/version.rb +1 -1
  236. data/lib/alchemy_cms.rb +17 -2
  237. data/lib/rails/generators/alchemy/deploy_script/templates/deploy.rb.tt +1 -1
  238. data/lib/rails/generators/alchemy/scaffold/scaffold_generator.rb +1 -1
  239. data/lib/tasks/alchemy/convert.rake +39 -0
  240. data/lib/tasks/alchemy/install.rake +4 -6
  241. data/lib/tasks/alchemy/upgrade.rake +18 -1
  242. data/spec/controllers/admin/clipboard_controller_spec.rb +4 -4
  243. data/spec/controllers/admin/elements_controller_spec.rb +23 -23
  244. data/spec/controllers/admin/pages_controller_spec.rb +15 -0
  245. data/spec/controllers/admin/resources_controller_spec.rb +1 -11
  246. data/spec/controllers/admin/trash_controller_spec.rb +9 -9
  247. data/spec/controllers/attachments_controller_spec.rb +3 -3
  248. data/spec/controllers/elements_controller_spec.rb +2 -2
  249. data/spec/controllers/pages_controller_spec.rb +160 -129
  250. data/spec/controllers/pictures_controller_spec.rb +2 -2
  251. data/spec/controllers/user_sessions_controller_spec.rb +3 -3
  252. data/spec/controllers/users_controller_spec.rb +2 -2
  253. data/spec/dummy/app/models/event.rb +2 -2
  254. data/spec/dummy/app/models/location.rb +4 -0
  255. data/spec/dummy/app/views/layouts/application.html.erb +6 -42
  256. data/spec/dummy/config/routes.rb +1 -1
  257. data/spec/dummy/db/migrate/20121026104128_create_events.rb +0 -1
  258. data/{db/migrate/20121118000000_alchemy_two_point_four.rb → spec/dummy/db/migrate/20130214233001_alchemy_two_point_five.rb} +50 -36
  259. data/spec/dummy/db/migrate/20130221200514_migrate_attachments_to_dragonfly.rb +21 -0
  260. data/spec/dummy/db/migrate/20130312205327_change_alchemy_users_role_to_roles.rb +11 -0
  261. data/spec/dummy/db/migrate/20130328101418_create_locations.rb +9 -0
  262. data/spec/dummy/db/schema.rb +15 -6
  263. data/spec/factories.rb +4 -4
  264. data/spec/{integration → features}/admin/link_overlay_spec.rb +0 -0
  265. data/spec/{integration → features}/admin/modules_integration_spec.rb +1 -1
  266. data/spec/{integration → features}/admin/pages_controller_spec.rb +9 -4
  267. data/spec/{integration → features}/admin/picture_library_integration_spec.rb +5 -5
  268. data/spec/{integration → features}/admin/resources_integration_spec.rb +1 -1
  269. data/spec/{integration → features}/navigation_spec.rb +0 -0
  270. data/spec/{integration → features}/pages_controller_spec.rb +42 -112
  271. data/spec/{integration → features}/picture_security_spec.rb +2 -2
  272. data/spec/{integration → features}/security_spec.rb +7 -7
  273. data/spec/{integration → features}/translation_integration_spec.rb +0 -0
  274. data/spec/helpers/admin/base_helper_spec.rb +0 -50
  275. data/spec/helpers/admin/tags_helper_spec.rb +53 -0
  276. data/spec/helpers/base_helper_spec.rb +19 -3
  277. data/spec/helpers/pages_helper_spec.rb +92 -44
  278. data/spec/{url_helpers_spec.rb → helpers/picture_url_helpers_spec.rb} +7 -7
  279. data/spec/helpers/url_helper_spec.rb +92 -72
  280. data/spec/{config_spec.rb → libraries/config_spec.rb} +0 -0
  281. data/spec/libraries/resource_spec.rb +215 -76
  282. data/spec/libraries/resources_helper_spec.rb +70 -28
  283. data/spec/models/attachment_spec.rb +75 -9
  284. data/spec/models/clipboard_spec.rb +1 -1
  285. data/spec/models/element_spec.rb +7 -0
  286. data/spec/models/page_spec.rb +144 -25
  287. data/spec/models/picture_spec.rb +5 -5
  288. data/spec/models/resource_spec.rb +47 -10
  289. data/spec/models/user_spec.rb +115 -3
  290. data/spec/{routing_spec.rb → routing/routing_spec.rb} +8 -20
  291. data/spec/spec_helper.rb +5 -6
  292. data/spec/support/alchemy/specs_helpers.rb +1 -1
  293. data/spec/support/ci/install_phantomjs +1 -1
  294. data/spec/support/image with spaces.png +0 -0
  295. data/vendor/assets/javascripts/jquery_plugins/jquery.Jcrop.min.js +18 -18
  296. data/vendor/assets/javascripts/jquery_plugins/{jquery.dialogextend.1_0_1.js → jquery.dialogextend.js} +25 -17
  297. data/vendor/assets/javascripts/jquery_plugins/jquery.scrollTo.min.js +7 -0
  298. data/vendor/assets/javascripts/jquery_plugins/jquery.ui.tabspaging.js +7 -7
  299. data/vendor/assets/javascripts/keymage.min.js +6 -0
  300. data/vendor/assets/javascripts/spin.min.js +1 -0
  301. metadata +122 -124
  302. data/app/assets/images/alchemy/ajax_loader.gif +0 -0
  303. data/app/assets/images/alchemy/gui/toggle.png +0 -0
  304. data/app/assets/images/alchemy/image_loader.gif +0 -0
  305. data/app/assets/images/alchemy/shading.png +0 -0
  306. data/app/assets/images/alchemy/tabs.gif +0 -0
  307. data/app/assets/javascripts/alchemy/alchemy.base.js +0 -172
  308. data/app/assets/javascripts/alchemy/alchemy.datepicker.js +0 -47
  309. data/app/assets/javascripts/alchemy/alchemy.element_editor_selector.js +0 -91
  310. data/app/assets/javascripts/alchemy/alchemy.growler.js +0 -46
  311. data/app/assets/javascripts/alchemy/alchemy.image_cropper.js +0 -60
  312. data/app/assets/javascripts/alchemy/alchemy.js_extensions.js +0 -15
  313. data/app/assets/javascripts/alchemy/alchemy.preview_window.js +0 -97
  314. data/app/assets/javascripts/alchemy/alchemy.windows.js +0 -321
  315. data/app/models/alchemy/clipboard_spec.rb +0 -0
  316. data/app/views/alchemy/admin/pictures/show_in_window.html.erb +0 -8
  317. data/app/views/alchemy/notifications/registered_user_created.text.erb +0 -11
  318. data/db/migrate/20121121162313_switch_from_fleximage_to_dragonfly.rb +0 -21
  319. data/db/migrate/20121205155004_create_alchemy_sites.rb +0 -14
  320. data/db/migrate/20121211163003_add_public_to_alchemy_sites.rb +0 -6
  321. data/db/migrate/20121220102223_add_aliases_to_site.rb +0 -6
  322. data/db/migrate/20130110212411_create_alchemy_legacy_page_urls.rb +0 -11
  323. data/db/migrate/20130121092645_migrate_to_devise.rb +0 -24
  324. data/spec/alchemy_spec.rb +0 -7
  325. data/spec/dummy/db/migrate/20121121162313_switch_from_fleximage_to_dragonfly.rb +0 -21
  326. data/spec/dummy/db/migrate/20121205155004_create_alchemy_sites.rb +0 -14
  327. data/spec/dummy/db/migrate/20121211163003_add_public_to_alchemy_sites.rb +0 -6
  328. data/spec/dummy/db/migrate/20121220102223_add_aliases_to_site.rb +0 -6
  329. data/spec/dummy/db/migrate/20130110212411_create_alchemy_legacy_page_urls.rb +0 -11
  330. data/spec/dummy/db/migrate/20130121092645_migrate_to_devise.rb +0 -24
  331. data/vendor/assets/javascripts/jquery_plugins/jquery.scrollTo-1.4.2-min.js +0 -11
@@ -1,20 +1,20 @@
1
- <% if page.redirects_to_external? -%>
1
+ <% if page.redirects_to_external? %>
2
2
  <%= link_to(
3
3
  h(page.name),
4
4
  page.urlname,
5
5
  :title => options[:show_title] == true ? page.title : nil,
6
6
  :target => configuration(:open_external_links_in_new_tab) ? '_blank' : nil,
7
7
  :class => external_page_css_class(page)
8
- ) -%>
9
- <% else -%>
8
+ ) %>
9
+ <% else %>
10
10
  <%= link_to(
11
11
  h(page.name),
12
- @preview_mode ? 'javascript:void(0)' : show_alchemy_page_path(page),
12
+ @preview_mode ? 'javascript: void(0)' : show_alchemy_page_path(page),
13
13
  {
14
14
  :class => (page_active?(page) ? 'active' : nil),
15
15
  :title => (options[:show_title] ? page.title : nil),
16
16
  :lang => page.language_code,
17
- 'data-page-id' => page.id
17
+ :data => {'page-id' => page.id}
18
18
  }
19
- ) -%>
20
- <% end -%>
19
+ ) %>
20
+ <% end %>
@@ -1,37 +1,30 @@
1
- <% unless pages.blank? -%>
2
- <%= content_tag(
3
- 'ul',
4
- :class => html_options[:class] || "navigation level_#{pages.first.level - 1}",
5
- :id => html_options[:id]
6
- ) do %>
7
- <% pages.each do |page| -%>
8
- <% position = 'first' if page == pages.to_a.first -%>
9
- <% position = 'last' if page == pages.to_a.last -%>
10
- <%= content_tag(
11
- 'li',
12
- :class => [page.urlname, position, page_active?(page) ? 'active' : nil].compact.join(' ')
13
- ) do %>
14
- <%= render(
15
- :partial => options[:navigation_link_partial],
16
- :object => page,
17
- :locals => {
18
- :page => page,
19
- :options => options
20
- }
21
- ) -%>
22
- <% options[:from_page] = page -%>
23
- <% if options[:reverse_children] -%>
24
- <%- options[:reverse] = true -%>
25
- <% end -%>
26
- <% if options[:show_nonactive] -%>
27
- <%= render_navigation(options) if options[:submenu] -%>
28
- <% else -%>
29
- <%= render_navigation(options) if (options[:submenu] && page_active?(page)) || options[:all_sub_menues] -%>
30
- <% end -%>
31
- <% end -%>
32
- <% unless options[:spacer].empty? -%>
33
- <%= raw "<li class=\"navigation_spacer\">#{options[:spacer]}</li>" unless page == pages.to_a.last -%>
34
- <% end -%>
35
- <% end -%>
1
+ <% if pages.present? %>
2
+ <%= content_tag(
3
+ 'ul',
4
+ :class => html_options[:class] || "navigation level_#{pages.first.level - 1}",
5
+ :id => html_options[:id]
6
+ ) do %>
7
+ <% pages.each do |page| %>
8
+ <% position = 'first' if page == pages.first %>
9
+ <% position = 'last' if page == pages.last %>
10
+ <%= content_tag(
11
+ 'li',
12
+ :class => [page.slug, position, page_active?(page) ? 'active' : nil].compact.join(' ')
13
+ ) do %>
14
+ <%= render options[:navigation_link_partial], :page => page, :options => options %>
15
+ <% options[:from_page] = page %>
16
+ <% if options[:reverse_children] %>
17
+ <% options[:reverse] = true %>
18
+ <% end %>
19
+ <% if options[:show_nonactive] %>
20
+ <%= render_navigation(options) if options[:submenu] %>
21
+ <% else %>
22
+ <%= render_navigation(options) if (options[:submenu] && page_active?(page)) || options[:all_sub_menues] %>
23
+ <% end %>
24
+ <% end %>
25
+ <% if options[:spacer].present? && position != 'last' %>
26
+ <%= content_tag :li, options[:spacer].html_safe, class: 'navigation_spacer' %>
27
+ <% end %>
36
28
  <% end %>
37
- <% end -%>
29
+ <% end %>
30
+ <% end %>
@@ -6,6 +6,10 @@ Um die Inhalte Ihrer Webseite zu bearbeiten klicken Sie bitte auf folgenden Link
6
6
 
7
7
  Ihr Benutzername lautet: <%= @user.login %>
8
8
 
9
- (Aus Sicherheitsgründen stellen wir Ihr Passwort hier nicht da. Wenn Sie Ihr Passwort vergessen haben oder dies Ihr erster Login ist, gehen Sie bitte auf: <%= new_password_url(@user) %>)
9
+ Aus Sicherheitsgründen stellen wir Ihr Passwort hier nicht dar.
10
+
11
+ Wenn Sie Ihr Passwort vergessen haben oder dies Ihr erster Login ist, gehen Sie bitte auf:
12
+
13
+ <%= alchemy.new_password_url %>
10
14
 
11
15
  Viel Spaß mit Alchemy!
@@ -6,6 +6,10 @@ To manage your website open a browser and go to:
6
6
 
7
7
  Your username is: <%= @user.login %>
8
8
 
9
- (For security reasons we do not show your password here. If you forgot your password or this is your first login, please goto: <%= new_password_url(@user) %>)
9
+ For security reasons we do not show your password here.
10
+
11
+ If you forgot your password or this is your first login, please goto:
12
+
13
+ <%= alchemy.new_password_url %>
10
14
 
11
15
  Have much fun with Alchemy!
@@ -0,0 +1,13 @@
1
+ Hallo <%= @user.name %>!
2
+
3
+ Ihnen wurde ein Benutzerkonto eingerichtet.
4
+
5
+ Ihr Benutzername lautet: <%= @user.login %>
6
+
7
+ Es wurde ein Zufallspasswort generiert. Aus Sicherheitsgründen wird dieses hier aber nicht angezeigt.
8
+
9
+ Klicken Sie bitte daher auf den folgenden Link (*), um sich ein neues Passwort zu vergeben:
10
+
11
+ <%= alchemy.new_password_url(@user, email: @user.email) %>
12
+
13
+ *) Sollte dies nicht funktionieren, so kopieren Sie Sich bitte diesen Link und tragen Sie ihn in die Adresszeile Ihres Webbrowsers ein.
@@ -0,0 +1,13 @@
1
+ Greetings <%= @user.name %>!
2
+
3
+ A login was created for you.
4
+
5
+ Your username is: <%= @user.login %>
6
+
7
+ The password was randomly created. For security reasons it is not displayed here.
8
+
9
+ Please follow this link (*) to reset your password:
10
+
11
+ <%= alchemy.new_password_url(@user, email: @user.email) %>
12
+
13
+ *) If this does not work, please copy the url and paste it into the address bar of your web browser.
@@ -1,9 +1,7 @@
1
1
  <li class="search_result">
2
- <h3>
3
- <%= _t('search_result_page.result_page') %>:
4
- <%= link_to page.name, show_alchemy_page_path(page) %>
5
- </h3>
6
- <%- result.each do |highlight| -%>
2
+ <h3><%= page.name %></h3>
3
+ <% result.each do |highlight| %>
7
4
  <p><%= sanitize highlight.force_encoding('UTF-8') %></p>
8
- <%- end -%>
5
+ <% end %>
6
+ <p><%= link_to page.urlname, show_alchemy_page_path(page) %></p>
9
7
  </li>
@@ -16,12 +16,11 @@
16
16
  <% end %>
17
17
  <ul class="search_result_list">
18
18
  <% @search_results.each do |search_result| %>
19
- <% result = search_result.highlight(
20
- "*#{params[:query]}*", {
21
- :field => (search_result.class.name == "Alchemy::EssenceRichtext" ? :stripped_body : :body)
22
- }
19
+ <%= render('alchemy/search/result',
20
+ result: search_result.highlight("*#{params[:query]}*"),
21
+ options: options,
22
+ page: search_result.page
23
23
  ) %>
24
- <%= render 'alchemy/search/result', :result => result, :options => options, :page => search_result.page %>
25
24
  <% end %>
26
25
  </ul>
27
26
  <% end %>
@@ -6,6 +6,6 @@
6
6
  </p>
7
7
  <%= form_tag alchemy.logout_path, :method => :delete, :class => 'buttons' do %>
8
8
  <label><%= _t('or to completly') %></label>
9
- <%= button _t('logout') %>
9
+ <%= button _t(:logout) %>
10
10
  <% end %>
11
11
  </div>
@@ -21,14 +21,14 @@
21
21
  <td class="input">
22
22
  <%= f.password_field :password, :class => 'thin_border' %>
23
23
  <p class="foot_note">
24
- <%= link_to _t('Forgot your password?'), new_password_path(@user) %>
24
+ <%= link_to _t('Forgot your password?'), new_password_path %>
25
25
  </p>
26
26
  </td>
27
27
  </tr>
28
28
  <tr>
29
29
  <td colspan="2" class="submit">
30
30
  <%= hidden_field_tag 'user_screensize' %>
31
- <%= f.button _t('login'), :class => 'button', :name => nil %>
31
+ <%= f.button _t(:login), :class => 'button', :name => nil %>
32
32
  </td>
33
33
  </tr>
34
34
  </table>
@@ -0,0 +1,11 @@
1
+ <%# Link to the "First" page
2
+ - available local variables
3
+ url: url to the first page
4
+ current_page: a page object for the currently displayed page
5
+ num_pages: total number of pages
6
+ per_page: number of items to fetch per page
7
+ remote: data-remote
8
+ -%>
9
+ <span class="first">
10
+ <%= link_to_unless current_page.first?, '&laquo;'.html_safe, url, :remote => remote, :title => t('views.pagination.first'), :class => 'button' %>
11
+ </span>
@@ -5,4 +5,4 @@
5
5
  per_page: number of items to fetch per page
6
6
  remote: data-remote
7
7
  -%>
8
- <span class="page gap"><%= raw(_t 'pagination.truncate') -%></span>
8
+ <span class="page gap">&hellip;</span>
@@ -0,0 +1,11 @@
1
+ <%# Link to the "Last" page
2
+ - available local variables
3
+ url: url to the last page
4
+ current_page: a page object for the currently displayed page
5
+ num_pages: total number of pages
6
+ per_page: number of items to fetch per page
7
+ remote: data-remote
8
+ -%>
9
+ <span class="last">
10
+ <%= link_to_unless current_page.last?, '&raquo;'.html_safe, url, {:remote => remote, :title => t('views.pagination.last'), :class => 'button'} %>
11
+ </span>
@@ -7,7 +7,7 @@
7
7
  remote: data-remote
8
8
  -%>
9
9
  <% if current_page.last? -%>
10
- <span class="next_page disabled"><%= raw(_t 'pagination.next_page') -%></span>
10
+ <span class="next_page disabled">&rsaquo;</span>
11
11
  <% else -%>
12
- <%= link_to raw(_t 'pagination.next_page'), url, :rel => 'next', :remote => remote -%>
12
+ <%= link_to '&rsaquo;'.html_safe, url, :rel => 'next', :remote => remote, :title => t('views.pagination.next_page'), :class => "next_page button" -%>
13
13
  <% end -%>
@@ -10,5 +10,5 @@
10
10
  <% if page.current? -%>
11
11
  <span class="page current"><%= page -%></span>
12
12
  <% else -%>
13
- <%= link_to page, url, opts = {:remote => remote, :rel => page.next? ? 'next' : page.prev? ? 'prev' : nil} -%>
13
+ <%= link_to page, url, opts = {:remote => remote, :rel => page.next? ? 'next' : page.prev? ? 'prev' : nil, :class => 'button'} -%>
14
14
  <% end -%>
@@ -8,6 +8,7 @@
8
8
  -%>
9
9
  <%= paginator.render do -%>
10
10
  <div class="pagination">
11
+ <%= first_page_tag %>
11
12
  <%= prev_page_tag -%>
12
13
  <% each_page do |page| -%>
13
14
  <% if page.left_outer? || page.right_outer? || page.inside_window? -%>
@@ -17,5 +18,6 @@
17
18
  <% end -%>
18
19
  <% end -%>
19
20
  <%= next_page_tag -%>
21
+ <%= last_page_tag %>
20
22
  </div>
21
23
  <% end -%>
@@ -7,7 +7,7 @@
7
7
  remote: data-remote
8
8
  -%>
9
9
  <% if current_page.first? -%>
10
- <span class="previous_page disabled"><%= raw(_t 'pagination.previous_page') %></span>
10
+ <span class="previous_page disabled">&lsaquo;</span>
11
11
  <% else -%>
12
- <%= link_to raw(_t 'pagination.previous_page'), url, :rel => 'prev', :remote => remote, :class => 'previous_page' -%>
12
+ <%= link_to '&lsaquo;'.html_safe, url, :rel => 'prev', :remote => remote, :class => 'previous_page button', :title => t('views.pagination.previous_page') -%>
13
13
  <% end -%>
@@ -1,7 +1,7 @@
1
1
  <!DOCTYPE html>
2
2
  <html class="no-js">
3
3
  <head>
4
- <meta charset="UTF-8">
4
+ <meta charset="utf-8">
5
5
  <title><%= render_alchemy_title %></title>
6
6
  <%= csrf_meta_tag %>
7
7
  <meta name="robots" content="noindex">
@@ -32,8 +32,7 @@
32
32
  </noscript>
33
33
  <div id="overlay">
34
34
  <div id="overlay_text_box">
35
- <%= image_tag('alchemy/ajax_loader.gif', :id => 'ajax_loader') %>
36
- <span id="overlay_text"><%= _t("please_wait") %></span>
35
+ <span id="overlay_text"><%= _t(:please_wait) %></span>
37
36
  </div>
38
37
  </div>
39
38
  <div id="left_menu">
@@ -44,7 +43,7 @@
44
43
  <div id="logout">
45
44
  <% if current_user %>
46
45
  <%= link_to_overlay_window(
47
- "<span class='module icon exit'></span><label>#{_t('leave')}</label>".html_safe,
46
+ "<span class='module icon exit'></span><label>#{_t(:leave)}</label>".html_safe,
48
47
  alchemy.leave_admin_path, {
49
48
  :size => "300x105",
50
49
  :title => _t("Leave Alchemy")
@@ -52,7 +51,7 @@
52
51
  <% else %>
53
52
  <%= link_to(alchemy.root_path) do %>
54
53
  <span class="module icon exit"></span>
55
- <label><%= _t('leave') %></label>
54
+ <label><%= _t(:leave) %></label>
56
55
  <% end %>
57
56
  <% end %>
58
57
  </div>
@@ -60,31 +60,27 @@ sitemap:
60
60
 
61
61
  # === URL nesting
62
62
  #
63
- # By default Alchemy does not nest page urls respectivley to their page tree position.
63
+ # Since Alchemy 2.6.0 page urls are nested, respectivley to their tree position.
64
64
  #
65
- # Enable +url_nesting+ to get nested urls.
65
+ # Disable +url_nesting+ to get slug only urls.
66
66
  #
67
- # ==== Example of a nested url:
67
+ # NOTE: After changing the url_nesting, you should run one of these convert rake task:
68
68
  #
69
- # +http://homepage.com/company/history/the-early-years+
69
+ # rake alchemy:convert:urlnames:to_nested
70
+ # rake alchemy:convert:urlnames:to_slug
70
71
  #
71
- # Alchemy supports url nesting up to three levels deep. We think that's more then enough,
72
- # because URLs like this are possible:
73
- #
74
- # +http://homepage.com/en/2011/12/08/my-post
75
- #
76
- url_nesting: false
72
+ url_nesting: true
77
73
 
78
74
  # === Picture rendering settings
79
75
  #
80
- # Alchemy uses Dragonfly and RMagick to render images. Use {:image_size => "XXXxYYY", :crop => BOOLEAN [true]} to resize images.
76
+ # Alchemy uses Dragonfly to render images. Use {:image_size => "XXXxYYY", :crop => BOOLEAN [true]} to resize images.
81
77
  #
82
78
  # See http://markevans.github.com/dragonfly for further infos.
83
79
  #
84
80
  # ==== Options:
85
81
  #
86
82
  # output_image_jpg_quality [Integer] # If image gets rendered as JPG this is the quality setting for it. (Default 85)
87
- # preprocess_image_resize [String] # I.E.: 1000x1000. If you are limited on diskspace use this option to downsize large images to that value. (Default nil)
83
+ # preprocess_image_resize [String] # Use this option to resize images to that value. Downsizing example: '1000x1000>' (Default nil)
88
84
  # image_output_format [String] # The global image output format setting.
89
85
  #
90
86
  # TIP: You can always override the output format in the options of your Essence. I.E. {:format => :gif}
@@ -18,7 +18,8 @@ authorization do
18
18
  role :registered do
19
19
  includes :guest
20
20
  has_permission_on :alchemy_pages, :to => [:show] do
21
- if_attribute :public => true
21
+ if_attribute :public => true, :restricted => true
22
+ if_attribute :public => true, :restricted => false
22
23
  end
23
24
  has_permission_on :alchemy_elements, :to => [:show] do
24
25
  if_attribute :public => true
@@ -36,7 +37,7 @@ authorization do
36
37
  has_permission_on :alchemy_pictures, :to => [:thumbnail]
37
38
  has_permission_on :alchemy_admin_pages, :to => [:index, :fold, :edit_page_content, :link]
38
39
  has_permission_on :alchemy_admin_elements, :to => [:manage_elements]
39
- has_permission_on :alchemy_admin_pictures, :to => [:index, :archive_overlay, :show_in_window, :info]
40
+ has_permission_on :alchemy_admin_pictures, :to => [:read, :archive_overlay, :info]
40
41
  has_permission_on :alchemy_admin_attachments, :to => [:index, :archive_overlay, :show, :download]
41
42
  has_permission_on :alchemy_admin_contents, :to => [:manage_contents]
42
43
  has_permission_on :alchemy_admin_essence_pictures, :to => [:manage_picture_essences]
@@ -60,7 +61,7 @@ authorization do
60
61
 
61
62
  role :admin do
62
63
  includes :editor
63
- has_permission_on :alchemy_admin_users, :to => [:manage, :update_role]
64
+ has_permission_on :alchemy_admin_users, :to => [:manage, :update_roles]
64
65
  has_permission_on :alchemy_admin_languages, :to => [:manage]
65
66
  has_permission_on :authorization_rules, :to => :read
66
67
  has_permission_on :alchemy_admin_sites, :to => [:manage]
@@ -1,20 +1,28 @@
1
1
  # Alchemy CMS Dragonfly configuration.
2
- app = Dragonfly[:alchemy_pictures]
3
2
 
4
- app.configure_with :imagemagick
5
- app.configure_with :rails
6
- app.define_macro ActiveRecord::Base, :image_accessor
7
-
8
- app.configure do |c|
9
-
10
- c.datastore.configure do |d|
11
- d.root_path = Rails.root.join('uploads/pictures').to_s
12
- d.store_meta = false
3
+ # Pictures
4
+ pictures = Dragonfly[:alchemy_pictures]
5
+ pictures.configure_with :imagemagick
6
+ pictures.configure_with :rails
7
+ pictures.define_macro ActiveRecord::Base, :image_accessor
8
+ pictures.configure do |config|
9
+ config.datastore.configure do |store|
10
+ store.root_path = Rails.root.join('uploads/pictures').to_s
11
+ store.store_meta = false
13
12
  end
14
-
15
13
  # You only need this if you use Dragonfly url helpers, what you not need to ;)
16
14
  # If you use the Dragonfly url helpers and you have a different mountpoint for Alchemy,
17
15
  # you have to alter this to include the mountpoint.
18
- c.url_format = '/pictures/:job/:basename.:format'
16
+ config.url_format = '/pictures/:job/:basename.:format'
17
+ end
19
18
 
19
+ # Attachments
20
+ attachments = Dragonfly[:alchemy_attachments]
21
+ attachments.configure_with :rails
22
+ attachments.define_macro ActiveRecord::Base, :file_accessor
23
+ attachments.configure do |config|
24
+ config.datastore.configure do |store|
25
+ store.root_path = Rails.root.join('uploads/attachments').to_s
26
+ store.store_meta = false
27
+ end
20
28
  end
@@ -134,12 +134,7 @@ de:
134
134
  mailer:
135
135
  # The mail the user gets after registering for alchemy
136
136
  new_user_mail:
137
- subject: 'Ihre Zugangsdaten zu meiner Seite'
138
- welcome: 'Willkommen auf meiner Seite'
139
- login_url_explanation: 'Zum Anmelden klicken Sie bitte auf folgenden Link'
140
- username: 'Ihr Benutzername lautet:'
141
- password_notice: "(Aus Sicherheitsgründen stellen wir Ihr Passwort hier nicht da. Wenn Sie Ihr Passwort vergessen haben oder dies Ihr erster Login ist, gehen Sie bitte auf: %{url})"
142
- greeting: 'Einen schönen Tag noch'
137
+ subject: 'Ihre Zugangsdaten'
143
138
 
144
139
  # == Translated language names for translation select
145
140
  translations:
@@ -222,7 +217,7 @@ de:
222
217
  "Error with the Flash® Uploader!": "Fehler mit dem Flash® Uploader!"
223
218
  "Excerpt": "Auszug"
224
219
  "File %{name} uploaded succesfully": "Datei %{name} wurde hochgeladen"
225
- "File renamed successfully from: '%{from}' to '%{to}'": "Datei wurde erfolgreich von: '%{from}' nach '%{to}' umbenannt."
220
+ "File successfully updated": "Datei wurde erfolgreich gespeichert."
226
221
  "File upload error: %{error}": "Datei konnte nicht hochgeladen werden: %{error}"
227
222
  "File: '%{name}' deleted successfully": "%{name} wurde gelöscht"
228
223
  "Filter by tag": "Nach Tags filtern"
@@ -395,6 +390,7 @@ de:
395
390
  delete_user: "Benutzer löschen"
396
391
  document: "Dokument"
397
392
  documents: "Dateien"
393
+ download_csv: "CSV runterladen"
398
394
  download_file: "%{filename} runterladen"
399
395
  do_you_really_want_to_delete_this_tag?: "Wollen Sie dieses Tag wirklich löschen?"
400
396
  drag_to_sort: "Mit der Maus halten und verschieben"
@@ -519,10 +515,6 @@ de:
519
515
  pages:
520
516
  update:
521
517
  comma_seperated: "Durch Kommata getrennt eingeben"
522
- pagination:
523
- next_page: "nächste Seite &raquo;"
524
- previous_page: "&laquo; vorherige Seite"
525
- truncate: '...'
526
518
  password: "Passwort"
527
519
  paste: "einfügen"
528
520
  picture_gallery_editor: 'Bilder'
@@ -550,6 +542,9 @@ de:
550
542
  rename: umbenennen
551
543
  replace: ersetzen
552
544
  'Replaced Tag %{old_tag} with %{new_tag}': "Das Tag '%{old_tag}' wurde durch das Tag '%{new_tag}' ersetzt"
545
+ resources:
546
+ relation_select:
547
+ blank: '- ohne -'
553
548
  right: "rechts"
554
549
  robot_follow: "den Robot Links folgen lassen"
555
550
  robot_index: "durch Robot indizieren"
@@ -825,6 +820,9 @@ de:
825
820
  activerecord:
826
821
 
827
822
  models:
823
+ acts_as_taggable_on/tag:
824
+ one: Tag
825
+ other: Tags
828
826
 
829
827
  alchemy/attachment:
830
828
  one: "Datei"
@@ -861,11 +859,11 @@ de:
861
859
  taggings_count: Anzahl Verwendung
862
860
 
863
861
  alchemy/attachment:
864
- content_type: "Dateityp"
862
+ file_mime_type: "Dateityp"
865
863
  created_at: "Erstellt Am"
866
- filename: "Dateiname"
864
+ file_name: "Dateiname"
867
865
  name: "Name"
868
- size: "Dateigröße"
866
+ file_size: "Dateigröße"
869
867
  tag_list: Tags
870
868
 
871
869
  alchemy/element:
@@ -940,7 +938,7 @@ de:
940
938
  name: "Name"
941
939
  password: "Passwort"
942
940
  password_confirmation: "Passwort Bestätigung"
943
- role: "Benutzerrolle"
941
+ roles: "Benutzerrollen"
944
942
  tag_list: Tags
945
943
 
946
944
  alchemy/site:
@@ -952,3 +950,10 @@ de:
952
950
 
953
951
  errors:
954
952
  <<: *errors
953
+
954
+ views:
955
+ pagination:
956
+ first: "erste Seite"
957
+ previous_page: "vorherige Seite"
958
+ next_page: "nächste Seite"
959
+ last: "letzte Seite"