coalla-cms 0.5.1.9 → 0.6.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (157) hide show
  1. checksums.yaml +15 -0
  2. data/Gemfile +1 -1
  3. data/Rakefile +24 -24
  4. data/app/assets/javascripts/admin/admin.js +236 -33
  5. data/app/assets/stylesheets/admin/admin.scss +1 -2
  6. data/app/assets/stylesheets/admin/vendor/bootstrap.min.css +6242 -4
  7. data/app/assets/stylesheets/admin/vendor/token-input-bootstrap.scss +144 -0
  8. data/app/controllers/admin/autocomplete_controller.rb +3 -1
  9. data/app/controllers/admin/base_controller.rb +35 -0
  10. data/{lib/generators/coalla/cms/templates/controllers/admin/home_controller.rb.erb → app/controllers/admin/home_controller.rb} +0 -0
  11. data/app/controllers/concerns/admin/editable_columns.rb +55 -0
  12. data/app/controllers/concerns/admin/sortable_columns.rb +16 -0
  13. data/app/controllers/{admin/sortable_controller.rb → concerns/admin/sortable_models.rb} +1 -5
  14. data/app/helpers/admin/alerts_helper.rb +31 -0
  15. data/app/helpers/admin/content_helper.rb +29 -0
  16. data/app/helpers/admin/form_helper.rb +50 -0
  17. data/app/helpers/admin/resource_helpers.rb +102 -0
  18. data/app/helpers/admin/search_helper.rb +44 -40
  19. data/app/helpers/admin/table_helper.rb +40 -0
  20. data/app/helpers/common_helper.rb +2 -2
  21. data/app/models/file_upload.rb +1 -1
  22. data/app/models/lookup.rb +1 -1
  23. data/app/models/site_meta_tags.rb +2 -2
  24. data/app/views/admin/common/_menu_section.haml +1 -1
  25. data/app/views/admin/common/_nested_fields_for.html.haml +10 -4
  26. data/app/views/admin/common/_nested_fields_for_element.html.haml +21 -5
  27. data/app/views/admin/common/_table_template.html.haml +26 -7
  28. data/app/views/admin/common/_upload_form.html.haml +2 -1
  29. data/app/views/admin/editable_columns/edit/_boolean.haml +2 -0
  30. data/app/views/admin/editable_columns/edit/_date.haml +2 -0
  31. data/app/views/admin/editable_columns/edit/_datetime.haml +3 -0
  32. data/app/views/admin/editable_columns/edit/_enumerize.haml +2 -0
  33. data/app/views/admin/editable_columns/edit/_string.haml +2 -0
  34. data/app/views/admin/editable_columns/edit/_text.haml +2 -0
  35. data/app/views/admin/editable_columns/edit/_time.haml +3 -0
  36. data/app/views/admin/editable_columns/edit_column.haml +8 -0
  37. data/app/views/admin/editable_columns/result/_boolean.haml +2 -0
  38. data/app/views/admin/editable_columns/result/_date.haml +1 -0
  39. data/app/views/admin/editable_columns/result/_datetime.haml +1 -0
  40. data/app/views/admin/editable_columns/result/_enumerize.haml +1 -0
  41. data/app/views/admin/editable_columns/result/_string.haml +1 -0
  42. data/app/views/admin/editable_columns/result/_text.haml +1 -0
  43. data/app/views/admin/editable_columns/result/_time.haml +1 -0
  44. data/app/views/admin/site_meta_tags/index.html.haml +2 -2
  45. data/app/views/layouts/admin.html.haml +12 -0
  46. data/app/views/structure/_section.haml +2 -9
  47. data/coalla-cms.gemspec +10 -11
  48. data/lib/coalla/builders/actions_column_definition.rb +44 -0
  49. data/lib/coalla/builders/admin_structure.rb +86 -0
  50. data/lib/coalla/builders/column_definition.rb +9 -0
  51. data/lib/coalla/builders/form_builder.rb +291 -0
  52. data/lib/coalla/builders/link_renderer.rb +43 -0
  53. data/lib/coalla/builders/policy.rb +30 -0
  54. data/lib/coalla/builders/table_builder.rb +99 -0
  55. data/lib/coalla/builders/table_formatter.rb +133 -0
  56. data/lib/coalla/builders/text_formatter.rb +22 -0
  57. data/lib/coalla/cms/engine.rb +3 -2
  58. data/lib/coalla/cms/version.rb +2 -2
  59. data/lib/coalla/ext/mapper.rb +7 -0
  60. data/lib/coalla/orm/{relation.rb → multi_field.rb} +7 -8
  61. data/lib/coalla/orm/page_slider.rb +2 -28
  62. data/lib/coalla/orm/sanitized.rb +1 -5
  63. data/lib/coalla/orm/sortable_association.rb +30 -0
  64. data/lib/coalla/uploaders/file_uploader.rb +9 -0
  65. data/lib/coalla/uploaders/image_uploader.rb +62 -0
  66. data/lib/coalla/uploaders/meta_image_uploader.rb +7 -0
  67. data/lib/coalla-cms.rb +10 -0
  68. data/lib/generators/coalla/cms/create_admin_administrators_generator.rb +5 -7
  69. data/lib/generators/coalla/cms/create_admin_generator.rb +9 -7
  70. data/lib/generators/coalla/cms/create_admin_login_view_generator.rb +4 -6
  71. data/lib/generators/coalla/cms/create_markup_generator.rb +2 -2
  72. data/lib/generators/coalla/cms/file_uploads/install_generator.rb +0 -17
  73. data/lib/generators/coalla/cms/file_uploads/mount_generator.rb +4 -7
  74. data/lib/generators/coalla/cms/image/install_generator.rb +0 -3
  75. data/lib/generators/coalla/cms/image/mount_generator.rb +0 -3
  76. data/lib/generators/coalla/cms/image/templates/mount/uploader.rb.erb +1 -1
  77. data/lib/generators/coalla/cms/image/templates/uploader.rb.erb +1 -1
  78. data/lib/generators/coalla/cms/init_generator.rb +42 -49
  79. data/lib/generators/coalla/cms/lookups/install_generator.rb +0 -3
  80. data/lib/generators/coalla/cms/meta_tags/install_generator.rb +0 -2
  81. data/lib/generators/coalla/cms/scaffold_generator.rb +7 -7
  82. data/lib/generators/coalla/cms/setup_admin_generator.rb +9 -9
  83. data/lib/generators/coalla/cms/setup_routes_generator.rb +3 -3
  84. data/lib/generators/coalla/cms/slider/init_generator.rb +1 -3
  85. data/lib/generators/coalla/cms/slider/templates/slider_image.rb.erb +0 -1
  86. data/lib/generators/coalla/cms/slider/templates/slider_image_uploader.rb.erb +1 -1
  87. data/lib/generators/coalla/cms/templates/.gitignore +3 -3
  88. data/lib/generators/coalla/cms/templates/controllers/admin/administrators_controller.rb +2 -40
  89. data/lib/generators/coalla/cms/templates/controllers/admin/scaffold_controller_template.rb.erb +0 -39
  90. data/lib/generators/coalla/cms/templates/initializers/carrierwave.rb +0 -90
  91. data/lib/generators/coalla/cms/templates/locales/activerecord.en.yml +14 -1
  92. data/lib/generators/coalla/cms/templates/views/admin/administrators/_form.html.haml +1 -1
  93. data/lib/generators/coalla/cms/templates/views/admin/administrators/edit.html.haml +1 -1
  94. data/lib/generators/coalla/cms/templates/views/admin/administrators/index.html.haml +5 -5
  95. data/lib/generators/coalla/cms/templates/views/admin/administrators/new.html.haml +1 -1
  96. data/lib/generators/coalla/cms/templates/views/admin/scaffold_template/_form.html.haml.erb +1 -1
  97. data/lib/generators/coalla/cms/templates/views/admin/scaffold_template/edit.html.haml.erb +1 -1
  98. data/lib/generators/coalla/cms/templates/views/admin/scaffold_template/index.html.haml.erb +5 -5
  99. data/lib/generators/coalla/cms/templates/views/admin/scaffold_template/new.html.haml.erb +1 -1
  100. data/lib/generators/coalla/cms/templates/views/administrators/sessions/new.html.haml +1 -1
  101. data/lib/generators/coalla/cms/utils/orm.rb +29 -0
  102. data/lib/generators/coalla/cms/utils/scaffold.rb +11 -0
  103. metadata +60 -145
  104. data/Gemfile.lock +0 -198
  105. data/app/assets/stylesheets/admin/vendor/token-input-facebook.patched.css +0 -126
  106. data/app/assets/stylesheets/admin/vendor/token-input.patched.css +0 -116
  107. data/app/controllers/admin/notifier_controller.rb +0 -7
  108. data/app/helpers/admin_helper.rb +0 -29
  109. data/app/helpers/nested_fields_helper.rb +0 -12
  110. data/app/helpers/static_text_formatter.rb +0 -25
  111. data/app/helpers/twitter_builder_helper.rb +0 -253
  112. data/app/helpers/twitter_form_builder.rb +0 -202
  113. data/app/uploaders/file_uploader.rb +0 -10
  114. data/app/uploaders/generic_image_uploader.rb +0 -74
  115. data/app/uploaders/meta_tags_image_uploader.rb +0 -5
  116. data/app/utils/admin_structure.rb +0 -82
  117. data/app/utils/bootstrap_link_renderer.rb +0 -40
  118. data/app/utils/table_helpers.rb +0 -196
  119. data/lib/generators/coalla/cms/market/install_generator.rb +0 -71
  120. data/lib/generators/coalla/cms/market/templates/controllers/categories_controller.rb +0 -47
  121. data/lib/generators/coalla/cms/market/templates/controllers/products_controller.rb +0 -50
  122. data/lib/generators/coalla/cms/market/templates/controllers/properties_controller.rb +0 -59
  123. data/lib/generators/coalla/cms/market/templates/market.rb +0 -5
  124. data/lib/generators/coalla/cms/market/templates/market.ru.yml +0 -53
  125. data/lib/generators/coalla/cms/market/templates/migrations/create_categories.rb +0 -15
  126. data/lib/generators/coalla/cms/market/templates/migrations/create_product_properties.rb +0 -18
  127. data/lib/generators/coalla/cms/market/templates/migrations/create_products.rb +0 -18
  128. data/lib/generators/coalla/cms/market/templates/migrations/create_properties.rb +0 -11
  129. data/lib/generators/coalla/cms/market/templates/models/category.rb +0 -36
  130. data/lib/generators/coalla/cms/market/templates/models/product.rb +0 -16
  131. data/lib/generators/coalla/cms/market/templates/models/product_property.rb +0 -14
  132. data/lib/generators/coalla/cms/market/templates/models/property.rb +0 -7
  133. data/lib/generators/coalla/cms/market/templates/views/categories/_form.html.haml +0 -10
  134. data/lib/generators/coalla/cms/market/templates/views/categories/edit.html.haml +0 -5
  135. data/lib/generators/coalla/cms/market/templates/views/categories/index.html.haml +0 -17
  136. data/lib/generators/coalla/cms/market/templates/views/categories/new.html.haml +0 -4
  137. data/lib/generators/coalla/cms/market/templates/views/products/_form.html.haml +0 -17
  138. data/lib/generators/coalla/cms/market/templates/views/products/_product_property_fields.html.haml +0 -13
  139. data/lib/generators/coalla/cms/market/templates/views/products/edit.html.haml +0 -5
  140. data/lib/generators/coalla/cms/market/templates/views/products/index.html.haml +0 -17
  141. data/lib/generators/coalla/cms/market/templates/views/products/new.html.haml +0 -4
  142. data/lib/generators/coalla/cms/market/templates/views/properties/_form.html.haml +0 -9
  143. data/lib/generators/coalla/cms/market/templates/views/properties/edit.html.haml +0 -5
  144. data/lib/generators/coalla/cms/market/templates/views/properties/index.html.haml +0 -15
  145. data/lib/generators/coalla/cms/market/templates/views/properties/new.html.haml +0 -4
  146. data/lib/generators/coalla/cms/news/scaffold_generator.rb +0 -50
  147. data/lib/generators/coalla/cms/news/templates/entity.rb.erb +0 -10
  148. data/lib/generators/coalla/cms/news/templates/entity_controller_template.rb.erb +0 -47
  149. data/lib/generators/coalla/cms/news/templates/entity_image_uploader.rb.erb +0 -7
  150. data/lib/generators/coalla/cms/news/templates/migration.rb.erb +0 -15
  151. data/lib/generators/coalla/cms/news/templates/views/_form.haml.erb +0 -16
  152. data/lib/generators/coalla/cms/news/templates/views/edit.haml.erb +0 -5
  153. data/lib/generators/coalla/cms/news/templates/views/index.haml.erb +0 -18
  154. data/lib/generators/coalla/cms/news/templates/views/new.haml.erb +0 -5
  155. data/lib/generators/coalla/cms/orm_helpers.rb +0 -31
  156. data/lib/generators/coalla/cms/scaffold_helper.rb +0 -11
  157. data/lib/generators/coalla/cms/templates/controllers/admin/base_controller.rb.erb +0 -35
@@ -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