alchemy_cms 2.4.beta2 → 2.4.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. data/.gitignore +2 -1
  2. data/.travis.yml +3 -1
  3. data/.yardopts +1 -1
  4. data/Gemfile +2 -1
  5. data/alchemy_cms.gemspec +18 -17
  6. data/app/assets/images/alchemy/ajax_loader.gif +0 -0
  7. data/app/assets/images/alchemy/alchemy-logo.png +0 -0
  8. data/app/assets/images/alchemy/icons.png +0 -0
  9. data/app/assets/images/alchemy/image_loader.gif +0 -0
  10. data/app/assets/images/alchemy/placeholder.png +0 -0
  11. data/app/assets/images/alchemy/shading.png +0 -0
  12. data/app/assets/images/alchemy/swfupload/browse_button.png +0 -0
  13. data/app/assets/images/alchemy/tabs.gif +0 -0
  14. data/app/assets/images/alchemy/ui-icons_666666_256x240.png +0 -0
  15. data/app/assets/images/sassy-ie-overlay.png +0 -0
  16. data/app/assets/javascripts/alchemy/alchemy.base.js +1 -3
  17. data/app/assets/javascripts/alchemy/alchemy.browser.js.coffee +28 -0
  18. data/app/assets/javascripts/alchemy/alchemy.jquery_loader.js +2 -2
  19. data/app/assets/javascripts/alchemy/alchemy.js +2 -0
  20. data/app/assets/javascripts/alchemy/alchemy.link_overlay.js.coffee +79 -47
  21. data/app/assets/javascripts/alchemy/alchemy.menubar.js +12 -4
  22. data/app/assets/javascripts/alchemy/alchemy.onload.js.coffee +1 -1
  23. data/app/assets/javascripts/alchemy/alchemy.preview.js.coffee +103 -0
  24. data/app/assets/javascripts/alchemy/alchemy.swf_upload.js +1 -1
  25. data/app/assets/javascripts/alchemy/alchemy.uploader.js +4 -6
  26. data/app/assets/javascripts/alchemy/preview.js +1 -0
  27. data/app/assets/stylesheets/alchemy/admin.css.scss +25 -0
  28. data/app/assets/stylesheets/alchemy/{archive.css.scss → archive.scss} +0 -2
  29. data/app/assets/stylesheets/alchemy/{base.css.scss → base.scss} +1 -57
  30. data/app/assets/stylesheets/alchemy/{custom.css → custom.scss} +0 -0
  31. data/app/assets/stylesheets/alchemy/{dashboard.css.scss → dashboard.scss} +0 -2
  32. data/app/assets/stylesheets/alchemy/defaults.scss +5 -0
  33. data/app/assets/stylesheets/alchemy/{elements.css.scss → elements.scss} +24 -37
  34. data/app/assets/stylesheets/alchemy/{errors.css.scss → errors.scss} +0 -2
  35. data/app/assets/stylesheets/alchemy/{flash.css.scss → flash.scss} +0 -2
  36. data/app/assets/stylesheets/alchemy/{form_elements.css.scss → form_elements.scss} +39 -12
  37. data/app/assets/stylesheets/alchemy/{frame.css.scss → frame.scss} +0 -2
  38. data/app/assets/stylesheets/alchemy/{icons.css.scss → icons.scss} +20 -2
  39. data/app/assets/stylesheets/alchemy/{jquery-ui.alchemy.css.scss → jquery-ui.scss} +6 -3
  40. data/app/assets/stylesheets/alchemy/{login.css.scss → login.scss} +3 -3
  41. data/app/assets/stylesheets/alchemy/menubar.css.scss +0 -1
  42. data/app/assets/stylesheets/alchemy/{_defaults.scss → mixins.scss} +2 -39
  43. data/app/assets/stylesheets/alchemy/{modules.css.scss → modules.scss} +4 -2
  44. data/app/assets/stylesheets/alchemy/notices.scss +51 -0
  45. data/app/assets/stylesheets/alchemy/{pagination.css.scss → pagination.scss} +0 -2
  46. data/app/assets/stylesheets/alchemy/{print.css → print.css.scss} +3 -3
  47. data/app/assets/stylesheets/alchemy/search.scss +63 -0
  48. data/app/assets/stylesheets/alchemy/{sitemap.css.scss → sitemap.scss} +1 -2
  49. data/app/assets/stylesheets/alchemy/{tables.css.scss → tables.scss} +16 -3
  50. data/app/assets/stylesheets/alchemy/tinymce_content.css.scss +3 -0
  51. data/app/assets/stylesheets/alchemy/tinymce_dialog.css.scss +3 -0
  52. data/app/assets/stylesheets/alchemy/{upload.css.scss → upload.scss} +0 -2
  53. data/app/assets/stylesheets/alchemy/variables.scss +33 -0
  54. data/app/controllers/alchemy/admin/elements_controller.rb +1 -2
  55. data/app/controllers/alchemy/admin/tags_controller.rb +64 -0
  56. data/app/controllers/alchemy/base_controller.rb +8 -23
  57. data/app/controllers/alchemy/pages_controller.rb +5 -18
  58. data/app/helpers/alchemy/admin/base_helper.rb +1 -1
  59. data/app/helpers/alchemy/admin/elements_helper.rb +1 -0
  60. data/app/helpers/alchemy/elements_block_helper.rb +162 -0
  61. data/app/helpers/alchemy/elements_helper.rb +41 -3
  62. data/app/helpers/alchemy/pages_helper.rb +2 -1
  63. data/app/models/alchemy/attachment.rb +2 -1
  64. data/app/models/alchemy/element.rb +13 -10
  65. data/app/models/alchemy/essence_link.rb +11 -0
  66. data/app/models/alchemy/essence_picture.rb +15 -4
  67. data/app/models/alchemy/page.rb +23 -25
  68. data/app/models/alchemy/picture.rb +2 -2
  69. data/app/models/alchemy/tag.rb +16 -0
  70. data/app/models/alchemy/user.rb +3 -1
  71. data/app/views/alchemy/admin/attachments/_attachment.html.erb +12 -12
  72. data/app/views/alchemy/admin/attachments/edit.html.erb +10 -4
  73. data/app/views/alchemy/admin/elements/_element.html.erb +10 -13
  74. data/app/views/alchemy/admin/elements/_element_foot.html.erb +1 -1
  75. data/app/views/alchemy/admin/essence_files/edit.html.erb +12 -76
  76. data/app/views/alchemy/admin/essence_pictures/crop.html.erb +9 -4
  77. data/app/views/alchemy/admin/layoutpages/_layoutpage.html.erb +1 -1
  78. data/app/views/alchemy/admin/layoutpages/index.html.erb +1 -1
  79. data/app/views/alchemy/admin/pages/_external_link.html.erb +9 -4
  80. data/app/views/alchemy/admin/pages/configure.html.erb +22 -12
  81. data/app/views/alchemy/admin/pages/edit.html.erb +40 -40
  82. data/app/views/alchemy/admin/partials/_autocomplete_tag_list.html.erb +9 -0
  83. data/app/views/alchemy/admin/pictures/edit.html.erb +1 -1
  84. data/app/views/alchemy/admin/pictures/edit_multiple.html.erb +11 -2
  85. data/app/views/alchemy/admin/tags/_radio_tag.html.erb +6 -0
  86. data/app/views/alchemy/admin/tags/_tag.html.erb +29 -0
  87. data/app/views/alchemy/admin/tags/edit.html.erb +41 -0
  88. data/app/views/alchemy/admin/tags/index.html.erb +46 -0
  89. data/app/views/alchemy/admin/tags/new.html.erb +16 -0
  90. data/app/views/alchemy/admin/users/_table.html.erb +18 -10
  91. data/app/views/alchemy/admin/users/_user.html.erb +2 -1
  92. data/app/views/alchemy/admin/users/index.html.erb +2 -1
  93. data/app/views/alchemy/elements/_article_view.html.erb +1 -1
  94. data/app/views/alchemy/essences/_essence_link_editor.html.erb +23 -0
  95. data/app/views/alchemy/essences/_essence_link_view.html.erb +0 -0
  96. data/app/views/alchemy/essences/_essence_picture_tools.html.erb +1 -1
  97. data/app/views/alchemy/essences/_essence_text_editor.html.erb +1 -9
  98. data/app/views/alchemy/essences/_linkable_essence_tools.html.erb +19 -0
  99. data/app/views/layouts/alchemy/admin.html.erb +1 -1
  100. data/config/alchemy/elements.yml +2 -0
  101. data/config/alchemy/modules.yml +12 -0
  102. data/config/alchemy/page_layouts.yml +2 -0
  103. data/config/authorization_rules.rb +2 -0
  104. data/config/locales/alchemy.de.yml +36 -5
  105. data/config/locales/alchemy.en.yml +3 -0
  106. data/config/routes.rb +6 -4
  107. data/db/migrate/20121026100815_alchemy_two_point_three.rb +0 -36
  108. data/db/migrate/20121113115120_create_alchemy_essence_links.rb +13 -0
  109. data/db/migrate/20121115100736_add_cached_tag_list_to_elements_pages_and_users.rb +7 -0
  110. data/db/migrate/20121116140636_add_cached_tag_list_to_alchemy_attachments.rb +5 -0
  111. data/db/migrate/20121116141016_change_alchemy_pictures_tag_list_column.rb +9 -0
  112. data/lib/alchemy/engine.rb +1 -1
  113. data/lib/alchemy/resource.rb +1 -1
  114. data/lib/alchemy/resources_helper.rb +1 -1
  115. data/lib/alchemy/upgrader.rb +17 -0
  116. data/lib/alchemy/version.rb +1 -1
  117. data/lib/alchemy_cms.rb +1 -0
  118. data/lib/rails/generators/alchemy/base.rb +41 -0
  119. data/lib/rails/generators/alchemy/deploy_script/templates/deploy.rb.tt +10 -3
  120. data/lib/rails/generators/alchemy/elements/elements_generator.rb +6 -14
  121. data/lib/rails/generators/alchemy/elements/templates/editor.html.erb +8 -6
  122. data/lib/rails/generators/alchemy/elements/templates/editor.html.haml +13 -0
  123. data/lib/rails/generators/alchemy/elements/templates/editor.html.slim +13 -0
  124. data/lib/rails/generators/alchemy/elements/templates/view.html.erb +4 -4
  125. data/lib/rails/generators/alchemy/elements/templates/view.html.haml +15 -0
  126. data/lib/rails/generators/alchemy/elements/templates/view.html.slim +15 -0
  127. data/lib/rails/generators/alchemy/essence/essence_generator.rb +1 -1
  128. data/lib/rails/generators/alchemy/essence/templates/editor.html.erb +2 -3
  129. data/lib/rails/generators/alchemy/page_layouts/page_layouts_generator.rb +4 -13
  130. data/lib/rails/generators/alchemy/page_layouts/templates/layout.html.haml +1 -0
  131. data/lib/rails/generators/alchemy/page_layouts/templates/layout.html.slim +1 -0
  132. data/spec/controllers/pages_controller_spec.rb +41 -34
  133. data/spec/dummy/app/views/layouts/application.html.erb +51 -0
  134. data/spec/dummy/db/migrate/20121026100815_alchemy_two_point_three.rb +0 -36
  135. data/spec/dummy/db/migrate/20121113115120_create_alchemy_essence_links.rb +13 -0
  136. data/spec/dummy/db/migrate/20121115100736_add_cached_tag_list_to_elements_pages_and_users.rb +7 -0
  137. data/spec/dummy/db/migrate/20121116140636_add_cached_tag_list_to_alchemy_attachments.rb +5 -0
  138. data/spec/dummy/db/migrate/20121116141016_change_alchemy_pictures_tag_list_column.rb +9 -0
  139. data/spec/dummy/db/schema.rb +24 -45
  140. data/spec/helpers/elements_block_helper_spec.rb +135 -0
  141. data/spec/helpers/elements_helper_spec.rb +43 -5
  142. data/spec/integration/pages_controller_spec.rb +22 -18
  143. data/spec/integration/translation_integration_spec.rb +0 -15
  144. data/spec/models/element_spec.rb +44 -36
  145. data/spec/models/essence_picture_spec.rb +22 -6
  146. data/spec/models/page_spec.rb +28 -0
  147. data/spec/spec_helper.rb +8 -3
  148. data/spec/support/ci/install_phantomjs +6 -0
  149. metadata +82 -40
  150. data/app/assets/images/alchemy/gui/navi-tab.png +0 -0
  151. data/app/assets/images/alchemy/gui/shading_90.png +0 -0
  152. data/app/assets/images/alchemy/jquery-sb/select_arrow.gif +0 -0
  153. data/app/assets/images/alchemy/jquery-sb/select_arrow_bg.gif +0 -0
  154. data/app/assets/images/alchemy/jquery-sb/select_arrow_bg_hover.gif +0 -0
  155. data/app/assets/javascripts/alchemy/alchemy.preview.js +0 -98
  156. data/app/assets/stylesheets/alchemy/alchemy.css +0 -21
  157. data/app/controllers/alchemy/admin/essence_audios_controller.rb +0 -12
  158. data/app/controllers/alchemy/admin/essence_flashes_controller.rb +0 -12
  159. data/app/controllers/alchemy/admin/essence_videos_controller.rb +0 -12
  160. data/app/models/alchemy/essence_audio.rb +0 -14
  161. data/app/models/alchemy/essence_flash.rb +0 -12
  162. data/app/models/alchemy/essence_video.rb +0 -20
  163. data/app/views/alchemy/essences/_essence_audio_editor.html.erb +0 -1
  164. data/app/views/alchemy/essences/_essence_audio_view.html.erb +0 -33
  165. data/app/views/alchemy/essences/_essence_flash_editor.html.erb +0 -1
  166. data/app/views/alchemy/essences/_essence_flash_view.html.erb +0 -26
  167. data/app/views/alchemy/essences/_essence_video_editor.html.erb +0 -1
  168. data/app/views/alchemy/essences/_essence_video_view.html.erb +0 -35
@@ -26,7 +26,8 @@
26
26
  alchemy.edit_admin_user_path(user),
27
27
  {
28
28
  :title => t('edit_user'),
29
- :overflow => true
29
+ :overflow => true,
30
+ :size => '420x560'
30
31
  },
31
32
  {
32
33
  :class => "icon user_edit#{user.gender == 'female' ? ' female' : ' male'}",
@@ -6,7 +6,8 @@
6
6
  :url => alchemy.new_admin_user_path,
7
7
  :title => t('create_user'),
8
8
  :overlay_options => {
9
- :title => t('create_user')
9
+ :title => t('create_user'),
10
+ :size => "420x560"
10
11
  },
11
12
  :if_permitted_to => [:new, :alchemy_admin_users]
12
13
  }
@@ -1,4 +1,4 @@
1
- <div class="article" id="<%= element_dom_id(element) %>" <%= element_preview_code(element) -%>>
1
+ <div class="article" id="<%= element_dom_id(element) %>"<%= element_preview_code(element) -%><%= element_tags(element) %>>
2
2
  <%- intro = render_essence_view_by_name(element, 'intro') -%>
3
3
  <%- if !intro.blank? -%>
4
4
  <div class="intro">
@@ -0,0 +1,23 @@
1
+ <% cache(content) do %>
2
+ <div class="content_editor essence_link" id="<%= content_dom_id(content) %>">
3
+ <label><%= render_content_name(content) %></label>
4
+ <%= text_field_tag(
5
+ '',
6
+ content.ingredient,
7
+ :class => "thin_border text_with_icon disabled",
8
+ :name => nil,
9
+ :id => nil,
10
+ :disabled => true
11
+ ) %>
12
+ <%= hidden_field_tag content.form_field_name(:link), content.essence.link %>
13
+ <%= hidden_field_tag content.form_field_name(:link_title), content.essence.link_title %>
14
+ <%= hidden_field_tag content.form_field_name(:link_class_name), content.essence.link_class_name %>
15
+ <%= hidden_field_tag content.form_field_name(:link_target), content.essence.link_target %>
16
+ <%= render 'alchemy/essences/linkable_essence_tools', :content => content %>
17
+ </div>
18
+ <script type="text/javascript" charset="utf-8">
19
+ $('#<%= content.form_field_id(:link) %>').on('change', function() {
20
+ $('#<%= content_dom_id(content) %> input.text_with_icon').val($(this).val());
21
+ });
22
+ </script>
23
+ <% end %>
@@ -34,7 +34,7 @@
34
34
  :onclick => "Alchemy.LinkOverlay.open(this, 420)",
35
35
  :class => content.linked? ? 'linked' : nil,
36
36
  :title => t('link_image'),
37
- :name => "essence_picture_#{content.id}",
37
+ :data => {'content-id' => content.id},
38
38
  :id => "edit_link_#{content.id}"
39
39
  }) %>
40
40
 
@@ -22,15 +22,7 @@
22
22
  <%= hidden_field_tag content.form_field_name(:link_title), content.essence.link_title %>
23
23
  <%= hidden_field_tag content.form_field_name(:link_class_name), content.essence.link_class_name %>
24
24
  <%= hidden_field_tag content.form_field_name(:link_target), content.essence.link_target %>
25
-
26
- <span class="linkable_text_essence_tools">
27
- <a href="#" onclick="Alchemy.LinkOverlay.open(this, 420); return false;" title="<%= t('place_link') -%>" class="icon_button <%= content.linked? ? ' linked' : '' -%>" name="essence_text_<%= content.id -%>" id="edit_link_<%= content.id -%>">
28
- <span class="icon link"></span>
29
- </a>
30
- <a href="#" onclick="Alchemy.LinkOverlay.removeLink(this, <%= content.id -%>); return false;" title="<%= t('unlink') %>" class="icon_button unlink<%= content.linked? ? ' linked' : ' disabled' -%>" name="essence_text_<%= content.id -%>">
31
- <span class="icon unlink"></span>
32
- </a>
33
- </span>
25
+ <%= render 'alchemy/essences/linkable_essence_tools', :content => content %>
34
26
 
35
27
  <% end %>
36
28
 
@@ -0,0 +1,19 @@
1
+ <span class="linkable_essence_tools">
2
+ <%= link_to(
3
+ render_icon(:link),
4
+ '#',
5
+ :onclick => "Alchemy.LinkOverlay.open(this, 420); return false;",
6
+ :class => "icon_button#{content.linked? ? ' linked' : ''}",
7
+ :data => {'content-id' => content.id},
8
+ :title => t('place_link'),
9
+ :id => "edit_link_#{content.id}"
10
+ ) %>
11
+ <%= link_to(
12
+ render_icon(:unlink),
13
+ '#',
14
+ :onclick => "Alchemy.LinkOverlay.removeLink(this, #{content.id}); return false;",
15
+ :class => "icon_button unlink #{content.linked? ? 'linked' : 'disabled'}",
16
+ :data => {'content-id' => content.id},
17
+ :title => t('unlink')
18
+ ) %>
19
+ </span>
@@ -4,7 +4,7 @@
4
4
  <meta charset="UTF-8">
5
5
  <title><%= render_alchemy_title %></title>
6
6
  <%= csrf_meta_tag %>
7
- <%= stylesheet_link_tag('alchemy/alchemy', :media => 'screen') %>
7
+ <%= stylesheet_link_tag('alchemy/admin', :media => 'screen') %>
8
8
  <%= stylesheet_link_tag('alchemy/print', :media => 'print') %>
9
9
  <%= yield :stylesheets %>
10
10
  <script type="text/javascript" charset="utf-8">
@@ -42,6 +42,7 @@
42
42
  # * EssenceHtml (Used to store HTML code. The view output renders the raw, not sanitized or unescaped String. So be careful!)
43
43
  # * EssenceSelect (Used to store a String (max. 255 Chars.) value. The editor view is displayed as a select box)
44
44
  # * EssenceBoolean (Used to store a Boolean (true or false) value. The editor view is displayed as a check box)
45
+ # * EssenceLink (Used to store an URL. The link button opens the same link overlay as the link button in the EssenceRichtext TinyMCE editor.)
45
46
  #
46
47
  # After finishing the setup of your element layouts, you need to generate the files for the elements before using them in Alchemy.
47
48
  #
@@ -133,6 +134,7 @@
133
134
  # * uniqueness
134
135
  #
135
136
  - name: article
137
+ taggable: true
136
138
  contents:
137
139
  - name: intro
138
140
  type: EssenceText
@@ -68,3 +68,15 @@
68
68
  - name: 'modules.attachments'
69
69
  controller: 'alchemy/admin/attachments'
70
70
  action: index
71
+
72
+ - name: tags
73
+ engine_name: alchemy
74
+ navigation:
75
+ name: 'modules.tags'
76
+ controller: 'alchemy/admin/tags'
77
+ action: index
78
+ icon: tags
79
+ sub_navigation:
80
+ - name: 'modules.tags'
81
+ controller: 'alchemy/admin/tags'
82
+ action: index
@@ -37,6 +37,7 @@
37
37
  - name: standard
38
38
  elements: [article, claim, header, bild, bild_text, text, intro, headline, image_mosaic, download]
39
39
  autogenerate: [header, claim, article]
40
+ taggable: true
40
41
 
41
42
  - name: contact
42
43
  unique: true
@@ -62,6 +63,7 @@
62
63
  - name: layout_header
63
64
  unique: true
64
65
  layoutpage: true
66
+ taggable: true
65
67
  elements: [sitename, header]
66
68
 
67
69
  - name: layout_footer
@@ -44,6 +44,7 @@ authorization do
44
44
  has_permission_on :alchemy_admin_users, :to => [:index]
45
45
  has_permission_on :alchemy_admin_trash, :to => [:index, :clear]
46
46
  has_permission_on :alchemy_admin_clipboard, :to => [:index, :insert, :remove, :clear]
47
+ has_permission_on :alchemy_admin_tags, :to => [:autocomplete]
47
48
  end
48
49
 
49
50
  role :editor do
@@ -52,6 +53,7 @@ authorization do
52
53
  has_permission_on :alchemy_admin_pictures, :to => [:manage, :flush, :delete_multiple, :edit_multiple, :update_multiple]
53
54
  has_permission_on :alchemy_admin_pages, :to => [:manage_pages]
54
55
  has_permission_on :alchemy_admin_layoutpages, :to => [:index]
56
+ has_permission_on :alchemy_admin_tags, :to => [:manage]
55
57
  end
56
58
 
57
59
  role :admin do
@@ -206,7 +206,7 @@ de:
206
206
  "File renamed successfully from: '%{from}' to '%{to}'": "Datei wurde erfolgreich von: '%{from}' nach '%{to}' umbenannt."
207
207
  "File upload error: %{error}": "Datei konnte nicht hochgeladen werden: %{error}"
208
208
  "File: '%{name}' deleted successfully": "%{name} wurde gelöscht"
209
- "Filter by tag": "Nach Schlagwörtern filtern"
209
+ "Filter by tag": "Nach Schlagworten filtern"
210
210
  "Flush page cache": "Seitencache löschen"
211
211
  "Flush picture cache": "Bildercache löschen"
212
212
  "Have much fun with Alchemy!": "Viel Spaß mit Alchemy!"
@@ -227,10 +227,13 @@ de:
227
227
  "New": "Neu"
228
228
  "New Element": "Element hinzufügen"
229
229
  "New page": "Neue Seite"
230
+ "New Tag": "Neues Schlagwort"
231
+ "New Tag Created": "Neues Schlagwort wurde erstellt"
230
232
  "No": "Nein"
231
233
  "No EssenceType given": ""
232
234
  "No image found. Did you saved the element?": "Es wurde kein Bild gefunden. Haben Sie das Element auch gespeichert?"
233
235
  "No items in your clipboard": "Ihre Zwischenablage ist leer"
236
+ "No Tags found": "Keine Schlagworte gefunden"
234
237
  "None": "keine"
235
238
  "Open Link in": "Link öffnen in"
236
239
  "Page deleted": "%{name} wurde gelöscht"
@@ -255,7 +258,7 @@ de:
255
258
  "Please Signup": "Um Ihre Homepage bearbeiten zu können, müssen Sie als erstes einen Admin Benutzer einrichten."
256
259
  "Please choose": "Bitte wählen"
257
260
  "Please log in": "Bitte melden Sie sich an."
258
- "Please seperate the tags with commata": "*) Die Schlagwörter bitte mit Kommata getrennt eingeben."
261
+ "Please seperate the tags with commata": "*) Die Schlagworte bitte mit Kommata getrennt eingeben."
259
262
  use_alternative_uploader_instead: "Benutzen Sie bitte diesen alternativen Uploader."
260
263
  "Publish page": "veröffentlichen"
261
264
  "Read the License": "Lizenz lesen"
@@ -283,7 +286,7 @@ de:
283
286
  sitemap_editor_info: "Die Sitemap wird automatisch generiert"
284
287
  searchresults_editor_info: "Dieses Element stellt die Suchergebnisse dar. Es Bedarf keinerlei Anpassung."
285
288
  element_dirty_notice: "Dieses Element hat nicht gespeicherte Änderungen. Möchten Sie es wirklich einklappen?"
286
- "Tags": "Schlagwörter"
289
+ "Tags": "Schlagworte"
287
290
  "This page is locked by %{name}": "Diese Seite wird gerade von %{name} blockiert"
288
291
  "Title": "Titel"
289
292
  "To manage your website open a browser and go to": "Um die Inhalte Ihrer Webseite zu bearbeiten klicken Sie bitte auf folgenden Link"
@@ -367,16 +370,19 @@ de:
367
370
  delete_image: "Bild löschen."
368
371
  delete_language: "Sprache löschen"
369
372
  delete_page: "Seite löschen"
373
+ delete_tag: 'Schlagwort löschen'
370
374
  delete_user: "Benutzer löschen"
371
375
  document: "Dokument"
372
376
  documents: "Dateien"
373
377
  download_file: "%{filename} runterladen"
378
+ do_you_really_want_to_delete_this_tag?: "Wollen Sie dieses Schlagwort wirklich löschen?"
374
379
  drag_to_sort: "Mit der Maus halten und verschieben"
375
380
  edit_file_properties: "Dateieigenschaften bearbeiten"
376
381
  edit_image_properties: "Bildeigenschaften bearbeiten"
377
382
  edit_language: "Sprache bearbeiten"
378
383
  edit_page: "Seite bearbeiten"
379
384
  edit_page_properties: "Seiteneigenschaften bearbeiten"
385
+ edit_tag: 'Schlagwort bearbeiten'
380
386
  edit_user: "Benutzer bearbeiten"
381
387
  edit_selected_pictures: "Selektierte Bilder:"
382
388
  element_dirty_page_leave_warning: "Sie haben ungesicherte Elemente auf der Seite. Möchten Sie wirklich fortfahren?"
@@ -395,6 +401,8 @@ de:
395
401
  step2: "Wählen Sie alle %{name} aus, die Sie gleichzeitig hochladen wollen"
396
402
  step3: "Klicken Sie auf 'öffnen'. Das Hochladen beginnt!"
397
403
  dragndrop: "Alternativ können Sie Dateien auch von Ihrem Computer mit der Maus auf die untere Fläche ziehen."
404
+ external_link_notice_1: "Bitte geben Sie die URL komplett mit http:// (oder vergleichbarem Protokoll) ein."
405
+ external_link_notice_2: "Um auf einen Pfad innerhalb der Webseiten URL zu verweisen, beginnen Sie mit einem /."
398
406
  female: "Frau"
399
407
  file: "Datei"
400
408
  file_rename_error: "Datei konnte nicht umbenannt werden."
@@ -434,7 +442,7 @@ de:
434
442
  medium_thumbnails: "mittlere Miniaturbilder"
435
443
  meta_data: "Meta Daten"
436
444
  meta_description: "Meta Beschreibung"
437
- meta_keywords: "Meta Schlagwörter"
445
+ meta_keywords: "Meta Schlagworte"
438
446
  missing_image: "Bild wird vermisst."
439
447
  modules:
440
448
  user_sessions: "Anmeldung"
@@ -446,6 +454,7 @@ de:
446
454
  library: "Bibliothek"
447
455
  pages: "Seiten"
448
456
  users: "Benutzer"
457
+ tags: "Schlagworte"
449
458
  name: "Name"
450
459
  names: "Namen"
451
460
  navigation_name: "Navigationsname"
@@ -460,6 +469,7 @@ de:
460
469
  no_search_results: "Keine Suchergebnisse."
461
470
  "not a valid image": "Keine valide Bilddatei."
462
471
  "or": 'oder'
472
+ or_replace_it_with_an_existing_tag: 'Oder Sie ersetzen es durch ein vorhandenes Schlagwort'
463
473
  "Page created": "Seite '%{name}' wurde erstellt."
464
474
  page_for_links:
465
475
  choose_page: "%{name} wählen"
@@ -504,6 +514,9 @@ de:
504
514
  "regular method": "herkömmlichen Methode"
505
515
  remove: "entfernen"
506
516
  rename_file: "Datei umbenennen"
517
+ rename: umbenennen
518
+ replace: ersetzen
519
+ 'Replaced Tag %{old_tag} with %{new_tag}': "Das Schlagwort '%{old_tag}' wurde durch das Schlagwort '%{new_tag}' ersetzt"
507
520
  right: "rechts"
508
521
  robot_follow: "den Robot Links folgen lassen"
509
522
  robot_index: "durch Robot indizieren"
@@ -514,6 +527,7 @@ de:
514
527
  'search query': 'Suchbegriff'
515
528
  search_engines: "Suchmaschinen"
516
529
  select_element: "Element wählen"
530
+ seperate_tags_with_comma: 'Mehrere Schlagworte mit Komma trennen.'
517
531
  show_element_content: "Element ausklappen"
518
532
  show_elements_from_page: "Elemente dieser Seite anzeigen"
519
533
  show_eq: "EQ anzeigen"
@@ -523,11 +537,15 @@ de:
523
537
  small_thumbnails: "kleine Miniaturbilder"
524
538
  subject: "Betreff"
525
539
  successfully_added_element: "Element wurde hinzugefügt."
540
+ successfully_deleted_tag: "Das Schlagwort wurde gelöscht"
526
541
  successfully_saved_element_position: "Die Elementposition wurde gespeichert."
542
+ successfully_updated_tag: "Das Schlagwort wurde gespeichert"
527
543
  swap_image: "Bild tauschen"
528
544
  insert_image: "Bild einfügen"
529
545
  swfupload:
530
546
  cancel_uploads: "Hochladen abbrechen"
547
+ tag_list: Schlagworte
548
+ tags_get_created_if_used_the_first_time: 'Ein Schlagwort wird automatisch erstellt, sobald Sie es das erste mal verwenden.'
531
549
  title: "Titel"
532
550
  "trash element": "Element in den Papierkorb legen"
533
551
  unknown: "unbekannt"
@@ -546,6 +564,7 @@ de:
546
564
  "We need at least one default.": "Es muss eine Standardsprache geben."
547
565
  welcome_please_identify_notice: "Willkommen! Bitte identifizieren Sie sich."
548
566
  width: "Breite"
567
+ you_can_rename_this_tag: "Sie können dieses Schlagwort umbenennen"
549
568
  zoom_image: "Bild in voller Größe anzeigen."
550
569
  "Leave Alchemy": "Alchemy verlassen"
551
570
  leave: "verlassen"
@@ -784,19 +803,29 @@ de:
784
803
  one: Benutzer
785
804
  other: Benutzer
786
805
 
806
+ alchemy/user_session:
807
+ one: Anmeldung
808
+ other: Anmeldungen
809
+
787
810
  attributes:
788
811
 
812
+ acts_as_taggable_on/tag:
813
+ taggings_types: Verwendet an
814
+ taggings_count: Anzahl Verwendung
815
+
789
816
  alchemy/attachment:
790
817
  content_type: "Dateityp"
791
818
  created_at: "Erstellt Am"
792
819
  filename: "Dateiname"
793
820
  name: "Name"
794
821
  size: "Dateigröße"
822
+ tag_list: Schlagworte
795
823
 
796
824
  alchemy/element:
797
825
  display_name: "Name"
798
826
  name: "Name"
799
827
  public: "sichtbar"
828
+ tag_list: Schlagworte
800
829
 
801
830
  alchemy/essence_file:
802
831
  css_class: Textanordnung
@@ -838,6 +867,7 @@ de:
838
867
  robot_follow: "den Robot Links folgen lassen"
839
868
  robot_index: "durch Robot indizieren"
840
869
  sitemap: "in der Seitenübersicht sichtbar"
870
+ tag_list: Schlagworte
841
871
  title: "Seitentitel"
842
872
  updated_at: "Aktualisiert am"
843
873
  urlname: "URL-Name"
@@ -848,7 +878,7 @@ de:
848
878
  image_height: "Bildhöhe"
849
879
  image_width: "Bildbreite"
850
880
  name: "Name"
851
- tag_list: Schlagwörter
881
+ tag_list: Schlagworte
852
882
 
853
883
  alchemy/user:
854
884
  email: "Email"
@@ -862,6 +892,7 @@ de:
862
892
  password: "Passwort"
863
893
  password_confirmation: "Passwort Bestätigung"
864
894
  role: "Benutzerrolle"
895
+ tag_list: Schlagworte
865
896
 
866
897
  errors:
867
898
  <<: *errors
@@ -239,6 +239,8 @@ en:
239
239
  step1: "Click the 'browse' button and navigate to your %{name} folder"
240
240
  step2: "Select all the %{name} you want to upload"
241
241
  step3: "Click the 'open' button. The upload starts!"
242
+ external_link_notice_1: "Please enter the complete url with http:// or a similiar protocal."
243
+ external_link_notice_2: "To refer a path from your website url, start with a /."
242
244
  female: "Female"
243
245
  file: "File"
244
246
  file_rename_error: "Error renaming file."
@@ -284,6 +286,7 @@ en:
284
286
  library: "Library"
285
287
  pages: "Pages"
286
288
  users: "Users"
289
+ tags: "Tags"
287
290
  name: "Name"
288
291
  names: "Names"
289
292
  navigation_name: "Navigationname"
data/config/routes.rb CHANGED
@@ -116,11 +116,8 @@ Alchemy::Engine.routes.draw do
116
116
  end
117
117
  end
118
118
 
119
- resources :essence_videos
120
-
121
119
  resources :languages
122
120
 
123
- # OHOHOH lovely Rails! Why, oh why I always have to hack thou?
124
121
  resource :clipboard, :only => :index, :controller => 'clipboard' do
125
122
  collection do
126
123
  get :index
@@ -130,7 +127,6 @@ Alchemy::Engine.routes.draw do
130
127
  end
131
128
  end
132
129
 
133
- # OHOHOH lovely Rails! Why, oh why I always have to hack thou?
134
130
  resource :trash, :only => :index, :controller => 'trash' do
135
131
  collection do
136
132
  get :index
@@ -138,6 +134,12 @@ Alchemy::Engine.routes.draw do
138
134
  end
139
135
  end
140
136
 
137
+ resources :tags do
138
+ collection do
139
+ get :autocomplete
140
+ end
141
+ end
142
+
141
143
  end
142
144
 
143
145
  match '/:lang' => 'pages#show',
@@ -63,18 +63,6 @@ class AlchemyTwoPointThree < ActiveRecord::Migration
63
63
  t.integer "page_id"
64
64
  end
65
65
 
66
- create_table "alchemy_essence_audios", :force => true do |t|
67
- t.integer "attachment_id"
68
- t.integer "width", :default => 400
69
- t.integer "height", :default => 300
70
- t.boolean "show_eq", :default => true
71
- t.boolean "show_navigation", :default => true
72
- t.integer "creator_id"
73
- t.integer "updater_id"
74
- t.datetime "created_at", :null => false
75
- t.datetime "updated_at", :null => false
76
- end
77
-
78
66
  create_table "alchemy_essence_booleans", :force => true do |t|
79
67
  t.boolean "value"
80
68
  t.datetime "created_at", :null => false
@@ -103,17 +91,6 @@ class AlchemyTwoPointThree < ActiveRecord::Migration
103
91
  t.datetime "updated_at", :null => false
104
92
  end
105
93
 
106
- create_table "alchemy_essence_flashes", :force => true do |t|
107
- t.integer "attachment_id"
108
- t.integer "width", :default => 400
109
- t.integer "height", :default => 300
110
- t.string "player_version", :default => "9.0.28"
111
- t.integer "creator_id"
112
- t.integer "updater_id"
113
- t.datetime "created_at", :null => false
114
- t.datetime "updated_at", :null => false
115
- end
116
-
117
94
  create_table "alchemy_essence_htmls", :force => true do |t|
118
95
  t.text "source"
119
96
  t.integer "creator_id"
@@ -176,19 +153,6 @@ class AlchemyTwoPointThree < ActiveRecord::Migration
176
153
  t.datetime "updated_at", :null => false
177
154
  end
178
155
 
179
- create_table "alchemy_essence_videos", :force => true do |t|
180
- t.integer "attachment_id"
181
- t.integer "width"
182
- t.integer "height"
183
- t.boolean "allow_fullscreen", :default => true
184
- t.boolean "auto_play", :default => false
185
- t.boolean "show_navigation", :default => true
186
- t.integer "creator_id"
187
- t.integer "updater_id"
188
- t.datetime "created_at", :null => false
189
- t.datetime "updated_at", :null => false
190
- end
191
-
192
156
  create_table "alchemy_folded_pages", :force => true do |t|
193
157
  t.integer "page_id"
194
158
  t.integer "user_id"