goldencobra 1.4.0 → 1.4.27

Sign up to get free protection for your applications and to get access to all the features.
Files changed (119) hide show
  1. data/README.markdown +3 -2
  2. data/app/assets/images/goldencobra/Jcrop.gif +0 -0
  3. data/app/assets/javascripts/goldencobra/active_admin.js +145 -84
  4. data/app/assets/javascripts/goldencobra/jquery.Jcrop.min.js +22 -0
  5. data/app/assets/javascripts/goldencobra/jquery.color.js +661 -0
  6. data/app/assets/stylesheets/goldencobra/active_admin.css.scss +375 -252
  7. data/app/assets/stylesheets/goldencobra/{application.css → application.css.scss} +0 -0
  8. data/app/assets/stylesheets/goldencobra/ikusei_active_admin.scss +35 -26
  9. data/app/assets/stylesheets/goldencobra/jquery.Jcrop.min.css +29 -0
  10. data/app/controllers/goldencobra/api/v2/articles_controller.rb +221 -0
  11. data/app/controllers/goldencobra/api/v2/locales_controller.rb +31 -0
  12. data/app/controllers/goldencobra/api/v2/settings_controller.rb +31 -0
  13. data/app/controllers/goldencobra/articles_controller.rb +42 -16
  14. data/app/controllers/goldencobra/sessions_controller.rb +8 -1
  15. data/app/helpers/goldencobra/application_helper.rb +3 -1
  16. data/app/helpers/goldencobra/articles_helper.rb +14 -8
  17. data/app/middleware/goldencobra/handle_invalid_percent_encoding.rb +40 -0
  18. data/app/models/ability.rb +43 -48
  19. data/app/models/goldencobra/article.rb +292 -218
  20. data/app/models/goldencobra/article_author.rb +19 -0
  21. data/app/models/goldencobra/article_image.rb +2 -0
  22. data/app/models/goldencobra/articletype.rb +30 -28
  23. data/app/models/goldencobra/author.rb +5 -3
  24. data/app/models/goldencobra/domain.rb +2 -0
  25. data/app/models/goldencobra/import.rb +2 -2
  26. data/app/models/goldencobra/link_checker.rb +64 -0
  27. data/app/models/goldencobra/menue.rb +4 -2
  28. data/app/models/goldencobra/permission.rb +3 -1
  29. data/app/models/goldencobra/redirector.rb +131 -0
  30. data/app/models/goldencobra/setting.rb +29 -3
  31. data/app/models/goldencobra/upload.rb +60 -1
  32. data/app/models/goldencobra/url_builder.rb +58 -0
  33. data/app/models/goldencobra/vita.rb +4 -0
  34. data/app/models/goldencobra/widget.rb +10 -0
  35. data/app/models/user.rb +1 -1
  36. data/app/views/goldencobra/admin/articles/_article_type.html.erb +1 -1
  37. data/app/views/goldencobra/admin/articles/_articles_index.html.erb +3 -3
  38. data/app/views/goldencobra/admin/articles/_image_module_sidebar.html.erb +19 -7
  39. data/app/views/goldencobra/admin/articles/_layout_sidebar.html.erb +2 -2
  40. data/app/views/goldencobra/admin/articles/_link_checker.html.erb +4 -4
  41. data/app/views/goldencobra/admin/articles/_link_checker_index.html.erb +1 -1
  42. data/app/views/goldencobra/admin/articles/_select_article_type.html.erb +8 -8
  43. data/app/views/goldencobra/admin/articles/_sort_articles_index.html.erb +1 -1
  44. data/app/views/goldencobra/admin/articles/_widgets_sidebar.html.erb +2 -2
  45. data/app/views/goldencobra/admin/articles/toggle_expert_mode.js.erb +2 -2
  46. data/app/views/goldencobra/admin/settings/_index.html.erb +14 -0
  47. data/app/views/goldencobra/admin/settings/_key_value.html.erb +12 -0
  48. data/app/views/goldencobra/admin/settings/_settings_group.html.erb +14 -0
  49. data/app/views/goldencobra/admin/shared/_help.html.erb +12 -10
  50. data/app/views/goldencobra/admin/shared/_item.html.erb +4 -4
  51. data/app/views/goldencobra/admin/shared/_overview.html.erb +14 -4
  52. data/app/views/goldencobra/admin/shared/load_overviewtree.js.erb +6 -0
  53. data/app/views/goldencobra/admin/uploads/_jcrop.html.erb +23 -0
  54. data/app/views/goldencobra/articles/_edit_article_link.html.erb +1 -1
  55. data/app/views/goldencobra/articles/show.rss.builder +5 -0
  56. data/app/views/goldencobra/articles/sitemap.xml.builder +15 -1
  57. data/app/views/goldencobra/manage/_admin_article_management.html.erb +1 -1
  58. data/app/views/goldencobra/manage/_admin_article_management_content.html.erb +4 -4
  59. data/app/views/goldencobra/manage/render_admin_menue.html.erb +1 -0
  60. data/app/views/goldencobra/manage/render_admin_menue.js.erb +0 -1
  61. data/app/views/goldencobra/sessions/_login.html.erb +4 -4
  62. data/app/views/goldencobra/sessions/_register.html.erb +6 -6
  63. data/app/views/layouts/goldencobra/active_admin_resque.html.erb +1 -1
  64. data/app/worker/articles_cache_worker.rb +1 -1
  65. data/config/initializers/check_for_missing_articletypes.rb +40 -37
  66. data/config/initializers/devise.rb +3 -1
  67. data/config/initializers/http_validator.rb +9 -2
  68. data/config/initializers/liquid_tags.rb +2 -2
  69. data/config/locales/active_admin.de.yml +509 -3
  70. data/config/locales/active_admin.en.yml +580 -64
  71. data/config/locales/de.yml +478 -4
  72. data/config/locales/en.yml +406 -10
  73. data/config/pre-commit.rb +3 -0
  74. data/config/routes.rb +12 -1
  75. data/config/settings.yml +51 -50
  76. data/db/migrate/20130114154115_add_sorter_to_goldencobra_permissions.rb +4 -1
  77. data/db/migrate/20140204221345_add_operator_to_goldencobra_permissions.rb +5 -0
  78. data/db/migrate/20140411152728_add_creator_id_to_goldencobra_articles.rb +5 -0
  79. data/db/migrate/20140505144517_add_taggingcounter.rb +15 -0
  80. data/db/migrate/20140603084537_add_domain_to_goldencobra_permissions.rb +7 -0
  81. data/db/migrate/20140615200342_resize_link_checkfield.rb +13 -0
  82. data/db/migrate/20140626135753_add_externalreferee_to_goldencobra_articles.rb +6 -0
  83. data/db/migrate/20140702103024_add_externaldate_to_goldencobra_articles.rb +5 -0
  84. data/db/migrate/20140702105550_add_remoteurl_to_goldencobra_uploads.rb +5 -0
  85. data/db/migrate/20140702142818_add_image_gallery_type_to_goldencobra_articles.rb +5 -0
  86. data/db/migrate/20140819101033_add_urlpath_to_goldencobra_articles.rb +5 -0
  87. data/db/migrate/20141009104216_set_db_and_tables_to_utf8.rb +20 -0
  88. data/db/migrate/20141104115144_create_goldencobra_redirectors.rb +15 -0
  89. data/db/migrate/20141112124531_add_globalsorting_to_goldencobra_articles.rb +7 -0
  90. data/db/migrate/20141124170930_add_indiex_to_gc.rb +26 -0
  91. data/db/migrate/20150115111024_create_goldencobra_article_authors.rb +28 -0
  92. data/db/migrate/20150115134707_add_remove_author_stuff.rb +11 -0
  93. data/db/migrate/20150417153454_add_status_to_goldencobra_vita_steps.rb +5 -0
  94. data/db/seeds.rb +4 -153
  95. data/lib/generators/goldencobra/articletype/templates/edit_index.html.erb +1 -1
  96. data/lib/generators/goldencobra/articletype/templates/initializer.rb +4 -2
  97. data/lib/generators/goldencobra/install_generator.rb +3 -0
  98. data/lib/generators/goldencobra/server_generator.rb +67 -0
  99. data/lib/generators/goldencobra/templates/active_admin.rb.erb +3 -0
  100. data/lib/generators/goldencobra/templates/robots.txt +5 -0
  101. data/lib/generators/goldencobra/templates/views/articletypes/default/_edit_index.html.erb +9 -0
  102. data/lib/generators/goldencobra/templates/views/articletypes/default/_edit_show.html.erb +0 -0
  103. data/lib/generators/goldencobra/templates/views/articletypes/default/_index.html.erb +31 -18
  104. data/lib/generators/goldencobra/templates/views/articletypes/default/_show.html.erb +22 -15
  105. data/lib/goldencobra/engine.rb +19 -3
  106. data/lib/goldencobra/version.rb +1 -1
  107. data/lib/tasks/article_cache.rake +19 -0
  108. data/lib/tasks/i18n.rake +1 -1
  109. data/lib/tasks/import.rake +31 -3
  110. data/lib/tasks/link_checker.rake +4 -2
  111. metadata +217 -23
  112. data/config/locales/activerecord.de.yml +0 -227
  113. data/config/locales/activerecord.en.yml +0 -148
  114. data/config/locales/devise.de.yml +0 -54
  115. data/config/locales/devise.en.yml +0 -57
  116. data/config/locales/formtastic.de.yml +0 -10
  117. data/config/locales/formtastic.en.yml +0 -10
  118. data/config/locales/goldencobra.de.yml +0 -40
  119. data/config/locales/goldencobra.en.yml +0 -3
@@ -0,0 +1,6 @@
1
+ <% object_to_render = object_class.constantize.find_by_id(object_id) %>
2
+ $('#overview-sidebar_list').append("<%= escape_javascript( render :partial => '/goldencobra/admin/shared/item',
3
+ :object => object_to_render,
4
+ :locals => {:link_name => link_name, :url_path => url_path, :order_by => order_by }
5
+ ) %>");
6
+ $('#temp_list_item_<%= object_id %>').remove();
@@ -0,0 +1,23 @@
1
+ <script type="text/javascript">
2
+ $(document).ready(function() {
3
+ jQuery(function($) {
4
+ function setCoords(c)
5
+ {
6
+ // variables can be accessed here as
7
+ // c.x, c.y, c.x2, c.y2, c.w, c.h
8
+ $('#upload_crop_x').attr('value',c.x);
9
+ $('#upload_crop_y').attr('value',c.y);
10
+ $('#upload_crop_w').attr('value',c.w);
11
+ $('#upload_crop_h').attr('value',c.h);
12
+ };
13
+
14
+ $('#image_crop').Jcrop({
15
+ onSelect: setCoords,
16
+ onChange: setCoords,
17
+ bgColor: 'black',
18
+ bgOpacity: .4
19
+ //aspectRatio: 16 / 9
20
+ });
21
+ });
22
+ });
23
+ </script>
@@ -1,7 +1,7 @@
1
1
  <% if @article %>
2
2
  <script type="text/javascript">
3
3
  $(document).ready(function(){
4
- $.ajax("/manage/render_admin_menue?id=<%= @article.id %>");
4
+ $.ajax("/manage/render_admin_menue.js?id=<%= @article.id %>");
5
5
  });
6
6
  </script>
7
7
  <% end %>
@@ -1,3 +1,5 @@
1
+ # encoding: utf-8
2
+
1
3
  xml.instruct! :xml, version: "1.0"
2
4
  xml.rss version: "2.0" do
3
5
  xml.channel do
@@ -6,6 +8,9 @@ xml.rss version: "2.0" do
6
8
  xml.link @article.absolute_public_url
7
9
 
8
10
  if @list_of_articles
11
+ if params[:start].present? && params[:limit].present?
12
+ @list_of_articles = @list_of_articles.offset(params[:start].to_i).limit(params[:limit].to_i)
13
+ end
9
14
  @list_of_articles.each do |article|
10
15
  xml.item do
11
16
  xml.title article.title
@@ -1,12 +1,26 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  xml.instruct! :xml, :version => '1.0', :encoding => 'UTF-8'
4
- xml.urlset :xmlns => 'http://www.sitemaps.org/schemas/sitemap/0.9' do
4
+ #XML Sitemap um Bilder ergänzen: https://support.google.com/webmasters/answer/178636?hl=de
5
+ xml.urlset :xmlns => 'http://www.sitemaps.org/schemas/sitemap/0.9', "xmlns:image" => "http://www.google.com/schemas/sitemap-image/1.1" do
6
+ #xml.urlset :xmlns => 'http://www.sitemaps.org/schemas/sitemap/0.9' do
5
7
  @articles.each do |article|
6
8
  xml.url do # create the url entry, with the specified location and date
7
9
  xml.loc "http#{@use_ssl}://#{@domain_name}#{article.public_url}"
8
10
  xml.lastmod article.updated_at.strftime('%Y-%m-%d')
9
11
  xml.priority 0.5
12
+ if article.images.any?
13
+ article_image = article.images.first
14
+ if article_image.present?
15
+ xml.tag!("image:image") do
16
+ if article_image.image.present?
17
+ xml.tag!("image:loc", "http#{@use_ssl}://#{@domain_name}#{article_image.image.url(:original)}")
18
+ end
19
+ xml.tag!("image:title", article_image.alt_text.present? ? article_image.alt_text : article.title )
20
+ xml.tag!("image:caption", article_image.description.present? ? article_image.description : article.teaser)
21
+ end
22
+ end
23
+ end
10
24
  end
11
25
  end
12
26
  if File.exists?(File.join(::Rails.root, "app", "views", "articletypes", "default", "_sitemap.xml.builder"))
@@ -1,4 +1,4 @@
1
- <div id="admin_article_manager" style="display:none">
1
+ <div id="admin_article_manager">
2
2
  <div id="admin_article_manager_content">
3
3
  <%= render :partial => "admin_article_management_content" %>
4
4
  </div>
@@ -5,11 +5,11 @@
5
5
  <%= link_to Goldencobra::Setting.for_key('goldencobra.page.default_title_tag'), "/admin", :target => "_blank" %>
6
6
  </div>
7
7
  <div class="right">
8
- <%= link_to "#{@operator.email} abmelden", "/admin/logout" %>
9
- <a href='/admin/articles/<%= @article.id %>/edit' target="_blank" >Artikel im Backend bearbeiten</a>
8
+ <%= link_to "#{@operator.email} #{I18n.t('goldencobra.manage.admin_article_management_content.link1')}", "/admin/logout" %>
9
+ <a href='/admin/articles/<%= @article.id %>/edit' target="_blank"><%= I18n.t('goldencobra.manage.admin_article_management_content.link1_text') %></a>
10
10
  <% if @article.active? %>
11
- <%= link_to "Artikel offline stellen", "manage/article_visibility/#{@article.id}", :remote => true, :confirm => "Seite offline schalten?" %>
11
+ <%= link_to I18n.t('goldencobra.manage.admin_article_management_content.link2'), "manage/article_visibility/#{@article.id}", :remote => true, :confirm => I18n.t('goldencobra.manage.admin_article_management_content.confirm2') %>
12
12
  <% else %>
13
- <%= link_to "Artikel online stellen", "manage/article_visibility/#{@article.id}", :remote => true, :confirm => "Seite online schalten?" %>
13
+ <%= link_to I18n.t('goldencobra.manage.admin_article_management_content.link3'), "manage/article_visibility/#{@article.id}", :remote => true, :confirm => I18n.t('goldencobra.manage.admin_article_management_content.confirm3') %>
14
14
  <% end %>
15
15
  </div>
@@ -0,0 +1 @@
1
+ <%# dummy file for crawler and bots %>
@@ -1,4 +1,3 @@
1
1
  <% if @article %>
2
2
  $('body').prepend("<%= escape_javascript(render :partial => '/goldencobra/manage/admin_article_management') %>");
3
- $('#admin_article_manager').slideDown("fast");
4
3
  <% end %>
@@ -1,26 +1,26 @@
1
1
  <div class="login_form">
2
2
  <% if eval("current_#{usermodel.to_s.downcase}.present?") %>
3
3
  Angemeldet als <%= eval("current_#{usermodel.to_s.downcase}.firstname") %> <%= eval("current_#{usermodel.to_s.downcase}.lastname") %>
4
- <%= link_to "abmelden", "/frontend_logout/#{usermodel}", :class => "logout", :remote => true %>
4
+ <%= link_to I18n.t('goldencobra.sessions.login.link1'), "/frontend_logout/#{usermodel}", :class => "logout", :remote => true %>
5
5
  <% else %>
6
6
  <%= form_for(usermodel.new, :as => "loginmodel", :url => "/frontend_login/#{usermodel}", :remote => true) do |f| %>
7
7
  <p class="errors"></p>
8
8
  <div class="clearfix">
9
- <%= f.label :email, 'E-Mail Adresse' %>
9
+ <%= f.label :email, I18n.t('goldencobra.sessions.login.label_email') %>
10
10
  <div class="input">
11
11
  <%= f.email_field :email %>
12
12
  </div>
13
13
  </div>
14
14
 
15
15
  <div class="clearfix">
16
- <%= f.label :password, 'Passwort' %>
16
+ <%= f.label :password, I18n.t('goldencobra.sessions.login.label_password') %>
17
17
  <div class="input">
18
18
  <%= f.password_field :password %>
19
19
  </div>
20
20
  </div>
21
21
 
22
22
  <div class="actions">
23
- <%= f.submit "Login", :class=> "button" %>
23
+ <%= f.submit I18n.t('goldencobra.sessions.login.submit'), :class=> "button" %>
24
24
  <%#= link_to "Sign in with Facebook", "/visitors/auth/facebook", :class => "button" %>
25
25
  <%#= link_to "Passwort vergessen?", new_password_path("visitor"), :class => 'block' %>
26
26
  <%#= link_to "Sign in with Google", "/visitors/auth/google", :class => "button" %>
@@ -2,28 +2,28 @@
2
2
  <%= form_for(Visitor.new, :as => "visitor", :url => "/frontend_register/#{usermodel}?associated_model=#{associated_model}", :html => {:id => "new_registration_visitor"},:remote => true) do |f| %>
3
3
  <p class="errors"></p>
4
4
  <div class="clearfix">
5
- <%= f.label :email, 'E-Mail Adresse *' %>
5
+ <%= f.label :email, I18n.t('goldencobra.register.label_email') %>
6
6
  <div class="input">
7
7
  <%= f.email_field :email, required: true %>
8
8
  </div>
9
9
  </div>
10
10
 
11
11
  <div class="clearfix">
12
- <%= f.label :username, 'Benutzername *' %>
12
+ <%= f.label :username, I18n.t('goldencobra.register.label_username') %>
13
13
  <div class="input">
14
14
  <%= f.text_field :username, required: true %>
15
15
  </div>
16
16
  </div>
17
17
 
18
18
  <div class="clearfix">
19
- <%= f.label :password, 'Passwort *' %>
19
+ <%= f.label :password, I18n.t('goldencobra.register.label_password') %>
20
20
  <div class="input">
21
21
  <%= f.password_field :password, required: true %>
22
22
  </div>
23
23
  </div>
24
24
 
25
25
  <div class="clearfix">
26
- <%= f.label :password_confirmation, 'Passwort bestätigen *' %>
26
+ <%= f.label :password_confirmation, I18n.t('goldencobra.register.label_pass_confirmation') %>
27
27
  <div class="input">
28
28
  <%= f.password_field :password_confirmation, required: true %>
29
29
  </div>
@@ -33,7 +33,7 @@
33
33
  <div class="input">
34
34
  <%= f.check_box :agb, required: true %>
35
35
  </div>
36
- Ich akzeptiere die AGB & Datenschutzbestimmungen *
36
+ I18n.t('goldencobra.register.div') *
37
37
  </div>
38
38
  <!-- <div class="clearfix agb">
39
39
  <div class="input">
@@ -42,7 +42,7 @@
42
42
  Ich möchte mich für den Newsletter anmelden
43
43
  </div> -->
44
44
  <div class="actions">
45
- <%= f.submit "Registrieren", :class => "button" %>
45
+ <%= f.submit I18n.t('goldencobra.register.submit'), :class => "button" %>
46
46
  <%#= render :partial => "devise/shared/links" %>
47
47
  </div>
48
48
  <% end %>
@@ -32,4 +32,4 @@
32
32
  </div>
33
33
  </div>
34
34
  </body>
35
- </html>
35
+ </html>
@@ -14,7 +14,7 @@ class ArticlesCacheWorker
14
14
  if ActiveRecord::Base.connection.table_exists?("goldencobra_settings")
15
15
  if Goldencobra::Setting.for_key("goldencobra.remove_old_versions.active") == "true"
16
16
  weekcount = Goldencobra::Setting.for_key("goldencobra.remove_old_versions.weeks").to_i
17
- Version.delete_all ["created_at < ?", weekcount.weeks.ago]
17
+ PaperTrail::Version.delete_all ["created_at < ?", weekcount.weeks.ago]
18
18
  end
19
19
  end
20
20
  end
@@ -1,52 +1,55 @@
1
1
  # encoding: utf-8
2
2
  Rails.application.config.to_prepare do
3
3
  if ActiveRecord::Base.connection.table_exists?("goldencobra_articles") && ActiveRecord::Base.connection.table_exists?("goldencobra_articletypes")
4
- Goldencobra::Article.scoped.pluck(:article_type).uniq.each do |at|
4
+ Goldencobra::Article.article_types_for_select.each do |at|
5
5
  if Goldencobra::Articletype.find_by_name(at).blank?
6
6
  Goldencobra::Articletype.create(:name => at, :default_template_file => "application")
7
+ puts "Default Articletype created for #{at}"
7
8
  end
8
9
  end
9
- Goldencobra::Articletype.scoped.each do |at|
10
- #install Basik set of Fieldgroups and Fields if no one is set up
11
- if !at.fieldgroups.any?
12
- a1 = at.fieldgroups.create(:title => "Allgemein", :position => "first_block", :foldable => false, :closed => false, :expert => false, :sorter => 1)
13
- a1.fields.create(:fieldname => "title", :sorter => 1)
14
- a1.fields.create(:fieldname => "content", :sorter => 2)
15
- a1.fields.create(:fieldname => "teaser", :sorter => 3)
16
- a1.fields.create(:fieldname => "tag_list", :sorter => 4)
17
- a1.fields.create(:fieldname => "frontend_tag_list", :sorter => 5)
18
- a1.fields.create(:fieldname => "active", :sorter => 6)
10
+ if ActiveRecord::Base.connection.table_exists?("goldencobra_articletype_groups")
11
+ Goldencobra::Articletype.scoped.each do |at|
12
+ #install Basik set of Fieldgroups and Fields if no one is set up
13
+ if !at.fieldgroups.any?
14
+ a1 = at.fieldgroups.create(:title => "Allgemein", :position => "first_block", :foldable => false, :closed => false, :expert => false, :sorter => 1)
15
+ a1.fields.create(:fieldname => "title", :sorter => 1)
16
+ a1.fields.create(:fieldname => "content", :sorter => 2)
17
+ a1.fields.create(:fieldname => "teaser", :sorter => 3)
18
+ a1.fields.create(:fieldname => "tag_list", :sorter => 4)
19
+ a1.fields.create(:fieldname => "frontend_tag_list", :sorter => 5)
20
+ a1.fields.create(:fieldname => "active", :sorter => 6)
19
21
 
20
- a2 = at.fieldgroups.create(:title => "Weiterer Inhalt", :position => "last_block", :foldable => true, :closed => true, :expert => false, :sorter => 2)
21
- a2.fields.create(:fieldname => "subtitle", :sorter => 1)
22
- a2.fields.create(:fieldname => "context_info", :sorter => 2)
23
- a2.fields.create(:fieldname => "summary", :sorter => 3)
22
+ a2 = at.fieldgroups.create(:title => "Weiterer Inhalt", :position => "last_block", :foldable => true, :closed => true, :expert => false, :sorter => 2)
23
+ a2.fields.create(:fieldname => "subtitle", :sorter => 1)
24
+ a2.fields.create(:fieldname => "context_info", :sorter => 2)
25
+ a2.fields.create(:fieldname => "summary", :sorter => 3)
24
26
 
25
- a3 = at.fieldgroups.create(:title => "Metadescriptions", :position => "last_block", :foldable => true, :closed => true, :expert => true, :sorter => 3)
26
- a3.fields.create(:fieldname => "metatags", :sorter => 1)
27
+ a3 = at.fieldgroups.create(:title => "Metadescriptions", :position => "last_block", :foldable => true, :closed => true, :expert => true, :sorter => 3)
28
+ a3.fields.create(:fieldname => "metatags", :sorter => 1)
27
29
 
28
- a4 = at.fieldgroups.create(:title => "Einstellungen", :position => "last_block", :foldable => true, :closed => true, :expert => true, :sorter => 4)
29
- a4.fields.create(:fieldname => "breadcrumb", :sorter => 1)
30
- a4.fields.create(:fieldname => "url_name", :sorter => 2)
31
- a4.fields.create(:fieldname => "parent_id", :sorter => 3)
32
- a4.fields.create(:fieldname => "canonical_url", :sorter => 4)
33
- a4.fields.create(:fieldname => "active_since", :sorter => 5)
34
- a4.fields.create(:fieldname => "enable_social_sharing", :sorter => 6)
35
- a4.fields.create(:fieldname => "robots_no_index", :sorter => 7)
36
- a4.fields.create(:fieldname => "cacheable", :sorter => 8)
37
- a4.fields.create(:fieldname => "commentable", :sorter => 9)
38
- a4.fields.create(:fieldname => "dynamic_redirection", :sorter => 10)
39
- a4.fields.create(:fieldname => "external_url_redirect", :sorter => 11)
40
- a4.fields.create(:fieldname => "redirect_link_title", :sorter => 12)
41
- a4.fields.create(:fieldname => "redirection_target_in_new_window", :sorter => 13)
42
- a4.fields.create(:fieldname => "author", :sorter => 14)
30
+ a4 = at.fieldgroups.create(:title => "Einstellungen", :position => "last_block", :foldable => true, :closed => true, :expert => true, :sorter => 4)
31
+ a4.fields.create(:fieldname => "breadcrumb", :sorter => 1)
32
+ a4.fields.create(:fieldname => "url_name", :sorter => 2)
33
+ a4.fields.create(:fieldname => "parent_id", :sorter => 3)
34
+ a4.fields.create(:fieldname => "canonical_url", :sorter => 4)
35
+ a4.fields.create(:fieldname => "active_since", :sorter => 5)
36
+ a4.fields.create(:fieldname => "enable_social_sharing", :sorter => 6)
37
+ a4.fields.create(:fieldname => "robots_no_index", :sorter => 7)
38
+ a4.fields.create(:fieldname => "cacheable", :sorter => 8)
39
+ a4.fields.create(:fieldname => "commentable", :sorter => 9)
40
+ a4.fields.create(:fieldname => "dynamic_redirection", :sorter => 10)
41
+ a4.fields.create(:fieldname => "external_url_redirect", :sorter => 11)
42
+ a4.fields.create(:fieldname => "redirect_link_title", :sorter => 12)
43
+ a4.fields.create(:fieldname => "redirection_target_in_new_window", :sorter => 13)
44
+ a4.fields.create(:fieldname => "author", :sorter => 14)
43
45
 
44
- a5 = at.fieldgroups.create(:title => "Zugriffsrechte", :position => "last_block", :foldable => true, :closed => true, :expert => true, :sorter => 5)
45
- a5.fields.create(:fieldname => "permissions", :sorter => 1)
46
+ a5 = at.fieldgroups.create(:title => "Zugriffsrechte", :position => "last_block", :foldable => true, :closed => true, :expert => true, :sorter => 5)
47
+ a5.fields.create(:fieldname => "permissions", :sorter => 1)
46
48
 
47
- a6 = at.fieldgroups.create(:title => "Medien", :position => "last_block", :foldable => true, :closed => true, :expert => false, :sorter => 6)
48
- a6.fields.create(:fieldname => "article_images", :sorter => 1)
49
- puts "Default Fieldoptions recreated for #{at.name}"
49
+ a6 = at.fieldgroups.create(:title => "Medien", :position => "last_block", :foldable => true, :closed => true, :expert => false, :sorter => 6)
50
+ a6.fields.create(:fieldname => "article_images", :sorter => 1)
51
+ puts "Default Fieldoptions recreated for #{at.name}"
52
+ end
50
53
  end
51
54
  end
52
55
  end
@@ -1,3 +1,5 @@
1
+ # encoding: utf-8
2
+
1
3
  # Use this hook to configure devise mailer, warden hooks and so forth.
2
4
  # Many of these configuration options can be set straight in your model.
3
5
  require 'openid/store/filesystem'
@@ -134,7 +136,7 @@ Devise.setup do |config|
134
136
 
135
137
  # Number of authentication tries before locking an account if lock_strategy
136
138
  # is failed attempts.
137
- config.maximum_attempts = 20
139
+ config.maximum_attempts = 8
138
140
 
139
141
  # Time interval to unlock the account if :time is enabled as unlock_strategy.
140
142
  config.unlock_in = 1.hour
@@ -1,3 +1,5 @@
1
+ # encoding: utf-8
2
+
1
3
  module HttpValidator
2
4
  def web_url(*attr_names)
3
5
  include InstanceMethods
@@ -9,8 +11,14 @@ module HttpValidator
9
11
  module InstanceMethods
10
12
  def rewrite_web_url
11
13
  self.url_attribute_names_to_check.each do |attr_name|
12
- if self.respond_to?(attr_name) && self.send(attr_name).present? && self.send(attr_name)[0..6] != "http://"
14
+ if self.respond_to?(attr_name) && self.send(attr_name).present? && self.send(attr_name)[0..7] == "https://"
15
+ self.send("#{attr_name.to_s}=", "#{self.send(attr_name)}")
16
+ elsif self.respond_to?(attr_name) && self.send(attr_name).present? && self.send(attr_name)[0..6] == "http://"
17
+ self.send("#{attr_name.to_s}=", "#{self.send(attr_name)}")
18
+ elsif self.send(attr_name).present?
13
19
  self.send("#{attr_name.to_s}=", "http://#{self.send(attr_name)}")
20
+ else
21
+ self.send("#{attr_name.to_s}=", "#{self.send(attr_name)}")
14
22
  end
15
23
  end
16
24
  end
@@ -19,4 +27,3 @@ module HttpValidator
19
27
  end
20
28
 
21
29
  ActiveRecord::Base.extend HttpValidator
22
-
@@ -22,7 +22,7 @@ class PartialRenderer < Liquid::Tag
22
22
 
23
23
  def render(context)
24
24
  @options = @options.merge(:context => context)
25
- ActionController::Base.new.render_to_string(:partial => @partial_name, :layout => false, :locals => @options )
25
+ ActionController::Base.new.render_to_string(:partial => @partial_name, :layout => false, :locals => @options)
26
26
  end
27
27
  end
28
28
 
@@ -36,7 +36,7 @@ class DomainUrl < Liquid::Tag
36
36
  end
37
37
 
38
38
  def self.usage
39
- "{% domain %} => www.xyz.de/url_prefix"
39
+ "{%domain%} => www.xyz.de/url_prefix"
40
40
  end
41
41
 
42
42
  def initialize(tag_name, message, tokens)
@@ -21,9 +21,30 @@ de:
21
21
  name: "Name"
22
22
  list: "auflisten"
23
23
  create: "erstellen"
24
+ manage:
25
+ admin_article_management_content:
26
+ link1: "abmelden"
27
+ link1_text: "Artikel im Backend bearbeiten"
28
+ link2: "Artikel offline stellen"
29
+ confirm2: "Seite offline schalten?"
30
+ link3: "Artikel online stellen"
31
+ confirm3: "Seite online schalten?"
32
+ sessions:
33
+ login:
34
+ link1: "abmelden"
35
+ label_email: "E-Mail Adresse"
36
+ label_password: "Passwort"
37
+ submit: "Login"
38
+ register:
39
+ label_email: "E-Mail Adresse *"
40
+ label_username: 'Benutzername *'
41
+ label_password: 'Passwort *'
42
+ label_pass_confirmation: 'Passwort bestätigen *'
43
+ div: "Ich akzeptiere die AGB & Datenschutzbestimmungen *"
44
+ submit: "Registrieren"
24
45
  active_admin:
25
- menue:
26
- settings: "Einstellungen"
46
+ redirector:
47
+ as: "Weiterleitungen"
27
48
  dashboard: Übersicht
28
49
  dashboard_welcome:
29
50
  welcome: "Willkommen in Active Admin. Dies ist die Standard-Übersichtsseite."
@@ -103,14 +124,499 @@ de:
103
124
  selection_toggle_explanation: "(Auswahl umkehren)"
104
125
  link: "Erstelle eins"
105
126
  comments:
127
+ as: "Kommentare"
128
+ title: "Bearbeiten"
129
+ title0: "Löschen"
130
+ show: "Anzeigen"
131
+ delete_comment: "Kommentar löschen?"
106
132
  body: "Inhalt"
107
133
  author: "Autor"
108
134
  title: "Kommentar"
109
- resource: "Resource"
135
+ resource: "Ressource"
110
136
  add: "Kommentar hinzufügen"
111
137
  no_comments_yet: "Es gibt noch keine Kommentare."
112
138
  title_content: "Kommentare (%{count})"
113
139
  errors:
114
140
  empty_text: "Der Kommentar wurde nicht gespeichert, da der Text fehlt."
141
+ settings:
142
+ as: "Webseiten-Einstellungen"
143
+ scope: "Alle Webseiten-Einstellungen"
144
+ action_item:
145
+ link: "Undo"
146
+ form:
147
+ general: "Allgemein"
148
+ notice:
149
+ undid_event: "Rückgängig:"
115
150
  articles:
151
+ as: "Artikel"
152
+ parent: "Content-Management"
116
153
  tag-select-placeholder: "Tag wählen"
154
+ filter:
155
+ default1: "Elternelement"
156
+ default2: "Artikeltyp"
157
+ default3: "Titel"
158
+ default4: "Filterkriterium"
159
+ default5: "Interne Tags"
160
+ default6: "Website"
161
+ default7: "Erstellt"
162
+ default8: "Bearbeitet"
163
+ scope1: "Alle"
164
+ scope2: "Online"
165
+ scope3: "Offline"
166
+ form:
167
+ general: "Allgemein"
168
+ title_label: "Titel"
169
+ label_hint: "Der Titel/die Überschrift des Artikels/der Seite, hier können Leerzeichen und Sonderzeichen verwendet werden"
170
+ content_label: "Haupt-Textfeld"
171
+ teaser_hint: "Dieser Text beschreibt den Artikel auf Übersichtsseiten kurz, außerdem wird er für die Beschreibung bei Google & Facebook genutzt"
172
+ tag_list_label: "Liste von internen Tags"
173
+ tag_list_hint: "Tags sind komma-getrennte Werte, mit denen sich ein Artikel intern gruppiern l&auml;sst"
174
+ frontent_tag_list_label: "Filterkriterium"
175
+ frontent_tag_list_hint: "Hier eingetragene Begriffe werden auf Übersichtsseiten als Filteroptionen angeboten."
176
+ active_label: "Aktiv?"
177
+ active_hint: "Soll dieser Artikel im System aktiv und online sichtbar sein?"
178
+ weiterer_inhalt: "Weiterer Inhalt"
179
+ subtitle_label: "Untertitel"
180
+ context_info_hint: "Dieser Text ist für eine Sidebar gedacht"
181
+ summary_label: "Zusammenfassung"
182
+ summary_hint: "Dient einer zusammenfassenden Einleitung in den Haupttext und wird hervorgehoben dargestellt"
183
+ metadescriptions: "Metadescriptions"
184
+ name_label: "Art"
185
+ name_hint: "Hier können Sie die verschiedenen Metatags definieren, sowie alle Einstellungen für den OpenGraph vonehmen"
186
+ value_label: "Wert"
187
+ destroy_label: "Entfernen/Zurücksetzen"
188
+ destroy_hint: "Hiermit werden die Werte entfernt bzw. auf ihren Ursprung zurückgesetzt"
189
+ settings: "Einstellungen"
190
+ breadcrump_label: "Breadcrumb-Titel"
191
+ breadcrump_hint: "Kurzer Titel für die Breadcrumb-Navigation"
192
+ url_name_label: "Website-Adresse des Artikels"
193
+ url_name_hint: "Nicht mehr als 64 Zeichen, sollte keine Umlaute, Sonderzeichen oder Leerzeichen enthalten. Wenn die Seite unter 'http://meine-seite.de/mein-artikel' erreichbar sein soll, tragen Sie hier 'mein-artikel' ein."
194
+ parent_id_label: "Übergeordneter Artikel"
195
+ parent_id_hint: "Auswahl des Artikels, der in der Seitenstruktur _oberhalb_ liegen soll. Beispiel: http://www.meine-seite.de/der-oberartikel/mein-artikel"
196
+ canonical_url_label: "Canonical URL"
197
+ canonical_url_hint: "Falls auf dieser Seite Inhalte erscheinen, die vorher schon auf einer anderen Seite erschienen sind, sollte hier die URL der Quellseite eingetragen werden, um von Google nicht für doppelten Inhalt abgestraft zu werden"
198
+ active_since_label: "Online seit"
199
+ active_since_hint: "Wenn der Artikel online ist, seit wann ist er online? Bsp: 02.10.2011 15:35"
200
+ enable_social_sharing_label: "'Social Sharing'-Aktionen anzeigen"
201
+ enable_social_sharing_hint: "Sollen Besucher Aktionen angezeigt bekommen, um diesen Artikel in den sozialen Netzwerken zu verbreiten?"
202
+ robots_no_index_label: "Artikel nicht durch Suchmaschinen finden lassen"
203
+ robots_no_index_hint: "Um bei Google nicht in Konkurrenz zu anderen wichtigen Einzelseiten der eigenen Webseite zu treten, kann hier Google mitgeteilt werden, diese Seite nicht zu indizieren"
204
+ cacheable_label: "Artikel cachebar"
205
+ cacheable_hint: "Dieser Artikel darf im Cache liegen"
206
+ commentable_label: "Artikel kommentierbar"
207
+ commentable_hint: "Kommentarfunktion für diesen Artikel aktivieren?"
208
+ dynamic_redirection_label: "Automatische Weiterleitung"
209
+ external_url_redirect_label: "Weiterleitung zu externer URL"
210
+ redirect_link_title_label: "Name des externen Links"
211
+ redirection_target_in_new_window_label: "Weiterleitung in neuem Fenster öffnen?"
212
+ author_label: "Autor"
213
+ author_hint: "Wer ist der Verfasser dieses Artikels?"
214
+ access_rights: "Zugriffsrechte"
215
+ role: "Alle"
216
+ media: "Medien"
217
+ JS_scripts: "JS-Scripts"
218
+ views:
219
+ article_type:
220
+ input: "test"
221
+ image_module_sidebar:
222
+ h5: "Bildergalerie einfügen"
223
+ p: "Alle Bilder, die mit folgenden Tags versehen sind, sollen angezeigt werden"
224
+ placeholder: "Tags auswählen"
225
+ type_p: "Darstellung auf der Webseite wählen"
226
+ tag1: "Bild"
227
+ tag2: "Bilder"
228
+ submit: "Bilder auswählen"
229
+ layout_sidebar:
230
+ h5: "Artikel-Seitentyp:"
231
+ submit: "Artikeltyp zuweisen"
232
+ link_checker:
233
+ h5: "Hier haben Sie die Möglichkeit alle Links dieses Artikels auf Funktionalität zu überprüfen."
234
+ h4: "Alle Links sind in Ordnung!"
235
+ status: "Status: "
236
+ link: "Links jetzt überprüfen"
237
+ link_checker_index:
238
+ link1: "Artikel"
239
+ link2: "bearbeiten"
240
+ select_article_type:
241
+ label_type: "Artikeltyp"
242
+ label_title: "Titel"
243
+ hint_title: "Der Titel/die Überschrift des Artikels/der Seite, hier können Leerzeichen und Sonderzeichen verwendet werden"
244
+ label_short: "Kurzer Titel"
245
+ hint_short: "Wird in der URL, für den Breadcrumb-Pfad und im Meta-Title der Seite verwendet, maximal 70 Zeichen"
246
+ label_text: "Haupt-Textfeld"
247
+ hint_text: "Das Haupt-Textfeld wird für den kompletten Inhalt ihrer Seite verwendet"
248
+ hint_teaser: "Dieser Text beschreibt den Artikel auf &Uuml;bersichtsseiten kurz, außerdem wird er für die Beschreibung bei Google & Facebook genutzt"
249
+ label_tags: "Liste von internen Tags"
250
+ hint_tags: "Tags sind komma-getrennte Werte, mit denen sich ein Artikel intern gruppiern l&auml;sst"
251
+ label_filter: "Filterkriterium"
252
+ hint_filter: "Hier eingetragene Begriffe werden auf &Uuml;bersichtsseiten als Filteroptionen angeboten"
253
+ sort_articles_index:
254
+ inputs: "Manuell Index Sorting"
255
+ toggle_expert_mode:
256
+ text1: "Deactivate Expert-Modus"
257
+ text2: "Activate Expert-Modus"
258
+ widgets_sidebar:
259
+ h5: "Folgende Schnipsel werden zusätzlich zu den Standard-Schnipseln angezeigt"
260
+ position: "Position: "
261
+ index:
262
+ website_title: "Website-Titel"
263
+ website_url: "Website-Adresse"
264
+ active: "Aktiv?"
265
+ article_type: "Artikeltyp"
266
+ permission: "Zugriff"
267
+ default: "Standard"
268
+ restricted: "<span class='secured'>beschränkt</span>"
269
+ list_menu: "Menüpunkte auflisten"
270
+ create_menu: "Menüpunkt zum Artikel erzeugen"
271
+ article_preview: "Vorschau des Artikels"
272
+ article_edit: "Artikel bearbeiten"
273
+ create_subarticle: "Neuen Unterartikel erstellen"
274
+ delete_article: "Artikel löschen"
275
+ views:
276
+ inputs: "Übersichtsoptionen"
277
+ label1: "Übersicht von Artikeln im Verzeichnis"
278
+ hint1: "Alle Artikel unterhalb dieses Artikels werden aufgelistet, exklusive diesem selbst"
279
+ label2: "Seiten"
280
+ hint2: "Welche Seiten sollen auf der Übersicht angezeigt werden?"
281
+ sidebar:
282
+ h5: "Es existieren bereits passende Menüpunkte zu diesem Artikel"
283
+ seo_link: "SEO-Ansicht"
284
+ new_sub_article: "Unterartikel erstellen"
285
+ div_link: "Sie können diese hier auflisten"
286
+ div_link1: "einen weiteren Menüpunkt erstellen"
287
+ h5_1: "Es existiert noch kein Menüpunkt zu diesem Artikel"
288
+ div_link2: "Einen passenden Menüpunkt erstellen"
289
+ h5_achtung: "ACHTUNG!!! Es gibt"
290
+ h5_achtung2: "anderen Artikel"
291
+ h5_achtung3: "andere Artikel"
292
+ h5_achtung4: "mit dieser URL:"
293
+ member_action:
294
+ flash:
295
+ article_online: "Dieser Artikel ist nun online"
296
+ article_offline: "Dieser Artikel ist nun offline"
297
+ widgets: "Widgets added"
298
+ link_checker: "Die Links dieses Artikels werden überprüft. Bitte warten Sie, dies kann wenige Minuten in Anspruch nehmen."
299
+ batch_action:
300
+ cache: "Cache leeren: sind Sie sicher?"
301
+ flash:
302
+ cache: "Cache wurde erneuert"
303
+ set_article_online: "Artikel wurden online gestellt"
304
+ set_article_offline: "Artikel wurden offline gestellt"
305
+ confirm_online: "Artikel online stellen: sind Sie sicher?"
306
+ confirm_offline: "Artikel offline stellen: sind Sie sicher?"
307
+ action_item:
308
+ link_to:
309
+ article_preview: "Vorschau zu diesem Artikel anzeigen"
310
+ expert_modus: "Expert-Modus"
311
+ deactivate: "deaktivieren"
312
+ activate: "aktivieren"
313
+ import: "Import"
314
+ undo: "rückgängig"
315
+ dashboards:
316
+ article_section: "Neueste Artikel"
317
+ title1: "Vorschau des Artikels"
318
+ title2: "Artikel bearbeiten"
319
+ title3: "Neuen Unterartikel erstellen"
320
+ widget_section: "Neueste Schnipsel"
321
+ vita_steps: "Vita Step Errors"
322
+ title4: "Schnipsel bearbeiten"
323
+ new_link: "Neuen Artikel erstellen"
324
+ domains:
325
+ form:
326
+ hint: "Diese Domain wird als Hauptdomain eingerichtet, alle Canonical URLS haben diesen Prefix"
327
+ imports:
328
+ link_to:
329
+ start_import: "Starte Import"
330
+ edit: "Bearbeiten"
331
+ delete: "Löschen"
332
+ allocation: "Zuweisungen"
333
+ edit_import: "Import bearbeiten"
334
+ title:
335
+ start_import: "Starte Import"
336
+ edit: "Bearbeiten"
337
+ delete: "Löschen"
338
+ form:
339
+ select_file: "Datei auswählen"
340
+ upload: "Hochladen"
341
+ csv_file: "CSV Datei"
342
+ hint: "Aktuell ausgewählte Datei:"
343
+ flash:
344
+ member_action:
345
+ run: "Dieser Import wurde gestartet"
346
+ linkcheck_articles:
347
+ link_to:
348
+ run: "Link Checker ausführen"
349
+ menues:
350
+ as: "Menüpunkte"
351
+ parent: "Content-Management"
352
+ active: "Aktiv"
353
+ inactive: "Nicht aktiv"
354
+ labels:
355
+ title: "Titel"
356
+ target: "Ziel"
357
+ css_class: "CSS-Klassen"
358
+ sorter: "Sortiernummer"
359
+ form:
360
+ generals:
361
+ general: "Allgemein"
362
+ title: "Titel"
363
+ title_hint: "Titel des Menüpunktes, der auf der Seite erscheint"
364
+ target: "Ziel"
365
+ target_hint: "Wohin soll der Menüpunkt führen? Wenn der Punkt zu 'http://meine-seite.de/mein-artikel' führen soll, tragen Sie hier 'mein-artikel' ein. Sollte keine Umlaute, Sonderzeichen oder Leerzeichen enthalten"
366
+ parent_id: "Übergeordneter Menüpunkt"
367
+ parent_id_hint: "Unter welchem Menüpunkt soll der aktuelle Punkt erscheinen?"
368
+ options:
369
+ class: "foldable closed inputs"
370
+ option: "Optionen"
371
+ sorter_label: "Sortiernummer"
372
+ sorter_hint: "Nach dieser Nummer wird innerhalb des Menüs sortiert, je höher, desto weiter unten in der Reihenfolge"
373
+ checkbox_label: "Sichtbar?"
374
+ checkbox_hint: "Soll dieser Menüpunkt auf der Seite sichtbar sein?"
375
+ css_class_label: "CSS-Klassen"
376
+ css_class_hint: "Styleklassen für den Menüpunkt per Leerzeichen getrennt - Besonderheit: 'hidden' macht den Menüpunkt unsichtbar"
377
+ active_label: "Aktiv?"
378
+ active_hint: "Soll dieser Menüpunkt im System aktiv und online sichtbar sein?"
379
+ remote_label: "Remote?"
380
+ remote_hint: "Soll dieser Menüpunkt per Ajax abgesendet werden?"
381
+ access:
382
+ access_rights: "Zugriffsrechte"
383
+ include_blank: "Alle"
384
+ details: "Details für ein erweitertes Menü"
385
+ image_label: "Bild"
386
+ image_hint: "Bereits hochgeladenes Bild aus der Medienliste wählen"
387
+ details_description_title: "Titel"
388
+ details_decription_label: "Beschreibung"
389
+ details_description_call_to_action: "Call-to-action Text"
390
+ index:
391
+ column: "Titel"
392
+ title: "Menüpunkt bearbeiten"
393
+ column1: "Ziel"
394
+ column2: "Aktiv?"
395
+ column3: "Sortieren"
396
+ column4: "Zugriff"
397
+ column5: "Artikel"
398
+ search_link: "search"
399
+ search_class: "list"
400
+ search_title: "Artikel auflisten"
401
+ search_link1: "create one"
402
+ search_class1: "create"
403
+ search_title1: "Artikel passend zum Menüpunkt erzeugen"
404
+ column:
405
+ edit: "Edit"
406
+ edit_title: "Menüpunkt bearbeiten"
407
+ submenu: "New Submenu"
408
+ submenu_class1: "new_subarticle"
409
+ submenu_title: "Neuen Untermenüpunkt erzeugen"
410
+ delete: "Delete"
411
+ delete_confirm: "Menüpunkt wirklich löschen?"
412
+ delete_title: "Menüpunkt löschen"
413
+ sidebar:
414
+ link_name: "title"
415
+ url_path: "menue"
416
+ order_by: "title"
417
+ batch_action:
418
+ confirm: "Menüpunkt offline stellen: sind Sie sicher?"
419
+ flash: "Menüpunkte wurden offline gestellt"
420
+ confirm1: "Menüpunkt online stellen: sind Sie sicher?"
421
+ flash1: "Menüpunkte wurden online gestellt"
422
+ confirm_clone: "Dieses Menü klonen?"
423
+ title_clone: "Klon von:"
424
+ flash_clone: "Menü wurde geklont"
425
+ member_action:
426
+ notice: "Rückgängig:"
427
+ action_item:
428
+ link_to: "rückgängig"
429
+ permissions:
430
+ as: "Zugriffsrechte"
431
+ scope: "Alle"
432
+ index:
433
+ column: "Role"
434
+ title_edit: "bearbeiten"
435
+ confirm: "Kommentar löschen?"
436
+ title_delete: "löschen"
437
+ form:
438
+ include_blank: "Alle"
439
+ sidebar:
440
+ sidebar: "Sortierung / Gewichtung"
441
+ sidebar_info: "je Höher die Zahl desto wichtiger ist das Zugriffsrecht: <b>10 ist wichtiger als 1</b>. <br/> Ist zu einer Rolle ein Model nicht definiert, so beitzt diese Rolle standardmäßig alle Rechte an diesem Model"
442
+ roles:
443
+ as: "Benutzerrollen"
444
+ seo_articles:
445
+ as: "SEO-Article"
446
+ scope1: "Alle"
447
+ scope2: "online"
448
+ scope3: "offline"
449
+ scope4: "keine Title-Tags"
450
+ scope5: "keine Meta-Description"
451
+ index:
452
+ title_column: "Titel"
453
+ tag_column: "Title Tag"
454
+ meta_column: "Meta Description"
455
+ search_column: "Suchmaschinen gesperrt"
456
+ search_column_yes: "Ja"
457
+ search_column_no: "Nein"
458
+ links_column: "Links"
459
+ active_online: "online"
460
+ active_offline: "offline"
461
+ column:
462
+ title1: "Vorschau"
463
+ title2: "bearbeiten"
464
+ title3: "Neuer Unterartikel"
465
+ title4: "löschen"
466
+ collection_flash: "Alle Links werden gecheckt. Dies kann meherere Minuten dauern."
467
+ action_link: "Link Checker index"
468
+ action_link1: "Link Checker ausführen"
469
+ supports:
470
+ label: "Live Support"
471
+ panel: "Support Anfrage"
472
+ h3: "Anleitung"
473
+ para1: "So fordern Sie Hilfe an: ..."
474
+ para_raw: Hilfe Anfordern!
475
+ para2: "Dieser Service wird unterstüzt von https://togetherjs.com"
476
+ translations:
477
+ as: "Übersetzungen"
478
+ all: "Alle"
479
+ general: "Allgemein"
480
+ uploads:
481
+ as: "Uploads/Medien"
482
+ file: "File"
483
+ file_hint: "Neues Bild hochladen für diese Ressource mit gleichem Dateinamen"
484
+ file_url_hint: "oder eine URL angeben, von der das Bild geladen werden soll"
485
+ content_type_hint: "z.B.: image/png, image/jpg, image/jpeg, application/pdf, application/octet-stream, ..."
486
+ preview: "Vorschau"
487
+ photo: "Bild beschneiden"
488
+ photo_hint: "Ausschnitt in der Vorschau selektieren vor dem Speichern"
489
+ data: "Dateiname"
490
+ general: "Allgemein"
491
+ general_hint: "Tags sind kommagetrennte Werte, mit denen sich ein Artikel verschlagworten l&auml;sst"
492
+ general_label: "Liste von Tags"
493
+ js: "JS-Scripts"
494
+ url: "url"
495
+ preview1: "preview"
496
+ tags: "Tags"
497
+ zip: "zip"
498
+ pack: "entpacken"
499
+ title1: "Vorschau"
500
+ title2: "bearbeiten"
501
+ title3: "löschen"
502
+ preview_row: "Vorschau"
503
+ original_row: "original"
504
+ format_original: "original => AxB>"
505
+ format_large: "large => 900x900>"
506
+ format_big: "big => 600x600>"
507
+ format_medium: "medium => 300x300>"
508
+ format_px250: "px250 => 250x250>"
509
+ format_px200: "px200 => 200x200>"
510
+ format_px150: "px150 => 150x150>"
511
+ format_thumb: "thumb => 100x100>"
512
+ format_mini: "mini => 50x50>"
513
+ unzip_notice: "File unzipped"
514
+ users:
515
+ as: "Benutzer"
516
+ general: "Allgemein"
517
+ hint1: "Freilassen, wenn das Passwort nicht geändert werden soll."
518
+ hint2: "Passwort bei Änderung hier erneut eingeben"
519
+ history: "Historie"
520
+ label1: "Eintrag"
521
+ label2: "Bearbeiter"
522
+ hint3: "Tragen Sie hier Ihren Namen ein, damit die Aktion zugeordnet werden kann"
523
+ user: "User"
524
+ visitors:
525
+ status: "Status"
526
+ status1: "entsperrt"
527
+ general: "Allgemein"
528
+ hint1: "Freilassen, wenn das Passwort nicht geändert werden soll."
529
+ hint2: "Passwort bei Änderung hier erneut eingeben"
530
+ hint3: "Artikel ID des Läufers/Bloggers"
531
+ status2: "gesperrt"
532
+ flash: "Dieser Account wurde"
533
+ yes_check: "Ja"
534
+ no_check: "Nein"
535
+ widget:
536
+ as: "Schnipsel"
537
+ parent: "Content-Management"
538
+ title: "Titel"
539
+ css_class: "CSS Klasse"
540
+ id: "ID Name"
541
+ sorter: "Sortiernummer"
542
+ scope1: "Alle"
543
+ scope2: "Aktiv"
544
+ scope3: "Nicht aktiv"
545
+ scope4: "Standards"
546
+ general: "Allgemein"
547
+ label1: "Titel"
548
+ label2: "Position"
549
+ label3: "Aktiv?"
550
+ label4: "Standard?"
551
+ hint1: "Name des Schnipsels"
552
+ hint2: "Name der Bezeichnung der Position im Seitenlayout"
553
+ hint3: "Soll dieses Schnipsel im System aktiv und online sichtbar sein?"
554
+ hint4: "Bestimmt, ob ein Schnipsel immer und auf jeder Seite angezeigt wird oder nicht"
555
+ layout_web: "Layout - Website"
556
+ label_web: "Haupt-Textfeld"
557
+ hint_web: "Inhalt des Schnipsels für die Website, auch HTML möglich"
558
+ layout_mobile: "Layout - Mobil"
559
+ label_mobile: "Mobil-Textfeld"
560
+ hint_mobile: "Alternativer Inhalt des Schnipsels für mobile Seiten, auch HTML möglich"
561
+ info: "Erweiterte Informationen"
562
+ label_info1: "Sortiernummer"
563
+ label_hint1: "Nach dieser Nummer wird sortiert, je höher, desto weiter unten in der Ansicht"
564
+ label_info2: "CSS Klassen"
565
+ label_hint2: "Styleklassen für den Menüpunkt per Leerzeichen getrennt - Besonderheit: 'hidden' macht den Menüpunkt unsichtbar"
566
+ label_info3: "ID Name"
567
+ label_hint3: "Eindeutige Bezeichnung dieses Elements innerhalb der Website"
568
+ label_info4: "Beschreibung"
569
+ label_hint4: "Interne Beschreibung dieses Schnipsels"
570
+ time: "Zeitsteuerung"
571
+ time_label1: "Zeitgesteuert?"
572
+ time_label2: "Startdatum"
573
+ time_label3: "Enddatum"
574
+ time_label4: "Tage, an denen alternativer Inhalt angezeigt werden soll"
575
+ time_hint1: 'Soll dieses Schnipsel zeitgesteuert sichtbar sein?'
576
+ time_hint2: "Ab diesem Datum wird das Schnipsel jeden Mo, Di, .. im Zeitraum von xx:xx Uhr bis xx:xx Uhr angezeigt. Wenn kein Datum angegeben ist, gilt die Zeitsteuerung an allen ausgewählten Tagen"
577
+ time_hint3: "Bis zu diesem Datum wird das Schnipsel jeden Mo, Di, .. im Zeitraum von xx:xx Uhr bis xx:xx Uhr angezeigt. Wenn kein Datum angegeben ist, gilt die Zeitsteuerung an allen ausgewählten Tagen"
578
+ access_rights: "Zugriffsrechte"
579
+ article: "Zugewiesene Artikel"
580
+ article_label: "Artikel"
581
+ article_hint: "Auswahl aller Artikel, auf denen das Schnipsel erscheint"
582
+ article_placeholder: "Bitte wählen"
583
+ title: "Titel"
584
+ title1: "Schnipsel bearbeiten"
585
+ position: "Position"
586
+ active: "Aktiv?"
587
+ online: "online"
588
+ offline: "offline"
589
+ sorternr: "Sortiernr"
590
+ standard: "Standard?"
591
+ css_classes: "CSS-Klassen"
592
+ yes: "Ja"
593
+ no: "Nein"
594
+ access: "Zugriff"
595
+ title_widget_edit: "Schnipsel bearbeiten"
596
+ title_widget_delete: "Schnipsel löschen"
597
+ widget: "Widget"
598
+ articles: "Articles"
599
+ revert_notice: "Rückgängig:"
600
+ undo: "Rückgängig"
601
+ duplicate: "Kopie erstellen"
602
+ success_duplicating_notice: "Schnipsel erfolgreich dupliziert"
603
+ error_duplicating_notice: "Entschuldigung, das Duplizieren des Schnipsels hat nicht funktioniert."
604
+ articletypes:
605
+ as: "Artikeltypen"
606
+ general: "Allgemein"
607
+ article_fields: "Artikelfelder"
608
+ position_hint: "Zwischen dem ersten und dem letzten Block kommen die speziellen Feldoptionen eines Artikeltypen"
609
+ foldable_hint: "Kann man den Bereich auf und zu klappen?"
610
+ closed_hint: "Ist der Bereich beim Laden geschlossen?"
611
+ expert_hint: "Ist der Bereich nur im Expertenmodus sichtbar?"
612
+ sorter_hint: "Sortiernummer/Position"
613
+ authors:
614
+ as: "Autoren"
615
+ shared:
616
+ views:
617
+ item:
618
+ link1: "bearbeiten"
619
+ title1: "Bearbeiten"
620
+ link2: "neu"
621
+ title2: "Neu"
622
+