goldencobra 1.4.0 → 1.4.27

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 (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
@@ -21,6 +21,9 @@
21
21
 
22
22
  module Goldencobra
23
23
  class Upload < ActiveRecord::Base
24
+
25
+ attr_accessor :crop_x, :crop_y, :crop_w, :crop_h, :crop_image, :image_url
26
+
24
27
  if ActiveRecord::Base.connection.table_exists?("goldencobra_uploads") &&
25
28
  ActiveRecord::Base.connection.table_exists?("goldencobra_settings")
26
29
  has_attached_file :image,
@@ -37,6 +40,39 @@ module Goldencobra
37
40
  has_many :imports, :class_name => Goldencobra::Import
38
41
  belongs_to :attachable, polymorphic: true
39
42
 
43
+ before_save :download_remote_image, :if => :image_url_provided?
44
+
45
+ before_save :crop_image_with_coords
46
+ def crop_image_with_coords
47
+ require 'RMagick'
48
+ # Should we crop?
49
+ if self.crop_image.present? && self.crop_image == "1" && self.crop_x.present? && self.crop_y.present? && self.crop_w.present? && self.crop_h.present?
50
+ scaled_img = Magick::ImageList.new(self.image.path(:large))
51
+ orig_img = Magick::ImageList.new(self.image.path(:original))
52
+ scale = orig_img.columns.to_f / scaled_img.columns
53
+
54
+ args = [ self.crop_x.to_i, self.crop_y.to_i, self.crop_w.to_i, self.crop_h.to_i ]
55
+ args = args.collect { |a| a.to_i * scale }
56
+
57
+ orig_img.crop!(*args)
58
+ orig_img.write(self.image.path(:original))
59
+ self.crop_image = false
60
+ self.image.reprocess!
61
+ end
62
+ end
63
+
64
+ #
65
+
66
+ # def crop_image_with_coords
67
+ # if self.crop_image.present? && self.crop_image == "1" && self.crop_x.present? && self.crop_y.present? && self.crop_w.present? && self.crop_h.present? && self.crop_image.present?
68
+ # orig_img = Magick::ImageList.new(self.image.path(:original))
69
+ # orig_img.crop(self.crop_x.to_i, self.crop_y.to_i, self.crop_w.to_i, self.crop_h.to_i)
70
+ # orig_img.write(self.image.path(:original))
71
+ # #self.image = File.open("tmp/cropped_image")
72
+ # #self.image.reprocess!
73
+ # end
74
+ # end
75
+
40
76
  def title
41
77
  "#{self.image_file_name} (#{self.image_content_type})"
42
78
  end
@@ -78,7 +114,30 @@ module Goldencobra
78
114
  #
79
115
  # Returns true for image or pdf files and false for everything else
80
116
  def image_file?
81
- !(self.image_content_type =~ /^image.*/).nil? || !(self.image_content_type =~ /pdf/).nil?
117
+ #debugger
118
+ if !(self.image_content_type =~ /^image.*/).nil?
119
+ return true
120
+ elsif !(self.image_content_type =~ /pdf/).nil?
121
+ return true
122
+ else
123
+ return false
124
+ end
125
+ end
126
+
127
+
128
+ private
129
+
130
+ def image_url_provided?
131
+ self.image_url.present?
132
+ end
133
+
134
+ def download_remote_image
135
+ require 'open-uri'
136
+ io = open(URI.parse(self.image_url))
137
+ self.image = io
138
+ self.image_file_name = io.base_uri.path.split('/').last
139
+ self.image_remote_url = self.image_url
140
+ rescue # catch url errors with validations instead of exceptions (Errno::ENOENT, OpenURI::HTTPError, etc...)
82
141
  end
83
142
 
84
143
  end
@@ -0,0 +1,58 @@
1
+ # encoding: utf-8
2
+
3
+ # # encoding: utf-8
4
+
5
+ # module Goldencobra
6
+ # class UrlBuilder
7
+ # def initialize(article, with_prefix=false)
8
+ # @article = article
9
+ # @with_prefix = with_prefix
10
+ # end
11
+
12
+ # def article_path
13
+ # if @article.is_startpage?
14
+ # remove_trailing_double_slashes("#{prefix}/")
15
+ # else
16
+ # "#{prefix}#{ancestry_path}"
17
+ # end
18
+ # end
19
+
20
+ # def absolute_base_url
21
+ # if Goldencobra::Setting.for_key("goldencobra.use_ssl") == "true"
22
+ # "https://#{Goldencobra::Setting.for_key('goldencobra.url')}"
23
+ # else
24
+ # "http://#{Goldencobra::Setting.for_key('goldencobra.url')}"
25
+ # end
26
+ # end
27
+
28
+ # def absolute_public_url
29
+ # if Goldencobra::Setting.for_key("goldencobra.use_ssl") == "true"
30
+ # "https://#{Goldencobra::Setting.for_key('goldencobra.url')}#{@article.article_path}"
31
+ # else
32
+ # "http://#{Goldencobra::Setting.for_key('goldencobra.url')}#{@article.article_path}"
33
+ # end
34
+ # end
35
+
36
+ # private
37
+
38
+ # def ancestry_path
39
+ # @article.path.select([:ancestry, :url_name, :startpage]).inject(String.new) do |string, article|
40
+ # unless article.startpage
41
+ # "#{string}#{article.url_name}/"
42
+ # end
43
+ # end
44
+ # end
45
+
46
+ # def prefix
47
+ # if @with_prefix
48
+ # "#{Goldencobra::Domain.current.try(:url_prefix)}/"
49
+ # else
50
+ # ''
51
+ # end
52
+ # end
53
+
54
+ # def remove_trailing_double_slashes(input)
55
+ # input.gsub(/\/\/$/,'/')
56
+ # end
57
+ # end
58
+ # end
@@ -12,6 +12,7 @@
12
12
  # description :text
13
13
  # created_at :datetime not null
14
14
  # updated_at :datetime not null
15
+ # status_cd :integer default 0
15
16
  #
16
17
 
17
18
  module Goldencobra
@@ -19,5 +20,8 @@ module Goldencobra
19
20
  belongs_to :loggable, :polymorphic => true
20
21
  attr_accessible :description, :title, :user_id
21
22
  acts_as_taggable_on :tags
23
+
24
+ as_enum :status, success: 0, warning: 1, error: 2
25
+
22
26
  end
23
27
  end
@@ -176,5 +176,15 @@ module Goldencobra
176
176
  end
177
177
  end
178
178
  end
179
+
180
+ def duplicate!
181
+ attrs = self.attributes
182
+ .delete_if{ |key| %w(id created_at updated_at).include?(key) }
183
+ attrs["title"] = "#{attrs["title"]} (Kopie)"
184
+ attrs["id_name"] = attrs["id_name"].present? ? "#{attrs["id_name"]}-kopie" : nil
185
+ attrs["active"] = false
186
+ new_widget = Goldencobra::Widget.create!(attrs)
187
+ new_widget ? new_widget.id : nil
188
+ end
179
189
  end
180
190
  end
@@ -77,7 +77,7 @@ class User < ActiveRecord::Base
77
77
  else
78
78
  r = "Sehr geehrte Frau"
79
79
  end
80
- r << " #{self.title}" if self.title.present?
80
+ #r << " #{self.title}" if self.title.present?
81
81
  r << " #{self.lastname}"
82
82
  end
83
83
  return r
@@ -1,4 +1,4 @@
1
- <% f.inputs "test", :class => "" do %>
1
+ <% f.inputs I18n.t('active_admin.articles.views.article_type.input'), :class => "" do %>
2
2
  <h3 class="goldencobra_article_article_type">
3
3
  <% if f.object.article_type.present? %>
4
4
  <%= I18n.t("#{f.object.article_type.parameterize}", scope: [:article_types]) %><%= " : #{f.object.public_url}" if f.object.title.present? %>
@@ -1,4 +1,4 @@
1
- <% f.inputs "Übersichtsoptionen", :class => "foldable inputs" do %>
2
- <% f.input :article_for_index_id, label: "Übersicht von Artikeln im Verzeichnis", :hint => "Alle Artikel unterhalb dieses Artikels werden aufgelistet, exklusive diesem selbst", :as => :select, :collection => Goldencobra::Article.all.map{|c| ["#{c.path.map(&:title).join(" / ")}", c.id]}.sort{|a,b| a[0] <=> b[0]}, :include_blank => "/", id: "article_event_articleindex_id", :input_html => { :class => 'chzn-select', :style => 'width: 70%;' } %>
3
- <% f.input :display_index_types, :label => "Seiten", :hint => "Welche Seiten sollen auf der Übersicht angezeigt werden?", :as => :select, :collection => Goldencobra::Article::DisplayIndexTypes, :include_blank => false %>
1
+ <% f.inputs I18n.t('active_admin.articles.index.views.inputs'), :class => "foldable inputs" do %>
2
+ <% f.input :article_for_index_id, label: I18n.t('active_admin.articles.index.views.label1'), :hint => I18n.t('active_admin.articles.index.views.hint1'), :as => :select, :collection => Goldencobra::Article.all.map{|c| ["#{c.path.map(&:title).join(" / ")}", c.id]}.sort{|a,b| a[0] <=> b[0]}, :include_blank => "/", id: "article_event_articleindex_id", :input_html => { :class => 'chzn-select', :style => 'width: 70%;' } %>
3
+ <% f.input :display_index_types, :label => I18n.t('active_admin.articles.index.views.label2'), :hint => I18n.t('active_admin.articles.index.views.hint2'), :as => :select, :collection => Goldencobra::Article::DisplayIndexTypes, :include_blank => false %>
4
4
  <% end %>
@@ -18,18 +18,30 @@
18
18
  <br/><br/>
19
19
  -->
20
20
 
21
- <h5>Bildergallery einfügen</h5>
22
- <p>Alle Bilder, die mit folgenden Tags versehen sind, sollen angezeigt werden</p>
21
+ <h5><%= I18n.t('active_admin.articles.views.image_module_sidebar.h5') %></h5>
22
+ <p><%= I18n.t('active_admin.articles.views.image_module_sidebar.p') %></p>
23
23
 
24
24
  <%= semantic_form_for ["admin", @article], :html => {:id => "goldencobra_article_image_gallery_tags"} do |f| %>
25
- <ul>
26
- <%= select_tag 'article[image_gallery_tags][]', options_for_select(Goldencobra::Upload.scoped.tag_counts_on(:tags).map{|tag| tag.name}, @article.image_gallery_tags.present? ? @article.image_gallery_tags.split(",") : []), :multiple => true, :class => "chzn-select", 'data-placeholder' => 'Tags auswählen' %>
27
- </ul>
25
+ <%= hidden_field_tag "article[image_gallery_tags][]", "", id: "article_image_gallery_tags_hidden" %>
26
+ <%= select_tag "article[image_gallery_tags][]", options_for_select(Goldencobra::Upload.scoped.tag_counts_on(:tags).map{|tag| tag.name}, @article.image_gallery_tags.present? ? @article.image_gallery_tags.split(",") : []), :multiple => true, :include_blank => true, :class => "chzn-select", "data-placeholder" => I18n.t('active_admin.articles.views.image_module_sidebar.placeholder') %>
28
27
 
29
28
  <% if @article.image_gallery_tags.present? %>
30
- <p><%= pluralize(Goldencobra::Upload.tagged_with(@article.image_gallery_tags).count, "Bild", "Bilder") %> ausgewählt</p>
29
+ <p>
30
+ <%= pluralize(Goldencobra::Upload.tagged_with(@article.image_gallery_tags).count, I18n.t('active_admin.articles.views.image_module_sidebar.tag1'), I18n.t('active_admin.articles.views.image_module_sidebar.tag2')) %> ausgewählt
31
+ </p>
31
32
  <% end %>
33
+ <br/>
34
+
35
+ <p>
36
+ <br/>
37
+ <%= I18n.t('active_admin.articles.views.image_module_sidebar.type_p') %>
38
+ </p>
39
+ <br/>
40
+ <%= select_tag 'article[image_gallery_type]', options_for_select(["lightbox", "slider"], @article.image_gallery_type), :include_blank => false %>
32
41
 
33
- <p><br/><%= f.submit "Bilder auswählen" %></p>
42
+ <p>
43
+ <br/>
44
+ <%= f.submit I18n.t('active_admin.articles.views.image_module_sidebar.submit') %>
45
+ </p>
34
46
  <% end %>
35
47
 
@@ -1,6 +1,6 @@
1
1
  <div class="layout-sidebar">
2
2
  <h5>
3
- Artikel-Seitentyp: <%= I18n.t(@article.article_type.split(' ').first.to_s.strip, :scope => [:goldencobra, :article_types], :default => @article.article_type.split(' ').first) %>
3
+ <%= I18n.t('active_admin.articles.views.layout_sidebar.h5')%> <%= I18n.t(@article.article_type.split(' ').first.to_s.strip, :scope => [:goldencobra, :article_types], :default => @article.article_type.split(' ').first) %>
4
4
  </h5>
5
5
  <% article_types = {} %>
6
6
  <% Goldencobra::Article.article_types_for_select.each do |article_type| %>
@@ -11,7 +11,7 @@
11
11
  <%= form_tag change_articletype_admin_article_path(@article.id) do %>
12
12
  <%= select_tag :new_article_type, options_for_select(article_types.sort, @article.article_type), :include_blank => false %>
13
13
  <br/><br/>
14
- <%= submit_tag "Artikeltyp zuweisen", id: "submit_widgets_partial" %>
14
+ <%= submit_tag I18n.t('active_admin.articles.views.layout_sidebar.submit'), id: "submit_widgets_partial" %>
15
15
  <% end %>
16
16
  <br/>
17
17
  <hr>
@@ -1,10 +1,10 @@
1
- <h5>Hier haben Sie die Möglichkeit alle Links dieses Artikels auf Funktionalität zu überprüfen.</h5>
1
+ <h5><%= I18n.t('active_admin.articles.views.link_checker.h5') %></h5>
2
2
 
3
3
  <% if @article.link_checker.present? && @article.link_checker.class == Hash %>
4
4
  <% status200er = @article.link_checker.select{|key,value| value.present? && value['response_code'] == "200"} %>
5
5
  <h2><%= @article.link_checker.count - status200er.count %>x Status 404,301... :</h2>
6
6
  <% if (@article.link_checker.count - status200er.count) == 0 %>
7
- <h4>Alle Links sind in Ordnung!</h4>
7
+ <h4><%= I18n.t('active_admin.articles.views.link_checker.h4') %></h4>
8
8
  <% end %>
9
9
  <ul>
10
10
  <% @article.link_checker.each do |key,values| %>
@@ -12,7 +12,7 @@
12
12
  <% next if values['response_code'] == "200" %>
13
13
  <li class="response_404">
14
14
  <%= key %><br/>
15
- Status: <%= values['response_code'] %> <%= values['response_error'] %>
15
+ I18n.t('active_admin.articles.views.link_checker.status') <%= values['response_code'] %> <%= values['response_error'] %>
16
16
  </li>
17
17
  <% end %>
18
18
  </ul>
@@ -29,4 +29,4 @@
29
29
  </ul>
30
30
  <% end %>
31
31
 
32
- <%= link_to "Links jetzt überprüfen", run_link_checker_admin_article_path(@article.id) %>
32
+ <%= link_to I18n.t('active_admin.articles.views.link_checker.link'), run_link_checker_admin_article_path(@article.id) %>
@@ -24,7 +24,7 @@
24
24
  <div class="link_checker_position">
25
25
  <%= source['position'] %>
26
26
  </div>
27
- <%= link_to "Artikel #{source['article_id']} bearbeiten", "/admin/articles/#{source['article_id']}/edit" %>
27
+ <%= link_to "#{I18n.t('active_admin.articles.views.link_checker_index.link1')} #{source['article_id']} #{I18n.t('active_admin.articles.views.link_checker_index.link2')}", "/admin/articles/#{source['article_id']}/edit %>
28
28
  </li>
29
29
  <% end %>
30
30
  </ul>
@@ -5,16 +5,16 @@
5
5
  article_types[translated_article_type.to_sym] = article_type
6
6
  end %>
7
7
 
8
- <%= f.inputs I18n.t(:selection, scope: [:articles]), :class => "foldable inputs" do
8
+ <%= f.inputs I18n.t(:selection, scope: [:articles]), :class => "inputs" do
9
9
  if article_types.count > 0
10
- f.input :article_type, :label => "Artikeltyp", :as => :select, :collection => article_types.sort, include_blank: true
10
+ f.input :article_type, :label => I18n.t('active_admin.articles.views.select_article_type.label_type'), :as => :select, :collection => article_types.sort, include_blank: true
11
11
  end
12
- f.input :title, :label => "Titel", :hint => "Der Titel/die Überschrift des Artikels/der Seite, hier können Leerzeichen und Sonderzeichen verwendet werden"
13
- f.input :breadcrumb, :label => "Kurzer Titel", :hint => "Wird in der URL, für den Breadcrumb-Pfad und im Meta-Title der Seite verwendet, maximal 70 Zeichen"
14
- f.input :content, :label => "Haupt-Textfeld", :hint => "Das Haupt-Textfeld wird für den kompletten Inhalt ihrer Seite verwendet", :input_html => { :class => "tinymce" }
15
- f.input :teaser, :hint => "Dieser Text beschreibt den Artikel auf &Uuml;bersichtsseiten kurz, außerdem wird er für die Beschreibung bei Google & Facebook genutzt", :input_html => { :rows => 5 }
16
- f.input :tag_list, :label => "Liste von internen Tags", :hint => "Tags sind komma-getrennte Werte, mit denen sich ein Artikel intern gruppiern l&auml;sst"
17
- f.input :frontend_tag_list, label: "Filterkriterium", hint: "Hier eingetragene Begriffe werden auf &Uuml;bersichtsseiten als Filteroptionen angeboten"
12
+ f.input :title, :label => I18n.t('active_admin.articles.views.select_article_type.label_title'), :hint => I18n.t('active_admin.articles.views.select_article_type.hint_title')
13
+ f.input :breadcrumb, :label => I18n.t('active_admin.articles.views.select_article_type.label_short'), :hint => I18n.t('active_admin.articles.views.select_article_type.hint_short')
14
+ f.input :content, :label => I18n.t('active_admin.articles.views.select_article_type.label_text'), :hint => I18n.t('active_admin.articles.views.select_article_type.hint_text'), :input_html => { :class => "tinymce" }
15
+ f.input :teaser, :hint => I18n.t('active_admin.articles.views.select_article_type.hint_teaser'), :input_html => { :rows => 5 }
16
+ f.input :tag_list, :label => I18n.t('active_admin.articles.views.select_article_type.label_tags'), :hint => I18n.t('active_admin.articles.views.select_article_type.hint_tags')
17
+ f.input :frontend_tag_list, label: I18n.t('active_admin.articles.views.select_article_type.label_filter'), hint: I18n.t('active_admin.articles.views.select_article_type.hint_filter')
18
18
  f.input :parent_id, :as => :hidden
19
19
  f.input :url_name, :as => :hidden
20
20
  end %>
@@ -1,4 +1,4 @@
1
- <% f.inputs "Manuell Index Sorting", :class => "foldable inputs" do %>
1
+ <% f.inputs I18n.t('active_admin.articles.views.sort_articles_index.inputs'), :class => "foldable inputs" do %>
2
2
  <% f.object.index_articles.each do |indexart| %>
3
3
  <%= f.input :manual_article_sort, :as => :number, :label => indexart.title %>
4
4
  <% end %>
@@ -1,9 +1,9 @@
1
1
  <div class="widget-sidebar">
2
- <h5>Folgende Schnipsel werden zusätzlich zu den Standard-Schnipseln angezeigt</h5>
2
+ <h5><%= I18n.t('active_admin.articles.views.widgets_sidebar.h5') %></h5>
3
3
  <%= form_tag update_widgets_admin_article_path(@article.id) do %>
4
4
  <ul>
5
5
  <% Goldencobra::Widget.tag_counts_on(:tags).each do |widget_tag| %>
6
- <li><b>Position: <%= widget_tag.name.capitalize %></b></li>
6
+ <li><b><%= I18n.t('active_admin.articles.views.widgets_sidebar.position') %> <%= widget_tag.name.capitalize %></b></li>
7
7
  <% Goldencobra::Widget.active.not_default.tagged_with(widget_tag).each do |w| %>
8
8
  <li><%= check_box_tag("widget_ids[]", "#{w.id}", @article.widget_ids.include?(w.id), :id => "widget_#{w.id}" ) %>&nbsp;<%= w.title %></li>
9
9
  <% end %>
@@ -1,7 +1,7 @@
1
1
  <% if enabled %>
2
- $('#expert-mode').text('Expert-Modus deaktivieren');
2
+ $('#expert-mode').text(I18n.t('active_admin.articles.views.toggle_expert_mode.text1'));
3
3
  <% else %>
4
- $('#expert-mode').text('Expert-Modus aktivieren');
4
+ $('#expert-mode').text(I18n.t('active_admin.articles.views.toggle_expert_mode.text2'));
5
5
  <% end %>
6
6
 
7
7
  $('.expert').toggle();
@@ -0,0 +1,14 @@
1
+ <div id="goldencobra_settings_wrapper">
2
+ <% Goldencobra::Setting.roots.each do |root| %>
3
+ <div class="settings_category">
4
+ <div class="settings_level">
5
+ <div class="settings_group_title">
6
+ <%= root.title.humanize %>
7
+ </div>
8
+ <div class="">
9
+ <%= render :partial => "/goldencobra/admin/settings/settings_group", :locals => {:settings => root.children} %>
10
+ </div>
11
+ </div>
12
+ </div>
13
+ <% end %>
14
+ </div>
@@ -0,0 +1,12 @@
1
+ <div class="setting_key_value">
2
+ <div class="setting_title">
3
+ <%= key_value.title.humanize %>
4
+ </div>
5
+ <div class="setting_value">
6
+ <% if key_value.value.blank? %>
7
+ <%= link_to "- nicht definiert -", edit_admin_setting_path(key_value) %>
8
+ <% else %>
9
+ <%= link_to key_value.value, edit_admin_setting_path(key_value), :title => "Test" %>
10
+ <% end %>
11
+ </div>
12
+ </div>
@@ -0,0 +1,14 @@
1
+ <% settings.sort{|a,b| a.children.count <=> b.children.count }.each do |child| %>
2
+ <% if child.children.blank? %>
3
+ <%= render :partial => "/goldencobra/admin/settings/key_value", :object => child %>
4
+ <% else %>
5
+ <div class="settings_level" style="padding-left: <%= child.depth * 10%>px;">
6
+ <div class="settings_group_title foldable">
7
+ <%= child.title.humanize %>
8
+ </div>
9
+ <div class="settings_sub_group">
10
+ <%= render :partial => "/goldencobra/admin/settings/settings_group", :locals => {:settings => child.children} %>
11
+ </div>
12
+ </div>
13
+ <% end %>
14
+ <% end %>
@@ -1,15 +1,17 @@
1
1
  <% exclude_list = ["tablerow", "assign", "break", "capture", "case", "comment", "continue", "cycle", "decrement", "for", "if", "ifchanged", "include", "increment", "raw", "unless"] %>
2
2
  <p>Folgende Funktionen können sie in Textfeldern verwenden um zusätzlichen Inhalt darzustellen</p>
3
3
  <ul>
4
- <% Liquid::Template.tags.each do |key,value| %>
5
- <% next if exclude_list.include?(key) %>
6
- <li><b><%= key %></b><br/>
7
- <% if value.respond_to?(:description) %>
8
- <%= value.description %><br/>
9
- <% end %>
10
- <% if value.respond_to?(:usage) %>
11
- Verwendung:<br/><%= value.usage %>
12
- <% end %>
13
- </li>
4
+ <% if false #defined?(Liquid::Template) == "constant" && defined?(Liquid::Template.tags) == "method" %>
5
+ <% Liquid::Template.tags.each do |key,value| %>
6
+ <% next if exclude_list.include?(key) %>
7
+ <li><b><%= key %></b><br/>
8
+ <% if value.respond_to?(:description) %>
9
+ <%= value.description %><br/>
10
+ <% end %>
11
+ <% if value.respond_to?(:usage) %>
12
+ Verwendung:<br/><%= value.usage %>
13
+ <% end %>
14
+ </li>
15
+ <% end %>
14
16
  <% end %>
15
17
  </ul>
@@ -1,4 +1,4 @@
1
- <li>
1
+ <li id="overview_item_<%= item.id %>">
2
2
  <div class="item">
3
3
  <% if item.children.count > 0 %>
4
4
  <div class="folder"></div>
@@ -11,12 +11,12 @@
11
11
  <% end %>
12
12
  <div class="title"><%= link_to item.send(link_name), eval("admin_#{url_path.pluralize}_path(:q => {:parent_ids_in => item.id})"), :title => "Pfad anzeigen" %></div>
13
13
  <div class="options">
14
- <%= link_to "edit", eval("edit_admin_#{url_path}_path(item)"), :class => "edit_link", :title => "Bearbeiten" %>
15
- <%= link_to "new", eval("new_admin_#{url_path}_path(:parent => item)"), :class => "new_link", :title => "Neu" %>
14
+ <%= link_to I18n.t('active_admin.shared.views.item.link1'), eval("edit_admin_#{url_path}_path(item)"), :class => "edit_link", :title => I18n.t('active_admin.shared.views.item.title1') %>
15
+ <%= link_to I18n.t('active_admin.shared.views.item.link2'), eval("new_admin_#{url_path}_path(:parent => item)"), :class => "new_link", :title => I18n.t('active_admin.shared.views.item.title2') %>
16
16
  </div>
17
17
  </div>
18
18
  <% if item.children %>
19
- <ul>
19
+ <ul style="display: none;">
20
20
  <% item.children.order(order_by.to_sym).each do |art|%>
21
21
  <%= render :partial => "/goldencobra/admin/shared/item", :object => art, :locals => {:link_name => link_name, :url_path => url_path, :order_by => order_by } %>
22
22
  <% end %>
@@ -1,8 +1,18 @@
1
1
  <% order_by ||= "id" %>
2
+ <% overview.order(order_by.to_sym).each do |root| %>
3
+ <script src="/admin/articles/load_overviewtree?order_by=<%= order_by %>&url_path=<%= url_path %>&link_name=<%= link_name %>&object_id=<%= root.id %>&object_class=<%= root.class.to_s %>" type="text/javascript" charset="utf-8" async defer></script>
4
+ <% end %>
2
5
  <div class="overview-sidebar">
3
- <ul>
4
- <% overview.order(order_by.to_sym).each do |root| %>
5
- <%= render :partial => "/goldencobra/admin/shared/item", :object => root, :locals => {:link_name => link_name, :url_path => url_path, :order_by => order_by } %>
6
- <% end %>
6
+ <ul id="overview-sidebar_list">
7
+ <% overview.order(order_by.to_sym).each do |root| %>
8
+ <li id="temp_list_item_<%= root.id %>">
9
+ <div class="item">
10
+ <div class="last_folder"></div>
11
+ <div class="title">
12
+ loading <%= root.send(link_name) %> ...
13
+ </div>
14
+ </div>
15
+ </li>
16
+ <% end %>
7
17
  </ul>
8
18
  </div>