alchemy_cms 2.5.0.b5 → 2.5.0.b9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (209) hide show
  1. data/README.md +1 -1
  2. data/alchemy_cms.gemspec +2 -2
  3. data/app/assets/javascripts/alchemy/alchemy.base.js +0 -24
  4. data/app/assets/javascripts/alchemy/alchemy.growler.js +2 -4
  5. data/app/assets/javascripts/alchemy/alchemy.gui.js.coffee +0 -1
  6. data/app/assets/javascripts/alchemy/alchemy.page_sorter.js +1 -1
  7. data/app/assets/stylesheets/alchemy/base.scss +4 -20
  8. data/app/assets/stylesheets/alchemy/elements.scss +19 -31
  9. data/app/assets/stylesheets/alchemy/flash.scss +11 -0
  10. data/app/assets/stylesheets/alchemy/form_elements.scss +2 -14
  11. data/app/assets/stylesheets/alchemy/menubar.css.scss +1 -0
  12. data/app/assets/stylesheets/alchemy/mixins.scss +37 -2
  13. data/app/assets/stylesheets/alchemy/notices.scss +1 -0
  14. data/app/assets/stylesheets/alchemy/sitemap.scss +30 -0
  15. data/app/assets/stylesheets/alchemy/tables.scss +20 -27
  16. data/app/controllers/alchemy/admin/attachments_controller.rb +3 -3
  17. data/app/controllers/alchemy/admin/base_controller.rb +1 -1
  18. data/app/controllers/alchemy/admin/contents_controller.rb +2 -2
  19. data/app/controllers/alchemy/admin/elements_controller.rb +3 -3
  20. data/app/controllers/alchemy/admin/essence_pictures_controller.rb +2 -2
  21. data/app/controllers/alchemy/admin/pages_controller.rb +16 -9
  22. data/app/controllers/alchemy/admin/pictures_controller.rb +8 -8
  23. data/app/controllers/alchemy/admin/resources_controller.rb +1 -1
  24. data/app/controllers/alchemy/admin/tags_controller.rb +4 -4
  25. data/app/controllers/alchemy/admin/users_controller.rb +3 -3
  26. data/app/controllers/alchemy/base_controller.rb +10 -12
  27. data/app/controllers/alchemy/messages_controller.rb +2 -2
  28. data/app/controllers/alchemy/pages_controller.rb +4 -1
  29. data/app/controllers/alchemy/pictures_controller.rb +1 -4
  30. data/app/controllers/alchemy/user_sessions_controller.rb +5 -5
  31. data/app/helpers/alchemy/admin/attachments_helper.rb +1 -1
  32. data/app/helpers/alchemy/admin/base_helper.rb +13 -13
  33. data/app/helpers/alchemy/admin/contents_helper.rb +6 -6
  34. data/app/helpers/alchemy/admin/elements_helper.rb +2 -2
  35. data/app/helpers/alchemy/admin/essences_helper.rb +8 -8
  36. data/app/helpers/alchemy/admin/pages_helper.rb +13 -7
  37. data/app/helpers/alchemy/base_helper.rb +20 -5
  38. data/app/helpers/alchemy/elements_helper.rb +2 -2
  39. data/app/helpers/alchemy/essences_helper.rb +2 -2
  40. data/app/helpers/alchemy/pages_helper.rb +2 -3
  41. data/app/models/alchemy/cell.rb +11 -3
  42. data/app/models/alchemy/content.rb +17 -17
  43. data/app/models/alchemy/element.rb +49 -26
  44. data/app/models/alchemy/legacy_page_url.rb +6 -0
  45. data/app/models/alchemy/page.rb +24 -45
  46. data/app/models/alchemy/picture.rb +1 -2
  47. data/app/views/alchemy/admin/attachments/_archive_overlay.html.erb +3 -3
  48. data/app/views/alchemy/admin/attachments/_attachment.html.erb +6 -6
  49. data/app/views/alchemy/admin/attachments/_files_list.html.erb +2 -2
  50. data/app/views/alchemy/admin/attachments/edit.html.erb +5 -3
  51. data/app/views/alchemy/admin/attachments/index.html.erb +3 -3
  52. data/app/views/alchemy/admin/attachments/new.html.erb +2 -2
  53. data/app/views/alchemy/admin/clipboard/clear.js.erb +1 -1
  54. data/app/views/alchemy/admin/clipboard/index.html.erb +3 -3
  55. data/app/views/alchemy/admin/clipboard/insert.js.erb +2 -2
  56. data/app/views/alchemy/admin/clipboard/remove.js.erb +4 -4
  57. data/app/views/alchemy/admin/contents/_missing.html.erb +2 -2
  58. data/app/views/alchemy/admin/contents/create.js.erb +1 -1
  59. data/app/views/alchemy/admin/contents/new.html.erb +3 -3
  60. data/app/views/alchemy/admin/dashboard/index.html.erb +12 -12
  61. data/app/views/alchemy/admin/elements/_add_picture.html.erb +1 -1
  62. data/app/views/alchemy/admin/elements/_element.html.erb +1 -1
  63. data/app/views/alchemy/admin/elements/_element_foot.html.erb +5 -5
  64. data/app/views/alchemy/admin/elements/_element_head.html.erb +6 -6
  65. data/app/views/alchemy/admin/elements/_elements_select.html.erb +2 -2
  66. data/app/views/alchemy/admin/elements/_new_element_form.html.erb +4 -4
  67. data/app/views/alchemy/admin/elements/_picture_gallery_editor.html.erb +1 -1
  68. data/app/views/alchemy/admin/elements/create.js.erb +2 -2
  69. data/app/views/alchemy/admin/elements/index.html.erb +2 -2
  70. data/app/views/alchemy/admin/elements/list.js.erb +1 -1
  71. data/app/views/alchemy/admin/elements/new.html.erb +4 -4
  72. data/app/views/alchemy/admin/elements/order.js.erb +1 -1
  73. data/app/views/alchemy/admin/elements/trash.js.erb +1 -1
  74. data/app/views/alchemy/admin/elements/update.js.erb +1 -1
  75. data/app/views/alchemy/admin/essence_files/edit.html.erb +5 -5
  76. data/app/views/alchemy/admin/essence_pictures/crop.html.erb +4 -4
  77. data/app/views/alchemy/admin/essence_pictures/edit.html.erb +4 -4
  78. data/app/views/alchemy/admin/languages/_form.html.erb +6 -10
  79. data/app/views/alchemy/admin/languages/_language.html.erb +4 -4
  80. data/app/views/alchemy/admin/languages/_table.html.erb +1 -1
  81. data/app/views/alchemy/admin/languages/index.html.erb +1 -1
  82. data/app/views/alchemy/admin/layoutpages/_layoutpage.html.erb +6 -6
  83. data/app/views/alchemy/admin/layoutpages/index.html.erb +8 -8
  84. data/app/views/alchemy/admin/pages/_contactform_links.html.erb +7 -7
  85. data/app/views/alchemy/admin/pages/_create_language_form.html.erb +10 -9
  86. data/app/views/alchemy/admin/pages/_external_link.html.erb +7 -7
  87. data/app/views/alchemy/admin/pages/_file_link.html.erb +6 -6
  88. data/app/views/alchemy/admin/pages/_internal_link.html.erb +5 -5
  89. data/app/views/alchemy/admin/pages/_new_page_form.html.erb +1 -1
  90. data/app/views/alchemy/admin/pages/_page.html.erb +28 -28
  91. data/app/views/alchemy/admin/pages/_page_for_links.html.erb +5 -5
  92. data/app/views/alchemy/admin/pages/_page_infos.html.erb +3 -3
  93. data/app/views/alchemy/admin/pages/_page_status.html.erb +3 -3
  94. data/app/views/alchemy/admin/pages/_sitemap.html.erb +1 -1
  95. data/app/views/alchemy/admin/pages/configure.html.erb +11 -11
  96. data/app/views/alchemy/admin/pages/configure_external.html.erb +4 -4
  97. data/app/views/alchemy/admin/pages/destroy.js.erb +0 -1
  98. data/app/views/alchemy/admin/pages/edit.html.erb +35 -35
  99. data/app/views/alchemy/admin/pages/flush.js.erb +1 -1
  100. data/app/views/alchemy/admin/pages/fold.js.erb +0 -1
  101. data/app/views/alchemy/admin/pages/index.html.erb +14 -14
  102. data/app/views/alchemy/admin/pages/link.html.erb +4 -4
  103. data/app/views/alchemy/admin/pages/locked.html.erb +1 -1
  104. data/app/views/alchemy/admin/pages/new.html.erb +4 -4
  105. data/app/views/alchemy/admin/pages/update.js.erb +2 -2
  106. data/app/views/alchemy/admin/partials/_autocomplete_tag_list.html.erb +1 -1
  107. data/app/views/alchemy/admin/partials/_flash_notices.html.erb +3 -3
  108. data/app/views/alchemy/admin/partials/_flash_upload.html.erb +8 -8
  109. data/app/views/alchemy/admin/partials/_language_tree_select.html.erb +1 -1
  110. data/app/views/alchemy/admin/partials/_main_navigation_entry.html.erb +1 -1
  111. data/app/views/alchemy/admin/partials/_remote_search_form.html.erb +2 -2
  112. data/app/views/alchemy/admin/partials/_search_form.html.erb +2 -2
  113. data/app/views/alchemy/admin/partials/_sub_navigation_tab.html.erb +1 -1
  114. data/app/views/alchemy/admin/partials/_upload_form.html.erb +11 -11
  115. data/app/views/alchemy/admin/pictures/_archive.html.erb +13 -13
  116. data/app/views/alchemy/admin/pictures/_filter_and_size_bar.html.erb +7 -7
  117. data/app/views/alchemy/admin/pictures/_filter_bar.html.erb +4 -4
  118. data/app/views/alchemy/admin/pictures/_overlay_picture_list.html.erb +1 -1
  119. data/app/views/alchemy/admin/pictures/_picture.html.erb +7 -7
  120. data/app/views/alchemy/admin/pictures/_picture_to_assign.html.erb +1 -1
  121. data/app/views/alchemy/admin/pictures/_tag_list.html.erb +2 -2
  122. data/app/views/alchemy/admin/pictures/edit.html.erb +2 -2
  123. data/app/views/alchemy/admin/pictures/edit_multiple.html.erb +6 -6
  124. data/app/views/alchemy/admin/pictures/index.html.erb +10 -10
  125. data/app/views/alchemy/admin/pictures/info.html.erb +2 -2
  126. data/app/views/alchemy/admin/pictures/new.html.erb +2 -2
  127. data/app/views/alchemy/admin/resources/_boolean.html.erb +5 -0
  128. data/app/views/alchemy/admin/resources/_datetime.html.erb +2 -0
  129. data/app/views/alchemy/admin/resources/_form.html.erb +17 -28
  130. data/app/views/alchemy/admin/resources/_resource.html.erb +4 -4
  131. data/app/views/alchemy/admin/resources/_string.html.erb +5 -0
  132. data/app/views/alchemy/admin/resources/_table.html.erb +1 -1
  133. data/app/views/alchemy/admin/resources/_text.html.erb +5 -0
  134. data/app/views/alchemy/admin/resources/index.html.erb +1 -1
  135. data/app/views/alchemy/admin/tags/_tag.html.erb +4 -4
  136. data/app/views/alchemy/admin/tags/edit.html.erb +4 -4
  137. data/app/views/alchemy/admin/tags/index.html.erb +5 -5
  138. data/app/views/alchemy/admin/tags/new.html.erb +2 -2
  139. data/app/views/alchemy/admin/trash/clear.js.coffee +1 -1
  140. data/app/views/alchemy/admin/trash/index.html.erb +3 -3
  141. data/app/views/alchemy/admin/users/_table.html.erb +3 -3
  142. data/app/views/alchemy/admin/users/_user.html.erb +6 -6
  143. data/app/views/alchemy/admin/users/index.html.erb +4 -4
  144. data/app/views/alchemy/base/error_notice.html.erb +1 -4
  145. data/app/views/alchemy/elements/_editor_not_found.html.erb +2 -2
  146. data/app/views/alchemy/essences/_essence_boolean_view.html.erb +1 -1
  147. data/app/views/alchemy/essences/_essence_file_editor.html.erb +7 -7
  148. data/app/views/alchemy/essences/_essence_picture_editor.html.erb +5 -5
  149. data/app/views/alchemy/essences/_essence_picture_tools.html.erb +8 -8
  150. data/app/views/alchemy/essences/_linkable_essence_tools.html.erb +2 -2
  151. data/app/views/alchemy/search/_form.html.erb +2 -2
  152. data/app/views/alchemy/search/_result.html.erb +1 -1
  153. data/app/views/alchemy/search/_results.html.erb +3 -3
  154. data/app/views/alchemy/user_sessions/leave.html.erb +5 -5
  155. data/app/views/alchemy/user_sessions/login.html.erb +1 -1
  156. data/app/views/alchemy/user_sessions/signup.html.erb +2 -2
  157. data/app/views/kaminari/_gap.html.erb +1 -1
  158. data/app/views/kaminari/_next_page.html.erb +2 -2
  159. data/app/views/kaminari/_prev_page.html.erb +2 -2
  160. data/app/views/layouts/alchemy/admin.html.erb +7 -7
  161. data/bin/alchemy +1 -1
  162. data/config/authorization_rules.rb +1 -3
  163. data/config/locales/alchemy.de.yml +33 -23
  164. data/config/locales/alchemy.en.yml +31 -6
  165. data/db/migrate/{20121026100815_alchemy_two_point_three.rb → 20121118000000_alchemy_two_point_four.rb} +51 -28
  166. data/db/migrate/20130110212411_create_alchemy_legacy_page_urls.rb +11 -0
  167. data/lib/alchemy/capistrano.rb +22 -30
  168. data/lib/alchemy/errors.rb +45 -0
  169. data/lib/alchemy/i18n.rb +7 -5
  170. data/lib/alchemy/logger.rb +16 -0
  171. data/lib/alchemy/page_layout.rb +3 -3
  172. data/lib/alchemy/resource.rb +17 -1
  173. data/lib/alchemy/resources_helper.rb +8 -1
  174. data/lib/alchemy/upgrader.rb +9 -0
  175. data/lib/alchemy/version.rb +1 -1
  176. data/lib/alchemy_cms.rb +1 -6
  177. data/lib/rails/generators/alchemy/scaffold/files/elements.yml +41 -19
  178. data/lib/rails/generators/alchemy/scaffold/scaffold_generator.rb +13 -0
  179. data/lib/tasks/alchemy/db.rake +5 -11
  180. data/lib/tasks/alchemy/install.rake +7 -7
  181. data/spec/controllers/admin/pages_controller_spec.rb +14 -2
  182. data/spec/controllers/pages_controller_spec.rb +50 -17
  183. data/spec/dummy/config/application.rb +1 -1
  184. data/spec/dummy/db/migrate/{20121026100815_alchemy_two_point_three.rb → 20121118000000_alchemy_two_point_four.rb} +51 -28
  185. data/spec/dummy/db/migrate/20130110212411_create_alchemy_legacy_page_urls.rb +11 -0
  186. data/spec/dummy/db/schema.rb +10 -1
  187. data/spec/factories.rb +1 -0
  188. data/spec/integration/admin/picture_library_integration_spec.rb +8 -2
  189. data/spec/integration/security_spec.rb +2 -2
  190. data/spec/integration/translation_integration_spec.rb +20 -4
  191. data/spec/libraries/resources_helper_spec.rb +1 -1
  192. data/spec/models/cell_spec.rb +45 -0
  193. data/spec/models/page_spec.rb +19 -2
  194. data/spec/models/picture_spec.rb +12 -0
  195. data/spec/routing_spec.rb +115 -115
  196. data/spec/spec_helper.rb +3 -0
  197. data/spec/support/alchemy/specs_helpers.rb +6 -2
  198. data/spec/support/image.png +0 -0
  199. data/spec/support/image2.PNG +0 -0
  200. data/spec/support/image3.jpeg +0 -0
  201. metadata +27 -23
  202. data/db/migrate/20121113115120_create_alchemy_essence_links.rb +0 -13
  203. data/db/migrate/20121115100736_add_cached_tag_list_to_elements_pages_and_users.rb +0 -7
  204. data/db/migrate/20121116140636_add_cached_tag_list_to_alchemy_attachments.rb +0 -5
  205. data/db/migrate/20121116141016_change_alchemy_pictures_tag_list_column.rb +0 -9
  206. data/spec/dummy/db/migrate/20121113115120_create_alchemy_essence_links.rb +0 -13
  207. data/spec/dummy/db/migrate/20121115100736_add_cached_tag_list_to_elements_pages_and_users.rb +0 -7
  208. data/spec/dummy/db/migrate/20121116140636_add_cached_tag_list_to_alchemy_attachments.rb +0 -5
  209. data/spec/dummy/db/migrate/20121116141016_change_alchemy_pictures_tag_list_column.rb +0 -9
@@ -2,11 +2,11 @@
2
2
  :buttons => [
3
3
  {
4
4
  :icon => 'user_add',
5
- :label => t('create_user'),
5
+ :label => _t('create_user'),
6
6
  :url => alchemy.new_admin_user_path,
7
- :title => t('create_user'),
7
+ :title => _t('create_user'),
8
8
  :overlay_options => {
9
- :title => t('create_user'),
9
+ :title => _t('create_user'),
10
10
  :size => "420x560"
11
11
  },
12
12
  :if_permitted_to => [:new, :alchemy_admin_users]
@@ -39,7 +39,7 @@
39
39
 
40
40
  <div class="info">
41
41
  <%= render_icon('info') %>
42
- <%= t('No users found') %>
42
+ <%= _t('No users found') %>
43
43
  </div>
44
44
 
45
45
  <% end %>
@@ -1,4 +1 @@
1
- <div class="flash error">
2
- <%= render_icon(:error) %>
3
- <%= @notice %>
4
- </div>
1
+ <%= render_flash_notice @notice, :error %>
@@ -1,5 +1,5 @@
1
1
  <div class="error">
2
2
  <%= render_icon('error') %>
3
- <h1><%= t("element_editor_not_found") %>:</h1>
4
- <p><%= error %></p>
3
+ <h1><%= _t("element_editor_not_found") %>:</h1>
4
+ <p><%= error.html_safe %></p>
5
5
  </div>
@@ -1 +1 @@
1
- <%= t(content.ingredient) %>
1
+ <%= _t(content.ingredient) %>
@@ -14,19 +14,19 @@
14
14
  :options => options
15
15
  ),
16
16
  {
17
- :title => t('assign_file'),
17
+ :title => _t('assign_file'),
18
18
  :size => '520x400',
19
19
  :resizable => 'true'
20
20
  },
21
21
  :class => 'assign_file',
22
- :title => t('assign_file')
22
+ :title => _t('assign_file')
23
23
  ) %>
24
24
  <%- else -%>
25
25
  <%= render_icon(content.ingredient.icon_css_class) %>
26
26
  <%- end -%>
27
27
  </div>
28
28
  <div class="file_name">
29
- <%= content.ingredient.name rescue ("&#x2190;" + t('assign_file_from_archive')).html_safe %>
29
+ <%= content.ingredient.name rescue ("&#x2190;" + _t('assign_file_from_archive')).html_safe %>
30
30
  </div>
31
31
  <%- unless content.ingredient.nil? -%>
32
32
  <%= hidden_field_tag content.form_field_name(:attachment_id), content.ingredient.id %>
@@ -39,12 +39,12 @@
39
39
  :options => options
40
40
  ),
41
41
  {
42
- :title => t('assign_file'),
42
+ :title => _t('assign_file'),
43
43
  :size => '520x400',
44
44
  :resizable => 'true'
45
45
  },
46
46
  :class => 'assign_file',
47
- :title => t('assign_file')
47
+ :title => _t('assign_file')
48
48
  ) %>
49
49
  <%= link_to_overlay_window("",
50
50
  url_for(
@@ -53,11 +53,11 @@
53
53
  :id => content
54
54
  ),
55
55
  {
56
- :title => t('edit_file_properties'),
56
+ :title => _t('edit_file_properties'),
57
57
  :size => '400x150'
58
58
  },
59
59
  :class => 'edit_file',
60
- :title => t('edit_file_properties')
60
+ :title => _t('edit_file_properties')
61
61
  ) %>
62
62
  </div>
63
63
  <%- end -%>
@@ -12,13 +12,13 @@
12
12
  <% if options[:grouped] %>
13
13
  <%= link_to_confirmation_window(
14
14
  "",
15
- t("confirm_to_delete_image"),
15
+ _t("confirm_to_delete_image"),
16
16
  alchemy.admin_essence_picture_path(
17
17
  :id => content,
18
18
  :options => options
19
19
  ),
20
20
  {
21
- :title => t("delete_image")
21
+ :title => _t("delete_image")
22
22
  }
23
23
  ) -%>
24
24
  <% else %>
@@ -30,7 +30,7 @@
30
30
  <% end %>
31
31
  </span>
32
32
  <%- if content.ingredient -%>
33
- <div class="picture_handle" title="<%= t('drag_to_sort') if options[:dragable] %>"></div>
33
+ <div class="picture_handle" title="<%= _t('drag_to_sort') if options[:dragable] %>"></div>
34
34
  <div class="picture_content_spinner">
35
35
  <%= image_tag("alchemy/image_loader.gif", :alt => '') %>
36
36
  </div>
@@ -52,7 +52,7 @@
52
52
  }.merge(image_options)),
53
53
  :alt => content.ingredient.name,
54
54
  :class => 'img_paddingtop',
55
- :title => t("image_name") + ": #{content.ingredient.name}",
55
+ :title => _t("image_name") + ": #{content.ingredient.name}",
56
56
  :onload => "Alchemy.fadeImage(this, '##{content_dom_id(content)} .picture_content_spinner');",
57
57
  :style => "display: none;"
58
58
  ) %>
@@ -62,7 +62,7 @@
62
62
  </div>
63
63
  <%- unless options[:css_class].blank? || content.essence.css_class.blank? -%>
64
64
  <div class="essence_picture_css_class">
65
- <%= t("alchemy.essence_pictures.css_classes.#{content.essence.css_class}", :default => content.essence.css_class.camelcase) %>
65
+ <%= _t("alchemy.essence_pictures.css_classes.#{content.essence.css_class}", :default => content.essence.css_class.camelcase) %>
66
66
  </div>
67
67
  <%- end -%>
68
68
  <div class="edit_images_bottom">
@@ -4,10 +4,10 @@
4
4
  alchemy.crop_admin_essence_picture_path(content.essence, :options => options),
5
5
  {
6
6
  :size => "fullscreen",
7
- :title => t('Edit Picturemask')
7
+ :title => _t('Edit Picturemask')
8
8
  },
9
9
  {
10
- :title => t('Edit Picturemask')
10
+ :title => _t('Edit Picturemask')
11
11
  }
12
12
  ) %>
13
13
  <%- else -%>
@@ -23,17 +23,17 @@
23
23
  :options => options
24
24
  ),
25
25
  {
26
- :title => (content.ingredient ? t('swap_image') : t('insert_image')),
26
+ :title => (content.ingredient ? _t('swap_image') : _t('insert_image')),
27
27
  :size => '780x580',
28
28
  :resizable => "true"
29
29
  },
30
- :title => (content.ingredient ? t('swap_image') : t('insert_image'))
30
+ :title => (content.ingredient ? _t('swap_image') : _t('insert_image'))
31
31
  ) %>
32
32
 
33
33
  <%= link_to(render_icon(:link), '#', {
34
34
  :onclick => "Alchemy.LinkOverlay.open(this, 420)",
35
35
  :class => content.linked? ? 'linked' : nil,
36
- :title => t('link_image'),
36
+ :title => _t('link_image'),
37
37
  :data => {'content-id' => content.id},
38
38
  :id => "edit_link_#{content.id}"
39
39
  }) %>
@@ -41,7 +41,7 @@
41
41
  <%= link_to(render_icon('unlink'), '#', {
42
42
  :onclick => "Alchemy.LinkOverlay.removeLink(this, #{content.id})",
43
43
  :class => content.linked? ? 'linked' : 'disabled',
44
- :title => t('unlink')
44
+ :title => _t('unlink')
45
45
  }) %>
46
46
 
47
47
  <%= link_to_overlay_window(
@@ -52,8 +52,8 @@
52
52
  :options => options
53
53
  ),
54
54
  {
55
- :title => t('edit_image_properties'),
55
+ :title => _t('edit_image_properties'),
56
56
  :size => (options[:caption_as_textarea] ? (options[:manual_image_size] ? '380x230' : '380x210') : (options[:manual_image_size] ? '380x190' : '380x180'))
57
57
  },
58
- :title => t('edit_image_properties')
58
+ :title => _t('edit_image_properties')
59
59
  ) %>
@@ -5,7 +5,7 @@
5
5
  :onclick => "Alchemy.LinkOverlay.open(this, 420); return false;",
6
6
  :class => "icon_button#{content.linked? ? ' linked' : ''}",
7
7
  :data => {'content-id' => content.id},
8
- :title => t('place_link'),
8
+ :title => _t('place_link'),
9
9
  :id => "edit_link_#{content.id}"
10
10
  ) %>
11
11
  <%= link_to(
@@ -14,6 +14,6 @@
14
14
  :onclick => "Alchemy.LinkOverlay.removeLink(this, #{content.id}); return false;",
15
15
  :class => "icon_button unlink #{content.linked? ? 'linked' : 'disabled'}",
16
16
  :data => {'content-id' => content.id},
17
- :title => t('unlink')
17
+ :title => _t('unlink')
18
18
  ) %>
19
19
  </span>
@@ -2,10 +2,10 @@
2
2
  <% if search_result_page %>
3
3
  <%= form_tag show_alchemy_page_path(search_result_page), :method => :get, :id => options[:id], :class => options[:class] do %>
4
4
  <% if options[:html5] %>
5
- <%= search_field_tag(:query, params[:query], :placeholder => t('search query')) %>
5
+ <%= search_field_tag(:query, params[:query], :placeholder => _t(:placeholder, :scope => "search_form")) %>
6
6
  <% else %>
7
7
  <%= text_field_tag(:query, params[:query]) %>
8
8
  <% end %>
9
- <%= submit_tag(t("search"), :name => nil) %>
9
+ <%= submit_tag(_t(:submit, :scope => "search_form"), :name => nil) %>
10
10
  <% end %>
11
11
  <% end %>
@@ -1,6 +1,6 @@
1
1
  <li class="search_result">
2
2
  <h3>
3
- <%= t('search_result_page.result_page') %>:
3
+ <%= _t('search_result_page.result_page') %>:
4
4
  <%= link_to page.name, show_alchemy_page_path(page) %>
5
5
  </h3>
6
6
  <%- result.each do |highlight| -%>
@@ -1,17 +1,17 @@
1
1
  <div class="search_results">
2
2
  <% if @search_results.blank? %>
3
3
  <h2 class="no_search_results">
4
- <%=raw t('search_result_page.no_results', :query => h(params[:query])) %>
4
+ <%=raw _t('search_result_page.no_results', :query => h(params[:query])) %>
5
5
  </h2>
6
6
  <% else %>
7
7
  <% if options[:show_heading] %>
8
8
  <h1 class="search_results_heading">
9
- <%=raw t("search_result_page.result_heading", :query => h(params[:query])) %>
9
+ <%=raw _t("search_result_page.result_heading", :query => h(params[:query])) %>
10
10
  </h1>
11
11
  <% end %>
12
12
  <% if options[:show_result_count] %>
13
13
  <h2 class="search_result_count">
14
- <%=raw t("search_result_page.result_count", :count => @search_results.length) %>
14
+ <%=raw _t("search_result_page.result_count", :count => @search_results.length) %>
15
15
  </h2>
16
16
  <% end %>
17
17
  <ul class="search_result_list">
@@ -1,11 +1,11 @@
1
1
  <div class="with_padding">
2
- <h2><%= t("You are about to leave Alchemy") %>.</h2>
2
+ <h2><%= _t("You are about to leave Alchemy") %>.</h2>
3
3
  <p class="buttons">
4
- <label><%= t("Do you want to") %></label>
5
- <%= link_to t('stay logged in'), alchemy.root_path, :class => 'button' %>
4
+ <label><%= _t("Do you want to") %></label>
5
+ <%= link_to _t('stay logged in'), alchemy.root_path, :class => 'button' %>
6
6
  </p>
7
7
  <p class="buttons">
8
- <label><%= t('or to completly') %></label>
9
- <%= link_to t('logout'), alchemy.logout_path, :class => 'button' %>
8
+ <label><%= _t('or to completly') %></label>
9
+ <%= link_to _t('logout'), alchemy.logout_path, :class => 'button' %>
10
10
  </p>
11
11
  </div>
@@ -25,7 +25,7 @@
25
25
  <tr>
26
26
  <td colspan="2" class="submit">
27
27
  <%= hidden_field_tag 'user_screensize' %>
28
- <%= f.button t('login'), :class => 'button', :name => nil %>
28
+ <%= f.button _t('login'), :class => 'button', :name => nil %>
29
29
  </td>
30
30
  </tr>
31
31
  </table>
@@ -1,8 +1,8 @@
1
1
  <div id="alchemy_greeting">
2
2
  <%= image_tag("alchemy/alchemy-logo.png") %>
3
- <h1><%= t('Welcome to Alchemy') %></h1>
3
+ <h1><%= _t('Welcome to Alchemy') %></h1>
4
4
  <p>
5
- <%= t("Please Signup") %>
5
+ <%= _t("Please Signup") %>
6
6
  </p>
7
7
  </div>
8
8
 
@@ -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"><%= raw(_t 'pagination.truncate') -%></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"><%= raw(_t 'pagination.next_page') -%></span>
11
11
  <% else -%>
12
- <%= link_to raw(t 'pagination.next_page'), url, :rel => 'next', :remote => remote -%>
12
+ <%= link_to raw(_t 'pagination.next_page'), url, :rel => 'next', :remote => remote -%>
13
13
  <% 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"><%= raw(_t 'pagination.previous_page') %></span>
11
11
  <% else -%>
12
- <%= link_to raw(t 'pagination.previous_page'), url, :rel => 'prev', :remote => remote, :class => 'previous_page' -%>
12
+ <%= link_to raw(_t 'pagination.previous_page'), url, :rel => 'prev', :remote => remote, :class => 'previous_page' -%>
13
13
  <% end -%>
@@ -26,13 +26,13 @@
26
26
  </head>
27
27
  <body id="alchemy">
28
28
  <noscript>
29
- <h1><%= t(:javascript_disabled_headline) %></h1>
30
- <p><%= t(:javascript_disabled_text) %></p>
29
+ <h1><%= _t(:javascript_disabled_headline) %></h1>
30
+ <p><%= _t(:javascript_disabled_text) %></p>
31
31
  </noscript>
32
32
  <div id="overlay">
33
33
  <div id="overlay_text_box">
34
34
  <%= image_tag('alchemy/ajax_loader.gif', :id => 'ajax_loader') %>
35
- <span id="overlay_text"><%= t("please_wait") %></span>
35
+ <span id="overlay_text"><%= _t("please_wait") %></span>
36
36
  </div>
37
37
  </div>
38
38
  <div id="left_menu">
@@ -43,15 +43,15 @@
43
43
  <div id="logout">
44
44
  <% if current_user %>
45
45
  <%= link_to_overlay_window(
46
- "<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,
47
47
  alchemy.leave_admin_path, {
48
48
  :size => "300x105",
49
- :title => t("Leave Alchemy")
49
+ :title => _t("Leave Alchemy")
50
50
  }) %>
51
51
  <% else %>
52
52
  <%= link_to(alchemy.root_path) do %>
53
53
  <span class="module icon exit"></span>
54
- <label><%= t('leave') %></label>
54
+ <label><%= _t('leave') %></label>
55
55
  <% end %>
56
56
  <% end %>
57
57
  </div>
@@ -69,7 +69,7 @@
69
69
  </div>
70
70
  <div id="user_info">
71
71
  <%= select_tag 'change_locale', options_for_select(::I18n.available_locales.map { |l| [l.to_s.upcase, l] }, ::I18n.locale), :class => 'alchemy_selectbox tiny' %>
72
- <%= t('Logged in as') %> <%= current_user.name %>
72
+ <%= _t('Logged in as') %> <%= current_user.name %>
73
73
  </div>
74
74
  </div>
75
75
  <% end %>
data/bin/alchemy CHANGED
@@ -6,7 +6,7 @@ begin
6
6
  require 'rails/version'
7
7
  RAILS_VERSION = Rails::VERSION::STRING
8
8
  if RAILS_VERSION < "3.2"
9
- raise LoadError, "Wrong rails version installed. Please run gem install rails -v'~>3.2.1'"
9
+ raise LoadError, "Wrong rails version installed. Please run gem install rails -v'~>3.2.11'"
10
10
  end
11
11
  require "thor"
12
12
  require File.join(File.dirname(__FILE__), '..', 'lib/alchemy/version')
@@ -51,9 +51,7 @@ authorization do
51
51
  includes :author
52
52
  has_permission_on :alchemy_admin_attachments, :to => [:manage]
53
53
  has_permission_on :alchemy_admin_pictures, :to => [:create, :read, :update, :flush, :delete_multiple, :edit_multiple, :update_multiple]
54
- has_permission_on :alchemy_admin_pictures, :to => [:destroy] do
55
- if_attribute :essence_pictures => is { debugger }
56
- end
54
+ has_permission_on :alchemy_admin_pictures, :to => [:destroy]
57
55
  has_permission_on :alchemy_admin_pages, :to => [:manage_pages]
58
56
  has_permission_on :alchemy_admin_layoutpages, :to => [:index]
59
57
  has_permission_on :alchemy_admin_tags, :to => [:manage]
@@ -76,13 +76,16 @@ de:
76
76
  contactform:
77
77
  success_page: 'Folgeseite'
78
78
 
79
+ # Translations for content validations
80
+ #
79
81
  content_validations:
80
82
  contactform:
81
83
  success_page:
82
84
  blank: 'Bitte wählen Sie eine Folgeseite'
83
85
  errors:
84
- blank: '%{field} darf nicht leer sein.'
85
- wrong_format: '%{field} hat das falsche Format.'
86
+ blank: '%{field} darf nicht leer sein'
87
+ invalid: '%{field} hat das falsche Format'
88
+ taken: '%{field} wurde schon benutzt'
86
89
 
87
90
  default_content_texts:
88
91
  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."
@@ -95,6 +98,10 @@ de:
95
98
  no_float: 'Über dem Text'
96
99
 
97
100
  # == Translations for the build in full text search.
101
+ search_form:
102
+ placeholder: 'Suchbegriff'
103
+ submit: 'Suchen'
104
+
98
105
  search_result_page:
99
106
  result_page: Seite
100
107
  no_results: "Ihre Suche nach '%{query}' ergab keine Treffer."
@@ -180,6 +187,10 @@ de:
180
187
  blank: neuem Fenster/Tab
181
188
  overlay: einem Overlay
182
189
 
190
+ resource_help_texts:
191
+ site:
192
+ aliases: Weitere Domains bitte mit Leerzeichen oder Leerzeile getrennt angeben.
193
+
183
194
  create_tree_as_new_language: "%{language} als neuen Sprachbaum anlegen"
184
195
  "<a href=\"http://get.adobe.com/flashplayer\" target=\"_blank\">%{value}</a>": ""
185
196
  "Active Pages": "Aktive Seiten"
@@ -244,12 +255,6 @@ de:
244
255
  "Page saved": "%{name} wurde gespeichert"
245
256
  "Page Preview": "Seitenvorschau"
246
257
  "Page cache flushed": "Seitencache wurde geleert"
247
- "Page not public": "Seite ist nicht veröffentlicht"
248
- "Page not restricted": "Seite ist nicht Passwort geschützt"
249
- "Page not visible": "Seite ist nicht in der Navigation sichtbar"
250
- "Page public": "Seite ist veröffentlicht"
251
- "Page restricted": "Seite ist Passwort geschützt"
252
- "Page visible": "Seite ist in der Navigation sichtbar"
253
258
  "Pages order saved": "Seitensortierung wurde gespeichert"
254
259
  "Password": "Passwort"
255
260
  "Paste from clipboard": "Aus Zwischenablage"
@@ -263,7 +268,7 @@ de:
263
268
  "Please Signup": "Um Ihre Homepage bearbeiten zu können, müssen Sie als erstes einen Admin Benutzer einrichten."
264
269
  "Please choose": "Bitte wählen"
265
270
  "Please log in": "Bitte melden Sie sich an."
266
- "Please seperate the tags with commata": "*) Die Tags bitte mit Kommata getrennt eingeben."
271
+ "Please seperate the tags with commata": "* Die Tags bitte mit Kommata getrennt eingeben."
267
272
  use_alternative_uploader_instead: "Benutzen Sie bitte diesen alternativen Uploader."
268
273
  "Publish page": "veröffentlichen"
269
274
  "Read the License": "Lizenz lesen"
@@ -301,13 +306,13 @@ de:
301
306
  "User deleted": "%{name} wurde gelöscht"
302
307
  "User updated": "%{name} wurde aktualisiert"
303
308
  "Username": "Benutzername"
304
- "Validation failed": "Pflichtfelder wurden nicht ausgefüllt."
309
+ "Validation failed": "Einige Pflichtfelder wurden nicht richtig ausgefüllt."
305
310
  "Version": "Version"
306
311
  "View File": "Datei anzeigen"
307
312
  "Visit page": "zur Seite gehen"
308
313
  "Warning!": "Achtung!"
309
- "Warning: Content is missing its description.": "Warnung: Für Content '%{contentname}' konnte die Vorlage nicht gefunden werden."
310
- "Warning: Element '%{elementname}' is missing its description.": "Warnung: Für Element '%{elementname}' konnte die Vorlage nicht gefunden werden."
314
+ content_description_missing: "Warnung: Für diesen Content konnte die Vorlage nicht gefunden werden. Bitte überprüfen Sie die elements.yml Datei."
315
+ element_description_missing: "Warnung! Für dieses Element konnte die Vorlage nicht gefunden werden. Bitte überprüfen Sie die elements.yml Datei."
311
316
  "Welcome back, %{name}": "Willkommen zurück, %{name}!"
312
317
  "Welcome, %{name}": "Willkommen, %{name}!"
313
318
  "Welcome to Alchemy": "Willkommen in Alchemy!"
@@ -335,7 +340,7 @@ de:
335
340
  assign_file: "Datei zuweisen"
336
341
  assign_file_from_archive: "Datei aus dem Archiv zuweisen"
337
342
  assign_image: "Bild hinzufügen."
338
- attachment_filename_notice: "*) Bitte verwenden Sie keine Sonderzeichen oder Umlaute in dem Dateinamen."
343
+ attachment_filename_notice: "* Bitte verwenden Sie keine Sonderzeichen oder Umlaute in dem Dateinamen."
339
344
  auto_play: "Film automatisch abspielen"
340
345
  big_thumbnails: "große Miniaturbilder"
341
346
  browse: "durchsuchen"
@@ -372,6 +377,7 @@ de:
372
377
  create_page: "Eine Unterseite anlegen"
373
378
  create_user: "Einen Benutzer anlegen"
374
379
  created_at: "Erstellt am"
380
+ created_by: "Erstellt von"
375
381
  currently_edited_by: "Wird momentan bearbeitet von"
376
382
  cut_element: "Element ausschneiden"
377
383
  delete_file: "Datei vom Server löschen"
@@ -482,20 +488,24 @@ de:
482
488
  page_for_links:
483
489
  choose_page: "%{name} wählen"
484
490
  page_layout_changed_notice: "Der Seitentyp wurde verändert. Nicht mehr verwendbare Elemente wurden in den Papierkorb verschoben."
485
- page_locked: "Die Seite ist gesperrt"
486
491
  page_properties: "Seiteneigenschaften"
487
492
  page_public: "öffentlich"
488
493
  page_published: "Seite wurde veröffentlicht."
489
494
  page_restricted: "geschützt"
495
+ page_states:
496
+ visible:
497
+ "true": "Die Seite ist in der Navigation sichtbar."
498
+ "false": "Die Seite ist nicht in der Navigation sichtbar."
499
+ public:
500
+ "true": "Die Seite ist veröffentlicht."
501
+ "false": "Die Seite ist nicht veröffentlicht."
502
+ locked:
503
+ "true": "Die Seite wird gerade bearbeitet."
504
+ "false": ""
505
+ restricted:
506
+ "true": "Die Seite ist geschützt."
507
+ "false": "Die Seite ist nicht geschützt."
490
508
  page_status: "Status"
491
- page_status_invisible_public: "Diese Seite ist nicht in der Navigation sichtbar, ist aber öffentlich."
492
- page_status_invisible_public_locked: "Diese Seite ist nicht in der Navigation sichtbar, ist aber öffentlich. Diese Seite wird gerade bearbeitet."
493
- page_status_invisible_unpublic: "Diese Seite ist in der Navigation nicht sichtbar und nicht öffentlich"
494
- page_status_invisible_unpublic_locked: "Diese Seite ist in der Navigation nicht sichtbar und ist nicht öffentlich. Diese Seite wird gerade bearbeitet"
495
- page_status_visible_public: "Diese Seite ist in der Navigation sichtbar und öffentlich."
496
- page_status_visible_public_locked: "Diese Seite ist in der Navigation sichtbar und öffentlich. Diese Seite wird gerade bearbeitet."
497
- page_status_visible_unpublic: "Diese Seite ist in der Navigation sichtbar, ist aber nicht öffentlich."
498
- page_status_visible_unpublic_locked: "Diese Seite ist in der Navigation sichtbar, ist aber nicht öffentlich. Diese Seite wird gerade bearbeitet."
499
509
  page_title: "Titel"
500
510
  page_type: "Typ"
501
511
  page_visible_in_navigation: "in der Navigation sichtbar"
@@ -540,7 +550,6 @@ de:
540
550
  "save order": "Sortierung speichern"
541
551
  saved_link: "Link wurde gespeichert."
542
552
  search: "suchen"
543
- 'search query': 'Suchbegriff'
544
553
  search_engines: "Suchmaschinen"
545
554
  select_element: "Element wählen"
546
555
  seperate_tags_with_comma: 'Mehrere Tags mit Komma trennen.'
@@ -571,6 +580,7 @@ de:
571
580
  unlock_page: "Seite verlassen"
572
581
  unlocked_page: "Seite %{name} wurde freigegeben."
573
582
  updated_at: "Bearbeitet am"
583
+ updated_by: "Bearbeitet von"
574
584
  upload: "Datei hochladen"
575
585
  upload_file: "Datei(en) hochladen"
576
586
  upload_image: "Bild(er) hochladen"