lc_alchemy_cms 3.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (744) hide show
  1. checksums.yaml +7 -0
  2. data/.editorconfig +23 -0
  3. data/.gitignore +21 -0
  4. data/.hound.yml +2 -0
  5. data/.rspec +1 -0
  6. data/.rubocop.yml +861 -0
  7. data/.teatro.yml +7 -0
  8. data/.travis.yml +27 -0
  9. data/.yardopts +5 -0
  10. data/CODE_OF_CONDUCT.md +13 -0
  11. data/CONTRIBUTING.md +73 -0
  12. data/Gemfile +34 -0
  13. data/LICENSE +27 -0
  14. data/README.md +297 -0
  15. data/Rakefile +48 -0
  16. data/alchemy_cms.gemspec +81 -0
  17. data/app/assets/fonts/alchemy/icons.eot +0 -0
  18. data/app/assets/fonts/alchemy/icons.svg +71 -0
  19. data/app/assets/fonts/alchemy/icons.ttf +0 -0
  20. data/app/assets/fonts/alchemy/icons.woff +0 -0
  21. data/app/assets/images/alchemy/alchemy-logo.svg +70 -0
  22. data/app/assets/images/alchemy/favicon.ico +0 -0
  23. data/app/assets/images/alchemy/icon.svg +14 -0
  24. data/app/assets/images/alchemy/icons.png +0 -0
  25. data/app/assets/images/alchemy/lupe.cur +0 -0
  26. data/app/assets/images/alchemy/ui-icons_666666_256x240.png +0 -0
  27. data/app/assets/images/sassy-ie-overlay.png +0 -0
  28. data/app/assets/javascripts/alchemy/alchemy.autocomplete.js.coffee +30 -0
  29. data/app/assets/javascripts/alchemy/alchemy.base.js.coffee +142 -0
  30. data/app/assets/javascripts/alchemy/alchemy.browser.js.coffee +22 -0
  31. data/app/assets/javascripts/alchemy/alchemy.buttons.js.coffee +32 -0
  32. data/app/assets/javascripts/alchemy/alchemy.char_counter.js.coffee +19 -0
  33. data/app/assets/javascripts/alchemy/alchemy.confirm_dialog.js.coffee +85 -0
  34. data/app/assets/javascripts/alchemy/alchemy.custom.js +1 -0
  35. data/app/assets/javascripts/alchemy/alchemy.datepicker.js.coffee +31 -0
  36. data/app/assets/javascripts/alchemy/alchemy.dialog.js.coffee +266 -0
  37. data/app/assets/javascripts/alchemy/alchemy.dirty.js.coffee +70 -0
  38. data/app/assets/javascripts/alchemy/alchemy.dragndrop.js.coffee +84 -0
  39. data/app/assets/javascripts/alchemy/alchemy.element_editors.js.coffee +138 -0
  40. data/app/assets/javascripts/alchemy/alchemy.elements_window.js.coffee +89 -0
  41. data/app/assets/javascripts/alchemy/alchemy.file_progress.js.coffee +63 -0
  42. data/app/assets/javascripts/alchemy/alchemy.growler.js.coffee +27 -0
  43. data/app/assets/javascripts/alchemy/alchemy.gui.js.coffee +22 -0
  44. data/app/assets/javascripts/alchemy/alchemy.hotkeys.js.coffee +49 -0
  45. data/app/assets/javascripts/alchemy/alchemy.html5.js +22 -0
  46. data/app/assets/javascripts/alchemy/alchemy.i18n.js.coffee +26 -0
  47. data/app/assets/javascripts/alchemy/alchemy.image_cropper.js.coffee +44 -0
  48. data/app/assets/javascripts/alchemy/alchemy.initializer.js.coffee +63 -0
  49. data/app/assets/javascripts/alchemy/alchemy.jquery_loader.js +42 -0
  50. data/app/assets/javascripts/alchemy/alchemy.js +52 -0
  51. data/app/assets/javascripts/alchemy/alchemy.link_dialog.js.coffee +250 -0
  52. data/app/assets/javascripts/alchemy/alchemy.list_filter.js.coffee +49 -0
  53. data/app/assets/javascripts/alchemy/alchemy.page_sorter.js +48 -0
  54. data/app/assets/javascripts/alchemy/alchemy.preview.js.coffee +106 -0
  55. data/app/assets/javascripts/alchemy/alchemy.preview_window.js.coffee +58 -0
  56. data/app/assets/javascripts/alchemy/alchemy.sitemap.js.coffee +50 -0
  57. data/app/assets/javascripts/alchemy/alchemy.spinner.js.coffee +49 -0
  58. data/app/assets/javascripts/alchemy/alchemy.string_extension.js.coffee +11 -0
  59. data/app/assets/javascripts/alchemy/alchemy.tinymce.js.coffee +66 -0
  60. data/app/assets/javascripts/alchemy/alchemy.translations.js.coffee +132 -0
  61. data/app/assets/javascripts/alchemy/alchemy.uploader.js.coffee +102 -0
  62. data/app/assets/javascripts/alchemy/alchemy.windows.js.coffee +42 -0
  63. data/app/assets/javascripts/alchemy/menubar.js.coffee +8 -0
  64. data/app/assets/javascripts/alchemy/preview.js +1 -0
  65. data/app/assets/javascripts/tinymce/plugins/alchemy_link/plugin.min.js +19 -0
  66. data/app/assets/stylesheets/alchemy/_defaults.scss +8 -0
  67. data/app/assets/stylesheets/alchemy/_extends.scss +93 -0
  68. data/app/assets/stylesheets/alchemy/_mixins.scss +112 -0
  69. data/app/assets/stylesheets/alchemy/_variables.scss +61 -0
  70. data/app/assets/stylesheets/alchemy/admin.scss +31 -0
  71. data/app/assets/stylesheets/alchemy/archive.scss +436 -0
  72. data/app/assets/stylesheets/alchemy/base.scss +609 -0
  73. data/app/assets/stylesheets/alchemy/buttons.scss +259 -0
  74. data/app/assets/stylesheets/alchemy/custom.scss +1 -0
  75. data/app/assets/stylesheets/alchemy/dashboard.scss +104 -0
  76. data/app/assets/stylesheets/alchemy/dialogs.scss +214 -0
  77. data/app/assets/stylesheets/alchemy/elements.scss +772 -0
  78. data/app/assets/stylesheets/alchemy/errors.scss +39 -0
  79. data/app/assets/stylesheets/alchemy/flash.scss +65 -0
  80. data/app/assets/stylesheets/alchemy/form_fields.scss +89 -0
  81. data/app/assets/stylesheets/alchemy/forms.scss +193 -0
  82. data/app/assets/stylesheets/alchemy/frame.scss +301 -0
  83. data/app/assets/stylesheets/alchemy/icon-font.scss +67 -0
  84. data/app/assets/stylesheets/alchemy/icons.scss +324 -0
  85. data/app/assets/stylesheets/alchemy/jquery-ui.scss +1511 -0
  86. data/app/assets/stylesheets/alchemy/menubar.scss +81 -0
  87. data/app/assets/stylesheets/alchemy/modules.scss +33 -0
  88. data/app/assets/stylesheets/alchemy/notices.scss +64 -0
  89. data/app/assets/stylesheets/alchemy/pagination.scss +65 -0
  90. data/app/assets/stylesheets/alchemy/print.scss +34 -0
  91. data/app/assets/stylesheets/alchemy/search.scss +73 -0
  92. data/app/assets/stylesheets/alchemy/selects.scss +235 -0
  93. data/app/assets/stylesheets/alchemy/sitemap.scss +385 -0
  94. data/app/assets/stylesheets/alchemy/tables.scss +218 -0
  95. data/app/assets/stylesheets/alchemy/toolbar.scss +146 -0
  96. data/app/assets/stylesheets/alchemy/upload.scss +121 -0
  97. data/app/assets/stylesheets/tinymce/skins/alchemy/content.min.css.scss +90 -0
  98. data/app/assets/stylesheets/tinymce/skins/alchemy/fonts/readme.md +1 -0
  99. data/app/assets/stylesheets/tinymce/skins/alchemy/fonts/tinymce-small.eot +0 -0
  100. data/app/assets/stylesheets/tinymce/skins/alchemy/fonts/tinymce-small.svg +175 -0
  101. data/app/assets/stylesheets/tinymce/skins/alchemy/fonts/tinymce-small.ttf +0 -0
  102. data/app/assets/stylesheets/tinymce/skins/alchemy/fonts/tinymce-small.woff +0 -0
  103. data/app/assets/stylesheets/tinymce/skins/alchemy/fonts/tinymce.eot +0 -0
  104. data/app/assets/stylesheets/tinymce/skins/alchemy/fonts/tinymce.svg +153 -0
  105. data/app/assets/stylesheets/tinymce/skins/alchemy/fonts/tinymce.ttf +0 -0
  106. data/app/assets/stylesheets/tinymce/skins/alchemy/fonts/tinymce.woff +0 -0
  107. data/app/assets/stylesheets/tinymce/skins/alchemy/img/anchor.gif +0 -0
  108. data/app/assets/stylesheets/tinymce/skins/alchemy/img/loader.gif +0 -0
  109. data/app/assets/stylesheets/tinymce/skins/alchemy/img/object.gif +0 -0
  110. data/app/assets/stylesheets/tinymce/skins/alchemy/img/trans.gif +0 -0
  111. data/app/assets/stylesheets/tinymce/skins/alchemy/img/wline.gif +0 -0
  112. data/app/assets/stylesheets/tinymce/skins/alchemy/skin.ie7.min.css +1 -0
  113. data/app/assets/stylesheets/tinymce/skins/alchemy/skin.min.css.scss +1810 -0
  114. data/app/controllers/alchemy/admin/attachments_controller.rb +106 -0
  115. data/app/controllers/alchemy/admin/base_controller.rb +168 -0
  116. data/app/controllers/alchemy/admin/clipboard_controller.rb +51 -0
  117. data/app/controllers/alchemy/admin/contents_controller.rb +76 -0
  118. data/app/controllers/alchemy/admin/dashboard_controller.rb +89 -0
  119. data/app/controllers/alchemy/admin/elements_controller.rb +190 -0
  120. data/app/controllers/alchemy/admin/essence_files_controller.rb +47 -0
  121. data/app/controllers/alchemy/admin/essence_pictures_controller.rb +120 -0
  122. data/app/controllers/alchemy/admin/languages_controller.rb +17 -0
  123. data/app/controllers/alchemy/admin/layoutpages_controller.rb +19 -0
  124. data/app/controllers/alchemy/admin/legacy_page_urls_controller.rb +39 -0
  125. data/app/controllers/alchemy/admin/pages_controller.rb +359 -0
  126. data/app/controllers/alchemy/admin/pictures_controller.rb +168 -0
  127. data/app/controllers/alchemy/admin/resources_controller.rb +185 -0
  128. data/app/controllers/alchemy/admin/sites_controller.rb +6 -0
  129. data/app/controllers/alchemy/admin/tags_controller.rb +76 -0
  130. data/app/controllers/alchemy/admin/trash_controller.rb +27 -0
  131. data/app/controllers/alchemy/api/base_controller.rb +19 -0
  132. data/app/controllers/alchemy/api/contents_controller.rb +35 -0
  133. data/app/controllers/alchemy/api/elements_controller.rb +29 -0
  134. data/app/controllers/alchemy/api/pages_controller.rb +32 -0
  135. data/app/controllers/alchemy/attachments_controller.rb +35 -0
  136. data/app/controllers/alchemy/base_controller.rb +106 -0
  137. data/app/controllers/alchemy/elements_controller.rb +27 -0
  138. data/app/controllers/alchemy/messages_controller.rb +114 -0
  139. data/app/controllers/alchemy/pages_controller.rb +211 -0
  140. data/app/controllers/alchemy/pictures_controller.rb +82 -0
  141. data/app/helpers/alchemy/admin/attachments_helper.rb +12 -0
  142. data/app/helpers/alchemy/admin/base_helper.rb +471 -0
  143. data/app/helpers/alchemy/admin/contents_helper.rb +113 -0
  144. data/app/helpers/alchemy/admin/elements_helper.rb +134 -0
  145. data/app/helpers/alchemy/admin/essences_helper.rb +120 -0
  146. data/app/helpers/alchemy/admin/form_helper.rb +30 -0
  147. data/app/helpers/alchemy/admin/navigation_helper.rb +238 -0
  148. data/app/helpers/alchemy/admin/pages_helper.rb +70 -0
  149. data/app/helpers/alchemy/admin/pictures_helper.rb +30 -0
  150. data/app/helpers/alchemy/admin/tags_helper.rb +102 -0
  151. data/app/helpers/alchemy/base_helper.rb +81 -0
  152. data/app/helpers/alchemy/elements_block_helper.rb +162 -0
  153. data/app/helpers/alchemy/elements_helper.rb +291 -0
  154. data/app/helpers/alchemy/essences_helper.rb +138 -0
  155. data/app/helpers/alchemy/pages_helper.rb +417 -0
  156. data/app/helpers/alchemy/url_helper.rb +76 -0
  157. data/app/mailers/alchemy/messages.rb +15 -0
  158. data/app/models/alchemy.rb +7 -0
  159. data/app/models/alchemy/attachment.rb +129 -0
  160. data/app/models/alchemy/cell.rb +94 -0
  161. data/app/models/alchemy/content.rb +255 -0
  162. data/app/models/alchemy/content/factory.rb +190 -0
  163. data/app/models/alchemy/element.rb +513 -0
  164. data/app/models/alchemy/element/definitions.rb +52 -0
  165. data/app/models/alchemy/element/presenters.rb +87 -0
  166. data/app/models/alchemy/element_to_page.rb +7 -0
  167. data/app/models/alchemy/essence_boolean.rb +19 -0
  168. data/app/models/alchemy/essence_date.rb +24 -0
  169. data/app/models/alchemy/essence_file.rb +42 -0
  170. data/app/models/alchemy/essence_html.rb +23 -0
  171. data/app/models/alchemy/essence_link.rb +20 -0
  172. data/app/models/alchemy/essence_picture.rb +152 -0
  173. data/app/models/alchemy/essence_richtext.rb +47 -0
  174. data/app/models/alchemy/essence_select.rb +18 -0
  175. data/app/models/alchemy/essence_text.rb +22 -0
  176. data/app/models/alchemy/folded_page.rb +16 -0
  177. data/app/models/alchemy/language.rb +144 -0
  178. data/app/models/alchemy/language/code.rb +22 -0
  179. data/app/models/alchemy/legacy_page_url.rb +20 -0
  180. data/app/models/alchemy/message.rb +40 -0
  181. data/app/models/alchemy/page.rb +409 -0
  182. data/app/models/alchemy/page/page_cells.rb +71 -0
  183. data/app/models/alchemy/page/page_elements.rb +272 -0
  184. data/app/models/alchemy/page/page_naming.rb +122 -0
  185. data/app/models/alchemy/page/page_natures.rb +114 -0
  186. data/app/models/alchemy/page/page_scopes.rb +95 -0
  187. data/app/models/alchemy/page/page_users.rb +58 -0
  188. data/app/models/alchemy/picture.rb +220 -0
  189. data/app/models/alchemy/picture/sweeping.rb +17 -0
  190. data/app/models/alchemy/picture/transformations.rb +256 -0
  191. data/app/models/alchemy/site.rb +91 -0
  192. data/app/models/alchemy/site/layout.rb +38 -0
  193. data/app/models/alchemy/tag.rb +24 -0
  194. data/app/models/alchemy/translations.rb +7 -0
  195. data/app/models/alchemy/translations/essence_body_updater.rb +64 -0
  196. data/app/models/alchemy/translations/translation_pusher.rb +18 -0
  197. data/app/models/alchemy/tree_node.rb +4 -0
  198. data/app/serializers/alchemy/attachment_serializer.rb +15 -0
  199. data/app/serializers/alchemy/cell_serializer.rb +18 -0
  200. data/app/serializers/alchemy/content_serializer.rb +20 -0
  201. data/app/serializers/alchemy/element_serializer.rb +20 -0
  202. data/app/serializers/alchemy/essence_boolean_serializer.rb +11 -0
  203. data/app/serializers/alchemy/essence_date_serializer.rb +11 -0
  204. data/app/serializers/alchemy/essence_file_serializer.rb +12 -0
  205. data/app/serializers/alchemy/essence_html_serializer.rb +11 -0
  206. data/app/serializers/alchemy/essence_link_serializer.rb +14 -0
  207. data/app/serializers/alchemy/essence_picture_serializer.rb +28 -0
  208. data/app/serializers/alchemy/essence_richtext_serializer.rb +12 -0
  209. data/app/serializers/alchemy/essence_select_serializer.rb +11 -0
  210. data/app/serializers/alchemy/essence_text_serializer.rb +22 -0
  211. data/app/serializers/alchemy/legacy_element_serializer.rb +17 -0
  212. data/app/serializers/alchemy/page_serializer.rb +29 -0
  213. data/app/serializers/alchemy/picture_serializer.rb +16 -0
  214. data/app/views/alchemy/_menubar.html.erb +16 -0
  215. data/app/views/alchemy/admin/attachments/_archive_overlay.html.erb +32 -0
  216. data/app/views/alchemy/admin/attachments/_attachment.html.erb +63 -0
  217. data/app/views/alchemy/admin/attachments/_file_to_assign.html.erb +15 -0
  218. data/app/views/alchemy/admin/attachments/_files_list.html.erb +39 -0
  219. data/app/views/alchemy/admin/attachments/_overlay_file_list.html.erb +11 -0
  220. data/app/views/alchemy/admin/attachments/_tag_list.html.erb +14 -0
  221. data/app/views/alchemy/admin/attachments/archive_overlay.js.erb +7 -0
  222. data/app/views/alchemy/admin/attachments/create.js.erb +11 -0
  223. data/app/views/alchemy/admin/attachments/destroy.js.erb +1 -0
  224. data/app/views/alchemy/admin/attachments/edit.html.erb +10 -0
  225. data/app/views/alchemy/admin/attachments/index.html.erb +29 -0
  226. data/app/views/alchemy/admin/attachments/new.html.erb +14 -0
  227. data/app/views/alchemy/admin/attachments/show.html.erb +3 -0
  228. data/app/views/alchemy/admin/clipboard/clear.js.erb +3 -0
  229. data/app/views/alchemy/admin/clipboard/index.html.erb +22 -0
  230. data/app/views/alchemy/admin/clipboard/insert.js.erb +19 -0
  231. data/app/views/alchemy/admin/clipboard/remove.js.erb +10 -0
  232. data/app/views/alchemy/admin/contents/_missing.html.erb +19 -0
  233. data/app/views/alchemy/admin/contents/create.js.erb +56 -0
  234. data/app/views/alchemy/admin/contents/destroy.js.erb +4 -0
  235. data/app/views/alchemy/admin/contents/new.html.erb +11 -0
  236. data/app/views/alchemy/admin/contents/order.js.erb +3 -0
  237. data/app/views/alchemy/admin/dashboard/_locked_pages.html.erb +38 -0
  238. data/app/views/alchemy/admin/dashboard/_recent_pages.html.erb +22 -0
  239. data/app/views/alchemy/admin/dashboard/_sites.html.erb +23 -0
  240. data/app/views/alchemy/admin/dashboard/_users.html.erb +19 -0
  241. data/app/views/alchemy/admin/dashboard/help.html.erb +21 -0
  242. data/app/views/alchemy/admin/dashboard/index.html.erb +44 -0
  243. data/app/views/alchemy/admin/dashboard/info.html.erb +64 -0
  244. data/app/views/alchemy/admin/elements/_add_picture.html.erb +14 -0
  245. data/app/views/alchemy/admin/elements/_element.html.erb +23 -0
  246. data/app/views/alchemy/admin/elements/_element_foot.html.erb +36 -0
  247. data/app/views/alchemy/admin/elements/_element_head.html.erb +23 -0
  248. data/app/views/alchemy/admin/elements/_new_element_form.html.erb +26 -0
  249. data/app/views/alchemy/admin/elements/_picture_gallery_editor.html.erb +24 -0
  250. data/app/views/alchemy/admin/elements/_refresh_editor.js.erb +8 -0
  251. data/app/views/alchemy/admin/elements/create.js.erb +46 -0
  252. data/app/views/alchemy/admin/elements/fold.js.erb +28 -0
  253. data/app/views/alchemy/admin/elements/index.html.erb +26 -0
  254. data/app/views/alchemy/admin/elements/list.html.erb +16 -0
  255. data/app/views/alchemy/admin/elements/new.html.erb +25 -0
  256. data/app/views/alchemy/admin/elements/order.js.erb +14 -0
  257. data/app/views/alchemy/admin/elements/trash.js.erb +12 -0
  258. data/app/views/alchemy/admin/elements/update.js.erb +28 -0
  259. data/app/views/alchemy/admin/essence_files/assign.js.erb +9 -0
  260. data/app/views/alchemy/admin/essence_files/edit.html.erb +18 -0
  261. data/app/views/alchemy/admin/essence_pictures/assign.js.erb +18 -0
  262. data/app/views/alchemy/admin/essence_pictures/crop.html.erb +50 -0
  263. data/app/views/alchemy/admin/essence_pictures/destroy.js.erb +24 -0
  264. data/app/views/alchemy/admin/essence_pictures/edit.html.erb +28 -0
  265. data/app/views/alchemy/admin/essence_pictures/save_link.js.erb +3 -0
  266. data/app/views/alchemy/admin/essence_pictures/update.js.erb +9 -0
  267. data/app/views/alchemy/admin/languages/_form.html.erb +14 -0
  268. data/app/views/alchemy/admin/languages/_language.html.erb +42 -0
  269. data/app/views/alchemy/admin/languages/_table.html.erb +37 -0
  270. data/app/views/alchemy/admin/languages/index.html.erb +23 -0
  271. data/app/views/alchemy/admin/layoutpages/_layoutpage.html.erb +63 -0
  272. data/app/views/alchemy/admin/layoutpages/edit.html.erb +15 -0
  273. data/app/views/alchemy/admin/layoutpages/index.html.erb +41 -0
  274. data/app/views/alchemy/admin/leave.html.erb +11 -0
  275. data/app/views/alchemy/admin/legacy_page_urls/_form.html.erb +5 -0
  276. data/app/views/alchemy/admin/legacy_page_urls/_label.html.erb +1 -0
  277. data/app/views/alchemy/admin/legacy_page_urls/_legacy_page_url.html.erb +13 -0
  278. data/app/views/alchemy/admin/legacy_page_urls/_new.html.erb +20 -0
  279. data/app/views/alchemy/admin/legacy_page_urls/create.js.erb +10 -0
  280. data/app/views/alchemy/admin/legacy_page_urls/destroy.js.erb +6 -0
  281. data/app/views/alchemy/admin/legacy_page_urls/update.js.erb +2 -0
  282. data/app/views/alchemy/admin/pages/_create_language_form.html.erb +54 -0
  283. data/app/views/alchemy/admin/pages/_external_link.html.erb +31 -0
  284. data/app/views/alchemy/admin/pages/_file_link.html.erb +31 -0
  285. data/app/views/alchemy/admin/pages/_form.html.erb +62 -0
  286. data/app/views/alchemy/admin/pages/_internal_link.html.erb +41 -0
  287. data/app/views/alchemy/admin/pages/_legacy_urls.html.erb +23 -0
  288. data/app/views/alchemy/admin/pages/_locked_page.html.erb +24 -0
  289. data/app/views/alchemy/admin/pages/_new_page_form.html.erb +11 -0
  290. data/app/views/alchemy/admin/pages/_page.html.erb +112 -0
  291. data/app/views/alchemy/admin/pages/_page_for_links.html.erb +45 -0
  292. data/app/views/alchemy/admin/pages/_page_status.html.erb +14 -0
  293. data/app/views/alchemy/admin/pages/_sitemap.html.erb +8 -0
  294. data/app/views/alchemy/admin/pages/_tinymce_custom_config.html.erb +13 -0
  295. data/app/views/alchemy/admin/pages/configure.html.erb +16 -0
  296. data/app/views/alchemy/admin/pages/configure_external.html.erb +33 -0
  297. data/app/views/alchemy/admin/pages/destroy.js.erb +19 -0
  298. data/app/views/alchemy/admin/pages/edit.html.erb +206 -0
  299. data/app/views/alchemy/admin/pages/flush.js.erb +2 -0
  300. data/app/views/alchemy/admin/pages/fold.js.erb +3 -0
  301. data/app/views/alchemy/admin/pages/index.html.erb +101 -0
  302. data/app/views/alchemy/admin/pages/info.html.erb +43 -0
  303. data/app/views/alchemy/admin/pages/link.html.erb +16 -0
  304. data/app/views/alchemy/admin/pages/locked.html.erb +3 -0
  305. data/app/views/alchemy/admin/pages/new.html.erb +26 -0
  306. data/app/views/alchemy/admin/pages/show.html.erb +1 -0
  307. data/app/views/alchemy/admin/pages/sort.js.erb +5 -0
  308. data/app/views/alchemy/admin/pages/unlock.js.erb +8 -0
  309. data/app/views/alchemy/admin/pages/update.js.erb +37 -0
  310. data/app/views/alchemy/admin/partials/_autocomplete_tag_list.html.erb +1 -0
  311. data/app/views/alchemy/admin/partials/_flash.html.erb +4 -0
  312. data/app/views/alchemy/admin/partials/_flash_notices.html.erb +5 -0
  313. data/app/views/alchemy/admin/partials/_language_tree_select.html.erb +11 -0
  314. data/app/views/alchemy/admin/partials/_main_navigation_entry.html.erb +12 -0
  315. data/app/views/alchemy/admin/partials/_remote_search_form.html.erb +33 -0
  316. data/app/views/alchemy/admin/partials/_routes.html.erb +25 -0
  317. data/app/views/alchemy/admin/partials/_search_form.html.erb +20 -0
  318. data/app/views/alchemy/admin/partials/_sub_navigation.html.erb +8 -0
  319. data/app/views/alchemy/admin/partials/_toolbar_button.html.erb +25 -0
  320. data/app/views/alchemy/admin/partials/_upload_form.html.erb +67 -0
  321. data/app/views/alchemy/admin/pictures/_archive.html.erb +53 -0
  322. data/app/views/alchemy/admin/pictures/_archive_overlay.html.erb +14 -0
  323. data/app/views/alchemy/admin/pictures/_filter_and_size_bar.html.erb +78 -0
  324. data/app/views/alchemy/admin/pictures/_filter_bar.html.erb +33 -0
  325. data/app/views/alchemy/admin/pictures/_overlay_picture_list.html.erb +11 -0
  326. data/app/views/alchemy/admin/pictures/_picture.html.erb +87 -0
  327. data/app/views/alchemy/admin/pictures/_picture_to_assign.html.erb +28 -0
  328. data/app/views/alchemy/admin/pictures/_tag_list.html.erb +16 -0
  329. data/app/views/alchemy/admin/pictures/archive_overlay.js.erb +8 -0
  330. data/app/views/alchemy/admin/pictures/edit.html.erb +13 -0
  331. data/app/views/alchemy/admin/pictures/edit_multiple.html.erb +30 -0
  332. data/app/views/alchemy/admin/pictures/flush.js.erb +2 -0
  333. data/app/views/alchemy/admin/pictures/index.html.erb +109 -0
  334. data/app/views/alchemy/admin/pictures/index.js.erb +3 -0
  335. data/app/views/alchemy/admin/pictures/info.html.erb +38 -0
  336. data/app/views/alchemy/admin/pictures/new.html.erb +16 -0
  337. data/app/views/alchemy/admin/pictures/show.html.erb +11 -0
  338. data/app/views/alchemy/admin/resources/_form.html.erb +13 -0
  339. data/app/views/alchemy/admin/resources/_resource.html.erb +30 -0
  340. data/app/views/alchemy/admin/resources/_table.html.erb +25 -0
  341. data/app/views/alchemy/admin/resources/edit.html.erb +1 -0
  342. data/app/views/alchemy/admin/resources/index.csv.erb +13 -0
  343. data/app/views/alchemy/admin/resources/index.html.erb +32 -0
  344. data/app/views/alchemy/admin/resources/new.html.erb +1 -0
  345. data/app/views/alchemy/admin/sites/index.html.erb +23 -0
  346. data/app/views/alchemy/admin/tags/_radio_tag.html.erb +6 -0
  347. data/app/views/alchemy/admin/tags/_tag.html.erb +30 -0
  348. data/app/views/alchemy/admin/tags/edit.html.erb +24 -0
  349. data/app/views/alchemy/admin/tags/index.html.erb +52 -0
  350. data/app/views/alchemy/admin/tags/new.html.erb +7 -0
  351. data/app/views/alchemy/admin/trash/clear.js.erb +4 -0
  352. data/app/views/alchemy/admin/trash/index.html.erb +29 -0
  353. data/app/views/alchemy/attachments/show.html.erb +1 -0
  354. data/app/views/alchemy/base/500.html.erb +26 -0
  355. data/app/views/alchemy/base/error_notice.html.erb +1 -0
  356. data/app/views/alchemy/base/error_notice.js.erb +2 -0
  357. data/app/views/alchemy/base/permission_denied.js.erb +3 -0
  358. data/app/views/alchemy/base/redirect.js.erb +12 -0
  359. data/app/views/alchemy/base/update.js.erb +5 -0
  360. data/app/views/alchemy/breadcrumb/_page.html.erb +16 -0
  361. data/app/views/alchemy/breadcrumb/_separator.html.erb +1 -0
  362. data/app/views/alchemy/breadcrumb/_wrapper.html.erb +13 -0
  363. data/app/views/alchemy/elements/_editor_not_found.html.erb +5 -0
  364. data/app/views/alchemy/elements/_view_not_found.html.erb +1 -0
  365. data/app/views/alchemy/elements/show.html.erb +1 -0
  366. data/app/views/alchemy/elements/show.js.erb +1 -0
  367. data/app/views/alchemy/essences/_essence_boolean_editor.html.erb +16 -0
  368. data/app/views/alchemy/essences/_essence_boolean_view.html.erb +3 -0
  369. data/app/views/alchemy/essences/_essence_date_editor.html.erb +19 -0
  370. data/app/views/alchemy/essences/_essence_date_view.html.erb +11 -0
  371. data/app/views/alchemy/essences/_essence_file_editor.html.erb +57 -0
  372. data/app/views/alchemy/essences/_essence_file_view.html.erb +10 -0
  373. data/app/views/alchemy/essences/_essence_html_editor.html.erb +9 -0
  374. data/app/views/alchemy/essences/_essence_html_view.html.erb +3 -0
  375. data/app/views/alchemy/essences/_essence_link_editor.html.erb +25 -0
  376. data/app/views/alchemy/essences/_essence_link_view.html.erb +11 -0
  377. data/app/views/alchemy/essences/_essence_picture_editor.html.erb +59 -0
  378. data/app/views/alchemy/essences/_essence_picture_view.html.erb +5 -0
  379. data/app/views/alchemy/essences/_essence_richtext_editor.html.erb +13 -0
  380. data/app/views/alchemy/essences/_essence_richtext_view.html.erb +5 -0
  381. data/app/views/alchemy/essences/_essence_select_editor.html.erb +25 -0
  382. data/app/views/alchemy/essences/_essence_select_view.html.erb +3 -0
  383. data/app/views/alchemy/essences/_essence_text_editor.html.erb +18 -0
  384. data/app/views/alchemy/essences/_essence_text_view.html.erb +18 -0
  385. data/app/views/alchemy/essences/shared/_essence_picture_tools.html.erb +61 -0
  386. data/app/views/alchemy/essences/shared/_linkable_essence_tools.html.erb +19 -0
  387. data/app/views/alchemy/language_links/_language.html.erb +12 -0
  388. data/app/views/alchemy/language_links/_spacer.html.erb +1 -0
  389. data/app/views/alchemy/messages/contact_form_mail.de.text.erb +12 -0
  390. data/app/views/alchemy/messages/contact_form_mail.en.text.erb +12 -0
  391. data/app/views/alchemy/messages/contact_form_mail.es.text.erb +12 -0
  392. data/app/views/alchemy/messages/new.html.erb +1 -0
  393. data/app/views/alchemy/navigation/_image_link.html.erb +14 -0
  394. data/app/views/alchemy/navigation/_link.html.erb +20 -0
  395. data/app/views/alchemy/navigation/_renderer.html.erb +30 -0
  396. data/app/views/alchemy/pages/show.html.erb +1 -0
  397. data/app/views/alchemy/pages/show.rss.builder +20 -0
  398. data/app/views/alchemy/pages/sitemap.xml.erb +6 -0
  399. data/app/views/kaminari/alchemy/_first_page.html.erb +11 -0
  400. data/app/views/kaminari/alchemy/_gap.html.erb +8 -0
  401. data/app/views/kaminari/alchemy/_last_page.html.erb +11 -0
  402. data/app/views/kaminari/alchemy/_next_page.html.erb +13 -0
  403. data/app/views/kaminari/alchemy/_page.html.erb +14 -0
  404. data/app/views/kaminari/alchemy/_paginator.html.erb +23 -0
  405. data/app/views/kaminari/alchemy/_prev_page.html.erb +13 -0
  406. data/app/views/layouts/alchemy/admin.html.erb +109 -0
  407. data/app/views/layouts/alchemy/sitemap.xml.erb +4 -0
  408. data/bin/alchemy +267 -0
  409. data/bin/rails +8 -0
  410. data/config/alchemy/config.yml +189 -0
  411. data/config/alchemy/modules.yml +88 -0
  412. data/config/initializers/dragonfly.rb +25 -0
  413. data/config/initializers/simple_form.rb +144 -0
  414. data/config/locales/alchemy.de.yml +918 -0
  415. data/config/locales/alchemy.en.yml +920 -0
  416. data/config/locales/alchemy.es.yml +958 -0
  417. data/config/locales/alchemy.fr.yml +942 -0
  418. data/config/locales/alchemy.nl.yml +921 -0
  419. data/config/locales/alchemy.ru.yml +837 -0
  420. data/config/locales/simple_form.de.yml +26 -0
  421. data/config/locales/simple_form.en.yml +25 -0
  422. data/config/locales/simple_form.es.yml +6 -0
  423. data/config/locales/simple_form.fr.yml +26 -0
  424. data/config/locales/simple_form.nl.yml +25 -0
  425. data/config/locales/simple_form.ru.yml +25 -0
  426. data/config/routes.rb +164 -0
  427. data/db/migrate/20130827094554_alchemy_two_point_six.rb +380 -0
  428. data/db/migrate/20130828121054_remove_do_not_index_from_alchemy_essence_texts.rb +5 -0
  429. data/db/migrate/20130828121120_remove_do_not_index_from_alchemy_essence_richtexts.rb +5 -0
  430. data/db/migrate/20130918201742_add_published_at_to_alchemy_pages.rb +5 -0
  431. data/lib/alchemy/auth_accessors.rb +104 -0
  432. data/lib/alchemy/cache_digests/template_tracker.rb +65 -0
  433. data/lib/alchemy/config.rb +65 -0
  434. data/lib/alchemy/configuration_methods.rb +29 -0
  435. data/lib/alchemy/controller_actions.rb +138 -0
  436. data/lib/alchemy/engine.rb +104 -0
  437. data/lib/alchemy/errors.rb +82 -0
  438. data/lib/alchemy/essence.rb +232 -0
  439. data/lib/alchemy/filetypes.rb +33 -0
  440. data/lib/alchemy/forms/builder.rb +23 -0
  441. data/lib/alchemy/hints.rb +57 -0
  442. data/lib/alchemy/i18n.rb +70 -0
  443. data/lib/alchemy/kaminari/scoped_pagination_url_helper.rb +13 -0
  444. data/lib/alchemy/locale.rb +65 -0
  445. data/lib/alchemy/logger.rb +15 -0
  446. data/lib/alchemy/middleware/rescue_old_cookies.rb +27 -0
  447. data/lib/alchemy/modules.rb +75 -0
  448. data/lib/alchemy/mount_point.rb +47 -0
  449. data/lib/alchemy/name_conversions.rb +28 -0
  450. data/lib/alchemy/on_page_layout.rb +58 -0
  451. data/lib/alchemy/page_layout.rb +183 -0
  452. data/lib/alchemy/permissions.rb +221 -0
  453. data/lib/alchemy/picture_attributes.rb +29 -0
  454. data/lib/alchemy/resource.rb +238 -0
  455. data/lib/alchemy/resources_helper.rb +135 -0
  456. data/lib/alchemy/routing_constraints.rb +49 -0
  457. data/lib/alchemy/seeder.rb +53 -0
  458. data/lib/alchemy/shell.rb +102 -0
  459. data/lib/alchemy/ssl_protection.rb +30 -0
  460. data/lib/alchemy/tasks/helpers.rb +83 -0
  461. data/lib/alchemy/test_support/controller_requests.rb +73 -0
  462. data/lib/alchemy/test_support/essence_shared_examples.rb +286 -0
  463. data/lib/alchemy/test_support/factories.rb +147 -0
  464. data/lib/alchemy/test_support/integration_helpers.rb +33 -0
  465. data/lib/alchemy/tinymce.rb +68 -0
  466. data/lib/alchemy/touching.rb +41 -0
  467. data/lib/alchemy/upgrader.rb +80 -0
  468. data/lib/alchemy/upgrader/three_point_one.rb +54 -0
  469. data/lib/alchemy/upgrader/three_point_two.rb +69 -0
  470. data/lib/alchemy/upgrader/three_point_zero.rb +93 -0
  471. data/lib/alchemy/userstamp.rb +10 -0
  472. data/lib/alchemy/version.rb +7 -0
  473. data/lib/alchemy_cms.rb +5 -0
  474. data/lib/rails/generators/alchemy/base.rb +41 -0
  475. data/lib/rails/generators/alchemy/elements/elements_generator.rb +37 -0
  476. data/lib/rails/generators/alchemy/elements/templates/editor.html.erb +14 -0
  477. data/lib/rails/generators/alchemy/elements/templates/editor.html.haml +13 -0
  478. data/lib/rails/generators/alchemy/elements/templates/editor.html.slim +12 -0
  479. data/lib/rails/generators/alchemy/elements/templates/view.html.erb +27 -0
  480. data/lib/rails/generators/alchemy/elements/templates/view.html.haml +20 -0
  481. data/lib/rails/generators/alchemy/elements/templates/view.html.slim +20 -0
  482. data/lib/rails/generators/alchemy/essence/essence_generator.rb +52 -0
  483. data/lib/rails/generators/alchemy/essence/templates/editor.html.erb +17 -0
  484. data/lib/rails/generators/alchemy/essence/templates/view.html.erb +2 -0
  485. data/lib/rails/generators/alchemy/install/files/_article_editor.html.erb +5 -0
  486. data/lib/rails/generators/alchemy/install/files/_article_view.html.erb +7 -0
  487. data/lib/rails/generators/alchemy/install/files/_standard.html.erb +1 -0
  488. data/lib/rails/generators/alchemy/install/files/alchemy.de.yml +31 -0
  489. data/lib/rails/generators/alchemy/install/files/alchemy.elements.css.scss +30 -0
  490. data/lib/rails/generators/alchemy/install/files/alchemy.en.yml +31 -0
  491. data/lib/rails/generators/alchemy/install/files/alchemy.es.yml +31 -0
  492. data/lib/rails/generators/alchemy/install/files/application.html.erb +14 -0
  493. data/lib/rails/generators/alchemy/install/install_generator.rb +69 -0
  494. data/lib/rails/generators/alchemy/install/templates/elements.yml.tt +21 -0
  495. data/lib/rails/generators/alchemy/install/templates/page_layouts.yml.tt +10 -0
  496. data/lib/rails/generators/alchemy/module/module_generator.rb +30 -0
  497. data/lib/rails/generators/alchemy/module/templates/ability.rb.tt +11 -0
  498. data/lib/rails/generators/alchemy/module/templates/controller.rb.tt +2 -0
  499. data/lib/rails/generators/alchemy/module/templates/module_config.rb.tt +17 -0
  500. data/lib/rails/generators/alchemy/page_layouts/page_layouts_generator.rb +24 -0
  501. data/lib/rails/generators/alchemy/page_layouts/templates/layout.html.erb +1 -0
  502. data/lib/rails/generators/alchemy/page_layouts/templates/layout.html.haml +1 -0
  503. data/lib/rails/generators/alchemy/page_layouts/templates/layout.html.slim +1 -0
  504. data/lib/rails/generators/alchemy/site_layouts/site_layouts_generator.rb +23 -0
  505. data/lib/rails/generators/alchemy/site_layouts/templates/layout.html.erb +1 -0
  506. data/lib/rails/generators/alchemy/site_layouts/templates/layout.html.haml +1 -0
  507. data/lib/rails/generators/alchemy/site_layouts/templates/layout.html.slim +1 -0
  508. data/lib/rails/generators/alchemy/views/views_generator.rb +41 -0
  509. data/lib/rails/templates/alchemy.rb +7 -0
  510. data/lib/tasks/alchemy/convert.rake +39 -0
  511. data/lib/tasks/alchemy/db.rake +22 -0
  512. data/lib/tasks/alchemy/install.rake +61 -0
  513. data/lib/tasks/alchemy/tidy.rake +102 -0
  514. data/lib/tasks/alchemy/upgrade.rake +28 -0
  515. data/spec/controllers/admin/attachments_controller_spec.rb +211 -0
  516. data/spec/controllers/admin/base_controller_spec.rb +74 -0
  517. data/spec/controllers/admin/clipboard_controller_spec.rb +60 -0
  518. data/spec/controllers/admin/contents_controller_spec.rb +72 -0
  519. data/spec/controllers/admin/dashboard_controller_spec.rb +139 -0
  520. data/spec/controllers/admin/elements_controller_spec.rb +473 -0
  521. data/spec/controllers/admin/essence_files_controller_spec.rb +71 -0
  522. data/spec/controllers/admin/essence_pictures_controller_spec.rb +202 -0
  523. data/spec/controllers/admin/languages_controller_spec.rb +61 -0
  524. data/spec/controllers/admin/layoutpages_controller_spec.rb +27 -0
  525. data/spec/controllers/admin/pages_controller_spec.rb +553 -0
  526. data/spec/controllers/admin/pictures_controller_spec.rb +358 -0
  527. data/spec/controllers/admin/resources_controller_spec.rb +53 -0
  528. data/spec/controllers/admin/trash_controller_spec.rb +68 -0
  529. data/spec/controllers/alchemy/admin/tags_controller_spec.rb +63 -0
  530. data/spec/controllers/alchemy/api/contents_controller_spec.rb +126 -0
  531. data/spec/controllers/alchemy/api/elements_controller_spec.rb +125 -0
  532. data/spec/controllers/alchemy/api/pages_controller_spec.rb +134 -0
  533. data/spec/controllers/attachments_controller_spec.rb +64 -0
  534. data/spec/controllers/base_controller_spec.rb +51 -0
  535. data/spec/controllers/elements_controller_spec.rb +48 -0
  536. data/spec/controllers/messages_controller_spec.rb +199 -0
  537. data/spec/controllers/pages_controller_spec.rb +265 -0
  538. data/spec/controllers/pictures_controller_spec.rb +393 -0
  539. data/spec/dummy/Rakefile +6 -0
  540. data/spec/dummy/app/assets/javascripts/application.js +13 -0
  541. data/spec/dummy/app/assets/stylesheets/application.css +15 -0
  542. data/spec/dummy/app/controllers/admin/events_controller.rb +3 -0
  543. data/spec/dummy/app/controllers/application_controller.rb +15 -0
  544. data/spec/dummy/app/controllers/login_controller.rb +5 -0
  545. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  546. data/spec/dummy/app/mailers/.gitkeep +0 -0
  547. data/spec/dummy/app/models/ability.rb +9 -0
  548. data/spec/dummy/app/models/dummy_model.rb +3 -0
  549. data/spec/dummy/app/models/dummy_user.rb +11 -0
  550. data/spec/dummy/app/models/event.rb +10 -0
  551. data/spec/dummy/app/models/location.rb +3 -0
  552. data/spec/dummy/app/views/alchemy/elements/_all_you_can_eat_editor.html.erb +11 -0
  553. data/spec/dummy/app/views/alchemy/elements/_article_editor.html.erb +10 -0
  554. data/spec/dummy/app/views/alchemy/elements/_article_view.html.erb +25 -0
  555. data/spec/dummy/app/views/alchemy/elements/_headline_editor.html.erb +1 -0
  556. data/spec/dummy/app/views/alchemy/elements/_headline_view.html.erb +1 -0
  557. data/spec/dummy/app/views/alchemy/elements/_news_view.html.erb +11 -0
  558. data/spec/dummy/app/views/alchemy/page_layouts/_standard.html.erb +14 -0
  559. data/spec/dummy/app/views/layouts/application.html.erb +17 -0
  560. data/spec/dummy/bin/bundle +3 -0
  561. data/spec/dummy/bin/rails +4 -0
  562. data/spec/dummy/bin/rake +4 -0
  563. data/spec/dummy/config.ru +4 -0
  564. data/spec/dummy/config/alchemy/cells.yml +5 -0
  565. data/spec/dummy/config/alchemy/elements.yml +112 -0
  566. data/spec/dummy/config/alchemy/page_layouts.yml +32 -0
  567. data/spec/dummy/config/application.rb +32 -0
  568. data/spec/dummy/config/boot.rb +5 -0
  569. data/spec/dummy/config/database.yml +32 -0
  570. data/spec/dummy/config/environment.rb +5 -0
  571. data/spec/dummy/config/environments/development.rb +41 -0
  572. data/spec/dummy/config/environments/production.rb +77 -0
  573. data/spec/dummy/config/environments/test.rb +43 -0
  574. data/spec/dummy/config/initializers/alchemy.rb +2 -0
  575. data/spec/dummy/config/initializers/assets.rb +11 -0
  576. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  577. data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
  578. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  579. data/spec/dummy/config/initializers/inflections.rb +16 -0
  580. data/spec/dummy/config/initializers/mime_types.rb +4 -0
  581. data/spec/dummy/config/initializers/secret_token.rb +12 -0
  582. data/spec/dummy/config/initializers/session_store.rb +3 -0
  583. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  584. data/spec/dummy/config/routes.rb +12 -0
  585. data/spec/dummy/config/secrets.yml +22 -0
  586. data/spec/dummy/db/migrate/20121026104128_create_events.rb +20 -0
  587. data/spec/dummy/db/migrate/20130328101418_create_locations.rb +9 -0
  588. data/spec/dummy/db/migrate/20130827094554_alchemy_two_point_six.rb +380 -0
  589. data/spec/dummy/db/migrate/20130828121054_remove_do_not_index_from_alchemy_essence_texts.rb +5 -0
  590. data/spec/dummy/db/migrate/20130828121120_remove_do_not_index_from_alchemy_essence_richtexts.rb +5 -0
  591. data/spec/dummy/db/migrate/20130918201742_add_published_at_to_alchemy_pages.rb +5 -0
  592. data/spec/dummy/db/migrate/20131209225243_create_dummy_users.rb +9 -0
  593. data/spec/dummy/db/migrate/20150122213511_acts_as_taggable_on_migration.acts_as_taggable_on_engine.rb +31 -0
  594. data/spec/dummy/db/migrate/20150122213512_add_missing_unique_indices.acts_as_taggable_on_engine.rb +20 -0
  595. data/spec/dummy/db/migrate/20150122213513_add_taggings_counter_cache_to_tags.acts_as_taggable_on_engine.rb +15 -0
  596. data/spec/dummy/db/migrate/20150122213514_add_missing_taggable_index.acts_as_taggable_on_engine.rb +10 -0
  597. data/spec/dummy/db/migrate/20150412103152_create_dummy_model.rb +7 -0
  598. data/spec/dummy/db/schema.rb +322 -0
  599. data/spec/dummy/db/seeds.rb +1 -0
  600. data/spec/dummy/lib/assets/.gitkeep +0 -0
  601. data/spec/dummy/public/404.html +67 -0
  602. data/spec/dummy/public/422.html +67 -0
  603. data/spec/dummy/public/500.html +66 -0
  604. data/spec/dummy/public/favicon.ico +0 -0
  605. data/spec/features/admin/dashboard_spec.rb +82 -0
  606. data/spec/features/admin/language_tree_feature_spec.rb +33 -0
  607. data/spec/features/admin/legacy_page_url_management_spec.rb +62 -0
  608. data/spec/features/admin/link_overlay_spec.rb +54 -0
  609. data/spec/features/admin/locale_select_feature_spec.rb +25 -0
  610. data/spec/features/admin/modules_integration_spec.rb +24 -0
  611. data/spec/features/admin/navigation_feature_spec.rb +13 -0
  612. data/spec/features/admin/page_creation_feature_spec.rb +51 -0
  613. data/spec/features/admin/page_editing_feature_spec.rb +135 -0
  614. data/spec/features/admin/picture_library_integration_spec.rb +62 -0
  615. data/spec/features/admin/resources_integration_spec.rb +133 -0
  616. data/spec/features/admin/site_select_feature_spec.rb +32 -0
  617. data/spec/features/admin/tinymce_feature_spec.rb +34 -0
  618. data/spec/features/navigation_spec.rb +9 -0
  619. data/spec/features/page_feature_spec.rb +287 -0
  620. data/spec/features/picture_security_spec.rb +35 -0
  621. data/spec/features/security_spec.rb +24 -0
  622. data/spec/features/translation_integration_spec.rb +51 -0
  623. data/spec/fixtures/500x500.png +0 -0
  624. data/spec/fixtures/80x60.png +0 -0
  625. data/spec/fixtures/image with spaces.png +0 -0
  626. data/spec/fixtures/image.png +0 -0
  627. data/spec/fixtures/image2.PNG +0 -0
  628. data/spec/fixtures/image3.jpeg +0 -0
  629. data/spec/helpers/admin/attachments_helper_spec.rb +15 -0
  630. data/spec/helpers/admin/base_helper_spec.rb +270 -0
  631. data/spec/helpers/admin/contents_helper_spec.rb +65 -0
  632. data/spec/helpers/admin/elements_helper_spec.rb +178 -0
  633. data/spec/helpers/admin/essences_helper_spec.rb +140 -0
  634. data/spec/helpers/admin/navigation_helper_spec.rb +288 -0
  635. data/spec/helpers/admin/pages_helper_spec.rb +95 -0
  636. data/spec/helpers/admin/pictures_helper_spec.rb +29 -0
  637. data/spec/helpers/admin/tags_helper_spec.rb +113 -0
  638. data/spec/helpers/base_helper_spec.rb +45 -0
  639. data/spec/helpers/elements_block_helper_spec.rb +135 -0
  640. data/spec/helpers/elements_helper_spec.rb +311 -0
  641. data/spec/helpers/essences_helper_spec.rb +156 -0
  642. data/spec/helpers/pages_helper_spec.rb +413 -0
  643. data/spec/helpers/picture_url_helpers_spec.rb +35 -0
  644. data/spec/helpers/url_helper_spec.rb +174 -0
  645. data/spec/javascripts/alchemy/dialog_spec.coffee +82 -0
  646. data/spec/javascripts/alchemy/link_overlay_spec.coffee +25 -0
  647. data/spec/javascripts/alchemy_integration_spec.coffee +3 -0
  648. data/spec/javascripts/fixtures/select.html +3 -0
  649. data/spec/javascripts/helpers/mock-ajax.js +199 -0
  650. data/spec/javascripts/helpers/test_responses/test_responses.js +1 -0
  651. data/spec/javascripts/support/jasmine.yml +29 -0
  652. data/spec/libraries/auth_accessors_spec.rb +40 -0
  653. data/spec/libraries/config_spec.rb +112 -0
  654. data/spec/libraries/controller_actions_spec.rb +133 -0
  655. data/spec/libraries/i18n_spec.rb +30 -0
  656. data/spec/libraries/kaminari/scoped_pagination_url_helper_spec.rb +30 -0
  657. data/spec/libraries/modules_spec.rb +67 -0
  658. data/spec/libraries/mount_point_spec.rb +77 -0
  659. data/spec/libraries/on_page_layout_spec.rb +112 -0
  660. data/spec/libraries/page_layout_spec.rb +144 -0
  661. data/spec/libraries/permissions_spec.rb +261 -0
  662. data/spec/libraries/resource_spec.rb +371 -0
  663. data/spec/libraries/resources_helper_spec.rb +144 -0
  664. data/spec/libraries/shell_spec.rb +125 -0
  665. data/spec/libraries/template_tracker_spec.rb +94 -0
  666. data/spec/libraries/tinymce_spec.rb +67 -0
  667. data/spec/libraries/userstamp_spec.rb +10 -0
  668. data/spec/mailers/messages_spec.rb +23 -0
  669. data/spec/models/attachment_spec.rb +227 -0
  670. data/spec/models/cell_spec.rb +102 -0
  671. data/spec/models/content_spec.rb +404 -0
  672. data/spec/models/dummy_model_spec.rb +11 -0
  673. data/spec/models/element_spec.rb +617 -0
  674. data/spec/models/element_to_page_spec.rb +14 -0
  675. data/spec/models/essence_boolean_spec.rb +10 -0
  676. data/spec/models/essence_date_spec.rb +29 -0
  677. data/spec/models/essence_file_spec.rb +43 -0
  678. data/spec/models/essence_html_spec.rb +18 -0
  679. data/spec/models/essence_link_spec.rb +10 -0
  680. data/spec/models/essence_picture_spec.rb +183 -0
  681. data/spec/models/essence_richtext_spec.rb +18 -0
  682. data/spec/models/essence_select_spec.rb +10 -0
  683. data/spec/models/essence_text_spec.rb +114 -0
  684. data/spec/models/language_spec.rb +123 -0
  685. data/spec/models/legacy_page_url_spec.rb +21 -0
  686. data/spec/models/message_spec.rb +55 -0
  687. data/spec/models/page_spec.rb +1896 -0
  688. data/spec/models/picture_spec.rb +330 -0
  689. data/spec/models/site_spec.rb +233 -0
  690. data/spec/models/tag_spec.rb +31 -0
  691. data/spec/routing/api_routing_spec.rb +150 -0
  692. data/spec/routing/routing_spec.rb +234 -0
  693. data/spec/spec_helper.rb +89 -0
  694. data/spec/support/ci/install_phantomjs +7 -0
  695. data/spec/support/hint_examples.rb +30 -0
  696. data/spec/support/rspec-activemodel-mocks_patch.rb +8 -0
  697. data/spec/support/test_tweaks.rb +31 -0
  698. data/spec/support/transformation_examples.rb +180 -0
  699. data/spec/tasks/helpers_spec.rb +219 -0
  700. data/spec/views/essences/essence_boolean_editor_spec.rb +33 -0
  701. data/spec/views/essences/essence_boolean_view_spec.rb +25 -0
  702. data/spec/views/essences/essence_date_view_spec.rb +39 -0
  703. data/spec/views/essences/essence_file_editor_spec.rb +61 -0
  704. data/spec/views/essences/essence_file_view_spec.rb +24 -0
  705. data/spec/views/essences/essence_html_view_spec.rb +22 -0
  706. data/spec/views/essences/essence_link_view_spec.rb +41 -0
  707. data/spec/views/essences/essence_picture_view_spec.rb +129 -0
  708. data/spec/views/essences/essence_richtext_view_spec.rb +32 -0
  709. data/spec/views/essences/essence_select_view_spec.rb +12 -0
  710. data/spec/views/essences/essence_text_view_spec.rb +52 -0
  711. data/vendor/assets/images/Jcrop.gif +0 -0
  712. data/vendor/assets/javascripts/fileupload/jquery.fileupload-process.js +175 -0
  713. data/vendor/assets/javascripts/fileupload/jquery.fileupload-validate.js +122 -0
  714. data/vendor/assets/javascripts/fileupload/jquery.fileupload.js +1467 -0
  715. data/vendor/assets/javascripts/fileupload/jquery.iframe-transport.js +217 -0
  716. data/vendor/assets/javascripts/jquery_plugins/jquery.Jcrop.min.js +22 -0
  717. data/vendor/assets/javascripts/jquery_plugins/jquery.floatThead.min.js +3 -0
  718. data/vendor/assets/javascripts/jquery_plugins/jquery.scrollTo.min.js +7 -0
  719. data/vendor/assets/javascripts/jquery_plugins/jquery.ui.nestedSortable.js +435 -0
  720. data/vendor/assets/javascripts/jquery_plugins/jquery.ui.tabspaging.js +296 -0
  721. data/vendor/assets/javascripts/keymaster.js +296 -0
  722. data/vendor/assets/javascripts/requestAnimationFrame.js +31 -0
  723. data/vendor/assets/javascripts/spin.min.js +1 -0
  724. data/vendor/assets/javascripts/tinymce/langs/de.js +200 -0
  725. data/vendor/assets/javascripts/tinymce/langs/es.js +200 -0
  726. data/vendor/assets/javascripts/tinymce/langs/fr.js +200 -0
  727. data/vendor/assets/javascripts/tinymce/langs/nl.js +200 -0
  728. data/vendor/assets/javascripts/tinymce/langs/ru.js +200 -0
  729. data/vendor/assets/javascripts/tinymce/license.txt +504 -0
  730. data/vendor/assets/javascripts/tinymce/plugins/anchor/plugin.min.js +1 -0
  731. data/vendor/assets/javascripts/tinymce/plugins/autoresize/plugin.min.js +1 -0
  732. data/vendor/assets/javascripts/tinymce/plugins/charmap/plugin.min.js +1 -0
  733. data/vendor/assets/javascripts/tinymce/plugins/code/plugin.min.js +1 -0
  734. data/vendor/assets/javascripts/tinymce/plugins/directionality/plugin.min.js +1 -0
  735. data/vendor/assets/javascripts/tinymce/plugins/fullscreen/plugin.min.js +1 -0
  736. data/vendor/assets/javascripts/tinymce/plugins/hr/plugin.min.js +1 -0
  737. data/vendor/assets/javascripts/tinymce/plugins/link/plugin.min.js +1 -0
  738. data/vendor/assets/javascripts/tinymce/plugins/paste/plugin.min.js +1 -0
  739. data/vendor/assets/javascripts/tinymce/plugins/tabfocus/plugin.min.js +1 -0
  740. data/vendor/assets/javascripts/tinymce/plugins/table/plugin.min.js +1 -0
  741. data/vendor/assets/javascripts/tinymce/themes/modern/theme.min.js +1 -0
  742. data/vendor/assets/javascripts/tinymce/tinymce.min.js +13 -0
  743. data/vendor/assets/stylesheets/jquery.Jcrop.min.css +28 -0
  744. metadata +1453 -0
@@ -0,0 +1,920 @@
1
+ # encoding: UTF-8
2
+
3
+ en:
4
+
5
+ # = Alchemy Translations
6
+ # All translations used in Alchemy CMS are inside this alchemy namespace.
7
+ alchemy:
8
+
9
+ # == Translations for page_layout names
10
+ # Just use the page_layouts name like defined inside the config/alchemy/page_layouts.yml file and translate it.
11
+ #
12
+ # Example:
13
+ #
14
+ # en:
15
+ # alchemy:
16
+ # page_layout_names:
17
+ # contact: Contact
18
+ # search: Search
19
+ #
20
+ page_layout_names:
21
+
22
+ # == Translations for element names
23
+ # Just use the elements name like defined inside the config/alchemy/elements.yml file and translate it.
24
+ #
25
+ # Example:
26
+ #
27
+ # en:
28
+ # alchemy:
29
+ # element_names:
30
+ # article: Article
31
+ # contactform: Contact form
32
+ #
33
+ element_names:
34
+
35
+ # == Translated names for contents in elements.
36
+ # Used for the content editor label inside the element editor view (The elements window)
37
+ #
38
+ # Tip: You can translate content names globally for all contents of this name, or specificly for an element.
39
+ # To do so, just place the content_name under the element name
40
+ #
41
+ # Example:
42
+ #
43
+ # en:
44
+ # alchemy:
45
+ # content_names:
46
+ # headline: Headline
47
+ # news_article:
48
+ # headline: News Headline
49
+ # image_caption: Caption
50
+ # show_caption: Show Caption
51
+ #
52
+ content_names:
53
+
54
+ # === Translations for content validations
55
+ # Used when a user did not enter (correct) values to the content field.
56
+ #
57
+ # Tip: You can define the validation messages translations different for each element and content
58
+ #
59
+ # Example:
60
+ #
61
+ # en:
62
+ # alchemy:
63
+ # content_validations:
64
+ # contactform:
65
+ # success_page:
66
+ # blank: 'Please choose a follow up page.'
67
+ # mail_to:
68
+ # blank: 'Please provide an email address where the contact inquiries will be delivered to.'
69
+ #
70
+ content_validations:
71
+ errors:
72
+ blank: "%{field} can't be blank"
73
+ invalid: '%{field} has wrong format'
74
+ taken: '%{field} has already been taken'
75
+
76
+ default_content_texts:
77
+ lorem: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
78
+ corporate_lorem: "Appropriately enable sustainable growth strategies vis-a-vis holistic materials. Energistically orchestrate open-source e-tailers vis-a-vis plug-and-play best practices. Uniquely plagiarize client-centric opportunities whereas plug-and-play ideas. Distinctively reconceptualize backward-compatible partnerships vis-a-vis reliable total linkage. Interactively fabricate highly efficient networks for clicks-and-mortar content. Collaboratively reconceptualize holistic markets via 2.0 architectures."
79
+
80
+ essence_pictures:
81
+ css_classes:
82
+ left: 'Left from text'
83
+ right: 'Right from text'
84
+ no_float: 'Above the text'
85
+
86
+ # == Contactform translations
87
+ contactform:
88
+ labels:
89
+ salutation: 'Salutation'
90
+ choose: 'Please choose'
91
+ mr: 'Mr.'
92
+ mrs: 'Mrs.'
93
+ firstname: 'Firstname'
94
+ lastname: 'Lastname'
95
+ address: 'Street / No.'
96
+ zip: 'Zipcode / City'
97
+ phone: 'Telephone'
98
+ email: 'Email'
99
+ message: 'Message'
100
+ send: 'Send'
101
+ mandatory_fields: '*Mandatory fields.'
102
+ # The flash message shown after successfully sending the message.
103
+ messages:
104
+ success: 'Your message was delivered successfully.'
105
+
106
+ # == Translated language names for translation select
107
+ translations:
108
+ de: 'DE'
109
+ en: 'EN'
110
+ nl: 'NL'
111
+ fr: 'FR'
112
+
113
+ # == User roles translations
114
+ user_roles:
115
+ registered: "Registered"
116
+ member: "Member"
117
+ author: "Author"
118
+ editor: "Editor"
119
+ admin: "Administrator"
120
+
121
+ # == Mime Types translations
122
+ # These are human readable mime types used for the document-type row in archive files.
123
+ mime_types:
124
+ audio/mp4: 'MP4-Audio'
125
+ application/msword: 'Word-Document'
126
+ application/rtf: 'RTF-Document'
127
+ audio/mpeg: 'MP3-Audio'
128
+ text/plain: 'Text-Document'
129
+ video/mp4: 'MP4-Video'
130
+ video/mpeg: 'MPEG-Video'
131
+ application/pdf: 'PDF-Document'
132
+ application/x-flash-video: 'Flash-Video'
133
+ video/x-flv: 'Flash-Video'
134
+ application/x-shockwave-flash: 'Flash-Movie'
135
+ application/zip: 'ZIP-Archive'
136
+ application/x-rar: 'RAR-Archive'
137
+ application/vnd:
138
+ ms-excel: 'Excel-Document'
139
+ video/quicktime: 'Quicktime-Video'
140
+ image/x-psd: 'Photoshop-File'
141
+ image/gif: 'GIF-Image'
142
+ image/png: 'PNG-Image'
143
+ image/jpeg: 'JPG-Image'
144
+ video/x-msvideo: 'AVI-Video'
145
+ video/x-ms-wmv: 'Windows Media Video'
146
+ image/tiff: 'TIFF-Image'
147
+ 'text/x-vcard': 'vCard'
148
+ application/vcard: 'vCard'
149
+
150
+ link_target_options:
151
+ default: Same Window
152
+ blank: New Window/Tab
153
+ overlay: Overlay
154
+
155
+ resource_help_texts:
156
+ site:
157
+ aliases: Please separate additional domains with spaces or new lines.
158
+
159
+ anchor: 'Anchor'
160
+ back: 'back'
161
+ create_tree_as_new_language: "Create %{language} as a new language tree"
162
+ "Active Pages": "Active pages"
163
+ "Add global page": "Add global page"
164
+ "Add page link": "Add page link"
165
+ "Adobe Website": "Adobe Website"
166
+ "Alchemy is open software and itself uses open software and free resources:": "Alchemy is open software and itself uses open software and free resources:"
167
+ "Alchemy is up to date": 'Alchemy is up to date'
168
+ 'An error happened': 'An error happened'
169
+ "Change password": "Change password"
170
+ "Choose page": "Choose page"
171
+ "Cleared trash": "Cleared trash"
172
+ "Clear selection": "Clear selection"
173
+ "Forgot your password?": "Forgot your password?"
174
+ "Clipboard": "Clipboard"
175
+ "Confirm new password": "Confirm new password"
176
+ "Copy": "Copy"
177
+ "Could not load Adobe Flash® Plugin!": "Could not load Adobe Flash® Plugin!"
178
+ "Currently locked pages": "Currently locked pages"
179
+ "Default language has to be public": "Default language has to be public"
180
+ "Delete image": "Delete image"
181
+ "Do you really want to clear the clipboard?": "Do you really want to clear the clipboard?"
182
+ "Do you really want to clear the trash?": "Do you really want to clear the trash?"
183
+ "Do you really want to delete this content?": "Do you really want to delete this content?"
184
+ "Drag an element over to the element window to restore it": "Drag an element over to the element window to restore it"
185
+ "Edit Picturemask": "Edit picturemask"
186
+ "Edit image": "Edit image"
187
+ "Edit multiple pictures": "Edit multiple pictures"
188
+ "Elements": "Elements"
189
+ "Element trashed": "Element trashed"
190
+ "Error with the Flash® Uploader!": "Error with the Flash® Uploader!"
191
+ "Excerpt": "Excerpt"
192
+ "File uploaded succesfully": "File %{name} succesfully uploaded"
193
+ "File successfully updated": "File successfully updated"
194
+ "File upload error": "File upload error: %{error}"
195
+ "File deleted successfully": "%{name} has been deleted"
196
+ "Filter by tag": "Filter by tag"
197
+ "Flush page cache": "Flush page cache"
198
+ "Flush picture cache": "Flush picture cache"
199
+ "Global shortcuts": "Global shortcuts"
200
+ "Hide childpages": "Hide childpages"
201
+ "Hide Elements": "Hide Elements"
202
+ "If you have any problems using the Flash uploader you can switch to": "If you have any problems using the Flash uploader you can switch to %{link}"
203
+ "Image missing": "Image missing"
204
+ "Image size": "Image size"
205
+ "Language successfully created": "Language successfully created."
206
+ "Language successfully removed": "Language successfully removed."
207
+ "Language successfully updated": "Language successfully updated."
208
+ "Language tree": "Language tree"
209
+ "Layout default": "Layout default"
210
+ "Library shortcuts": "Library shortcuts"
211
+ "Logged in as": "Logged in as"
212
+ "Mandatory": "Mandatory fields"
213
+ "Name": "Name"
214
+ "New": "New"
215
+ "New Element": "New element"
216
+ "New page": "New page"
217
+ "No page links for this page found": "No page links for this page found"
218
+ "New password": "New password"
219
+ "New Tag": "New tag"
220
+ "New Tag Created": "New Tag Created"
221
+ "No": "No"
222
+ "No items in your clipboard": "No items in your clipboard"
223
+ "No Tags found": "No Tags found"
224
+ "None": "None"
225
+ "Open Link in": "Open Link in"
226
+ "Page": "Page"
227
+ "Page edit shortcuts": "Page edit shortcuts"
228
+ "Page deleted": "%{name} deleted"
229
+ "Page saved": "%{name} saved"
230
+ "Page cache flushed": "Page cache flushed"
231
+ "Pages order saved": "Pages order saved"
232
+ "Password": "Password"
233
+ "Password reset": "Password reset"
234
+ "Paste from clipboard": "Paste from clipboard"
235
+ "Picture infos": "Picture infos"
236
+ "Picture uploaded succesfully": "Picture %{name} uploaded successfully"
237
+ "Picture validation error": "Error while uploading %{name}"
238
+ "Picture renamed successfully": "Picture renamed successfully from %{from} to %{to}"
239
+ "Picture deleted successfully": "Picture %{name} successfully deleted"
240
+ "Pictures updated successfully": "Pictures updated successfully"
241
+ "Picture cache flushed": "Picture cache flushed"
242
+ "Please Signup": "Please signup to edit your Website."
243
+ "Please choose": "Please choose"
244
+ "Please enter a new password": "Please enter a new password."
245
+ "Please enter your email address": "Please enter your email address."
246
+ "Please log in": "Please log in."
247
+ "Please seperate the tags with commata": "* Please seperate the tags with commas."
248
+ "Properties": "Properties"
249
+ "Publish page": "Publish page"
250
+ "Read the License": "Read the License"
251
+ "Redirects to": "Redirects to"
252
+ "Reload Preview": "Reload Preview"
253
+ "Remove item from clipboard": "Remove item from clipboard"
254
+ "Remove tag filter": "Remove tag filter"
255
+ "Remove this content": "Remove this content"
256
+ "Reset Imagemask": "Reset Imagemask"
257
+ "Reset password instructions": "Reset password instructions"
258
+ "Select all": "Select all"
259
+ "Select an content": "Select a content"
260
+ "Select style": "Select style"
261
+ "Send reset instructions": "Send reset instructions"
262
+ "Show Elements": "Show Elements"
263
+ "Show childpages": "Show childpages"
264
+ "Show clipboard": "Show clipboard"
265
+ "Show picture infos": "Show picture infos"
266
+ "Show trash": "Show trash"
267
+ "Site successfully created": "Website successfully created."
268
+ "Site successfully removed": "Website successfully removed."
269
+ "Site successfully updated": "Website successfully updated."
270
+ "Size": "Size"
271
+ "Sort pages": "Reorder pages"
272
+ "Successfully added content": "Successfully added %{content}"
273
+ "Successfully deleted content": "Successfully deleted %{content}"
274
+ "Successfully saved content position": "Successfully saved content position"
275
+ "Tags": "Tags"
276
+ "These pictures could not be deleted, because they were in use": "These pictures could not be deleted, because they were in use: %{names}"
277
+ "This page is locked": "This page is currently locked by %{name}"
278
+ "Title": "Title"
279
+ "Trash": "Trash"
280
+ "User created": "%{name} User created"
281
+ "User deleted": "%{name} User deleted"
282
+ "User updated": "%{name} User updated"
283
+ "Validation failed": "Validation failed"
284
+ "Version": "Version"
285
+ "View File": "View File"
286
+ "Visit page": "Visit page"
287
+ "Warning!": "Warning!"
288
+ content_description_missing: "Warning: Content is missing its description. Please check the elements.yml"
289
+ element_description_missing: "WARNING! Missing element description. Please check your elements.yml file."
290
+ page_layout_description_missing: "WARNING! Missing page layout description. Please check your page_layouts.yml file."
291
+ "Welcome to Alchemy": "Welcome to Alchemy"
292
+ "Who else is online": "Who else is online"
293
+ "Yes": "Yes"
294
+ "You are not authorized": "You are not authorized"
295
+ "You are about to edit many pictures at once": "You are about to edit %{length} pictures at once"
296
+ element_dirty_close_window_notice: "You have unsaved elements. Do you really want to close the elements window?"
297
+ "You may upload files with following extensions": "You may upload %{file_types_description} with following extensions: %{file_types}"
298
+ "You may upload any file": "You may upload any file"
299
+ "Your last login was on": "Your last login was on %{time}."
300
+ "Your last updated pages": "Your last updated pages"
301
+ "Your trash is empty": "Your trash is empty"
302
+ above: "above"
303
+ add: "Add"
304
+ "add new content": "Add new content"
305
+ add_image_to_element: "Add an image"
306
+ align_in_text: "Alignment in text"
307
+ all: "all"
308
+ all_pictures: "All pictures"
309
+ apply: "apply"
310
+ assign_file: "Assign a file"
311
+ assign_file_from_archive: "assign a file from your archive"
312
+ assign_image: "Assign an image"
313
+ attachment_filename_notice: "* Please do not use any special characters for the filename."
314
+ auto_play: "Play movie after load"
315
+ big_thumbnails: "Big thumbnails"
316
+ browse: "browse"
317
+ cancel: "cancel"
318
+ cannot_delete_picture_notice: "Cannot delete Picture %{name}, because it's still in use."
319
+ choose_element_as_target: "Please choose an element as target"
320
+ choose_element_to_link: "Please choose an element"
321
+ choose_file_to_link: "Please choose a file to link"
322
+ "clear clipboard": "clear clipboard"
323
+ "clear trash": "clear trash"
324
+ click_to_show_all: "Click to show all again."
325
+ confirm_to_delete_file: "Do you really want to delete this file from the server?"
326
+ confirm_to_delete_image: "Do you really want to delete this image from server?"
327
+ confirm_to_delete_image_from_server: "Do you really want to delete this image from the server?"
328
+ confirm_to_delete_images_from_server: "Do you really want to delete these images from the server?"
329
+ confirm_to_delete_page: "Do you really want to delete this page? All its elements will get lost!"
330
+ content_essence_not_found: "Content essence not found"
331
+ content_not_found: "Field for content not present."
332
+ content_validations_headline: "Please check marked fields below"
333
+ copy: "copy"
334
+ copy_element: "Copy this element"
335
+ copy_page: "Copy page"
336
+ "Could not delete Pictures": "Could not delete Pictures"
337
+ copy_language_tree_heading: "Copy page tree"
338
+ country_code_placeholder: 'i.e. us (optional)'
339
+ country_code_foot_note: "You only need to set a country code if you want to provide each country with an individual language."
340
+ create: "create"
341
+ "Create language": "Create a new language"
342
+ "Create site": "Create a new site"
343
+ create_language_tree_heading: "Create empty language tree"
344
+ create_page: "Create a new subpage"
345
+ currently_edited_by: "This page is locked by"
346
+ cut_element: "Cut this element."
347
+ delete_file: "Delete this file from server."
348
+ delete_image: "Remove this image"
349
+ delete_language: "Delete this language"
350
+ delete_page: "Delete this page"
351
+ delete_tag: 'Delete tag'
352
+ document: "File"
353
+ documents: "Files"
354
+ download_csv: "Download CSV"
355
+ download_file: "Download file '%{filename}'"
356
+ do_you_really_want_to_delete_this_tag?: "Do you really want to delete this tag?"
357
+ drag_to_sort: "Drag'n'Drop to sort images"
358
+ edit_file_properties: "Edit file properties."
359
+ edit_image_properties: "Edit image properties."
360
+ edit_language: "Edit language"
361
+ edit_page: "Edit this page"
362
+ edit_page_properties: "Edit page properties"
363
+ edit_tag: 'Edit tag'
364
+ edit_selected_pictures: "Edit selected pictures"
365
+ element_editor_not_found: "Error within this Element"
366
+ element_of_type: "Element"
367
+ element_saved: "Saved element."
368
+ enter_external_link: "Please enter the URL you want to link with"
369
+ explain_cropping: "<p>Move the frame and change its size to adjust the image section.</p><p>Click on apply when you are satisfied.</p>"
370
+ explain_publishing: "Publish the page and remove the cached version from the server."
371
+ explain_sitemap_dragndrop_sorting: "Tip: Drag the pages at the icon in order to sort them."
372
+ explain_unlocking: "Leave page and unlock it for other users."
373
+ explain_upload:
374
+ footnote: "HINT! Hold the CTRL button (CMD on a Mac) while clicking the %{name} with the mouse to upload multiple %{name} at once."
375
+ intro: "This is how the %{name} upload works"
376
+ step1: "Click the 'browse' button and navigate to your %{name} folder"
377
+ step2: "Select all the %{name} you want to upload"
378
+ step3: "Click the 'open' button. The upload starts!"
379
+ dragndrop: "You can also drag files from your computer over to the area underneath."
380
+ external_link_notice_1: "Please enter the complete url with http:// or a similar protocol."
381
+ external_link_notice_2: "To refer a path from your website url, start with a /."
382
+ female: "Female"
383
+ file: "File"
384
+ file_rename_error: "Error renaming file."
385
+ files: "Files"
386
+ from_at: "from %{by} at %{at}"
387
+ height: "Height"
388
+ help:
389
+ shortcuts:
390
+ "Open help window": "Open help window"
391
+ "Close current dialog": "Close current dialog"
392
+ "Open logout dialog": "Open logout dialog"
393
+ "Focus search field": "Focus search field"
394
+ "Create a new record": "Create a new record"
395
+ "Show page infos": "Show page info"
396
+ "Create new element": "Create new element"
397
+ "Edit page properties": "Edit page properties"
398
+ "Reload the preview": "Reload the preview"
399
+ "Leave the page": "Leave the page"
400
+ "Open upload form": "Open upload form"
401
+ "Select all pictures": "Select all pictures"
402
+ hide_element_content: "Hide this elements content."
403
+ dashboard: "Dashboard"
404
+ image_alt_tag: "Alt-tag"
405
+ image_caption: "Caption"
406
+ image_name: "Name"
407
+ image_title: "Title-tag"
408
+ images: "Images"
409
+ internal_link_headline: "Choose a page to link to."
410
+ internal_link_page_elements_explanation: "Additionally you can click right beside a page on 'Show Elements' to link to an anchor of an element from that page."
411
+ internal_link_page_anchors_explanation: "Alternatively you can link to an anchor of the actual page."
412
+ "item copied to clipboard": "Copied %{name} to clipboard"
413
+ "item moved to clipboard": "Moved %{name} to clipboard"
414
+ "item removed from clipboard": "Removed %{name} from clipboard"
415
+ javascript_disabled_headline: "Javascript is disabled!"
416
+ javascript_disabled_text: "Alchemy needs Javascript to run smoothly. Please enable it in your browser settings."
417
+ language_code_placeholder: 'i.e. en'
418
+ language_does_not_exist: "This language tree does not exist"
419
+ language_pages_copied: "Language tree successfully copied."
420
+ last_upload_only: "Last upload only"
421
+ left: "left"
422
+ legacy_url_info_text: "A link is a redirect from an old URL to the current URL of this page. This redirect happens with a <a href='https://support.google.com/webmasters/answer/93633' target='_blank'>301 status code</a>."
423
+ link_image: "Link this image."
424
+ link_overlay_tab_label:
425
+ contactform: "Contact form"
426
+ external: "External"
427
+ file: "File"
428
+ internal: "Internal"
429
+ link_title: "Link title"
430
+ login: "login"
431
+ logout: "logout"
432
+ mail_to: "Recipient"
433
+ main_content: "Main content"
434
+ male: "Male"
435
+ me: "Me"
436
+ medium_thumbnails: "Medium thumbnails"
437
+ meta_data: "Meta-Data"
438
+ meta_description: "Meta-Description"
439
+ meta_keywords: "Meta-Keywords"
440
+ modules:
441
+ attachments: "Files"
442
+ dashboard: "Dashboard"
443
+ pictures: "Images"
444
+ languages: "Languages"
445
+ layoutpages: "Global Pages"
446
+ library: "Library"
447
+ pages: "Pages"
448
+ tags: "Tags"
449
+ sites: "Sites"
450
+ name: "Name"
451
+ names: "Names"
452
+ navigation_name: "Navigation name"
453
+ no_image_for_cropper_found: "No image found. Please save the element first."
454
+ no: "No"
455
+ "no pages": "no pages"
456
+ "no users": "no users"
457
+ no_default_language_found: "No default language found."
458
+ no_element_given: "No element given."
459
+ no_files_in_archive: "You do not have any files in your archive."
460
+ no_images_in_archive: "You don't have any images in your archive."
461
+ no_more_elements_to_add: "No more elements available."
462
+ no_search_results: "Your search did not return any results."
463
+ "not a valid image": "This is not an valid image."
464
+ "or": 'or'
465
+ or_replace_it_with_an_existing_tag: 'Or replace it with an existing tag'
466
+ "Page created": "Page: '%{name}' created."
467
+ page_for_links:
468
+ choose_page: "Choose %{name}"
469
+ page_infos: 'Page info'
470
+ page_layout_changed_notice: "Page type was changed. Elements not usable anymore have been moved into the trash."
471
+ page_properties: "Page properties"
472
+ page_public: "published"
473
+ page_published: "Published page"
474
+ page_restricted: "restricted"
475
+ page_states:
476
+ visible:
477
+ "true": "Page is visible in navigation."
478
+ "false": "Page is not visible in navigation."
479
+ public:
480
+ "true": "Page is published."
481
+ "false": "Page is unpublished."
482
+ locked:
483
+ "true": "Page is being edited at the moment."
484
+ "false": ""
485
+ restricted:
486
+ "true": "Page is restricted."
487
+ "false": "Page is not restricted."
488
+ page_status: "Status"
489
+ page_title: "Title"
490
+ page_type: "Type"
491
+ page_visible_in_navigation: "visible in the navigation"
492
+ page_was_created: "Was created"
493
+ page_was_updated: "Was updated"
494
+ pages:
495
+ update:
496
+ comma_seperated: "Separate by comma"
497
+ password: "Password"
498
+ paste: "paste"
499
+ picture_gallery_editor: 'Pictures'
500
+ picture_library:
501
+ filter:
502
+ last_upload: "from last upload"
503
+ recent: "that where recently uploaded"
504
+ without_tag: "without tag"
505
+ pictures_in_page: "%{page} in %{pictures}"
506
+ place_link: "Link text"
507
+ player_version: "Flash Player version"
508
+ "please enter subject and mail address": "Please enter recipient and subject."
509
+ please_confirm: "Please confirm"
510
+ please_wait: "Please wait"
511
+ position_in_text: "Position in text"
512
+ preview_size: "Preview size"
513
+ preview_sizes:
514
+ '240': '240px (small phone)'
515
+ '320': '320px (iPhone)'
516
+ '480': '480px (small Tablet)'
517
+ '768': '768px (iPad - Portrait)'
518
+ '1024': '1024px (iPad - Landscape)'
519
+ '1280': '1280px (Desktop)'
520
+ recently_uploaded_only: 'Recently uploaded only'
521
+ "regular method": "Regular method"
522
+ remove: "Remove"
523
+ rename_file: "Rename this file."
524
+ rename: "Rename"
525
+ replace: replace
526
+ 'Replaced Tag': "Tag '%{old_tag}' was replaced with '%{new_tag}'"
527
+ resources:
528
+ relation_select:
529
+ blank: '- none -'
530
+ right: "right"
531
+ robot_follow: "robot may follow links."
532
+ robot_index: "allow robot to index."
533
+ save: "Save"
534
+ "save order": "Save order"
535
+ saved_link: "Link saved."
536
+ search: "search"
537
+ search_engines: "Search engines"
538
+ select_element: "Select element"
539
+ seperate_tags_with_comma: "Seperate tags with comma"
540
+ show_element_content: "Show content of this element."
541
+ show_elements_from_page: "Show all elements from this page"
542
+ show_eq: "Show EQ"
543
+ show_navigation: "Show in navigation"
544
+ show_page_in_sitemap: "Show page in sitemap."
545
+ signup_mail_delivery_error: 'Signup mail could not be delivered. Please check your mail settings.'
546
+ small_thumbnails: "Small thumbnails"
547
+ subject: "Subject"
548
+ successfully_added_element: "Successfully added new element."
549
+ successfully_deleted_tag: "Successfully deleted tag"
550
+ successfully_restored_element: "Element restored successfully."
551
+ successfully_saved_element_position: "Element position updated successfully."
552
+ successfully_updated_tag: "Successfully updated tag"
553
+ swap_image: "Change image"
554
+ insert_image: "Insert image"
555
+ tag_list: Tags
556
+ tags_get_created_if_used_the_first_time: 'Tags get created if used the first time.'
557
+ this_picture_is_used_on_these_pages: "This picture is used on following pages"
558
+ title: "Title"
559
+ to_alchemy: "To Alchemy"
560
+ "trash element": "Put element into trash"
561
+ unknown: "unknown"
562
+ unlink: "Remove link from this image."
563
+ unlock_page: "Leave page"
564
+ unlocked_page: "Unlocked page %{name}."
565
+ upload_file: "Upload file(s)"
566
+ upload_image: "Upload image(s)"
567
+ url_name: "URL-Name"
568
+ visible: "visible"
569
+ want_to_create_new_language: "Do you want to create a new empty language tree?"
570
+ want_to_make_copy_of_existing_language: "Do you want to copy an existing language tree?"
571
+ "We need at least one default.": "A default language must exist."
572
+ welcome_note: "Welcome %{name}"
573
+ welcome_back_note: "Welcome back %{name}"
574
+ welcome_please_identify_notice: "Welcome! Please identify."
575
+ width: "Width"
576
+ without_tag: "Without tag"
577
+ you_can_rename_this_tag: "You can rename this tag"
578
+ zoom_image: "Zoom this image"
579
+ "Leave Alchemy": "Leave Alchemy"
580
+ leave: "leave"
581
+ "You are about to leave Alchemy": "You are about to leave Alchemy"
582
+ "Do you want to": "Do you want to"
583
+ "stay logged in": "stay logged in"
584
+ "or to completely": "or to completely"
585
+ "Are you sure?": "Are you sure?"
586
+ "Create": "Create"
587
+ "Edit": "Edit"
588
+ "Delete": "Delete"
589
+ "Succesfully created": "Succesfully created"
590
+ "Succesfully updated": "Succesfully updated"
591
+ "Succesfully removed": "Succesfully removed"
592
+ "Nothing found": "Nothing found."
593
+ "Or drag files over here": "Or drag files over here"
594
+ complete: 'Abgeschlossen'
595
+ "Update available": 'Update available'
596
+ "Update status unavailable": 'Update status unavailable'
597
+ "Uploading": "Uploading"
598
+
599
+ # END of Alchemy translation
600
+
601
+ # == Rails translations
602
+ # Below are Rails specific translations for date, time, number, currency, error messages and so on.
603
+ date:
604
+ formats:
605
+ default: "%Y-%m-%d"
606
+ datepicker: "%Y-%m-%d"
607
+ short: "%b %d"
608
+ long: "%B %d, %Y"
609
+ only_day: "%e"
610
+ day_names: [Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday]
611
+ abbr_day_names: [Sun, Mon, Tue, Wed, Thu, Fri, Sat]
612
+ month_names: [~, January, February, March, April, May, June, July, August, September, October, November, December]
613
+ abbr_month_names: [~, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec]
614
+ order:
615
+ - :year
616
+ - :month
617
+ - :day
618
+ time:
619
+ formats:
620
+ default: "%a, %d %b %Y %H:%M:%S %z"
621
+ short: "%d %b %H:%M"
622
+ long: "%B %d, %Y %H:%M"
623
+ page_status: "%m.%d.%Y %H:%M"
624
+ date: "%Y-%m-%d"
625
+ datepicker: "%Y-%m-%d"
626
+ am: "am"
627
+ pm: "pm"
628
+ support:
629
+ array:
630
+ sentence_connector: "and"
631
+
632
+ number:
633
+ # Used in number_with_delimiter()
634
+ # These are also the defaults for 'currency', 'percentage', 'precision', and 'human'
635
+ format:
636
+ # Sets the separator between the units, for more precision (e.g. 1.0 / 2.0 == 0.5)
637
+ separator: "."
638
+ # Delimets thousands (e.g. 1,000,000 is a million) (always in groups of three)
639
+ delimiter: ","
640
+ # Number of decimals, behind the separator (1 with a precision of 2 gives: 1.00)
641
+ precision: 3
642
+
643
+ # Used in number_to_currency()
644
+ currency:
645
+ format:
646
+ # Where is the currency sign? %u is the currency unit, %n the number (default: $5.00)
647
+ format: "%u%n"
648
+ unit: "$"
649
+ # These three are to override number.format and are optional
650
+ separator: "."
651
+ delimiter: ","
652
+ precision: 2
653
+
654
+ # Used in number_to_percentage()
655
+ percentage:
656
+ format:
657
+ # These three are to override number.format and are optional
658
+ # separator:
659
+ delimiter: ""
660
+ # precision:
661
+
662
+ # Used in number_to_precision()
663
+ precision:
664
+ format:
665
+ # These three are to override number.format and are optional
666
+ # separator:
667
+ delimiter: ""
668
+ # precision:
669
+
670
+ # Used in number_to_human_size()
671
+ human:
672
+ format:
673
+ # These three are to override number.format and are optional
674
+ # separator:
675
+ delimiter: ""
676
+ precision: 1
677
+
678
+ # Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words()
679
+ datetime:
680
+ distance_in_words:
681
+ half_a_minute: "half a minute"
682
+ less_than_x_seconds:
683
+ one: "less than 1 second"
684
+ many: "less than %{count} seconds"
685
+ x_seconds:
686
+ one: "1 second"
687
+ many: "%{count} seconds"
688
+ less_than_x_minutes:
689
+ one: "less than a minute"
690
+ many: "less than %{count} minutes"
691
+ x_minutes:
692
+ one: "1 minute"
693
+ many: "%{count} minutes"
694
+ about_x_hours:
695
+ one: "about 1 hour"
696
+ many: "about %{count} hours"
697
+ x_days:
698
+ one: "1 day"
699
+ many: "%{count} days"
700
+ about_x_months:
701
+ one: "about 1 month"
702
+ many: "about %{count} months"
703
+ x_months:
704
+ one: "1 month"
705
+ many: "%{count} months"
706
+ about_x_years:
707
+ one: "about 1 year"
708
+ many: "about %{count} years"
709
+ over_x_years:
710
+ one: "over 1 year"
711
+ many: "over %{count} years"
712
+
713
+ errors: &errors
714
+ template:
715
+ header: "Validation failed"
716
+ body: "Please review the form and check the errors."
717
+
718
+ messages:
719
+ inclusion: "is not included in the list"
720
+ exclusion: "is reserved"
721
+ invalid: "is invalid"
722
+ record_invalid: 'Validation of %{errors} failed'
723
+ confirmation: "doesn't match confirmation"
724
+ accepted: "must be accepted"
725
+ empty: "can't be empty"
726
+ blank: "can't be blank"
727
+ too_long: "is too long (maximum is %{count} characters)"
728
+ too_short: "is too short (minimum is %{count} characters)"
729
+ wrong_length: "is the wrong length (should be %{count} characters)"
730
+ taken: "has already been taken"
731
+ not_a_number: "is not a number"
732
+ greater_than: "must be greater than %{count}"
733
+ greater_than_or_equal_to: "must be greater than or equal to %{count}"
734
+ equal_to: "must be equal to %{count}"
735
+ less_than: "must be less than %{count}"
736
+ less_than_or_equal_to: "must be less than or equal to %{count}"
737
+ odd: "must be odd"
738
+ even: "must be even"
739
+ models:
740
+ alchemy/content:
741
+ attributes:
742
+ name:
743
+ taken: 'is already taken in this element.'
744
+ essence:
745
+ validation_failed: 'Validation failed.'
746
+ alchemy/element:
747
+ attributes:
748
+ name:
749
+ blank: "^Please choose an element."
750
+ alchemy/language:
751
+ attributes:
752
+ language_code:
753
+ invalid: '^Format of languagecode is not valid. Please use exactly two lowercase characters.'
754
+ taken: 'is already taken for this country code.'
755
+ alchemy/page:
756
+ attributes:
757
+ name:
758
+ blank: "^Please enter a name."
759
+ page_layout:
760
+ blank: "^Please choose a page layout."
761
+ urlname:
762
+ too_short: "^The pages urlname is too short (minimum of 3 characters)."
763
+ taken: "^URL-Name already taken."
764
+ exclusion: "^URL-Name reserved."
765
+ alchemy/picture:
766
+ attributes:
767
+ image_file:
768
+ blank: "Please attach a picture."
769
+
770
+ activemodel:
771
+ models:
772
+ alchemy/message:
773
+ one: Message
774
+ other: Messages
775
+
776
+ attributes:
777
+ alchemy/message:
778
+ salutation: 'Salutation'
779
+ firstname: 'Firstname'
780
+ lastname: 'Lastname'
781
+ address: 'Street / No.'
782
+ zip: 'Zipcode'
783
+ city: City
784
+ phone: 'Telephone'
785
+ email: 'Email'
786
+ message: 'Message'
787
+
788
+ errors:
789
+ <<: *errors
790
+
791
+ # Translations for active record database models and error messages.
792
+ activerecord:
793
+
794
+ models:
795
+ acts_as_taggable_on/tag:
796
+ one: Tag
797
+ other: Tags
798
+
799
+ alchemy/attachment:
800
+ one: File
801
+ other: Files
802
+
803
+ alchemy/element:
804
+ one: "Element"
805
+ other: "Elements"
806
+
807
+ alchemy/legacy_page_url:
808
+ one: "Link"
809
+ other: "Links"
810
+
811
+ alchemy/language:
812
+ one: "Language"
813
+ other: "Languages"
814
+
815
+ alchemy/page:
816
+ one: "Page"
817
+ other: "Pages"
818
+
819
+ alchemy/site:
820
+ one: Website
821
+ other: Websites
822
+
823
+ alchemy/picture:
824
+ one: Picture
825
+ other: Pictures
826
+
827
+ attributes:
828
+
829
+ acts_as_taggable_on/tag:
830
+ taggings_types: Used for
831
+ taggings_count: Usage count
832
+
833
+ alchemy/attachment:
834
+ file_mime_type: Filetype
835
+ created_at: "Created at"
836
+ file_name: Filename
837
+ name: Name
838
+ file_size: Filesize
839
+ tag_list: Tags
840
+
841
+ alchemy/element:
842
+ display_name: "Name"
843
+ name: "Name"
844
+ public: "visible"
845
+ tag_list: Tags
846
+
847
+ alchemy/essence_file:
848
+ css_class: Style
849
+
850
+ alchemy/essence_picture:
851
+ caption: "Caption"
852
+ title: "Title"
853
+ alt_tag: "Alternative text"
854
+ link: Link
855
+ link_class_name: "Link CSS class"
856
+ link_title: Link title
857
+ css_class: Style
858
+ link_target: Link target
859
+ render_size: Render size
860
+ crop_from: Crop from
861
+ crop_size: Crop size
862
+ picture_id: Bild
863
+
864
+ alchemy/language:
865
+ country_code: "Country code"
866
+ language_code: "Language code"
867
+ default: "Default"
868
+ frontpage_name: "Name of frontpage"
869
+ name: "Name"
870
+ page_layout: "Pagetype of frontpage"
871
+ public: "Public"
872
+
873
+ alchemy/legacy_page_url:
874
+ urlname: "URL path"
875
+
876
+ alchemy/page:
877
+ created_at: "Created at"
878
+ language: "Language"
879
+ locked: "This page is locked by another user."
880
+ locked_by: "locked by"
881
+ meta_description: "Description"
882
+ meta_keywords: "Keywords"
883
+ name: "Name"
884
+ page_layout: "Page type"
885
+ public: "public"
886
+ restricted: "restricted"
887
+ robot_follow: "robot may follow links"
888
+ robot_index: "allow robot to index"
889
+ sitemap: "visible in sitemap"
890
+ tag_list: Tags
891
+ title: "Title"
892
+ updated_at: "Updated at"
893
+ urlname: "Urlname"
894
+ visible: "visible in navigation"
895
+
896
+ alchemy/picture:
897
+ image_file_name: "Filename"
898
+ image_file_height: "Height"
899
+ image_file_width: "Width"
900
+ image_file_dimensions: "Dimensions"
901
+ image_file_size: "Filesize"
902
+ name: "Name"
903
+ tag_list: Tags
904
+
905
+ alchemy/site:
906
+ name: "Name"
907
+ host: "Primary Host"
908
+ public: "Public"
909
+ aliases: "Domain-Aliases"
910
+ redirect_to_primary_host: "Redirect to primary Host"
911
+
912
+ errors:
913
+ <<: *errors
914
+
915
+ views:
916
+ pagination:
917
+ first: "First Page"
918
+ previous_page: "Previous Page"
919
+ next_page: "Next Page"
920
+ last: "Last Page"