constructor-pages 1.0.0beta1 → 1.0.0beta2
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.
- checksums.yaml +4 -4
- data/app/assets/javascripts/constructor_pages/urlify.js +1 -0
- data/app/controllers/constructor_pages/fields_controller.rb +22 -28
- data/app/controllers/constructor_pages/pages_controller.rb +19 -48
- data/app/controllers/constructor_pages/templates_controller.rb +8 -20
- data/app/helpers/constructor_pages/fields_helper.rb +0 -2
- data/app/helpers/constructor_pages/pages_helper.rb +2 -9
- data/app/models/constructor_pages/field.rb +24 -10
- data/app/models/constructor_pages/page.rb +10 -13
- data/app/models/constructor_pages/template.rb +5 -4
- data/app/models/constructor_pages/types/boolean_type.rb +0 -2
- data/app/models/constructor_pages/types/date_type.rb +0 -2
- data/app/models/constructor_pages/types/float_type.rb +0 -2
- data/app/models/constructor_pages/types/html_type.rb +0 -2
- data/app/models/constructor_pages/types/image_type.rb +0 -2
- data/app/models/constructor_pages/types/integer_type.rb +0 -2
- data/app/models/constructor_pages/types/string_type.rb +0 -2
- data/app/models/constructor_pages/types/text_type.rb +0 -2
- data/app/views/constructor_pages/fields/_form.html.slim +4 -4
- data/app/views/constructor_pages/fields/types/_boolean.html.slim +1 -0
- data/app/views/constructor_pages/fields/types/_html.html.slim +1 -1
- data/app/views/constructor_pages/fields/types/_string.html.slim +1 -1
- data/app/views/constructor_pages/fields/types/_text.html.slim +1 -1
- data/app/views/constructor_pages/pages/_form.html.slim +5 -8
- data/app/views/constructor_pages/pages/index.html.slim +2 -3
- data/app/views/constructor_pages/templates/_form.html.slim +0 -4
- data/config/locales/en.yml +2 -0
- data/config/locales/fr.yml +2 -0
- data/config/locales/ru.yml +2 -0
- data/config/routes.rb +1 -1
- data/constructor-pages.gemspec +1 -2
- data/db/migrate/10_create_html_types.rb +1 -5
- data/db/migrate/11_create_image_types.rb +1 -5
- data/db/migrate/12_add_default_template.rb +3 -3
- data/db/migrate/14_remove_child_id_from_templates.rb +2 -6
- data/db/migrate/15_rename_link_to_redirect.rb +1 -5
- data/db/migrate/16_add_indexes.rb +13 -0
- data/db/migrate/1_create_pages.rb +12 -16
- data/db/migrate/2_create_templates.rb +1 -5
- data/db/migrate/3_create_fields.rb +1 -5
- data/db/migrate/4_create_string_types.rb +2 -6
- data/db/migrate/5_create_float_types.rb +2 -6
- data/db/migrate/6_create_boolean_types.rb +2 -6
- data/db/migrate/7_create_integer_types.rb +2 -6
- data/db/migrate/8_create_text_types.rb +1 -5
- data/db/migrate/9_create_date_types.rb +2 -6
- data/lib/constructor-pages.rb +1 -0
- data/spec/features/constructor_pages/fields_spec.rb +5 -6
- data/spec/features/constructor_pages/pages_spec.rb +26 -63
- data/spec/features/constructor_pages/templates_spec.rb +15 -28
- data/spec/models/constructor_pages/field_spec.rb +0 -2
- data/spec/models/constructor_pages/page_spec.rb +15 -31
- data/spec/models/constructor_pages/template_spec.rb +0 -2
- data/spec/models/constructor_pages/types/boolean_type_spec.rb +0 -2
- data/spec/models/constructor_pages/types/date_type_spec.rb +0 -2
- data/spec/models/constructor_pages/types/float_type_spec.rb +0 -5
- data/spec/models/constructor_pages/types/html_type_spec.rb +0 -2
- data/spec/models/constructor_pages/types/integer_type_spec.rb +0 -2
- data/spec/models/constructor_pages/types/string_type_spec.rb +0 -2
- data/spec/models/constructor_pages/types/text_type_spec.rb +0 -2
- metadata +19 -7
- data/app/helpers/constructor_pages/code_name_uniq.rb +0 -7
- data/app/helpers/constructor_pages/for_select.rb +0 -13
- data/app/helpers/constructor_pages/templates_helper.rb +0 -5
@@ -1,5 +1,3 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
1
|
module ConstructorPages
|
4
2
|
# Template model. Template allows assing different design for pages.
|
5
3
|
#
|
@@ -7,8 +5,6 @@ module ConstructorPages
|
|
7
5
|
# For example:
|
8
6
|
# template "Product" should has fields like "price", "description", "size" etc.
|
9
7
|
class Template < ActiveRecord::Base
|
10
|
-
# Adding code_name_uniqueness method
|
11
|
-
include CodeNameUniq
|
12
8
|
include TheSortableTree::Scopes
|
13
9
|
|
14
10
|
validates_presence_of :name, :code_name
|
@@ -34,6 +30,11 @@ module ConstructorPages
|
|
34
30
|
|
35
31
|
private
|
36
32
|
|
33
|
+
# Check if code_name is not available
|
34
|
+
def code_name_uniqueness
|
35
|
+
errors.add(:base, :code_name_already_in_use) unless Page.check_code_name(code_name) and check_code_name(code_name)
|
36
|
+
end
|
37
|
+
|
37
38
|
# Check if there is code_name in same branch
|
38
39
|
def check_code_name(cname)
|
39
40
|
[cname.pluralize, cname.singularize].each {|name|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
= form_for [@template, @field] do |f|
|
1
|
+
= form_for [@field.template, @field] do |f|
|
2
2
|
- if @field.errors.any?
|
3
3
|
.b-error
|
4
4
|
= link_to '×', '#', class: 'close', 'data-dismiss' => 'alert'
|
@@ -12,7 +12,7 @@
|
|
12
12
|
.b-form__row
|
13
13
|
= f.label :code_name, class: 'b-form__label'
|
14
14
|
= f.text_field :code_name, class: 'b-form__field'
|
15
|
-
= f.hidden_field :template_id, value: @template.id
|
15
|
+
= f.hidden_field :template_id, value: @field.template.id
|
16
16
|
|
17
17
|
- unless @field.type_value == 'image'
|
18
18
|
.b-form__row
|
@@ -21,5 +21,5 @@
|
|
21
21
|
|
22
22
|
.b-form__actions
|
23
23
|
= f.submit class: 'b-button'
|
24
|
-
= link_to t(:cancel), edit_template_path(@template), class: 'b-button b-button_color_light'
|
25
|
-
= link_to t(:delete_field), [@template, @field], method: :delete, data: {confirm: t(:are_you_sure?)}, class: '
|
24
|
+
= link_to t(:cancel), edit_template_path(@field.template), class: 'b-button b-button_color_light'
|
25
|
+
= link_to t(:delete_field), [@field.template, @field], method: :delete, data: {confirm: t(:are_you_sure?)}, class: 'b-button b-button_color_light g-float_right' unless @field.new_record?
|
@@ -1 +1 @@
|
|
1
|
-
= text_area_tag "fields[#{field.code_name}]", page.get_field_value(field.code_name), rows: 10, class: '
|
1
|
+
= text_area_tag "fields[#{field.code_name}]", page.get_field_value(field.code_name), rows: 10, class: 'b-form__field ckeditor'
|
@@ -1 +1 @@
|
|
1
|
-
= text_field_tag "fields[#{field.code_name}]", page.get_field_value(field.code_name), class: '
|
1
|
+
= text_field_tag "fields[#{field.code_name}]", page.get_field_value(field.code_name), class: 'b-form__field'
|
@@ -1 +1 @@
|
|
1
|
-
= text_area_tag "fields[#{field.code_name}]", page.get_field_value(field.code_name), rows: 10, class: '
|
1
|
+
= text_area_tag "fields[#{field.code_name}]", page.get_field_value(field.code_name), rows: 10, class: 'b-form__field'
|
@@ -22,20 +22,17 @@
|
|
22
22
|
.b-inline.b-full-url
|
23
23
|
span.b-full-url__path
|
24
24
|
= @page.parent.full_url if @page.parent
|
25
|
-
|
25
|
+
| /
|
26
26
|
span.b-full-url__url= @page.url
|
27
27
|
= f.text_field :url, class: 'b-form__field'
|
28
28
|
i.fa.fa-pencil.b-full-url__icon
|
29
29
|
|
30
30
|
= render partial: 'field', collection: @page.fields
|
31
31
|
|
32
|
-
.
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
.b-form__row
|
37
|
-
= f.label :template_id, class: 'b-form__label'
|
38
|
-
= f.select :template_id, options_for_select(templates, selected: @template_id)
|
32
|
+
- if @page.new_record?
|
33
|
+
.b-form__row
|
34
|
+
= f.label :template_id, class: 'b-form__label'
|
35
|
+
= f.select :template_id, options_for_select(templates_tree(@templates), selected: @page.template_id)
|
39
36
|
|
40
37
|
.b-form__row
|
41
38
|
= f.label :redirect, class: 'b-form__label'
|
@@ -1,7 +1,6 @@
|
|
1
1
|
.l-pages
|
2
|
-
-
|
3
|
-
=
|
4
|
-
=t :new_page
|
2
|
+
= link_to new_page_path, class: 'b-button' do
|
3
|
+
=t :new_page
|
5
4
|
|
6
5
|
|
7
6
|
ol.b-block.b-tree.g-out data-rebuild_url="#{rebuild_pages_path}" data-expand-node-url="#{expand_node_pages_path}" data-cookie-store='true'
|
@@ -12,10 +12,6 @@
|
|
12
12
|
= f.label :code_name, class: 'b-form__label'
|
13
13
|
= f.text_field :code_name, class: 'b-form__field'
|
14
14
|
|
15
|
-
.b-form__row
|
16
|
-
= f.label :parent_id, class: 'b-form__label'
|
17
|
-
= f.select :parent_id, options_for_select(for_select(@templates), selected: @template.parent_id), disabled: @template.self_and_descendants.map(&:id), include_blank: '--'
|
18
|
-
|
19
15
|
- unless @template.new_record?
|
20
16
|
.b-form__row
|
21
17
|
.b-form__label
|
data/config/locales/en.yml
CHANGED
@@ -11,7 +11,9 @@ en:
|
|
11
11
|
delete: Delete
|
12
12
|
url: URL
|
13
13
|
|
14
|
+
create_template_first: You need create at least one template
|
14
15
|
code_name_already_in_use: This code name is already in use.
|
16
|
+
can_not_change_template: Template of page can not be changed
|
15
17
|
field_success_added: Field «%{name}» added successfully.
|
16
18
|
field_success_updated: Field «%{name}» updated successfully.
|
17
19
|
field_success_removed: Field «%{name}» removed successfully.
|
data/config/locales/fr.yml
CHANGED
@@ -10,7 +10,9 @@ fr:
|
|
10
10
|
edit: Èditer
|
11
11
|
delete: Supprimer
|
12
12
|
|
13
|
+
create_template_first: Pour créer une page, vous devez créer au moins un modèle
|
13
14
|
code_name_already_in_use: Ce nom de code est déjà utilisé
|
15
|
+
can_not_change_template: Modèle de page ne peut pas être modifié
|
14
16
|
field_success_added: Champ %{name} a ajouté avec succès
|
15
17
|
field_success_updated: Champ %{name} mis à jour
|
16
18
|
field_success_removed: Champ %{name} supprimé avec succès
|
data/config/locales/ru.yml
CHANGED
@@ -17,7 +17,9 @@ ru:
|
|
17
17
|
edit_template: Редактирование шаблона
|
18
18
|
delete_template: Удалить шаблон
|
19
19
|
|
20
|
+
create_template_first: Для создания страницы необходимо создать хотя бы один шаблон
|
20
21
|
code_name_already_in_use: Такое имя уже используется.
|
22
|
+
can_not_change_template: Шаблон страницы не может быть изменен
|
21
23
|
field_success_added: Поле «%{name}» успешно добавлено.
|
22
24
|
field_success_updated: Поле «%{name}» успешно обновлено.
|
23
25
|
field_success_removed: Поле «%{name}» успешно удалено.
|
data/config/routes.rb
CHANGED
data/constructor-pages.gemspec
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
1
|
require File.expand_path('../../core/lib/constructor_core/version', __FILE__)
|
4
2
|
|
5
3
|
Gem::Specification.new do |s|
|
@@ -20,6 +18,7 @@ Gem::Specification.new do |s|
|
|
20
18
|
|
21
19
|
s.add_dependency 'dragonfly', '1.0.3'
|
22
20
|
s.add_dependency 'rack-cache'
|
21
|
+
s.add_dependency 'activerecord-import'
|
23
22
|
s.add_dependency 'awesome_nested_set', '3.0.0.rc2'
|
24
23
|
s.add_dependency 'acts_as_list'
|
25
24
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
class CreateHtmlTypes < ActiveRecord::Migration
|
2
|
-
def
|
2
|
+
def change
|
3
3
|
create_table ConstructorPages::Types::HtmlType.table_name do |t|
|
4
4
|
t.text :value
|
5
5
|
t.references :field
|
@@ -8,8 +8,4 @@ class CreateHtmlTypes < ActiveRecord::Migration
|
|
8
8
|
t.timestamps
|
9
9
|
end
|
10
10
|
end
|
11
|
-
|
12
|
-
def self.down
|
13
|
-
drop_table ConstructorPages::Types::HtmlType.table_name
|
14
|
-
end
|
15
11
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
class CreateImageTypes < ActiveRecord::Migration
|
2
|
-
def
|
2
|
+
def change
|
3
3
|
create_table ConstructorPages::Types::ImageType.table_name do |t|
|
4
4
|
t.string :value_uid
|
5
5
|
t.string :value_name
|
@@ -9,8 +9,4 @@ class CreateImageTypes < ActiveRecord::Migration
|
|
9
9
|
t.timestamps
|
10
10
|
end
|
11
11
|
end
|
12
|
-
|
13
|
-
def self.down
|
14
|
-
drop_table ConstructorPages::Types::ImageType.table_name
|
15
|
-
end
|
16
12
|
end
|
@@ -1,9 +1,5 @@
|
|
1
1
|
class RemoveChildIdFromTemplates < ActiveRecord::Migration
|
2
|
-
def
|
3
|
-
remove_column 'constructor_pages_templates', :child_id
|
4
|
-
end
|
5
|
-
|
6
|
-
def self.down
|
7
|
-
add_column 'constructor_pages_templates', :child_id, :boolean, default: true
|
2
|
+
def change
|
3
|
+
remove_column 'constructor_pages_templates', :child_id, :boolean, default: true
|
8
4
|
end
|
9
5
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class AddIndexes < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
add_index ConstructorPages::Page.table_name, :parent_id
|
4
|
+
add_index ConstructorPages::Page.table_name, :lft
|
5
|
+
add_index ConstructorPages::Page.table_name, :rgt
|
6
|
+
|
7
|
+
add_index ConstructorPages::Template.table_name, :parent_id
|
8
|
+
add_index ConstructorPages::Template.table_name, :lft
|
9
|
+
add_index ConstructorPages::Template.table_name, :rgt
|
10
|
+
|
11
|
+
add_index ConstructorPages::Field.table_name, :type_value
|
12
|
+
end
|
13
|
+
end
|
@@ -1,18 +1,18 @@
|
|
1
1
|
class CreatePages < ActiveRecord::Migration
|
2
|
-
def
|
2
|
+
def change
|
3
3
|
create_table ConstructorPages::Page.table_name do |t|
|
4
|
-
t.boolean :active,
|
5
|
-
t.string :name,
|
6
|
-
t.boolean :auto_url,
|
7
|
-
t.string :full_url,
|
8
|
-
t.string :url,
|
9
|
-
t.string :link,
|
10
|
-
t.string :title,
|
11
|
-
t.string :keywords,
|
4
|
+
t.boolean :active, default: true
|
5
|
+
t.string :name, default: ''
|
6
|
+
t.boolean :auto_url, default: true
|
7
|
+
t.string :full_url, default: ''
|
8
|
+
t.string :url, default: ''
|
9
|
+
t.string :link, default: ''
|
10
|
+
t.string :title, default: ''
|
11
|
+
t.string :keywords, default: ''
|
12
12
|
t.text :description
|
13
|
-
t.boolean :in_menu, :
|
14
|
-
t.boolean :in_nav, :
|
15
|
-
t.boolean :in_map, :
|
13
|
+
t.boolean :in_menu, default: true
|
14
|
+
t.boolean :in_nav, default: true
|
15
|
+
t.boolean :in_map, default: true
|
16
16
|
t.integer :parent_id
|
17
17
|
t.integer :lft
|
18
18
|
t.integer :rgt
|
@@ -20,8 +20,4 @@ class CreatePages < ActiveRecord::Migration
|
|
20
20
|
t.timestamps
|
21
21
|
end
|
22
22
|
end
|
23
|
-
|
24
|
-
def self.down
|
25
|
-
drop_table ConstructorPages::Page.table_name
|
26
|
-
end
|
27
23
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
class CreateTemplates < ActiveRecord::Migration
|
2
|
-
def
|
2
|
+
def change
|
3
3
|
create_table ConstructorPages::Template.table_name do |t|
|
4
4
|
t.string :name
|
5
5
|
t.string :code_name
|
@@ -11,8 +11,4 @@ class CreateTemplates < ActiveRecord::Migration
|
|
11
11
|
t.timestamps
|
12
12
|
end
|
13
13
|
end
|
14
|
-
|
15
|
-
def self.down
|
16
|
-
drop_table ConstructorPages::Template.table_name
|
17
|
-
end
|
18
14
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
class CreateFields < ActiveRecord::Migration
|
2
|
-
def
|
2
|
+
def change
|
3
3
|
create_table ConstructorPages::Field.table_name do |t|
|
4
4
|
t.string :name
|
5
5
|
t.string :code_name
|
@@ -10,8 +10,4 @@ class CreateFields < ActiveRecord::Migration
|
|
10
10
|
t.timestamps
|
11
11
|
end
|
12
12
|
end
|
13
|
-
|
14
|
-
def self.down
|
15
|
-
drop_table ConstructorPages::Field.table_name
|
16
|
-
end
|
17
13
|
end
|
@@ -1,15 +1,11 @@
|
|
1
1
|
class CreateStringTypes < ActiveRecord::Migration
|
2
|
-
def
|
2
|
+
def change
|
3
3
|
create_table ConstructorPages::Types::StringType.table_name do |t|
|
4
|
-
t.string :value, :
|
4
|
+
t.string :value, default: ''
|
5
5
|
t.references :field
|
6
6
|
t.references :page
|
7
7
|
|
8
8
|
t.timestamps
|
9
9
|
end
|
10
10
|
end
|
11
|
-
|
12
|
-
def self.down
|
13
|
-
drop_table ConstructorPages::Types::StringType.table_name
|
14
|
-
end
|
15
11
|
end
|
@@ -1,15 +1,11 @@
|
|
1
1
|
class CreateFloatTypes < ActiveRecord::Migration
|
2
|
-
def
|
2
|
+
def change
|
3
3
|
create_table ConstructorPages::Types::FloatType.table_name do |t|
|
4
|
-
t.float :value, :
|
4
|
+
t.float :value, default: 0.0
|
5
5
|
t.references :field
|
6
6
|
t.references :page
|
7
7
|
|
8
8
|
t.timestamps
|
9
9
|
end
|
10
10
|
end
|
11
|
-
|
12
|
-
def self.down
|
13
|
-
drop_table ConstructorPages::Types::FloatType.table_name
|
14
|
-
end
|
15
11
|
end
|
@@ -1,15 +1,11 @@
|
|
1
1
|
class CreateBooleanTypes < ActiveRecord::Migration
|
2
|
-
def
|
2
|
+
def change
|
3
3
|
create_table ConstructorPages::Types::BooleanType.table_name do |t|
|
4
|
-
t.boolean :value, :
|
4
|
+
t.boolean :value, default: false
|
5
5
|
t.references :field
|
6
6
|
t.references :page
|
7
7
|
|
8
8
|
t.timestamps
|
9
9
|
end
|
10
10
|
end
|
11
|
-
|
12
|
-
def self.down
|
13
|
-
drop_table ConstructorPages::Types::BooleanType.table_name
|
14
|
-
end
|
15
11
|
end
|
@@ -1,15 +1,11 @@
|
|
1
1
|
class CreateIntegerTypes < ActiveRecord::Migration
|
2
|
-
def
|
2
|
+
def change
|
3
3
|
create_table ConstructorPages::Types::IntegerType.table_name do |t|
|
4
|
-
t.integer :value, :
|
4
|
+
t.integer :value, default: 0
|
5
5
|
t.references :field
|
6
6
|
t.references :page
|
7
7
|
|
8
8
|
t.timestamps
|
9
9
|
end
|
10
10
|
end
|
11
|
-
|
12
|
-
def self.down
|
13
|
-
drop_table ConstructorPages::Types::IntegerType.table_name
|
14
|
-
end
|
15
11
|
end
|