coalla-cms 0.5.2.4 → 0.6.0.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (156) hide show
  1. checksums.yaml +8 -8
  2. data/Gemfile +1 -1
  3. data/app/assets/javascripts/admin/admin.js +233 -34
  4. data/app/assets/stylesheets/admin/admin.scss +1 -2
  5. data/app/assets/stylesheets/admin/vendor/bootstrap.min.css +6242 -4
  6. data/app/assets/stylesheets/admin/vendor/token-input-bootstrap.scss +144 -0
  7. data/app/controllers/admin/autocomplete_controller.rb +3 -1
  8. data/app/controllers/admin/base_controller.rb +35 -0
  9. data/app/controllers/concerns/admin/editable_columns.rb +55 -0
  10. data/app/controllers/concerns/admin/sortable_columns.rb +16 -0
  11. data/app/controllers/{admin/sortable_controller.rb → concerns/admin/sortable_models.rb} +1 -5
  12. data/app/helpers/admin/alerts_helper.rb +31 -0
  13. data/app/helpers/admin/content_helper.rb +29 -0
  14. data/app/helpers/admin/form_helper.rb +50 -0
  15. data/app/helpers/admin/resource_helpers.rb +102 -0
  16. data/app/helpers/admin/search_helper.rb +44 -40
  17. data/app/helpers/admin/table_helper.rb +40 -0
  18. data/app/helpers/common_helper.rb +2 -2
  19. data/app/models/file_upload.rb +1 -1
  20. data/app/models/lookup.rb +1 -1
  21. data/app/models/site_meta_tags.rb +2 -2
  22. data/app/views/admin/common/_menu_section.haml +1 -1
  23. data/app/views/admin/common/_nested_fields_for.html.haml +10 -5
  24. data/app/views/admin/common/_nested_fields_for_element.html.haml +21 -5
  25. data/app/views/admin/common/_table_template.html.haml +26 -7
  26. data/app/views/admin/common/_upload_form.html.haml +2 -1
  27. data/app/views/admin/editable_columns/edit/_boolean.haml +2 -0
  28. data/app/views/admin/editable_columns/edit/_date.haml +2 -0
  29. data/app/views/admin/editable_columns/edit/_datetime.haml +3 -0
  30. data/app/views/admin/editable_columns/edit/_enumerize.haml +2 -0
  31. data/app/views/admin/editable_columns/edit/_string.haml +2 -0
  32. data/app/views/admin/editable_columns/edit/_text.haml +2 -0
  33. data/app/views/admin/editable_columns/edit/_time.haml +3 -0
  34. data/app/views/admin/editable_columns/edit_column.haml +8 -0
  35. data/app/views/admin/editable_columns/result/_boolean.haml +2 -0
  36. data/app/views/admin/editable_columns/result/_date.haml +1 -0
  37. data/app/views/admin/editable_columns/result/_datetime.haml +1 -0
  38. data/app/views/admin/editable_columns/result/_enumerize.haml +1 -0
  39. data/app/views/admin/editable_columns/result/_string.haml +1 -0
  40. data/app/views/admin/editable_columns/result/_text.haml +1 -0
  41. data/app/views/admin/editable_columns/result/_time.haml +1 -0
  42. data/app/views/admin/site_meta_tags/index.html.haml +2 -2
  43. data/app/views/layouts/admin.html.haml +12 -0
  44. data/app/views/structure/_section.haml +2 -9
  45. data/coalla-cms.gemspec +10 -11
  46. data/lib/coalla/builders/actions_column_definition.rb +44 -0
  47. data/lib/coalla/builders/admin_structure.rb +86 -0
  48. data/lib/coalla/builders/column_definition.rb +9 -0
  49. data/lib/coalla/builders/form_builder.rb +291 -0
  50. data/lib/coalla/builders/link_renderer.rb +43 -0
  51. data/lib/coalla/builders/policy.rb +30 -0
  52. data/lib/coalla/builders/table_builder.rb +99 -0
  53. data/lib/coalla/builders/table_formatter.rb +133 -0
  54. data/lib/coalla/builders/text_formatter.rb +22 -0
  55. data/lib/coalla/cms/engine.rb +3 -2
  56. data/lib/coalla/cms/version.rb +2 -2
  57. data/lib/coalla/ext/mapper.rb +7 -0
  58. data/lib/coalla/orm/{relation.rb → multi_field.rb} +7 -8
  59. data/lib/coalla/orm/page_slider.rb +2 -28
  60. data/lib/coalla/orm/sanitized.rb +1 -5
  61. data/lib/coalla/orm/sortable_association.rb +30 -0
  62. data/lib/coalla/uploaders/file_uploader.rb +9 -0
  63. data/lib/coalla/uploaders/image_uploader.rb +62 -0
  64. data/lib/coalla/uploaders/meta_image_uploader.rb +7 -0
  65. data/lib/coalla-cms.rb +10 -0
  66. data/lib/generators/coalla/cms/create_admin_administrators_generator.rb +5 -7
  67. data/lib/generators/coalla/cms/create_admin_generator.rb +9 -7
  68. data/lib/generators/coalla/cms/create_admin_login_view_generator.rb +4 -6
  69. data/lib/generators/coalla/cms/create_markup_generator.rb +2 -2
  70. data/lib/generators/coalla/cms/file_uploads/install_generator.rb +0 -17
  71. data/lib/generators/coalla/cms/file_uploads/mount_generator.rb +4 -7
  72. data/lib/generators/coalla/cms/image/install_generator.rb +0 -3
  73. data/lib/generators/coalla/cms/image/mount_generator.rb +0 -3
  74. data/lib/generators/coalla/cms/image/templates/mount/uploader.rb.erb +1 -1
  75. data/lib/generators/coalla/cms/image/templates/uploader.rb.erb +1 -1
  76. data/lib/generators/coalla/cms/init_generator.rb +42 -49
  77. data/lib/generators/coalla/cms/lookups/install_generator.rb +0 -3
  78. data/lib/generators/coalla/cms/meta_tags/install_generator.rb +0 -2
  79. data/lib/generators/coalla/cms/scaffold_generator.rb +7 -7
  80. data/lib/generators/coalla/cms/setup_admin_generator.rb +9 -9
  81. data/lib/generators/coalla/cms/setup_routes_generator.rb +3 -3
  82. data/lib/generators/coalla/cms/slider/init_generator.rb +1 -3
  83. data/lib/generators/coalla/cms/slider/templates/slider_image.rb.erb +0 -1
  84. data/lib/generators/coalla/cms/slider/templates/slider_image_uploader.rb.erb +1 -1
  85. data/lib/generators/coalla/cms/templates/.gitignore +3 -3
  86. data/lib/generators/coalla/cms/templates/controllers/admin/administrators_controller.rb +2 -40
  87. data/lib/generators/coalla/cms/templates/controllers/admin/scaffold_controller_template.rb.erb +0 -39
  88. data/lib/generators/coalla/cms/templates/initializers/carrierwave.rb +0 -90
  89. data/lib/generators/coalla/cms/templates/locales/activerecord.en.yml +14 -1
  90. data/lib/generators/coalla/cms/templates/views/admin/administrators/_form.html.haml +1 -1
  91. data/lib/generators/coalla/cms/templates/views/admin/administrators/edit.html.haml +1 -1
  92. data/lib/generators/coalla/cms/templates/views/admin/administrators/index.html.haml +5 -5
  93. data/lib/generators/coalla/cms/templates/views/admin/administrators/new.html.haml +1 -1
  94. data/lib/generators/coalla/cms/templates/views/admin/scaffold_template/_form.html.haml.erb +1 -1
  95. data/lib/generators/coalla/cms/templates/views/admin/scaffold_template/edit.html.haml.erb +1 -1
  96. data/lib/generators/coalla/cms/templates/views/admin/scaffold_template/index.html.haml.erb +5 -5
  97. data/lib/generators/coalla/cms/templates/views/admin/scaffold_template/new.html.haml.erb +1 -1
  98. data/lib/generators/coalla/cms/templates/views/administrators/sessions/new.html.haml +1 -1
  99. data/lib/generators/coalla/cms/utils/orm.rb +29 -0
  100. data/lib/generators/coalla/cms/utils/scaffold.rb +11 -0
  101. metadata +57 -100
  102. data/Gemfile.lock +0 -198
  103. data/app/assets/stylesheets/admin/vendor/token-input-facebook.patched.css +0 -126
  104. data/app/assets/stylesheets/admin/vendor/token-input.patched.css +0 -116
  105. data/app/controllers/admin/notifier_controller.rb +0 -7
  106. data/app/helpers/admin_helper.rb +0 -29
  107. data/app/helpers/nested_fields_helper.rb +0 -12
  108. data/app/helpers/static_text_formatter.rb +0 -25
  109. data/app/helpers/twitter_builder_helper.rb +0 -253
  110. data/app/helpers/twitter_form_builder.rb +0 -202
  111. data/app/uploaders/file_uploader.rb +0 -10
  112. data/app/uploaders/generic_image_uploader.rb +0 -75
  113. data/app/uploaders/meta_tags_image_uploader.rb +0 -5
  114. data/app/utils/admin_structure.rb +0 -82
  115. data/app/utils/bootstrap_link_renderer.rb +0 -40
  116. data/app/utils/table_helpers.rb +0 -196
  117. data/lib/generators/coalla/cms/market/install_generator.rb +0 -71
  118. data/lib/generators/coalla/cms/market/templates/controllers/categories_controller.rb +0 -47
  119. data/lib/generators/coalla/cms/market/templates/controllers/products_controller.rb +0 -50
  120. data/lib/generators/coalla/cms/market/templates/controllers/properties_controller.rb +0 -59
  121. data/lib/generators/coalla/cms/market/templates/market.rb +0 -5
  122. data/lib/generators/coalla/cms/market/templates/market.ru.yml +0 -53
  123. data/lib/generators/coalla/cms/market/templates/migrations/create_categories.rb +0 -15
  124. data/lib/generators/coalla/cms/market/templates/migrations/create_product_properties.rb +0 -18
  125. data/lib/generators/coalla/cms/market/templates/migrations/create_products.rb +0 -18
  126. data/lib/generators/coalla/cms/market/templates/migrations/create_properties.rb +0 -11
  127. data/lib/generators/coalla/cms/market/templates/models/category.rb +0 -36
  128. data/lib/generators/coalla/cms/market/templates/models/product.rb +0 -16
  129. data/lib/generators/coalla/cms/market/templates/models/product_property.rb +0 -14
  130. data/lib/generators/coalla/cms/market/templates/models/property.rb +0 -7
  131. data/lib/generators/coalla/cms/market/templates/views/categories/_form.html.haml +0 -10
  132. data/lib/generators/coalla/cms/market/templates/views/categories/edit.html.haml +0 -5
  133. data/lib/generators/coalla/cms/market/templates/views/categories/index.html.haml +0 -17
  134. data/lib/generators/coalla/cms/market/templates/views/categories/new.html.haml +0 -4
  135. data/lib/generators/coalla/cms/market/templates/views/products/_form.html.haml +0 -17
  136. data/lib/generators/coalla/cms/market/templates/views/products/_product_property_fields.html.haml +0 -13
  137. data/lib/generators/coalla/cms/market/templates/views/products/edit.html.haml +0 -5
  138. data/lib/generators/coalla/cms/market/templates/views/products/index.html.haml +0 -17
  139. data/lib/generators/coalla/cms/market/templates/views/products/new.html.haml +0 -4
  140. data/lib/generators/coalla/cms/market/templates/views/properties/_form.html.haml +0 -9
  141. data/lib/generators/coalla/cms/market/templates/views/properties/edit.html.haml +0 -5
  142. data/lib/generators/coalla/cms/market/templates/views/properties/index.html.haml +0 -15
  143. data/lib/generators/coalla/cms/market/templates/views/properties/new.html.haml +0 -4
  144. data/lib/generators/coalla/cms/news/scaffold_generator.rb +0 -50
  145. data/lib/generators/coalla/cms/news/templates/entity.rb.erb +0 -10
  146. data/lib/generators/coalla/cms/news/templates/entity_controller_template.rb.erb +0 -47
  147. data/lib/generators/coalla/cms/news/templates/entity_image_uploader.rb.erb +0 -7
  148. data/lib/generators/coalla/cms/news/templates/migration.rb.erb +0 -15
  149. data/lib/generators/coalla/cms/news/templates/views/_form.haml.erb +0 -16
  150. data/lib/generators/coalla/cms/news/templates/views/edit.haml.erb +0 -5
  151. data/lib/generators/coalla/cms/news/templates/views/index.haml.erb +0 -18
  152. data/lib/generators/coalla/cms/news/templates/views/new.haml.erb +0 -5
  153. data/lib/generators/coalla/cms/orm_helpers.rb +0 -31
  154. data/lib/generators/coalla/cms/scaffold_helper.rb +0 -11
  155. data/lib/generators/coalla/cms/templates/controllers/admin/base_controller.rb.erb +0 -35
  156. /data/{lib/generators/coalla/cms/templates/controllers/admin/home_controller.rb.erb → app/controllers/admin/home_controller.rb} +0 -0
@@ -1,18 +0,0 @@
1
- class CreateProductProperties < ActiveRecord::Migration
2
-
3
- def change
4
- create_table :market_product_properties do |t|
5
- t.text :value
6
- t.references :product
7
- t.index :product_id
8
- t.foreign_key :market_products, column: :product_id
9
-
10
- t.references :property
11
- t.index :property_id
12
- t.foreign_key :market_properties, column: :property_id
13
-
14
- t.timestamps
15
- end
16
- end
17
-
18
- end
@@ -1,18 +0,0 @@
1
- class CreateProducts < ActiveRecord::Migration
2
-
3
- def change
4
- create_table :market_products do |t|
5
- t.text :name, null: false
6
- t.index :name
7
- t.decimal :price, null: false
8
- t.index :price
9
- t.text :sku, null: false
10
- t.references :category
11
- t.index :category_id
12
- t.foreign_key :market_categories, column: :category_id
13
- t.timestamps
14
- t.text :description
15
- end
16
- end
17
-
18
- end
@@ -1,11 +0,0 @@
1
- class CreateProperties < ActiveRecord::Migration
2
-
3
- def change
4
- create_table :market_properties do |t|
5
- t.text :name
6
- t.index :name
7
- t.timestamps
8
- end
9
- end
10
-
11
- end
@@ -1,36 +0,0 @@
1
- class Market::Category < ActiveRecord::Base
2
-
3
- has_many :subcategories, inverse_of: :category, dependent: :destroy, class_name: '::Market::Category'
4
- belongs_to :category, inverse_of: :subcategories, class_name: '::Market::Category'
5
-
6
- validates :name, presence: true
7
-
8
- scope :ordered, -> { order(:position) }
9
- scope :top_level, -> { ordered.where(category_id: nil) }
10
-
11
- def full_name
12
- categories = [self]
13
- category = self
14
- while category.category
15
- category = category.category
16
- categories << category
17
- end
18
- categories.reverse.map(&:name).join(' -> ')
19
- end
20
-
21
- def self.for_combo(category)
22
- parents = top_level
23
- parents = parents.where.not(id: category.id) if category
24
- result = []
25
- parents.each do |top_level|
26
- result << top_level
27
- result << top_level.ordered_subcategories.order(:position).reject { |sub_category| sub_category == category }
28
- end
29
- result.flatten
30
- end
31
-
32
- def ordered_subcategories
33
- subcategories.ordered
34
- end
35
-
36
- end
@@ -1,16 +0,0 @@
1
- class Market::Product < ActiveRecord::Base
2
-
3
- has_many :product_properties, dependent: :destroy, inverse_of: :product
4
- has_many :properties, through: :product_properties
5
-
6
- slider :images
7
-
8
- belongs_to :category
9
-
10
- accepts_nested_attributes_for :product_properties, allow_destroy: true
11
-
12
- validates :name, presence: true
13
- validates :price, presence: true
14
- validates :sku, presence: true
15
-
16
- end
@@ -1,14 +0,0 @@
1
- class Market::ProductProperty < ActiveRecord::Base
2
-
3
- belongs_to :product, class_name: '::Market::Product', inverse_of: :product_properties
4
- belongs_to :property, class_name: '::Market::Property', inverse_of: :product_properties
5
-
6
- def property_name
7
- property.try(:name)
8
- end
9
-
10
- def property_name=(name)
11
- # no-op
12
- end
13
-
14
- end
@@ -1,7 +0,0 @@
1
- class Market::Property < ActiveRecord::Base
2
-
3
- has_many :product_properties, dependent: :destroy, inverse_of: :property, class_name: '::Market::ProductProperty'
4
- has_many :products, through: :product_properties
5
-
6
- validates :name, presence: true
7
- end
@@ -1,10 +0,0 @@
1
- = twitter_form_for [:admin, @category] do |f|
2
- = field_set do
3
- = f.errors
4
- = flash_messages
5
-
6
- = f.string :name
7
- = f.string :position, div_class: 'col-md-2'
8
- = f.combobox :category_id, Market::Category.for_combo(@category).map{|r| [r.full_name, r.id]}, include_blank: true
9
-
10
- = standard_actions(f)
@@ -1,5 +0,0 @@
1
- %h1= Market::Category.model_name.human
2
- .page-header
3
- %h3 Редактирование
4
-
5
- = render 'form'
@@ -1,17 +0,0 @@
1
- .page-header
2
- %h1= Market::Category.model_name.human
3
-
4
- = actions do
5
- = create_link(new_admin_market_category_path)
6
-
7
- = table_for(Market::Category).content(@categories) do |t|
8
- - t.column :name
9
- - t.column :category, format: ->(category) { category.try(:name) }
10
- - t.column :position
11
- - t.edit
12
- - t.delete
13
-
14
- = admin_paginate @categories
15
-
16
- = actions do
17
- = create_link(new_admin_market_category_path)
@@ -1,4 +0,0 @@
1
- %h1= Market::Category.model_name.human
2
- .page-header
3
- %h3 Добавление
4
- = render 'form'
@@ -1,17 +0,0 @@
1
- = twitter_form_for [:admin, @product] do |f|
2
- = field_set do
3
- = f.errors
4
- = flash_messages
5
-
6
- = f.string :name
7
- = f.string :sku, div_class: 'col-md-2'
8
- = f.string :price, div_class: 'col-md-2'
9
- = f.combobox :category_id, Market::Category.for_combo(nil).map{|r| [r.full_name, r.id]}, include_blank: true
10
- = f.textarea :description, rows: 3
11
- = render_slides(f, 'Слайдер', :images)
12
-
13
- = render 'admin/common/nested_fields_for', f: f, section_name: 'Свойства', collection: :product_properties
14
-
15
- = standard_actions(f)
16
-
17
-
@@ -1,13 +0,0 @@
1
- = builder.string :property_name, div_class: 'col-md-7', class: 'property_autocomplete'
2
- = builder.hidden_field :property_id, class: 'property_id'
3
- = builder.string :value, div_class: 'col-md-7'
4
-
5
- :javascript
6
- $(function() {
7
- $('.property_autocomplete').autocomplete({
8
- source: '#{admin_market_properties_path}',
9
- select: function(event, ui) {
10
- $(this).closest('.fields_container').find('.property_id').val(ui.item.id);
11
- }
12
- });
13
- });
@@ -1,5 +0,0 @@
1
- %h1= Market::Product.model_name.human
2
- .page-header
3
- %h3 Редактирование
4
-
5
- = render 'form'
@@ -1,17 +0,0 @@
1
- .page-header
2
- %h1= Market::Product.model_name.human
3
-
4
- = actions do
5
- = create_link(new_admin_market_product_path)
6
-
7
- = table_for(Market::Product).content(@products) do |t|
8
- - t.column :name
9
- - t.column :sku, class: "text-center", cols: 1
10
- - t.column :price, class: "text-left", cols: 1
11
- - t.edit
12
- - t.delete
13
-
14
- = admin_paginate @products
15
-
16
- = actions do
17
- = create_link(new_admin_market_product_path)
@@ -1,4 +0,0 @@
1
- %h1= Market::Product.model_name.human
2
- .page-header
3
- %h3 Добавление
4
- = render 'form'
@@ -1,9 +0,0 @@
1
- = twitter_form_for [:admin, @property] do |f|
2
- = field_set do
3
- = f.errors
4
- = flash_messages
5
-
6
- = f.string :name
7
-
8
-
9
- = standard_actions(f)
@@ -1,5 +0,0 @@
1
- %h1= Market::Property.model_name.human
2
- .page-header
3
- %h3 Редактирование
4
-
5
- = render 'form'
@@ -1,15 +0,0 @@
1
- .page-header
2
- %h1= Market::Property.model_name.human
3
-
4
- = actions do
5
- = create_link(new_admin_market_property_path)
6
-
7
- = table_for(Market::Property).content(@properties) do |t|
8
- - t.column :name
9
- - t.edit
10
- - t.delete
11
-
12
- = admin_paginate @properties
13
-
14
- = actions do
15
- = create_link(new_admin_market_property_path)
@@ -1,4 +0,0 @@
1
- %h1= Market::Property.model_name.human
2
- .page-header
3
- %h3 Добавление
4
- = render 'form'
@@ -1,50 +0,0 @@
1
- require 'rails'
2
- require 'rails/generators/active_record'
3
-
4
- module Coalla
5
- module Cms
6
- module News
7
-
8
- class ScaffoldGenerator < ::ActiveRecord::Generators::Base
9
- argument :name, type: :string, default: "Article"
10
- source_root File.expand_path("../templates", __FILE__)
11
-
12
- def setup_properties
13
- @class_name = name
14
- @collection_name = name.pluralize.underscore
15
- @instance_name = name.underscore
16
- @announce_image_uploader_name = "#{name}ImageUploader"
17
- end
18
-
19
- def create_model
20
- template "entity.rb.erb", "app/models/#{name.underscore}.rb"
21
- template "entity_image_uploader.rb.erb", "app/uploaders/#{name.underscore}_image_uploader.rb"
22
- end
23
-
24
- def create_model_migration
25
- @table_name = name.pluralize.underscore
26
- migration_template "migration.rb.erb", "db/migrate/create_#{name.pluralize.underscore}.rb"
27
- end
28
-
29
- def create_controller
30
- template 'entity_controller_template.rb.erb', "app/controllers/admin/#{name.pluralize.underscore}_controller.rb"
31
- end
32
-
33
- def add_routes
34
- sentinel = /namespace :admin do\s*$/
35
- routing_code = " resources :#{name.pluralize.underscore}"
36
- inject_into_file 'config/routes.rb', "\n #{routing_code}", {:after => sentinel, :verbose => false}
37
- end
38
-
39
- def create_views
40
- target_views_folder = "app/views/admin/#{@collection_name}"
41
- empty_directory target_views_folder
42
- %w(index new edit _form).each do |view_name|
43
- template "views/#{view_name}.haml.erb", "#{target_views_folder}/#{view_name}.haml"
44
- end
45
- end
46
-
47
- end
48
- end
49
- end
50
- end
@@ -1,10 +0,0 @@
1
- class <%= name %> < ActiveRecord::Base
2
-
3
- validates_presence_of :title, :published_at, :announce, :announce_image, :body
4
-
5
- mount_uploader :announce_image, <%= @announce_image_uploader_name %>
6
-
7
- scope :ordered, -> { order('created_at DESC')}
8
- scope :feed, -> { where(published: true).order('published_at DESC') }
9
-
10
- end
@@ -1,47 +0,0 @@
1
- module Admin
2
-
3
- class <%= name.pluralize %>Controller < BaseController
4
-
5
- handle_return_path
6
-
7
- PER_PAGE = 20
8
-
9
- def index
10
- @<%= @collection_name %> = <%= @class_name %>.ordered.paginate(page: params[:page], per_page: PER_PAGE)
11
- end
12
-
13
- def new
14
- @<%= @instance_name %> = <%= @class_name %>.new
15
- end
16
-
17
- def create
18
- @<%= @instance_name %> = <%= @class_name %>.new(params[:<%= @instance_name %>].permit!)
19
- if @<%= @instance_name %>.save
20
- redirect_or_render :edit
21
- else
22
- render :new
23
- end
24
- end
25
-
26
- def edit
27
- @<%= @instance_name %> = <%= @class_name %>.find(params[:id])
28
- end
29
-
30
- def update
31
- @<%= @instance_name %> = <%= @class_name %>.find(params[:id])
32
- if @<%= @instance_name %>.update_attributes(params[:<%= @instance_name %>].permit!)
33
- redirect_or_render :edit
34
- else
35
- render :edit
36
- end
37
- end
38
-
39
- def destroy
40
- @<%= @instance_name %> = <%= @class_name %>.find(params[:id])
41
- @<%= @instance_name %>.destroy
42
- redirect_to_last
43
- end
44
-
45
- end
46
-
47
- end
@@ -1,7 +0,0 @@
1
- class <%= @announce_image_uploader_name %> < GenericImageUploader
2
-
3
- version :main do
4
- # resize_to_fill 200, 200
5
- end
6
-
7
- end
@@ -1,15 +0,0 @@
1
- class Create<%= name.pluralize %> < ActiveRecord::Migration
2
- def change
3
- create_table :<%= @table_name %> do |t|
4
- t.text :title, null: false
5
- t.boolean :published, null: false, default: false
6
- t.datetime :published_at, null: false
7
- t.text :announce, null: false
8
- t.text :announce_image, null: false
9
- t.text :body, null: false
10
- t.timestamps
11
- end
12
- add_index :<%= @table_name %>, :published
13
- add_index :<%= @table_name %>, :published_at
14
- end
15
- end
@@ -1,16 +0,0 @@
1
- = twitter_form_for [:admin, @<%= @instance_name %>] do |f|
2
- = field_set do
3
- = f.errors
4
- = flash_messages
5
-
6
- = f.string :title
7
-
8
- = f.image_upload :announce_image, version: :thumb, size: '300x200'
9
- = f.textarea :announce, rows: 5
10
-
11
- = f.wysiwyg :body
12
-
13
- = f.checkbox :published
14
- = f.datetime :published_at
15
-
16
- = standard_actions(f)
@@ -1,5 +0,0 @@
1
- %h1= <%= @class_name %>.model_name.human
2
- .page-header
3
- %h3 Редактирование
4
-
5
- = render 'form'
@@ -1,18 +0,0 @@
1
- .page-header
2
- %h1= <%= @class_name %>.model_name.human
3
-
4
- = actions do
5
- = create_link(new_admin_<%= @instance_name %>_path)
6
-
7
- = table_for(<%= @class_name %>).content(@<%= @collection_name %>) do |t|
8
-
9
- - t.column :title, cols: 7
10
- - t.column :published_at, cols: 3, format: '%d.%m.%Y'
11
- - t.column :published, cols: 1
12
- - t.edit
13
- - t.delete
14
-
15
- = admin_paginate @<%= @collection_name %>
16
-
17
- = actions do
18
- = create_link(new_admin_<%= @instance_name %>_path)
@@ -1,5 +0,0 @@
1
- %h1= <%= @class_name %>.model_name.human
2
- .page-header
3
- %h3= t('admin.form.new')
4
-
5
- = render 'form'
@@ -1,31 +0,0 @@
1
- module Coalla
2
-
3
- module Cms
4
-
5
- module OrmHelpers
6
- def model_contents
7
- <<-CONTENT
8
- devise :database_authenticatable, :rememberable, :validatable
9
- CONTENT
10
- end
11
-
12
- def model_exists?
13
- File.exists?(File.join(destination_root, model_path))
14
- end
15
-
16
- def migration_exists?(table_name)
17
- Dir.glob("#{File.join(destination_root, migration_path)}/[0-9]*_*.rb").grep(/\d+_add_admin_role_to_#{table_name}.rb$/).first
18
- end
19
-
20
- def migration_path
21
- @migration_path ||= File.join("db", "migrate")
22
- end
23
-
24
- def model_path
25
- @model_path ||= File.join("app", "models", "#{file_path}.rb")
26
- end
27
- end
28
-
29
- end
30
-
31
- end
@@ -1,11 +0,0 @@
1
- module Coalla
2
- module Cms
3
- module ScaffoldHelper
4
-
5
- def cms_select_name klass
6
- (([:title, :name, :caption] & klass.new.methods) << :id).first
7
- end
8
-
9
- end
10
- end
11
- end
@@ -1,35 +0,0 @@
1
- module Admin
2
-
3
- class BaseController < ApplicationController
4
-
5
- layout 'admin'
6
-
7
- include Admin::PathHistory
8
- helper_method :back_uri
9
-
10
- before_action :no_cache!
11
- before_action :authenticate_administrator!
12
- before_action :load_structure
13
- before_action :store_path_history
14
-
15
- protected
16
-
17
- def load_structure
18
- @structure = ::AdminStructure.new(self)
19
- end
20
-
21
- def add_success_msg
22
- flash.now[:admin_success] = I18n.t('admin.common.save_success')
23
- end
24
-
25
- def redirect_or_render partial
26
- if params[:save].present?
27
- redirect_to_back
28
- else
29
- add_success_msg
30
- render partial
31
- end
32
- end
33
- end
34
-
35
- end