alchemy_cms 2.4.beta2 → 2.4.rc1

Sign up to get free protection for your applications and to get access to all the features.
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"