ecm_references2 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +47 -0
  4. data/Rakefile +25 -0
  5. data/app/admin/ecm_references_categories.rb +92 -0
  6. data/app/admin/ecm_references_references.rb +78 -0
  7. data/app/assets/stylesheets/ecm_references.css.less +7 -0
  8. data/app/controllers/ecm/references/categories_controller.rb +11 -0
  9. data/app/controllers/ecm/references/references_controller.rb +11 -0
  10. data/app/models/ecm/references.rb +5 -0
  11. data/app/models/ecm/references/category.rb +102 -0
  12. data/app/models/ecm/references/reference.rb +83 -0
  13. data/app/views/ecm/references/categories/_category.html.haml +13 -0
  14. data/app/views/ecm/references/categories/_category_in_table.html.haml +6 -0
  15. data/app/views/ecm/references/categories/_table.html.haml +4 -0
  16. data/app/views/ecm/references/categories/index.html.haml +9 -0
  17. data/app/views/ecm/references/categories/show.html.haml +9 -0
  18. data/app/views/ecm/references/references/_reference.html.haml +7 -0
  19. data/app/views/ecm/references/references/_reference_in_list.html.haml +11 -0
  20. data/app/views/ecm/references/references/_reference_in_table.html.haml +3 -0
  21. data/app/views/ecm/references/references/_references_in_category.html.haml +3 -0
  22. data/app/views/ecm/references/references/index.html.haml +11 -0
  23. data/app/views/ecm/references/references/show.html.haml +6 -0
  24. data/config/locales/de.yml +55 -0
  25. data/config/locales/en.yml +54 -0
  26. data/db/migrate/001_create_ecm_references_categories.rb +24 -0
  27. data/db/migrate/002_create_ecm_references_references.rb +25 -0
  28. data/lib/ecm/references/configuration.rb +49 -0
  29. data/lib/ecm/references/engine.rb +11 -0
  30. data/lib/ecm/references/routing.rb +10 -0
  31. data/lib/ecm/references/version.rb +5 -0
  32. data/lib/ecm_references2.rb +22 -0
  33. data/lib/generators/ecm/references/install/install_generator.rb +15 -0
  34. data/lib/generators/ecm/references/install/templates/ecm_references.rb +56 -0
  35. data/lib/generators/ecm/references/locales/locales_generator.rb +16 -0
  36. data/lib/tasks/ecm_references_tasks.rake +4 -0
  37. metadata +560 -0
@@ -0,0 +1,13 @@
1
+ %h1.reference-category-name= category.name
2
+
3
+ - if category.description.present?
4
+ .reference-category-description
5
+ %p= category.description
6
+
7
+ .references.item-list
8
+ - if category.references.published.any?
9
+ = render partial: 'ecm/references/references/references_in_category', locals: { references: category.references.published }
10
+ - else
11
+ %p= t('ecm.references.category.messages.no_references_available')
12
+
13
+ = render partial: 'table', locals: { categories: category.descendants }
@@ -0,0 +1,6 @@
1
+ %tr{ class: "#{category.class.name.underscore.gsub('/', ' ')}", id: "#{category.class.name.underscore.gsub('/', '-')}-#{category.to_param}" }
2
+ %td
3
+ = link_to(category.tree_name, category, class: "left-padding-#{category.depth * 3}", title: category.description)
4
+ = category.locale_label(self)
5
+ %td.text-right
6
+ = category.references_count_label(self)
@@ -0,0 +1,4 @@
1
+ .table-responsive
2
+ %table{ class: Ecm::References::Configuration.categories_table_classes }
3
+ %tbody
4
+ = render partial: 'ecm/references/categories/category_in_table', collection: categories, as: :category
@@ -0,0 +1,9 @@
1
+ - content_for :meta_description, Ecm::References::Category.model_name.human(count: :other)
2
+ - content_for :title, Ecm::References::Category.model_name.human(count: :other)
3
+
4
+ %h1= Ecm::References::Category.model_name.human(count: :other)
5
+
6
+ = render partial: 'table', locals: { categories: @categories }
7
+
8
+ %div.well.page-actions
9
+ = link_to(t('ecm.references.actions.back'), root_path, class: 'btn btn-default')
@@ -0,0 +1,9 @@
1
+ - content_for :meta_description, @category.name
2
+ - content_for :title, @category.name
3
+ = render @category
4
+
5
+ .well.page-actions
6
+ - if @category.root?
7
+ = link_to(t('ecm.references.category.actions.back_to_index'), ecm_references_categories_path, class: 'btn btn-default') if respond_to?(:ecm_references_categories_path)
8
+ - else
9
+ = link_to(t('ecm.references.actions.back'), @category.parent, class: 'btn btn-default')
@@ -0,0 +1,7 @@
1
+ .reference.show
2
+ %h1= reference.name
3
+
4
+ - if reference.preview_picture.present?
5
+ %img.img-responsive.bottom-margin-2{ src: reference.preview_picture.image.url, alt: reference.preview_picture.description, title: reference.preview_picture.description }
6
+
7
+ .item-body= mu(reference, :description)
@@ -0,0 +1,11 @@
1
+ %div{ class: Ecm::References::Configuration.reference_preview_div_classes, id: "#{reference.class.name.underscore.gsub('/', '-')}-#{reference.to_param}" }
2
+ .media-left
3
+ - if reference.preview_picture.present?
4
+ = link_to(reference, class: Ecm::References::Configuration.reference_preview_thumbnail_link_classes) do
5
+ %img.media-object.thumbnail.img-responsive{ src: reference.preview_picture.image.url(:default_thumb) }
6
+ - else
7
+ %div{ class: Ecm::References::Configuration.reference_preview_thumbnail_link_classes }
8
+ .media-body
9
+ %h3.media-heading= reference.name
10
+ %div{ class: "news-body truncate lines-#{Ecm::References::Configuration.reference_preview_lines} bottom-margin-1" }= mu reference, :description
11
+ .object-actions= link_to(t('ecm.references.actions.more'), reference, class: 'btn btn-primary')
@@ -0,0 +1,3 @@
1
+ %tr{ class: reference.class.name.underscore.gsub('/', ' '), id: "#{reference.class.name.underscore.gsub('/', '-')}-#{reference.to_param}" }
2
+ %td{ title: reference.description }= link_to reference.name, reference
3
+ %td= link_to reference.category.human, reference.category
@@ -0,0 +1,3 @@
1
+ %h3= Ecm::References::Category.human_attribute_name(:references)
2
+
3
+ = render partial: 'ecm/references/references/reference_in_list', collection: references, as: :reference
@@ -0,0 +1,11 @@
1
+ - content_for :meta_description, Ecm::References::Reference.model_name.human(count: :other)
2
+ - content_for :title, Ecm::References::Reference.model_name.human(count: :other)
3
+
4
+ %h1= Ecm::References::Reference.model_name.human(count: :other)
5
+
6
+ = render(:partial => 'reference_in_list', :collection => @references, :as => :reference)
7
+
8
+ = paginate @references, :theme => 'twitter-bootstrap'
9
+
10
+ %div.well.page-actions
11
+ = link_to(t('ecm.references.actions.back'), root_path, class: 'btn btn-default')
@@ -0,0 +1,6 @@
1
+ - content_for :meta_description, @reference.name
2
+ - content_for :title, @reference.name
3
+ = render @reference
4
+
5
+ .page-action.well
6
+ .btn-group{ role: 'group' }= link_to t('ecm.references.actions.back'), :back, class: 'btn btn-default'
@@ -0,0 +1,55 @@
1
+ de:
2
+ activerecord:
3
+ attributes:
4
+ ecm/references/category:
5
+ children: Unterkategorien
6
+ created_at: "Erstellt am"
7
+ depth: Baumtiefe
8
+ description: Beschreibung
9
+ details: Details
10
+ locale: Sprache
11
+ markup_language: "Markup Sprache"
12
+ name: Name
13
+ parent: "Übergeordnete Kategorie"
14
+ reference_count: Referenzen
15
+ references: Referenzen
16
+ slug: "Freundliche ID"
17
+ updated_at: "Aktualisiert am"
18
+ ecm/references/reference:
19
+ category: Kategorie
20
+ created_at: "Erstellt am"
21
+ description: Beschreibung
22
+ details: Details
23
+ markup_language: "Markup Sprache"
24
+ name: Name
25
+ preview_picture: Vorschaubild
26
+ published: Veröffentlicht
27
+ slug: "Freundliche ID"
28
+ updated_at: "Aktualisiert am"
29
+ models:
30
+ ecm/references/category:
31
+ one: Referenzkategorie
32
+ other: Referenzkategorien
33
+ ecm/references/reference:
34
+ one: Referenz
35
+ other: Referenzen
36
+ ecm:
37
+ references:
38
+ actions:
39
+ back: Zurück
40
+ back_to_category: "Zurück zu %{category}"
41
+ back_to_category_index: "Alle Referenzkategorien"
42
+ more: mehr
43
+ next_reference: "Nächste Referenz"
44
+ previous_reference: "Vorherige Referenz"
45
+ active_admin:
46
+ menu: Referenzen
47
+ category:
48
+ actions:
49
+ back_to_index: 'Zurück zu Kategorien'
50
+ messages:
51
+ no_references_available: "Keine Referenzen in dieser Kategorie vorhanden"
52
+ routes:
53
+ ecm_references_categories: referenz-kategorien
54
+ ecm_references_references: referenzen
55
+
@@ -0,0 +1,54 @@
1
+ en:
2
+ activerecord:
3
+ attributes:
4
+ ecm/references/category:
5
+ children: subcategories
6
+ created_at: "created at"
7
+ depth: Depth
8
+ description: Description
9
+ details: details
10
+ locale: language
11
+ markup_language: "markup language"
12
+ name: name
13
+ parent: "parent category"
14
+ reference_count: references
15
+ references: references
16
+ slug: "friendly id"
17
+ updated_at: "updated at"
18
+ ecm/references/reference:
19
+ category: category
20
+ created_at: "created at"
21
+ description: description
22
+ details: details
23
+ markup_language: "markup language"
24
+ name: name
25
+ preview_picture: preview picture
26
+ published: published
27
+ slug: "friendly id"
28
+ updated_at: "updated at"
29
+ models:
30
+ ecm/references/category:
31
+ one: "reference category"
32
+ other: "reference categories"
33
+ ecm/references/reference:
34
+ one: reference
35
+ other: references
36
+ ecm:
37
+ references:
38
+ actions:
39
+ back: back
40
+ back_to_category: "back to %{category}"
41
+ back_to_category_index: "back to all categories"
42
+ more: more
43
+ next_reference: "next reference"
44
+ previous_reference: "previous referencez"
45
+ active_admin:
46
+ menu: references
47
+ category:
48
+ actions:
49
+ back_to_index: 'Back to categories'
50
+ messages:
51
+ no_references_available: "No references avaiable"
52
+ routes:
53
+ ecm_references_categories: reference-categories
54
+ ecm_references_references: references
@@ -0,0 +1,24 @@
1
+ class CreateEcmReferencesCategories < ActiveRecord::Migration
2
+ def change
3
+ create_table :ecm_references_categories do |t|
4
+ t.string :name
5
+ t.text :description
6
+ t.string :locale
7
+
8
+ # acts as markup
9
+ t.string :markup_language
10
+
11
+ # awesome nested set
12
+ t.integer :lft
13
+ t.integer :rgt
14
+ t.references :parent
15
+ t.integer :depth
16
+
17
+ # friendly id
18
+ t.string :slug
19
+
20
+ t.timestamps
21
+ end
22
+ add_index :ecm_references_categories, :parent_id
23
+ end
24
+ end
@@ -0,0 +1,25 @@
1
+ class CreateEcmReferencesReferences < ActiveRecord::Migration
2
+ def change
3
+ create_table :ecm_references_references do |t|
4
+ t.string :name
5
+ t.text :description
6
+
7
+ # acts as list
8
+ t.integer :position
9
+
10
+ # acts as markup
11
+ t.string :markup_language
12
+
13
+ # acts as published
14
+ t.timestamp :published_at
15
+
16
+ # friendly id
17
+ t.string :slug
18
+
19
+ # references
20
+ t.references :ecm_categories_category
21
+
22
+ t.timestamps
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,49 @@
1
+ require 'active_support/core_ext/module/delegation'
2
+ require 'active_support/core_ext/module/attribute_accessors'
3
+ require 'active_support/hash_with_indifferent_access'
4
+
5
+ module Ecm
6
+ module References
7
+ module Configuration
8
+ def configure
9
+ yield self
10
+ end
11
+
12
+ mattr_accessor :default_markup_language
13
+ @@default_markup_language = nil
14
+
15
+ mattr_accessor :markup_languages
16
+ @@markup_languages = []
17
+
18
+ mattr_accessor :new_references_published_by_default
19
+ @@new_references_published_by_default = false
20
+
21
+ mattr_accessor :reference_preview_length
22
+ @@reference_preview_length = nil
23
+
24
+ mattr_accessor :categories_table_classes do
25
+ ''
26
+ end
27
+
28
+ mattr_accessor :references_table_classes do
29
+ ''
30
+ end
31
+
32
+ mattr_accessor :base_controller do
33
+ 'ApplicationController'
34
+ end
35
+
36
+ mattr_accessor :reference_preview_div_classes do
37
+ ''
38
+ end
39
+
40
+ mattr_accessor :reference_preview_thumbnail_link_classes do
41
+ ''
42
+ end
43
+
44
+ mattr_accessor :reference_preview_lines do
45
+ ''
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,11 @@
1
+ module Ecm
2
+ module References
3
+ class Engine < Rails::Engine
4
+ initializer :ecm_references_engine do
5
+ ActiveAdmin.setup do |config|
6
+ config.load_paths << File.join(root, 'app/admin')
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,10 @@
1
+ module Ecm::References
2
+ class Routing
3
+ def self.routes(router, options = {})
4
+ options.reverse_merge!({})
5
+
6
+ router.resources :ecm_references_categories, controller: 'ecm/references/categories'
7
+ router.resources :ecm_references_references, controller: 'ecm/references/references'
8
+ end # def
9
+ end # class Routing
10
+ end # module Ecm::References
@@ -0,0 +1,5 @@
1
+ module Ecm
2
+ module References
3
+ VERSION = '1.0.0'
4
+ end
5
+ end
@@ -0,0 +1,22 @@
1
+ require 'active_admin-acts_as_list'
2
+ require 'active_admin-awesome_nested_set'
3
+ require 'acts_as_list'
4
+ require 'acts_as_markup'
5
+ require 'acts_as_published'
6
+ require 'awesome_nested_set'
7
+ require 'awesome_nested_set-tools'
8
+ require 'ecm_pictures2'
9
+ require 'friendly_id'
10
+ require 'haml-rails'
11
+ require 'kaminari'
12
+ require 'bootstrap-kaminari-views'
13
+
14
+ require 'ecm/references/engine'
15
+ require 'ecm/references/configuration'
16
+ require 'ecm/references/routing'
17
+
18
+ module Ecm
19
+ module References
20
+ extend Configuration
21
+ end
22
+ end
@@ -0,0 +1,15 @@
1
+ module Ecm
2
+ module References
3
+ module Generators
4
+ class InstallGenerator < Rails::Generators::Base
5
+ desc 'Generates the intializer'
6
+
7
+ source_root File.expand_path('../templates', __FILE__)
8
+
9
+ def generate_intializer
10
+ copy_file 'ecm_references.rb', 'config/initializers/ecm_references.rb'
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,56 @@
1
+ Ecm::References.configure do |config|
2
+ # Accepted markup languages
3
+ #
4
+ # default: config.markup_languages = %w[ textile ]
5
+ config.markup_languages = %w( textile )
6
+
7
+ # Default markup language
8
+ #
9
+ # default: config.default_markup_language = 'textile'
10
+ config.default_markup_language = 'textile'
11
+
12
+ # Controls if new references are marked as published by default when created
13
+ #
14
+ # default: config.new_references_published_by_default = false
15
+ config.new_references_published_by_default = false
16
+
17
+ # Number of characters to render in reference preview
18
+ #
19
+ # default: config.news_preview_length = 250
20
+ config.reference_preview_length = 250
21
+
22
+ # Set the css classes for the categories table
23
+ #
24
+ # Default: config.categories_table_classes = 'table table-striped table-hover'
25
+ #
26
+ config.categories_table_classes = 'table table-striped table-hover'
27
+
28
+ # Set the css classes for the references table
29
+ #
30
+ # Default: config.references_table_classes = 'table table-striped table-hover'
31
+ #
32
+ config.references_table_classes = 'table table-striped table-hover'
33
+
34
+ # Set the base controller
35
+ #
36
+ # Default: config.base_controller = 'ApplicationController'
37
+ #
38
+ config.base_controller = 'ApplicationController'
39
+
40
+ # CSS Classes for the preview container div
41
+ #
42
+ # Default: config.reference_preview_div_classes = 'media ecm-reference bottom-margin-2'
43
+ #
44
+ config.reference_preview_div_classes = 'media ecm-reference bottom-margin-2'
45
+
46
+ # CSS Classes for the preview thumbnail link
47
+ #
48
+ # Default: config.reference_preview_thumbnail_link_classes = 'col-lg-4'
49
+ #
50
+ config.reference_preview_thumbnail_link_classes = 'col-lg-4'
51
+
52
+ # Number of lines to render in news preview
53
+ #
54
+ # default: config.news_item_preview_lines = 3
55
+ config.reference_preview_lines = 3
56
+ end