ecm_downloads2 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +57 -0
  4. data/Rakefile +34 -0
  5. data/app/assets/images/ecm_downloads/download_categories/last_node.png +0 -0
  6. data/app/assets/images/ecm_downloads/download_categories/node.png +0 -0
  7. data/app/assets/images/ecm_downloads/download_categories/vertical_line.png +0 -0
  8. data/app/assets/stylesheets/ecm_downloads/downloads_categories.css.erb +30 -0
  9. data/app/assets/stylesheets/ecm_downloads.css +1 -0
  10. data/app/controllers/ecm/downloads/download_categories_controller.rb +9 -0
  11. data/app/controllers/ecm/downloads/downloads_controller.rb +15 -0
  12. data/app/decorators/ecm/downloads/download_category_decorator.rb +18 -0
  13. data/app/decorators/ecm/downloads/download_decorator.rb +21 -0
  14. data/app/helpers/ecm/downloads/download_category_helper.rb +12 -0
  15. data/app/helpers/ecm/downloads/download_helper.rb +12 -0
  16. data/app/models/ecm/downloads/download.rb +89 -0
  17. data/app/models/ecm/downloads/download_category.rb +79 -0
  18. data/app/views/ecm/downloads/download_categories/_download_category.html.erb +22 -0
  19. data/app/views/ecm/downloads/download_categories/_download_category_in_index.html.erb +5 -0
  20. data/app/views/ecm/downloads/download_categories/index.html.erb +5 -0
  21. data/app/views/ecm/downloads/download_categories/show.html.erb +9 -0
  22. data/app/views/ecm/downloads/downloads/_download.html.erb +11 -0
  23. data/app/views/ecm/downloads/downloads/_download_in_table.html.erb +10 -0
  24. data/app/views/ecm/downloads/downloads/_table.html.erb +7 -0
  25. data/app/views/ecm/downloads/downloads/index.html.erb +3 -0
  26. data/app/views/ecm/downloads/downloads/show.html.erb +7 -0
  27. data/config/locales/active_admin.patch.de.yml +29 -0
  28. data/config/locales/ecm.downloads.de.yml +16 -0
  29. data/config/locales/ecm.downloads.download.de.yml +28 -0
  30. data/config/locales/ecm.downloads.download.en.yml +28 -0
  31. data/config/locales/ecm.downloads.download_category.de.yml +27 -0
  32. data/config/locales/ecm.downloads.download_category.en.yml +27 -0
  33. data/config/locales/ecm.downloads.en.yml +16 -0
  34. data/config/routes.rb +5 -0
  35. data/db/migrate/001_create_ecm_downloads_download_categories.rb +24 -0
  36. data/db/migrate/002_create_ecm_downloads_downloads.rb +31 -0
  37. data/lib/ecm/downloads/active_admin/ecm_downloads_download_categories.rb +138 -0
  38. data/lib/ecm/downloads/active_admin/ecm_downloads_downloads.rb +49 -0
  39. data/lib/ecm/downloads/configuration.rb +22 -0
  40. data/lib/ecm/downloads/engine.rb +21 -0
  41. data/lib/ecm/downloads/routing.rb +26 -0
  42. data/lib/ecm/downloads/version.rb +6 -0
  43. data/lib/ecm_downloads2.rb +20 -0
  44. data/lib/generators/ecm/downloads/install/install_generator.rb +16 -0
  45. data/lib/generators/ecm/downloads/install/templates/ecm_downloads.rb +15 -0
  46. data/lib/generators/ecm/downloads/locales/locales_generator.rb +24 -0
  47. data/lib/tasks/ecm_downloads_tasks.rake +52 -0
  48. metadata +488 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 679cbb740157b92df72064aa79adfa74b3750679
4
+ data.tar.gz: ef3acd817ff332569689fe6dd6e3b25b8b139a05
5
+ SHA512:
6
+ metadata.gz: 8c89e224605825bbb313c5e5f21e0476622ea524fa2a20f03347ddac168d247cc810e924342ebefb1f80223a8980d726e8bf77be4432720613a09cd8c52fcc8c
7
+ data.tar.gz: 255205ee7b15d6e6f35ad3c8bcede935fb5aaf25a8e4cfb201ae6d713c7365d092cc7e32b57a98a2eec9803b0a33ecd457c1e28c827f188d2bfdfd2aa8699fc3
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright 2012 Roberto Vasquez Angel
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc ADDED
@@ -0,0 +1,57 @@
1
+ = ECM Downloads 2
2
+
3
+ This version supports rails 4.x and twitter bootstrap 3. For legacy support use ecm_downloads
4
+
5
+ = Purpose
6
+
7
+ TODO
8
+
9
+ = Features
10
+
11
+ TODO
12
+
13
+ = Installation
14
+
15
+ Add the gem to your bundle:
16
+
17
+ # Gemfile
18
+ gem 'ecm_downloads2'
19
+
20
+ Install your bundle:
21
+
22
+ > bundle install
23
+
24
+ Generate initializer:
25
+
26
+ > rails generate ecm:downloads:install
27
+
28
+ Add migrations:
29
+
30
+ > rake ecm_downloads_engine:install:migrations
31
+
32
+ Migrate:
33
+
34
+ > rake db:migrate
35
+
36
+ Add the routes:
37
+
38
+ # config/routes.rb
39
+ Ecm::Downloads::Routing.routes(self)
40
+
41
+ == Optional: Generate locale files
42
+
43
+ You may want to copy the locales to your app:
44
+
45
+ > rails generate ecm:downloads:locales
46
+
47
+ = Usage
48
+
49
+ TODO>
50
+
51
+ = Todo
52
+
53
+ TODO
54
+
55
+ = License
56
+
57
+ This project rocks and uses MIT-LICENSE.
data/Rakefile ADDED
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/env rake
2
+ begin
3
+ require 'bundler/setup'
4
+ rescue LoadError
5
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
6
+ end
7
+ begin
8
+ require 'rdoc/task'
9
+ rescue LoadError
10
+ require 'rdoc/rdoc'
11
+ require 'rake/rdoctask'
12
+ RDoc::Task = Rake::RDocTask
13
+ end
14
+
15
+ RDoc::Task.new(:rdoc) do |rdoc|
16
+ rdoc.rdoc_dir = 'rdoc'
17
+ rdoc.title = 'EcmDownloads'
18
+ rdoc.options << '--line-numbers'
19
+ rdoc.rdoc_files.include('README.rdoc')
20
+ rdoc.rdoc_files.include('lib/**/*.rb')
21
+ end
22
+
23
+
24
+
25
+ Bundler::GemHelper.install_tasks
26
+
27
+ require 'rails/dummy/tasks'
28
+
29
+ # Travis CI
30
+ task :default => [:spec]
31
+ desc 'run Rspec specs'
32
+ task :spec do
33
+ sh 'cd ./spec/dummy && rspec && cd ../../'
34
+ end
@@ -0,0 +1,30 @@
1
+ .download_categories-tree {
2
+ background-color: white;
3
+ }
4
+
5
+ ul.tree, ul.tree ul {
6
+ background-color: inherit;
7
+ list-style-type: none;
8
+ background-image: url("<%= asset_path 'ecm_downloads/download_categories/vertical_line.png' %>");
9
+ background-repeat: repeat-y;
10
+ margin: 0;
11
+ padding: 0;
12
+ }
13
+
14
+ .tree ul {
15
+ margin-left: 10px;
16
+ }
17
+
18
+ ul.tree li {
19
+ margin: 0;
20
+ padding: 0 12px;
21
+ line-height: 20px;
22
+ background: url("<%= asset_path 'ecm_downloads/download_categories/node.png' %>");
23
+ background-repeat: no-repeat;
24
+ }
25
+
26
+ ul.tree li:last-child {
27
+ background-color: white;
28
+ background-image: url("<%= asset_path 'ecm_downloads/download_categories/last_node.png' %>") !important;
29
+ background-repeat: no-repeat;
30
+ }
@@ -0,0 +1 @@
1
+ //= require_tree ./ecm_downloads
@@ -0,0 +1,9 @@
1
+ class Ecm::Downloads::DownloadCategoriesController < Ecm::Downloads::Configuration.base_controller.constantize
2
+ def index
3
+ @download_categories = Ecm::Downloads::DownloadCategory.all.decorate
4
+ end
5
+
6
+ def show
7
+ @download_category = Ecm::Downloads::DownloadCategory.find(params[:id])
8
+ end
9
+ end
@@ -0,0 +1,15 @@
1
+ class Ecm::Downloads::DownloadsController < Ecm::Downloads::Configuration.base_controller.constantize
2
+ # Support secured downloads with expiring urls on S3.
3
+ def download
4
+ @download = Ecm::Downloads::Download.published.find(params[:id]).decorate
5
+ redirect_to @download.asset.expiring_url(100)
6
+ end
7
+
8
+ def index
9
+ @downloads = Ecm::Downloads::Download.published.all.decorate
10
+ end
11
+
12
+ def show
13
+ @download = Ecm::Downloads::Download.published.find(params[:id]).decorate
14
+ end
15
+ end
@@ -0,0 +1,18 @@
1
+ module Ecm::Downloads
2
+ class DownloadCategoryDecorator < Draper::Decorator
3
+ # delegate :root?, :parent_id, :persisted?
4
+ delegate_all
5
+
6
+ def ecm_downloads_downloads_count_label
7
+ h.content_tag(:span, ecm_downloads_downloads_count, class: 'badge')
8
+ end
9
+
10
+ def locale_label
11
+ h.content_tag(:span, locale, class: 'label label-info')
12
+ end
13
+
14
+ def tree_name
15
+ name
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,21 @@
1
+ module Ecm::Downloads
2
+ class DownloadDecorator < Draper::Decorator
3
+ delegate_all
4
+
5
+ def ecm_downloads_downloads_count_label
6
+ h.content_tag(:span, ecm_downloads_downloads_count, class: 'badge')
7
+ end
8
+
9
+ def filesize
10
+ h.number_to_human_size(asset_file_size)
11
+ end
12
+
13
+ def locale_label
14
+ h.content_tag(:span, locale, class: 'label label-info')
15
+ end
16
+
17
+ def tree_name
18
+ name
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,12 @@
1
+ module Ecm::Downloads
2
+ module DownloadCategoryHelper
3
+ def render_download_category(download_category_name, options = {})
4
+ download_category = DownloadCategory.where(:name => download_category_name).first
5
+ if download_category.nil?
6
+ I18n.t('ecm.downloads.download_category.messages.not_found', :name => download_category_name)
7
+ else
8
+ render download_category
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ module Ecm::Downloads
2
+ module DownloadHelper
3
+ def render_download(download_name, options = {})
4
+ download = Download.where(:name => download_name).first
5
+ if download.nil?
6
+ I18n.t('ecm.downloads.download.messages.not_found', :name => download_name)
7
+ else
8
+ render download
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,89 @@
1
+ module FixUpdateCounters
2
+ def fix_updated_counters
3
+ self.changes.each {|key, value|
4
+ # key should match /master_files_id/ or /bibls_id/
5
+ # value should be an array ['old value', 'new value']
6
+ if key =~ /_id/
7
+ changed_class = key.sub(/_id/, '')
8
+
9
+ # Get real class of changed attribute, so work both with namespaced/normal models
10
+ klass = self.association(changed_class.to_sym).klass
11
+
12
+ # Try to get counter cache from association options
13
+ begin
14
+ counter_name = self.association(changed_class.to_sym).options[:counter_cache]
15
+ rescue
16
+ # Namespaced model return a slash, split it.
17
+ unless (counter_name = "#{self.class.name.underscore.pluralize.split("/")[1]}_count".to_sym)
18
+ counter_name = "#{self.class.name.underscore.pluralize}_count".to_sym
19
+ end
20
+ end
21
+
22
+
23
+ klass.decrement_counter(counter_name, value[0]) unless value[0] == nil
24
+ klass.increment_counter(counter_name, value[1]) unless value[1] == nil
25
+ end
26
+ }
27
+ end
28
+ end
29
+
30
+ ActiveRecord::Base.send(:include, FixUpdateCounters)
31
+
32
+
33
+
34
+ class Ecm::Downloads::Download < ActiveRecord::Base
35
+ # db settings
36
+ self.table_name = 'ecm_downloads_downloads'
37
+
38
+ # acts as list
39
+ acts_as_list :scope => :ecm_downloads_download_category
40
+
41
+ # acts as published
42
+ include ActsAsPublished::ActiveRecord
43
+ acts_as_published
44
+
45
+ # associations
46
+ belongs_to :ecm_downloads_download_category,
47
+ :class_name => Ecm::Downloads::DownloadCategory,
48
+ :counter_cache => :ecm_downloads_downloads_count,
49
+ inverse_of: :ecm_downloads_downloads
50
+
51
+ # attibutes
52
+ attr_accessible :asset,
53
+ :description,
54
+ :ecm_downloads_download_category_id,
55
+ :name if respond_to? :attr_accessible
56
+
57
+ # callbacks
58
+ after_update :fix_updated_counters
59
+ before_update :fix_updated_position, :if => Proc.new { |d| !position.blank? && d.ecm_downloads_download_category_id_changed? }
60
+
61
+ # friendly id
62
+ extend FriendlyId
63
+ friendly_id :name, :use => [:slugged, :finders]
64
+
65
+ # paperclip
66
+ has_attached_file :asset, Ecm::Downloads::Configuration.paperclip_options
67
+
68
+ # validations
69
+ validates :ecm_downloads_download_category, :presence => true
70
+ validates :name, :presence => true
71
+ validates_attachment :asset, presence => true
72
+ do_not_validate_attachment_file_type :asset
73
+ # public methods
74
+
75
+ def human
76
+ name
77
+ end
78
+
79
+ def to_s
80
+ human
81
+ end
82
+
83
+ # private methods
84
+ private
85
+ def fix_updated_position
86
+ Rails.logger.debug "Fixing positions for #{self.to_s} (Moving to last)"
87
+ add_to_list_bottom
88
+ end
89
+ end
@@ -0,0 +1,79 @@
1
+ class Ecm::Downloads::DownloadCategory < ActiveRecord::Base
2
+ # db settings
3
+ self.table_name = 'ecm_downloads_download_categories'
4
+
5
+ # associations
6
+ has_many :ecm_downloads_downloads, -> { order(:position) },
7
+ :class_name => Ecm::Downloads::Download,
8
+ :dependent => :destroy,
9
+ :foreign_key => :ecm_downloads_download_category_id,
10
+ inverse_of: :ecm_downloads_download_category
11
+
12
+ accepts_nested_attributes_for :ecm_downloads_downloads,
13
+ :allow_destroy => true
14
+
15
+ # attributes
16
+ attr_accessible :description,
17
+ :ecm_downloads_downloads_attributes,
18
+ :ecm_downloads_downloads_count,
19
+ :locale,
20
+ :name,
21
+ :parent_id,
22
+ :position,
23
+ :slug if respond_to? :attr_accessible
24
+
25
+ # awesome nested set
26
+ acts_as_nested_set
27
+ default_scope { order('lft ASC') }
28
+
29
+ # friendly id
30
+ extend FriendlyId
31
+ friendly_id :name, :use => [:slugged, :finders]
32
+
33
+ # validations
34
+ validates :name, :presence => true,
35
+ :uniqueness => { :scope => [ :parent_id ] }
36
+
37
+ validates :locale, :presence => true,
38
+ :if => :root?
39
+
40
+ validates :locale, :inclusion => I18n.available_locales.map(&:to_s),
41
+ :if => Proc.new { |cc| cc.locale.present? }
42
+
43
+ validates :locale, :absence => true,
44
+ :unless => :root?
45
+
46
+ # public methods
47
+
48
+ # public methods
49
+
50
+ def display_code
51
+ "<%= render_download_category '#{self.name}' %>"
52
+ end
53
+
54
+ def human
55
+ name
56
+ end
57
+
58
+ def index_name
59
+ if self.root?
60
+ "[#{self.locale}] #{self.name}"
61
+ else
62
+ "#{'&#160;&#160;&#160;&#160;' * self.level} |--&#160;#{self.name}".html_safe
63
+ end
64
+ end
65
+
66
+ def to_s
67
+ name
68
+ end
69
+
70
+ # def tree_name
71
+ # root_prefix = (self.root?) ? "[#{self.locale}] " : ""
72
+
73
+ # if ecm_downloads_downloads_count < 1
74
+ # "#{root_prefix}#{to_s}"
75
+ # else
76
+ # "#{root_prefix}#{to_s} (#{ecm_downloads_downloads_count})"
77
+ # end
78
+ # end
79
+ end
@@ -0,0 +1,22 @@
1
+ <div class="download_category category" id="download_category-<%= download_category.id %>">
2
+ <h1 class="downloads_category-name"><%= download_category.name %></h1>
3
+
4
+ <% unless download_category.description.blank? %>
5
+ <div class="download_categories-description">
6
+ <p><%= download_category.description %></p>
7
+ </div>
8
+ <% end %>
9
+
10
+ <div class="list-group">
11
+ <%= render partial: 'download_category_in_index', collection: Ecm::Downloads::DownloadCategoryDecorator.decorate_collection(download_category.descendants), as: :download_category %>
12
+ </div>
13
+
14
+ <div class="download_category-downloads item_list">
15
+ <h2><%= Ecm::Downloads::DownloadCategory.human_attribute_name(:ecm_downloads_downloads) %></h2>
16
+ <% if download_category.ecm_downloads_downloads.published.count == 0 %>
17
+ <p><%= t('ecm.downloads.download_category.messages.no_downloads_available') %></p>
18
+ <% else %>
19
+ <%= render partial: 'ecm/downloads/downloads/table', locals: { downloads: download_category.ecm_downloads_downloads.published } %>
20
+ <% end %>
21
+ </div>
22
+ </div>
@@ -0,0 +1,5 @@
1
+ <%= link_to(download_category, class: "list-group-item left-padding-#{download_category.depth * 3}", title: download_category.description) do %>
2
+ <%= download_category.tree_name %>
3
+ <%= download_category.locale_label %>
4
+ <%= download_category.ecm_downloads_downloads_count_label %>
5
+ <% end %>
@@ -0,0 +1,5 @@
1
+ <h1><%= Ecm::Downloads::DownloadCategory.model_name.human(:count => :other) %></h1>
2
+
3
+ <div class="list-group">
4
+ <%= render partial: 'download_category_in_index', collection: @download_categories, as: :download_category %>
5
+ </div>
@@ -0,0 +1,9 @@
1
+ <%= render @download_category %>
2
+
3
+ <div class="well">
4
+ <% if @download_category.root? %>
5
+ <%= link_to(t('ecm.downloads.download_category.actions.back_to_index'), ecm_downloads_download_categories_path, class: 'btn btn-default') if respond_to?(:ecm_downloads_download_categories_path) %>
6
+ <% else %>
7
+ <%= link_to(Ecm::Downloads::DownloadCategory.human_attribute_name(:parent), @download_category.parent, class: 'btn btn-default') %>
8
+ <% end %>
9
+ </div>
@@ -0,0 +1,11 @@
1
+ <h1><%= download.human %></h1>
2
+
3
+ <div class="description bottom-margin-1">
4
+ <%= download.description %>
5
+ </div>
6
+
7
+ <div class="item-actions well">
8
+ <%= link_to([:download, download], { :class => 'btn btn-primary' }) do %>
9
+ <span class="glyphicon glyphicon-save" aria-hidden="true"></span> <%= t('ecm.downloads.download.actions.start_download') %> (<%= download.filesize %>)
10
+ <% end %>
11
+ </div>
@@ -0,0 +1,10 @@
1
+ <tr class="<%= download.class.name.underscore.gsub('/', ' ') %>" id="<%= "#{download.class.name.underscore.gsub('/', '-')}-#{download.to_param}" %>">
2
+ <td title="<%= download.description %>"><%= link_to download.name, download %></td>
3
+ <td><%= link_to download.ecm_downloads_download_category.human, download.ecm_downloads_download_category %></td>
4
+ <td><%= number_to_human_size(download.asset_file_size) %></td>
5
+ <td>
6
+ <%= link_to([:download, download], { :class => 'btn btn-primary btn-xs pull-right' }) do %>
7
+ <span class="glyphicon glyphicon-save" aria-hidden="true"></span> <%= t('ecm.downloads.download.actions.start_download') %>
8
+ <% end %>
9
+ </td>
10
+ </tr>
@@ -0,0 +1,7 @@
1
+ <div class="table-responsive">
2
+ <table class="table table-striped table-hover">
3
+ <tbody>
4
+ <%= render partial: 'ecm/downloads/downloads/download_in_table', collection: downloads, as: :download %>
5
+ </tbody>
6
+ </table>
7
+ </div>
@@ -0,0 +1,3 @@
1
+ <h1><%= Ecm::Downloads::Download.model_name.human(:count => :other).humanize %></h1>
2
+
3
+ <%= render partial: 'table', locals: { downloads: @downloads } %>
@@ -0,0 +1,7 @@
1
+ <h1>Downloads</h1>
2
+
3
+ <%= render @download %>
4
+
5
+ <div class="well page-actions">
6
+ <%= link_to @download.ecm_downloads_download_category, @download.ecm_downloads_download_category, class: 'btn btn-default' %>
7
+ </div>
@@ -0,0 +1,29 @@
1
+ de:
2
+ activerecord:
3
+ attributes:
4
+ admin_user:
5
+ id: ID
6
+ email: E-Mail
7
+ encrypted_Password: Verschlüsseltes Passwort
8
+ reset_password_token: Passwort Reset Token
9
+ reset_password_sent_at: Passwort Reset Anweisungen gesendet am
10
+ remember_created_at: Passwort merken seit
11
+ sign_in_count: Anzahl Logins
12
+ current_sign_in_at: Aktuell angemeldet seit
13
+ last_sign_in_at: Letzter Login am
14
+ current_sign_in_ip: Aktuelle IP-Adresse
15
+ last_sign_in_ip: Letzte IP-Adresse
16
+ created_at: Erstellt am
17
+ updated_at: Aktualisiert am
18
+ models:
19
+ admin_user:
20
+ one: Administrator
21
+ other: Administratoren
22
+ devise:
23
+ failure:
24
+ admin_user:
25
+ invalid: Benutzername oder Kennwort nicht korrekt.
26
+ unauthenticated: Bitte melden Sie sich als Administrator an.
27
+ sessions:
28
+ admin_user:
29
+ signed_in: Erfolgreich als Administrator angemeldet.
@@ -0,0 +1,16 @@
1
+ de:
2
+ ecm:
3
+ downloads:
4
+ active_admin:
5
+ menu: "Downloads"
6
+ download:
7
+ actions:
8
+ start_download: "Jetzt herunterladen"
9
+ messages:
10
+ not_found: "Download \"%{name}\" nicht gefunden."
11
+ download_category:
12
+ actions:
13
+ back_to_index: "Zurück zur Übersicht"
14
+ messages:
15
+ not_found: "Download Kategorie \"%{name}\" nicht gefunden."
16
+ no_downloads_available: "Keine Downloads in dieser Kategorie vorhanden."
@@ -0,0 +1,28 @@
1
+ ---
2
+ de:
3
+ activerecord:
4
+ attributes:
5
+ ecm/downloads/download:
6
+ asset: Datei
7
+ asset_content_type: Datei Content-Type
8
+ asset_file_name: Dateiname
9
+ asset_file_size: Dateigröße
10
+ asset_fingerprint: Fingerabdruck
11
+ asset_updated_at: Datei aktualisiert am
12
+ created_at: Erstellt am
13
+ description: Beschreibung
14
+ ecm_downloads_download_category: Download Kategorie
15
+ ecm_downloads_download_category_id: Download Kategorie
16
+ locale: Sprache
17
+ name: Name
18
+ position: Position
19
+ published: Veröffentlicht
20
+ slug: Freundliche ID
21
+ updated_at: Aktualisiert am
22
+ models:
23
+ ecm/downloads/download:
24
+ one: Download
25
+ other: Downloads
26
+ routes:
27
+ ecm_downloads_downloads: downloads
28
+
@@ -0,0 +1,28 @@
1
+ ---
2
+ en:
3
+ activerecord:
4
+ attributes:
5
+ ecm/downloads/download:
6
+ asset: file
7
+ asset_content_type: content type
8
+ asset_file_name: filename
9
+ asset_file_size: filesize
10
+ asset_fingerprint: fingerprint
11
+ asset_updated_at: file updated at
12
+ created_at: created at
13
+ description: description
14
+ ecm_downloads_download_category: download category
15
+ ecm_downloads_download_category_id: download category
16
+ locale: locale
17
+ name: name
18
+ position: position
19
+ published: published
20
+ slug: friendly id
21
+ updated_at: updated at
22
+ models:
23
+ ecm/downloads/download:
24
+ one: download
25
+ other: downloads
26
+ routes:
27
+ ecm_downloads_downloads: downloads
28
+
@@ -0,0 +1,27 @@
1
+ ---
2
+ de:
3
+ activerecord:
4
+ attributes:
5
+ ecm/downloads/download_category:
6
+ children: Unter Kategorien
7
+ created_at: Erstellt am
8
+ depth: Baumtiefe
9
+ description: Beschreibung
10
+ ecm_downloads_downloads: Downloads
11
+ ecm_downloads_downloads_count: Downloads
12
+ lft: Links
13
+ locale: Sprache
14
+ name: Name
15
+ parent: Über Kategorie
16
+ parent_id: Über Kategorie
17
+ position: Position
18
+ rgt: Rechts
19
+ slug: Freundliche ID
20
+ updated_at: Aktualisiert am
21
+ models:
22
+ ecm/downloads/download_category:
23
+ one: Download Kategorie
24
+ other: Download Kategorien
25
+ routes:
26
+ ecm_downloads_download_categories: download-kategorien
27
+