bolton-cms-padrino 0.2.7 → 0.2.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/bolton_cms/manage/assets/javascripts/application.js +7 -3
- data/bolton_cms/manage/assets/stylesheets/base/_typography.scss +5 -0
- data/bolton_cms/manage/controllers/pages.rb +14 -9
- data/bolton_cms/manage/views/pages/_form.slim +26 -11
- data/gems/{bolton-cms-padrino-0.2.6.gem → bolton-cms-padrino-0.2.7.gem} +0 -0
- data/lib/bolton_cms/models/fragment.rb +1 -0
- data/lib/bolton_cms/models/page.rb +19 -4
- data/lib/bolton_cms/version.rb +1 -1
- data/spec/models/fragment_spec.rb +4 -0
- data/spec/models/page_spec.rb +17 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ODVjYTQyNGY3ZTIxYWJjNjJmNWY0ZTY5YzAxZWNkNDYzOWUwNWIxZQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NTAwZWE5M2Q5Zjk1MjUyYzA0OTU2NjBiMTQzOGNiMzI5YzQxMmVmMQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NzFhN2E4ZjUxNzc3Y2Q0ZGYwN2IwZTIzMTA1NmNmMGJlYjZkYTgwNWVkOWFj
|
10
|
+
OTk0ZDg5NmUzOWY4MjM4MDVjN2YwM2VjNDI0MjU5NjM4NTE3ODI0YzM1NzFj
|
11
|
+
YWZlMTg0ZWUyMWU2YzJkMDg2NjdkZjkxZjgxYzhiZWVkODFiMjA=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
OGVlZTczMDg5Nzc3MDFmMjBiNDA1ZjhlZmFiZmQxMGJkODE3MTkxYTU5OGQ2
|
14
|
+
OGQ2YWFiMTMyOWM2YTIzYmJhZTQyMjQxMmJmYWQ4MzhmMjczZGRmZTJhZTNh
|
15
|
+
OGZhYjU4Yzg0NDkxYTNiOWU4YzcxOGVmMzcxZjBhMDFhNDIxYWE=
|
@@ -46,13 +46,17 @@ $(window).load(function() {
|
|
46
46
|
|
47
47
|
if ($.ui) {
|
48
48
|
|
49
|
-
|
50
|
-
|
49
|
+
if ($parent.hasClass("collapsed")) {
|
50
|
+
$parent.parent(".accordion-container").find(".collapsible:not(.collapsed)").addClass("collapsed", 250);
|
51
|
+
$parent.removeClass("collapsed", 250);
|
52
|
+
} else {
|
53
|
+
$parent.addClass("collapsed", 250);
|
54
|
+
}
|
51
55
|
|
52
56
|
} else {
|
53
57
|
|
54
58
|
if ($parent.hasClass("collapsed")) {
|
55
|
-
var $open = $(".accordion-container
|
59
|
+
var $open = $parent.parent(".accordion-container").find(".collapsible:not(.collapsed) .collapsible-content");
|
56
60
|
var height = $open.innerHeight();
|
57
61
|
|
58
62
|
$open.css({
|
@@ -14,7 +14,7 @@ BoltonCms::Manage.controllers :pages do
|
|
14
14
|
@page = Page.new
|
15
15
|
|
16
16
|
@page.template = :default
|
17
|
-
@page.
|
17
|
+
@page.manage_fragments BoltonCms::TEMPLATES[@page.template.to_s]['fragments'].clone
|
18
18
|
|
19
19
|
render 'pages/new'
|
20
20
|
end
|
@@ -22,6 +22,7 @@ BoltonCms::Manage.controllers :pages do
|
|
22
22
|
post :create do
|
23
23
|
@page = Page.new(params[:page])
|
24
24
|
@page.creator = current_account
|
25
|
+
@page.manage_fragments BoltonCms::TEMPLATES[@page.template.to_s]['fragments'].clone
|
25
26
|
|
26
27
|
if @page.save
|
27
28
|
flash[:success] = "Page '#{@page.title}' created"
|
@@ -51,17 +52,21 @@ BoltonCms::Manage.controllers :pages do
|
|
51
52
|
|
52
53
|
put :update, with: :id do
|
53
54
|
@page = Page.find(params[:id])
|
54
|
-
@page.updater = current_account
|
55
|
-
|
56
|
-
if @page && params[:new_asset][:file]
|
57
|
-
@page.assets << Asset.new(
|
58
|
-
gravity: params[:new_asset][:gravity],
|
59
|
-
attachment: params[:new_asset][:file]
|
60
|
-
)
|
61
|
-
end
|
62
55
|
|
63
56
|
if @page
|
57
|
+
@page.updater = current_account
|
58
|
+
|
59
|
+
if params[:new_asset][:file]
|
60
|
+
@page.assets << Asset.new(
|
61
|
+
gravity: params[:new_asset][:gravity],
|
62
|
+
attachment: params[:new_asset][:file]
|
63
|
+
)
|
64
|
+
end
|
65
|
+
|
64
66
|
if @page.update_attributes(params[:page])
|
67
|
+
@page.manage_fragments BoltonCms::TEMPLATES[@page.template.to_s]['fragments'].clone
|
68
|
+
logger.info @page.inactive_fragments
|
69
|
+
|
65
70
|
flash[:success] = "Page '#{@page.title}' saved"
|
66
71
|
|
67
72
|
params[:save_and_continue] ?
|
@@ -34,21 +34,36 @@ fieldset.page-options
|
|
34
34
|
= f.select :filter, options: BoltonCms::RENDERERS.collect { |v| [v.to_s.titleize, v] }
|
35
35
|
|
36
36
|
- f.fields_for :fragments do |pf|
|
37
|
-
|
38
|
-
|
37
|
+
- if pf.object.active
|
38
|
+
fieldset.page-fragment.collapsible.collapsed
|
39
|
+
legend.collapsible-header = pf.object.label
|
39
40
|
|
40
|
-
|
41
|
-
|
41
|
+
.collapsible-content
|
42
|
+
= pf.hidden_field :label
|
43
|
+
|
44
|
+
= labeled_field pf, :body, label: 'Content', class: "content-field"
|
45
|
+
= pf.text_area :body, rows: 8
|
46
|
+
|
47
|
+
= labeled_field pf, :filter, class: 'control'
|
48
|
+
= pf.select :filter, options: BoltonCms::RENDERERS.collect { |v| [v.to_s.titleize, v] }
|
49
|
+
- else # Padrino fields_for is broken in the case there's no content passed in the block
|
50
|
+
= nil
|
42
51
|
|
43
|
-
|
44
|
-
|
45
|
-
|
52
|
+
- if f.object.inactive_fragments.size > 0
|
53
|
+
.accordion-container.inactive
|
54
|
+
fieldset.page-content.collapsible.collapsed
|
55
|
+
legend.collapsible-header Inactive Fragments
|
56
|
+
|
57
|
+
.collapsible-content
|
58
|
+
- f.object.inactive_fragments.each_with_index do |pf, i|
|
59
|
+
- if i > 0
|
60
|
+
hr
|
46
61
|
|
47
|
-
|
48
|
-
|
62
|
+
p
|
63
|
+
label for="#{pf.id}" = pf.label
|
64
|
+
textarea id="#{pf.id}" readonly='readonly' = pf.body
|
49
65
|
|
50
|
-
|
51
|
-
= pf.select :filter, options: BoltonCms::RENDERERS.collect { |v| [v.to_s.titleize, v] }
|
66
|
+
p Filter: #{pf.filter}
|
52
67
|
|
53
68
|
= partial 'pages/asset_form', locals: { f: f }
|
54
69
|
|
Binary file
|
@@ -34,7 +34,6 @@ class Page
|
|
34
34
|
|
35
35
|
before_rearrange :set_slug
|
36
36
|
after_rearrange :rebuild_path
|
37
|
-
before_save :create_fragments
|
38
37
|
before_save :destroy_flagged_assets
|
39
38
|
before_save :flag_used_assets
|
40
39
|
before_destroy :move_children_to_parent
|
@@ -47,14 +46,30 @@ class Page
|
|
47
46
|
assets.where(used: false)
|
48
47
|
end
|
49
48
|
|
49
|
+
def active_fragments
|
50
|
+
fragments.where(active: true)
|
51
|
+
end
|
52
|
+
|
53
|
+
def inactive_fragments
|
54
|
+
fragments.where(active: false)
|
55
|
+
end
|
56
|
+
|
50
57
|
def find_fragment(label)
|
51
58
|
fragments.find_by(label: label) unless label.blank?
|
52
59
|
end
|
53
60
|
|
54
|
-
def
|
55
|
-
|
56
|
-
|
61
|
+
def manage_fragments(configured_fragments = [])
|
62
|
+
fragments.each do |fragment|
|
63
|
+
if fragment.active = configured_fragments.include?(fragment.label)
|
64
|
+
configured_fragments.delete fragment.label
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
configured_fragments.each do |fragment|
|
69
|
+
fragments << Fragment.new(label: fragment)
|
57
70
|
end
|
71
|
+
|
72
|
+
save
|
58
73
|
end
|
59
74
|
|
60
75
|
private
|
data/lib/bolton_cms/version.rb
CHANGED
data/spec/models/page_spec.rb
CHANGED
@@ -58,12 +58,26 @@ describe Page do
|
|
58
58
|
@page.find_fragment(@default_fragments.first).label.must_equal @default_fragments.first
|
59
59
|
end
|
60
60
|
|
61
|
-
it 'should add configured fragments
|
62
|
-
|
63
|
-
@page.save
|
61
|
+
it 'should add configured fragments' do
|
62
|
+
@page.manage_fragments(['Fragment 1', 'Fragment 2', 'test fragment'])
|
64
63
|
@page.find_fragment('test fragment').nil?.must_equal false
|
65
64
|
end
|
66
65
|
|
66
|
+
it 'should mark unconfigured fragments' do
|
67
|
+
@page.manage_fragments(['Fragment 1'])
|
68
|
+
@page.find_fragment('Fragment 2').active.must_equal false
|
69
|
+
end
|
70
|
+
|
71
|
+
it 'should only return active fragments' do
|
72
|
+
@page.manage_fragments(['Fragment 1'])
|
73
|
+
@page.active_fragments.size.must_equal 1
|
74
|
+
end
|
75
|
+
|
76
|
+
it 'should retrieve inactive fragments' do
|
77
|
+
@page.manage_fragments(['Fragment 1'])
|
78
|
+
@page.inactive_fragments.size.must_equal 1
|
79
|
+
end
|
80
|
+
|
67
81
|
it 'should have page body' do
|
68
82
|
@page.must have_field(:body)
|
69
83
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bolton-cms-padrino
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Charles Hudson
|
@@ -371,7 +371,7 @@ files:
|
|
371
371
|
- config/database.rb
|
372
372
|
- config/mongoid.yml
|
373
373
|
- db/seeds.rb
|
374
|
-
- gems/bolton-cms-padrino-0.2.
|
374
|
+
- gems/bolton-cms-padrino-0.2.7.gem
|
375
375
|
- lib/bolton-cms-padrino.rb
|
376
376
|
- lib/bolton_cms/attachment_uploader.rb
|
377
377
|
- lib/bolton_cms/config.rb
|