ecm_downloads2 1.0.0

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 (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
+