enjoy_cms_catalog 0.3.7 → 0.4.0.beta3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -1
  3. data/app/{models/concerns/enjoy/catalog/decorators/item_category.rb → controllers/concerns/enjoy/catalog/decorators/categories.rb} +1 -1
  4. data/app/controllers/enjoy/catalog/categories_controller.rb +7 -0
  5. data/app/{controllers/concerns/enjoy/catalog/decorators/item_categories.rb → models/concerns/enjoy/catalog/decorators/category.rb} +1 -1
  6. data/app/models/concerns/enjoy/catalog/decorators/{item_category_image.rb → category_image.rb} +1 -1
  7. data/app/models/enjoy/catalog/category.rb +12 -0
  8. data/app/models/enjoy/catalog/category_image.rb +16 -0
  9. data/app/models/enjoy/catalog/item_image.rb +12 -7
  10. data/app/views/enjoy/catalog/{item_categories → categories}/index.html.slim +4 -1
  11. data/app/views/enjoy/catalog/{item_categories → categories}/show.html.slim +9 -6
  12. data/app/views/enjoy/catalog/items/index.html.slim +4 -2
  13. data/app/views/enjoy/catalog/items/show.html.slim +3 -0
  14. data/config/initializers/enjoy_catalog.rb +88 -0
  15. data/config/locales/enjoy.catalog.ru.yml +11 -4
  16. data/config/locales/ru.kaminari.yml +17 -0
  17. data/enjoy_cms_catalog.gemspec +3 -3
  18. data/lib/enjoy/catalog/admin/{item_category.rb → category.rb} +22 -10
  19. data/lib/enjoy/catalog/admin/category_image.rb +31 -0
  20. data/lib/enjoy/catalog/admin/item.rb +16 -7
  21. data/lib/enjoy/catalog/admin/item_image.rb +28 -12
  22. data/lib/enjoy/catalog/admin.rb +0 -2
  23. data/lib/enjoy/catalog/configuration.rb +46 -26
  24. data/lib/enjoy/catalog/controllers/{item_categories.rb → categories.rb} +32 -21
  25. data/lib/enjoy/catalog/controllers/items.rb +25 -36
  26. data/lib/enjoy/catalog/models/category.rb +50 -0
  27. data/lib/enjoy/catalog/models/category_image.rb +22 -0
  28. data/lib/enjoy/catalog/models/item.rb +27 -4
  29. data/lib/enjoy/catalog/models/item_image.rb +8 -0
  30. data/lib/enjoy/catalog/models/mongoid/category.rb +32 -0
  31. data/lib/enjoy/catalog/models/mongoid/category_image.rb +20 -0
  32. data/lib/enjoy/catalog/models/mongoid/item.rb +5 -24
  33. data/lib/enjoy/catalog/models/mongoid/item_image.rb +0 -10
  34. data/lib/enjoy/catalog/routes.rb +57 -13
  35. data/lib/enjoy/catalog/version.rb +1 -1
  36. data/lib/enjoy_cms_catalog.rb +55 -48
  37. data/lib/generators/enjoy/catalog/all_generator.rb +2 -2
  38. data/lib/generators/enjoy/catalog/config/install_generator.rb +3 -3
  39. data/lib/generators/enjoy/catalog/config/templates/enjoy_catalog.erb +3 -3
  40. data/lib/generators/enjoy/catalog/controllers/all_generator.rb +1 -1
  41. data/lib/generators/enjoy/catalog/controllers/{item_category_generator.rb → category_generator.rb} +4 -4
  42. data/lib/generators/enjoy/catalog/controllers/item_generator.rb +3 -3
  43. data/lib/generators/enjoy/catalog/controllers/templates/{item_categories_controller.erb → categories_controller.erb} +2 -2
  44. data/lib/generators/enjoy/catalog/controllers/templates/items_controller.erb +2 -2
  45. data/lib/generators/enjoy/catalog/models/all_generator.rb +2 -2
  46. data/lib/generators/enjoy/catalog/models/{item_category_generator.rb → category_generator.rb} +9 -5
  47. data/lib/generators/enjoy/catalog/models/{item_category_image_generator.rb → category_image_generator.rb} +11 -7
  48. data/lib/generators/enjoy/catalog/models/item_image_generator.rb +5 -1
  49. data/lib/generators/enjoy/catalog/models/templates/category.erb +34 -0
  50. data/lib/generators/enjoy/catalog/models/templates/category_image.erb +30 -0
  51. data/lib/generators/enjoy/catalog/models/templates/item.erb +4 -3
  52. data/lib/generators/enjoy/catalog/models/templates/item_image.erb +3 -3
  53. metadata +37 -36
  54. data/app/controllers/enjoy/catalog/item_categories_controller.rb +0 -7
  55. data/app/models/enjoy/catalog/item_category.rb +0 -11
  56. data/app/models/enjoy/catalog/item_category_image.rb +0 -11
  57. data/config/initializers/rails_admin.rb +0 -8
  58. data/lib/enjoy/catalog/admin/item_category_image.rb +0 -15
  59. data/lib/enjoy/catalog/models/item_category.rb +0 -27
  60. data/lib/enjoy/catalog/models/item_category_image.rb +0 -14
  61. data/lib/enjoy/catalog/models/mongoid/item_category.rb +0 -51
  62. data/lib/enjoy/catalog/models/mongoid/item_category_image.rb +0 -29
  63. data/lib/generators/enjoy/catalog/models/templates/item_category.erb +0 -33
  64. data/lib/generators/enjoy/catalog/models/templates/item_category_image.erb +0 -30
@@ -1,40 +1,51 @@
1
1
  module Enjoy::Catalog
2
2
  module Controllers
3
- module ItemCategories
3
+ module Categories
4
4
  extend ActiveSupport::Concern
5
5
 
6
+ included do
7
+ if Enjoy::Catalog.config.breadcrumbs_on_rails_support
8
+ add_breadcrumb I18n.t('enjoy.breadcrumbs.catalog'), :enjoy_catalog_path
9
+ end
10
+ end
11
+
6
12
  def index
7
- @item_categories = item_category_class.enabled.sorted.to_a
8
- @root_catalog = item_category_class.enabled.roots.sorted.all.to_a
13
+ @categories = category_class.enabled.sorted.to_a
14
+ @root_catalog = category_class.enabled.roots.sorted.all.to_a
9
15
  # index_crumbs
10
16
  end
11
17
 
12
18
  def show
13
- @item_category = item_category_class.enabled.find(params[:id])
14
- if !@item_category.text_slug.blank? and @item_category.text_slug != params[:id]
15
- redirect_to @item_category, status_code: 301
19
+ @category = category_class.enabled.find(params[:id])
20
+ if !@category.text_slug.blank? and @category.text_slug != params[:id]
21
+ redirect_to @category, status_code: 301
16
22
  return
17
23
  end
18
- @seo_parent_page = find_seo_page(item_categories_path)
24
+ @seo_parent_page = find_seo_page(url_for(action: :index))
25
+
26
+ @children = @category.children.enabled.sorted.all.to_a
27
+ @items = @category.items.enabled.sorted.all.to_a
28
+
29
+ if Enjoy::Catalog.config.breadcrumbs_on_rails_support
30
+ add_breadcrumb @category.name, url_for(@category)
31
+ end
19
32
 
20
- @children = @item_category.children.enabled.sorted.all.to_a
21
- @items = @item_category.items.enabled.sorted.all.to_a
22
33
 
23
34
  # index_crumbs
24
35
  # category_crumbs
25
36
  end
26
37
 
27
38
  def page_title
28
- if @item_category
29
- @item_category.page_title
39
+ if @category
40
+ @category.page_title
30
41
  else
31
42
  super
32
43
  end
33
44
  end
34
45
 
35
46
  private
36
- def item_category_class
37
- Enjoy::Catalog::ItemCategory
47
+ def category_class
48
+ Enjoy::Catalog::Category
38
49
  end
39
50
  def item_class
40
51
  Enjoy::Catalog::Item
@@ -51,24 +62,24 @@ module Enjoy::Catalog
51
62
  # else
52
63
  # catalog_title = Settings.ns('breadcrumbs').catalog_title(default: "Каталог", label: "'Каталог' в breadcrumbs")
53
64
  # _crumb = catalog_title
54
- # add_crumb _crumb, item_categories_path
65
+ # add_crumb _crumb, news_categories_path
55
66
  # end
56
67
  # end
57
68
  #
58
69
  # def category_crumbs
59
- # if @item_category
60
- # _parent = @item_category.parent
70
+ # if @news_category
71
+ # _parent = @news_category.parent
61
72
  # if _parent
62
73
  # _crumb = _parent.name if _crumb.blank?
63
74
  # _crumb = _parent.title if _crumb.blank?
64
75
  # _crumb = _parent.h1 if _crumb.blank?
65
- # add_crumb _crumb, item_category_path(_parent)
76
+ # add_crumb _crumb, news_category_path(_parent)
66
77
  # _crumb = nil
67
78
  # end
68
- # _crumb = @item_category.name if _crumb.blank?
69
- # _crumb = @item_category.title if _crumb.blank?
70
- # _crumb = @item_category.h1 if _crumb.blank?
71
- # add_crumb _crumb, item_category_path(@item_category)
79
+ # _crumb = @news_category.name if _crumb.blank?
80
+ # _crumb = @news_category.title if _crumb.blank?
81
+ # _crumb = @news_category.h1 if _crumb.blank?
82
+ # add_crumb _crumb, news_category_path(@news_category)
72
83
  # end
73
84
  # end
74
85
  end
@@ -3,59 +3,48 @@ module Enjoy::Catalog
3
3
  module Items
4
4
  extend ActiveSupport::Concern
5
5
 
6
+ included do
7
+ if Enjoy::Catalog.config.breadcrumbs_on_rails_support
8
+ add_breadcrumb I18n.t('enjoy.breadcrumbs.items'), :enjoy_items_path
9
+ end
10
+ end
11
+
6
12
  def index
7
- @items = item_class.enabled.sorted.to_a
8
- # index_crumbs
13
+ @item = item_class.enabled.sorted
14
+
15
+ unless Enjoy::Catalog.config.items_per_page.nil?
16
+ @item = @item.page(params[:page])
17
+ end
9
18
  end
10
19
 
11
20
  def show
12
21
  @item = item_class.enabled.find(params[:id])
13
- if !@item.text_slug.blank? and @item.text_slug != params[:id]
22
+
23
+ if @item and @item.text_slug != params[:id]
14
24
  redirect_to @item, status_code: 301
15
- return
25
+ return true
16
26
  end
17
- @parent_seo_page = find_seo_page(item_categories_path) if @seo_page.blank?
18
- # item_crumbs
19
- end
20
27
 
21
- def page_title
22
- if @item
23
- @item.page_title
24
- else
25
- super
28
+ if Enjoy::Catalog.config.breadcrumbs_on_rails_support
29
+ add_breadcrumb @item.name, url_for(@item)
26
30
  end
27
31
  end
28
32
 
29
33
  private
30
- def item_category_class
31
- Enjoy::Catalog::ItemCategory
34
+ def category_class
35
+ Enjoy::Catalog::Category
32
36
  end
33
37
  def item_class
34
38
  Enjoy::Catalog::Item
35
39
  end
40
+ def page_title
41
+ if @item.class.name == model.name
42
+ @item.page_title
43
+ else
44
+ super
45
+ end
46
+ end
36
47
 
37
- # def item_crumbs
38
- # if @item
39
- # if @item.item_categories.enabled.count == 1
40
- # if @parent_seo_page
41
- # _crumb = @parent_seo_page.name
42
- # _crumb = @parent_seo_page.title if _crumb.blank?
43
- # _crumb = @parent_seo_page.h1 if _crumb.blank?
44
- # add_crumb _crumb, @parent_seo_page.fullpath
45
- # end
46
- #
47
- # @item_category = @item.item_categories.enabled.first
48
- # _crumb = @item_category.name
49
- # _crumb = @item_category.title if _crumb.blank?
50
- # _crumb = @item_category.h1 if _crumb.blank?
51
- # add_crumb _crumb, item_category_path(@item_category)
52
- # end
53
- # _crumb = @item.name
54
- # _crumb = @item.title if _crumb.blank?
55
- # _crumb = @item.h1 if _crumb.blank?
56
- # add_crumb _crumb, item_path(@item)
57
- # end
58
- # end
59
48
  end
60
49
  end
61
50
  end
@@ -0,0 +1,50 @@
1
+ module Enjoy::Catalog
2
+ module Models
3
+ module Category
4
+ extend ActiveSupport::Concern
5
+ include Enjoy::Model
6
+ include Enjoy::Enableable
7
+ if Enjoy::Catalog.config.seo_support
8
+ include Enjoy::Seo::Seoable
9
+ include Enjoy::Seo::SitemapDataField
10
+ end
11
+ if Enjoy::Catalog.config.pages_support
12
+ include Enjoy::Pages::Connectable
13
+ end
14
+ if Enjoy::Catalog.config.gallery_support
15
+ include Enjoy::Gallery::Paperclipable
16
+ end
17
+
18
+ include Enjoy::Catalog.orm_specific('Category')
19
+
20
+ include ManualSlug
21
+
22
+ included do
23
+ manual_slug :name
24
+
25
+ if Enjoy::Catalog.config.pages_support and Enjoy::Catalog.configuration.can_connect_category_with_pages
26
+ enjoy_connectable_field :connected_pages
27
+ end
28
+
29
+ if Enjoy::Catalog.config.gallery_support and Enjoy::Catalog.configuration.category_image_styles
30
+ enjoy_cms_attached_file(:image,
31
+ styles: lambda { |attachment| attachment.instance.image_styles }
32
+ )
33
+ end
34
+ end
35
+
36
+ def item_class
37
+ Enjoy::Catalog::Item
38
+ end
39
+
40
+ def image_styles
41
+ Enjoy::Catalog.configuration.category_image_styles
42
+ end
43
+
44
+ def image_jcrop_options
45
+ {}
46
+ end
47
+
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,22 @@
1
+ module Enjoy::Catalog
2
+ module Models
3
+ module CategoryImage
4
+ extend ActiveSupport::Concern
5
+ # include Enjoy::Model
6
+ # include Enjoy::Enableable
7
+
8
+ include Enjoy::Catalog.orm_specific('CategoryImage')
9
+
10
+ included do
11
+ end
12
+
13
+ def image_styles
14
+ Enjoy::Catalog.configuration.category_images_image_styles
15
+ end
16
+
17
+ def image_jcrop_options
18
+ {}
19
+ end
20
+ end
21
+ end
22
+ end
@@ -4,9 +4,16 @@ module Enjoy::Catalog
4
4
  extend ActiveSupport::Concern
5
5
  include Enjoy::Model
6
6
  include Enjoy::Enableable
7
- include Enjoy::Seoable
8
- include Enjoy::SitemapDataField
9
- include Enjoy::Connectable
7
+ if Enjoy::Catalog.config.seo_support
8
+ include Enjoy::Seo::Seoable
9
+ include Enjoy::Seo::SitemapDataField
10
+ end
11
+ if Enjoy::Catalog.config.pages_support
12
+ include Enjoy::Pages::Connectable
13
+ end
14
+ if Enjoy::Catalog.config.gallery_support
15
+ include Enjoy::Gallery::Paperclipable
16
+ end
10
17
 
11
18
  include Enjoy::Catalog.orm_specific('Item')
12
19
 
@@ -15,7 +22,23 @@ module Enjoy::Catalog
15
22
  included do
16
23
  manual_slug :name
17
24
 
18
- enjoy_connectable_field :connected_pages
25
+ if Enjoy::Catalog.config.pages_support and Enjoy::Catalog.configuration.can_connect_items_with_pages
26
+ enjoy_connectable_field :connected_pages
27
+ end
28
+
29
+ if Enjoy::Catalog.config.gallery_support and Enjoy::Catalog.configuration.item_image_styles
30
+ enjoy_cms_attached_file(:image,
31
+ styles: lambda { |attachment| attachment.instance.image_styles }
32
+ )
33
+ end
34
+ end
35
+
36
+ def image_styles
37
+ Enjoy::Catalog.configuration.item_image_styles
38
+ end
39
+
40
+ def image_jcrop_options
41
+ {}
19
42
  end
20
43
  end
21
44
  end
@@ -9,6 +9,14 @@ module Enjoy::Catalog
9
9
 
10
10
  included do
11
11
  end
12
+
13
+ def image_styles
14
+ Enjoy::Catalog.configuration.item_images_image_styles
15
+ end
16
+
17
+ def image_jcrop_options
18
+ {}
19
+ end
12
20
  end
13
21
  end
14
22
  end
@@ -0,0 +1,32 @@
1
+ module Enjoy::Catalog
2
+ module Models
3
+ module Mongoid
4
+ module Category
5
+ extend ActiveSupport::Concern
6
+ include Enjoy::HtmlField
7
+
8
+ included do
9
+ field :name, type: String, localize: Enjoy::Catalog.configuration.localize, default: ""
10
+
11
+ acts_as_nested_set
12
+ scope :sorted, -> { order_by([:lft, :asc]) }
13
+
14
+ enjoy_cms_html_field :excerpt, type: String, localize: Enjoy::Catalog.configuration.localize, default: ""
15
+ enjoy_cms_html_field :content, type: String, localize: Enjoy::Catalog.configuration.localize, default: ""
16
+
17
+ embeds_many :category_images, cascade_callbacks: true, class_name: "Enjoy::Catalog::CategoryImage"
18
+ alias :images :category_images
19
+ accepts_nested_attributes_for :category_images, allow_destroy: true
20
+ end
21
+
22
+ def items
23
+ item_class.in(category_ids: self.id)
24
+ end
25
+
26
+ def all_items
27
+ item_class.any_in(category_ids: self.self_and_descendants.map(&:id))
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,20 @@
1
+ module Enjoy::Catalog
2
+ module Models
3
+ module Mongoid
4
+ module CategoryImage
5
+ extend ActiveSupport::Concern
6
+
7
+ included do
8
+ embedded_in :item, class_name: "Enjoy::Catalog::Category"
9
+ end
10
+
11
+ include ::Mongoid::EmbeddedFindable
12
+ module ClassMethods
13
+ def find(id)
14
+ find_through(Enjoy::Catalog::Category, 'category_images', id)
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -3,30 +3,19 @@ module Enjoy::Catalog
3
3
  module Mongoid
4
4
  module Item
5
5
  extend ActiveSupport::Concern
6
- include Enjoy::MongoidPaperclip
7
6
 
8
7
  include Enjoy::HtmlField
9
8
 
10
9
  included do
11
- if defined?(RailsAdminComments)
12
- include RailsAdminComments::Commentable
13
- end
14
-
15
- field :name, type: String, localize: Enjoy.configuration.localize, default: ""
16
-
17
- enjoy_cms_mongoid_attached_file(:image,
18
- styles: lambda { |attachment| attachment.instance.image_styles },
19
- content_type: { content_type: ["image/jpg", "image/jpeg", "image/png"] }
20
- )
10
+ field :name, type: String, localize: Enjoy::Catalog.configuration.localize, default: ""
21
11
 
22
12
  acts_as_nested_set
23
13
  scope :sorted, -> { order_by([:lft, :asc]) }
24
14
 
25
- enjoy_cms_html_field :excerpt, type: String, localize: Enjoy.configuration.localize, default: ""
26
- enjoy_cms_html_field :content, type: String, localize: Enjoy.configuration.localize, default: ""
15
+ enjoy_cms_html_field :excerpt, type: String, localize: Enjoy::Catalog.configuration.localize, default: ""
16
+ enjoy_cms_html_field :content, type: String, localize: Enjoy::Catalog.configuration.localize, default: ""
27
17
 
28
- has_and_belongs_to_many :item_categories, class_name: "Enjoy::Catalog::ItemCategory", inverse_of: nil
29
- alias :categories :item_categories
18
+ has_and_belongs_to_many :categories, class_name: "Enjoy::Catalog::Category", inverse_of: nil
30
19
 
31
20
  embeds_many :item_images, cascade_callbacks: true, class_name: "Enjoy::Catalog::ItemImage"
32
21
  alias :images :item_images
@@ -34,15 +23,7 @@ module Enjoy::Catalog
34
23
 
35
24
  has_and_belongs_to_many :related_items, :class_name => "Enjoy::Catalog::Item", :inverse_of => :related_items
36
25
 
37
- field :price, type: Money, default: nil, localize: Enjoy.configuration.localize
38
- end
39
-
40
- def image_styles
41
- Enjoy::Catalog.configuration.item_image_styles
42
- end
43
-
44
- def image_jcrop_options
45
- {}
26
+ field :price, type: Money, default: nil, localize: Enjoy::Catalog.configuration.localize
46
27
  end
47
28
  end
48
29
  end
@@ -3,27 +3,17 @@ module Enjoy::Catalog
3
3
  module Mongoid
4
4
  module ItemImage
5
5
  extend ActiveSupport::Concern
6
- # include Enjoy::MongoidPaperclip
7
6
 
8
7
  included do
9
8
  embedded_in :item, class_name: "Enjoy::Catalog::Item"
10
9
  end
11
10
 
12
-
13
11
  include ::Mongoid::EmbeddedFindable
14
12
  module ClassMethods
15
13
  def find(id)
16
14
  find_through(Enjoy::Catalog::Item, 'item_images', id)
17
15
  end
18
16
  end
19
-
20
- def image_styles
21
- Enjoy::Catalog.configuration.item_images_image_styles
22
- end
23
-
24
- def image_jcrop_options
25
- {}
26
- end
27
17
  end
28
18
  end
29
19
  end
@@ -1,33 +1,77 @@
1
1
  module ActionDispatch::Routing
2
2
  class Mapper
3
-
4
3
  def enjoy_cms_catalog_routes(config = {})
5
4
  routes_config = {
6
5
  use_items_path: true,
7
- use_item_categories_path: true,
8
- use_catalog_path: true
6
+ use_categories_path: true,
7
+ use_catalog_path: true,
8
+ catalog_path: 'catalog',
9
+ classes: {
10
+ items: :items,
11
+ categories: :categories,
12
+ catalog_controller: :categories
13
+ },
14
+ paths: {
15
+ items: :items,
16
+ categories: :categories
17
+ },
18
+ pagination: {
19
+ items: true,
20
+ categories: true,
21
+ category_items: true
22
+ },
23
+ actions: {
24
+ items: [:show],
25
+ categories: [:show],
26
+ }
9
27
  }
10
- routes_config.merge!(config)
28
+ routes_config.deep_merge!(config)
29
+
30
+ generate_enjoy_catalog_user_routes(routes_config)
31
+ generate_enjoy_catalog_cms_routes(routes_config)
32
+ end
33
+
34
+
35
+ private
36
+ def generate_enjoy_catalog_user_routes(routes_config)
37
+ if !routes_config[:use_items_path] and !routes_config[:classes][:items].nil?
38
+ resources routes_config[:classes][:items].to_sym, only: routes_config[:actions][:items], path: routes_config[:paths][:items] do
39
+ get '(/page/:page)', action: :index, on: :collection, as: "" if routes_config[:pagination][:items]
40
+ end
41
+ end
11
42
 
43
+ if !routes_config[:use_categories_path] and !routes_config[:classes][:categories].nil?
44
+ resources routes_config[:classes][:categories].to_sym, only: routes_config[:actions][:categories], path: routes_config[:paths][:categories] do
45
+ get '(/page/:page)', action: :index, on: :collection, as: "" if routes_config[:pagination][:categories]
46
+ get 'items(/page/:page)', action: :items, on: :member, as: :items if routes_config[:pagination][:category_items]
47
+ end
48
+ end
49
+
50
+ if !routes_config[:use_catalog_path] and !routes_config[:classes][:catalog_controller].nil?
51
+ get "#{routes_config[:catalog_path]}" => "#{routes_config[:classes][:catalog_controller]}#index"
52
+ end
53
+ end
54
+
55
+ def generate_enjoy_catalog_cms_routes(routes_config)
12
56
  scope module: 'enjoy' do
13
57
  scope module: 'catalog' do
14
- if routes_config[:use_items_path]
15
- resources :items, only: [:show], as: :enjoy_catalog_items do
16
- get '(/page/:page)', action: :index, on: :collection, as: ""
58
+ if routes_config[:use_items_path] and !routes_config[:classes][:items].nil?
59
+ resources routes_config[:classes][:items].to_sym, only: routes_config[:actions][:items], path: routes_config[:paths][:items], as: :enjoy_catalog_items do
60
+ get '(/page/:page)', action: :index, on: :collection, as: "" if routes_config[:pagination][:items]
17
61
  end
18
62
  end
19
63
 
20
- if routes_config[:use_item_categories_path]
21
- resources :item_categories, only: [:index, :show], as: :enjoy_catalog_item_categories do
22
- get 'items(/page/:page)', action: :items, on: :member, as: :items
64
+ if routes_config[:use_categories_path] and !routes_config[:classes][:categories].nil?
65
+ resources routes_config[:classes][:categories].to_sym, only: routes_config[:actions][:categories], path: routes_config[:paths][:categories], as: :enjoy_catalog_categories do
66
+ get '(/page/:page)', action: :index, on: :collection, as: "" if routes_config[:pagination][:categories]
67
+ get 'items(/page/:page)', action: :items, on: :member, as: :items if routes_config[:pagination][:category_items]
23
68
  end
24
69
  end
25
- if routes_config[:use_catalog_path]
26
- get 'catalog' => 'item_categories#index', as: :enjoy_catalog
70
+ if routes_config[:use_catalog_path] and !routes_config[:classes][:catalog_controller].nil?
71
+ get "#{routes_config[:catalog_path]}" => "#{routes_config[:classes][:catalog_controller]}#index", as: :enjoy_catalog
27
72
  end
28
73
  end
29
74
  end
30
-
31
75
  end
32
76
 
33
77
  end
@@ -1,5 +1,5 @@
1
1
  module Enjoy
2
2
  module Catalog
3
- VERSION = "0.3.7"
3
+ VERSION = "0.4.0.beta3"
4
4
  end
5
5
  end
@@ -1,62 +1,69 @@
1
+ unless defined?(Enjoy) && Enjoy.respond_to?(:orm) && [:active_record, :mongoid].include?(Enjoy.orm)
2
+ puts "please use enjoy_cms_mongoid or enjoy_cms_activerecord"
3
+ puts "also: please use enjoy_cms_mongoid or enjoy_cms_activerecord and not enjoy_cms directly"
4
+ exit 1
5
+ end
6
+
1
7
  require "enjoy/catalog/version"
8
+ require 'enjoy/catalog/engine'
9
+ require 'enjoy/catalog/configuration'
2
10
 
3
11
  require 'enjoy/catalog/routes'
4
12
 
5
13
  require 'money-rails'
14
+ # require 'mongoid_money_field'
6
15
 
7
- require 'enjoy_cms'
8
-
9
- require 'rails_admin_sort_embedded'
10
- require 'rails_admin_jcrop'
16
+ module Enjoy::Catalog
17
+ class << self
18
+ def orm
19
+ Enjoy.orm
20
+ end
21
+ def mongoid?
22
+ Enjoy::Catalog.orm == :mongoid
23
+ end
24
+ def active_record?
25
+ Enjoy::Catalog.orm == :active_record
26
+ end
27
+ def model_namespace
28
+ "Enjoy::Catalog::Models::#{Enjoy::Catalog.orm.to_s.camelize}"
29
+ end
30
+ def orm_specific(name)
31
+ "#{model_namespace}::#{name}".constantize
32
+ end
33
+ end
11
34
 
12
- require 'enjoy/catalog/configuration'
13
- require 'enjoy/catalog/engine'
35
+ autoload :Admin, 'enjoy/catalog/admin'
36
+ module Admin
37
+ autoload :Item, 'enjoy/catalog/admin/item'
38
+ autoload :Category, 'enjoy/catalog/admin/category'
39
+ autoload :ItemImage, 'enjoy/catalog/admin/item_image'
40
+ autoload :CategoryImage, 'enjoy/catalog/admin/category_image'
41
+ end
14
42
 
15
- module Enjoy
16
- module Catalog
17
- class << self
18
- def orm
19
- :mongoid
20
- end
21
- def mongoid?
22
- Enjoy::Catalog.orm == :mongoid
23
- end
24
- def active_record?
25
- Enjoy::Catalog.orm == :active_record
26
- end
27
- def model_namespace
28
- "Enjoy::Catalog::Models::#{Enjoy::Catalog.orm.to_s.camelize}"
29
- end
30
- def orm_specific(name)
31
- "#{model_namespace}::#{name}".constantize
32
- end
33
- end
43
+ module Models
44
+ autoload :Item, 'enjoy/catalog/models/item'
45
+ autoload :Category, 'enjoy/catalog/models/category'
46
+ autoload :ItemImage, 'enjoy/catalog/models/item_image'
47
+ autoload :CategoryImage, 'enjoy/catalog/models/category_image'
34
48
 
35
- autoload :Admin, 'enjoy/catalog/admin'
36
- module Admin
37
- autoload :Item, 'enjoy/catalog/admin/item'
38
- autoload :ItemCategory, 'enjoy/catalog/admin/item_category'
39
- autoload :ItemImage, 'enjoy/catalog/admin/item_image'
40
- autoload :ItemCategoryImage, 'enjoy/catalog/admin/item_category_image'
49
+ module Mongoid
50
+ autoload :Item, 'enjoy/catalog/models/mongoid/item'
51
+ autoload :Category, 'enjoy/catalog/models/mongoid/category'
52
+ autoload :ItemImage, 'enjoy/catalog/models/mongoid/item_image'
53
+ autoload :CategoryImage, 'enjoy/catalog/models/mongoid/category_image'
41
54
  end
42
55
 
43
- module Models
44
- autoload :Item, 'enjoy/catalog/models/item'
45
- autoload :ItemCategory, 'enjoy/catalog/models/item_category'
46
- autoload :ItemImage, 'enjoy/catalog/models/item_image'
47
- autoload :ItemCategoryImage, 'enjoy/catalog/models/item_category_image'
48
-
49
- module Mongoid
50
- autoload :Item, 'enjoy/catalog/models/mongoid/item'
51
- autoload :ItemCategory, 'enjoy/catalog/models/mongoid/item_category'
52
- autoload :ItemImage, 'enjoy/catalog/models/mongoid/item_image'
53
- autoload :ItemCategoryImage, 'enjoy/catalog/models/mongoid/item_category_image'
54
- end
55
- end
56
+ # module ActiveRecord
57
+ # autoload :Item, 'enjoy/catalog/models/active_record/item'
58
+ # autoload :Category, 'enjoy/catalog/models/active_record/category'
59
+ # autoload :ItemImage, 'enjoy/catalog/models/active_record/item_image'
60
+ # autoload :CategoryImage, 'enjoy/catalog/models/active_record/category_image'
61
+ # end
62
+ end
56
63
 
57
- module Controllers
58
- autoload :Items, 'enjoy/catalog/controllers/items'
59
- autoload :ItemCategories, 'enjoy/catalog/controllers/item_categories'
60
- end
64
+ module Controllers
65
+ autoload :Items, 'enjoy/catalog/controllers/items'
66
+ autoload :Categories, 'enjoy/catalog/controllers/categories'
61
67
  end
68
+
62
69
  end