comfortable_mexican_sofa 1.12.8 → 1.12.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +3 -3
- data/app/assets/fonts/comfy/admin/cms/lib/redactor-font.eot +0 -0
- data/app/assets/javascripts/comfy/admin/cms/base.js.coffee +46 -11
- data/app/assets/javascripts/comfy/admin/cms/lib/redactor.js +1807 -570
- data/app/assets/stylesheets/comfy/admin/cms/bootstrap_overrides.sass +6 -1
- data/app/assets/stylesheets/comfy/admin/cms/lib/redactor.css +79 -52
- data/app/controllers/comfy/admin/cms/base_controller.rb +2 -1
- data/app/controllers/comfy/admin/cms/pages_controller.rb +4 -1
- data/app/controllers/comfy/cms/base_controller.rb +5 -5
- data/app/controllers/comfy/cms/content_controller.rb +4 -0
- data/app/helpers/comfy/cms_helper.rb +72 -70
- data/app/models/comfy/cms/file.rb +0 -1
- data/app/views/comfy/admin/cms/files/_file.html.haml +1 -1
- data/app/views/comfy/admin/cms/layouts/_index_branch.html.haml +2 -1
- data/config/environments/test.rb +2 -0
- data/config/initializers/comfortable_mexican_sofa.rb +12 -0
- data/config/locales/cs.yml +2 -3
- data/config/locales/da.yml +2 -3
- data/config/locales/de.yml +2 -3
- data/config/locales/en.yml +2 -3
- data/config/locales/es.yml +2 -3
- data/config/locales/fr.yml +2 -3
- data/config/locales/it.yml +2 -3
- data/config/locales/ja.yml +2 -3
- data/config/locales/nb.yml +2 -3
- data/config/locales/nl.yml +2 -3
- data/config/locales/pl.yml +40 -41
- data/config/locales/pt-BR.yml +2 -3
- data/config/locales/ru.yml +2 -3
- data/config/locales/sv.yml +2 -3
- data/config/locales/uk.yml +2 -3
- data/config/locales/zh-CN.yml +2 -3
- data/config/locales/zh-TW.yml +16 -17
- data/db/migrate/01_create_cms.rb +18 -25
- data/db/upgrade_migrations/08_upgrade_to_1_12_0.rb +2 -2
- data/doc/preview.png +0 -0
- data/lib/comfortable_mexican_sofa.rb +1 -0
- data/lib/comfortable_mexican_sofa/access_control/admin_authentication.rb +3 -2
- data/lib/comfortable_mexican_sofa/access_control/public_authorization.rb +8 -0
- data/lib/comfortable_mexican_sofa/configuration.rb +4 -0
- data/lib/comfortable_mexican_sofa/engine.rb +5 -1
- data/lib/comfortable_mexican_sofa/fixture/file.rb +22 -22
- data/lib/comfortable_mexican_sofa/tags/asset.rb +8 -3
- data/lib/comfortable_mexican_sofa/version.rb +1 -1
- data/test/controllers/comfy/admin/cms/pages_controller_test.rb +22 -0
- data/test/controllers/comfy/cms/content_controller_test.rb +12 -0
- data/test/integration/access_control_test.rb +24 -1
- data/test/lib/fixtures/files_test.rb +29 -27
- data/test/lib/tags/asset_test.rb +42 -9
- data/test/test_helper.rb +8 -3
- metadata +5 -3
@@ -7,13 +7,15 @@ body#comfy
|
|
7
7
|
h2
|
8
8
|
margin-top: 0
|
9
9
|
table.table
|
10
|
+
th
|
11
|
+
white-space: nowrap
|
10
12
|
td
|
11
13
|
white-space: nowrap
|
12
14
|
.btn-group
|
13
15
|
font-size: 0
|
14
16
|
.btn
|
15
17
|
float: none
|
16
|
-
td.main
|
18
|
+
th.main, td.main
|
17
19
|
width: 100%
|
18
20
|
white-space: normal
|
19
21
|
form
|
@@ -25,3 +27,6 @@ body#comfy
|
|
25
27
|
padding: 15px 0
|
26
28
|
border-top: 1px solid #eee
|
27
29
|
background-color: #f5f5f5
|
30
|
+
form.form-inline
|
31
|
+
.form-group
|
32
|
+
margin-bottom: 0
|
@@ -1,10 +1,6 @@
|
|
1
1
|
/*
|
2
2
|
Icon font
|
3
3
|
*/
|
4
|
-
@font-face {
|
5
|
-
font-family: 'RedactorFont';
|
6
|
-
src: url('redactor-font.eot');
|
7
|
-
}
|
8
4
|
@font-face {
|
9
5
|
font-family: 'RedactorFont';
|
10
6
|
src: url(data:application/x-font-ttf;charset=utf-8;base64,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) format('truetype'), url(data:application/font-woff;charset=utf-8;base64,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) format('woff');
|
@@ -32,51 +28,37 @@
|
|
32
28
|
box-shadow: none;
|
33
29
|
color: #ccc;
|
34
30
|
font-size: 13px;
|
35
|
-
font-family: Menlo, Monaco, monospace, sans-serif;
|
31
|
+
font-family: Menlo, Monaco, monospace, sans-serif !important;
|
36
32
|
resize: none;
|
37
33
|
}
|
38
34
|
.redactor-box textarea:focus {
|
39
35
|
outline: none;
|
40
36
|
}
|
41
|
-
/*
|
42
|
-
Z-index setup
|
43
|
-
*/
|
44
37
|
.redactor-editor,
|
45
38
|
.redactor-box {
|
46
39
|
background: #fff;
|
47
40
|
}
|
41
|
+
/*
|
42
|
+
Z-index setup
|
43
|
+
*/
|
48
44
|
.redactor-editor,
|
49
45
|
.redactor-box,
|
50
46
|
.redactor-box textarea {
|
51
|
-
z-index: auto
|
47
|
+
z-index: auto;
|
52
48
|
}
|
53
49
|
.redactor-box-fullscreen {
|
54
|
-
z-index:
|
50
|
+
z-index: 1051;
|
51
|
+
}
|
52
|
+
.redactor-toolbar {
|
53
|
+
z-index: 100;
|
55
54
|
}
|
56
|
-
.redactor-toolbar,
|
57
55
|
.redactor-dropdown {
|
58
|
-
z-index:
|
56
|
+
z-index: 1052;
|
59
57
|
}
|
60
58
|
#redactor-modal-overlay,
|
61
59
|
#redactor-modal-box,
|
62
60
|
#redactor-modal {
|
63
|
-
z-index:
|
64
|
-
}
|
65
|
-
/*
|
66
|
-
Resize
|
67
|
-
*/
|
68
|
-
.redactor-resize {
|
69
|
-
background: #f4f4f4;
|
70
|
-
padding: 4px 0 3px 0;
|
71
|
-
cursor: move;
|
72
|
-
border: 1px solid #e3e3e3;
|
73
|
-
border-top: none;
|
74
|
-
}
|
75
|
-
.redactor-resize div {
|
76
|
-
width: 30px;
|
77
|
-
margin: auto;
|
78
|
-
border-top: 1px solid #bbb;
|
79
|
-
border-bottom: 1px solid #fff;
|
61
|
+
z-index: 1053;
|
80
62
|
}
|
81
63
|
/*
|
82
64
|
Fullscreen
|
@@ -90,8 +72,12 @@ body .redactor-box-fullscreen {
|
|
90
72
|
/*
|
91
73
|
Utils
|
92
74
|
*/
|
93
|
-
.
|
94
|
-
|
75
|
+
.redactor-scrollbar-measure {
|
76
|
+
position: absolute;
|
77
|
+
top: -9999px;
|
78
|
+
width: 50px;
|
79
|
+
height: 50px;
|
80
|
+
overflow: scroll;
|
95
81
|
}
|
96
82
|
/*
|
97
83
|
Editor
|
@@ -101,35 +87,33 @@ body .redactor-box-fullscreen {
|
|
101
87
|
overflow: auto;
|
102
88
|
margin: 0 !important;
|
103
89
|
padding: 20px;
|
90
|
+
min-height: 80px;
|
104
91
|
outline: none;
|
105
92
|
white-space: normal;
|
106
93
|
border: 1px solid #eee;
|
107
|
-
font-family: Arial, Helvetica, Verdana, Tahoma, sans-serif;
|
94
|
+
font-family: Arial, Helvetica, Verdana, Tahoma, sans-serif !important;
|
108
95
|
font-size: 14px;
|
109
96
|
line-height: 1.6em;
|
110
97
|
}
|
111
98
|
.redactor-editor:focus {
|
112
99
|
outline: none;
|
113
100
|
}
|
101
|
+
.toolbar-fixed-box + .redactor-editor {
|
102
|
+
padding-top: 32px !important;
|
103
|
+
}
|
114
104
|
/*
|
115
105
|
Placeholder
|
116
106
|
*/
|
117
|
-
.redactor-placeholder {
|
118
|
-
position: relative;
|
119
|
-
}
|
120
107
|
.redactor-placeholder:after {
|
121
108
|
position: absolute;
|
122
109
|
top: 20px;
|
123
110
|
left: 20px;
|
124
111
|
content: attr(placeholder);
|
112
|
+
display: block;
|
113
|
+
/* For Firefox */
|
125
114
|
color: #999 !important;
|
126
115
|
font-weight: normal !important;
|
127
116
|
}
|
128
|
-
/* Placeholder in linebreaks mode */
|
129
|
-
.redactor-linebreaks.redactor-placeholder:after {
|
130
|
-
top: 20px;
|
131
|
-
left: 20px;
|
132
|
-
}
|
133
117
|
/*
|
134
118
|
Toolbar
|
135
119
|
*/
|
@@ -222,6 +206,16 @@ body .redactor-box-fullscreen {
|
|
222
206
|
background-color: transparent !important;
|
223
207
|
cursor: default;
|
224
208
|
}
|
209
|
+
.redactor-toolbar li a.redactor-button-focus {
|
210
|
+
color: #fff;
|
211
|
+
background: #000;
|
212
|
+
}
|
213
|
+
/*
|
214
|
+
CodeMirror
|
215
|
+
*/
|
216
|
+
.redactor-box .CodeMirror {
|
217
|
+
display: none;
|
218
|
+
}
|
225
219
|
/*
|
226
220
|
Icons
|
227
221
|
*/
|
@@ -350,7 +344,7 @@ body .redactor-box-fullscreen {
|
|
350
344
|
color: #fff;
|
351
345
|
padding: 5px 8px;
|
352
346
|
line-height: 1;
|
353
|
-
font-family: Arial, Helvetica, Verdana, Tahoma, sans-serif;
|
347
|
+
font-family: Arial, Helvetica, Verdana, Tahoma, sans-serif !important;
|
354
348
|
font-size: 12px;
|
355
349
|
border-radius: 2px;
|
356
350
|
}
|
@@ -368,7 +362,7 @@ body .redactor-box-fullscreen {
|
|
368
362
|
background-color: #fff;
|
369
363
|
box-shadow: 0 1px 7px rgba(0, 0, 0, 0.25);
|
370
364
|
font-size: 14px;
|
371
|
-
font-family: Arial, Helvetica, Verdana, Tahoma, sans-serif;
|
365
|
+
font-family: Arial, Helvetica, Verdana, Tahoma, sans-serif !important;
|
372
366
|
line-height: 1.6em;
|
373
367
|
}
|
374
368
|
.redactor-dropdown a {
|
@@ -386,6 +380,23 @@ body .redactor-box-fullscreen {
|
|
386
380
|
color: #fff !important;
|
387
381
|
text-decoration: none;
|
388
382
|
}
|
383
|
+
.redactor-dropdown a.selected {
|
384
|
+
background-color: #000;
|
385
|
+
color: #fff;
|
386
|
+
}
|
387
|
+
.redactor-dropdown a.redactor-dropdown-link-inactive,
|
388
|
+
.redactor-dropdown a.redactor-dropdown-link-inactive:hover {
|
389
|
+
background: none;
|
390
|
+
cursor: default;
|
391
|
+
color: #000 !important;
|
392
|
+
filter: alpha(opacity=40);
|
393
|
+
-moz-opacity: 0.4;
|
394
|
+
opacity: 0.4;
|
395
|
+
}
|
396
|
+
.redactor-dropdown a.redactor-dropdown-link-selected {
|
397
|
+
color: #fff;
|
398
|
+
background: #000;
|
399
|
+
}
|
389
400
|
/*
|
390
401
|
IMAGE BOX
|
391
402
|
*/
|
@@ -427,7 +438,7 @@ body .redactor-box-fullscreen {
|
|
427
438
|
*/
|
428
439
|
.redactor-link-tooltip {
|
429
440
|
position: absolute;
|
430
|
-
z-index:
|
441
|
+
z-index: 99;
|
431
442
|
padding: 10px;
|
432
443
|
line-height: 1;
|
433
444
|
display: inline-block;
|
@@ -437,7 +448,7 @@ body .redactor-box-fullscreen {
|
|
437
448
|
.redactor-link-tooltip,
|
438
449
|
.redactor-link-tooltip a {
|
439
450
|
font-size: 12px;
|
440
|
-
font-family: Arial, Helvetica, Verdana, Tahoma, sans-serif;
|
451
|
+
font-family: Arial, Helvetica, Verdana, Tahoma, sans-serif !important;
|
441
452
|
}
|
442
453
|
.redactor-link-tooltip a {
|
443
454
|
color: #ccc;
|
@@ -541,6 +552,7 @@ body .redactor-box-fullscreen {
|
|
541
552
|
overflow-y: auto;
|
542
553
|
}
|
543
554
|
#redactor-modal {
|
555
|
+
outline: 0;
|
544
556
|
position: relative;
|
545
557
|
margin: auto;
|
546
558
|
margin-bottom: 20px;
|
@@ -548,7 +560,7 @@ body .redactor-box-fullscreen {
|
|
548
560
|
background: #fff;
|
549
561
|
color: #000;
|
550
562
|
font-size: 14px !important;
|
551
|
-
font-family: Arial, Helvetica, Verdana, Tahoma, sans-serif;
|
563
|
+
font-family: Arial, Helvetica, Verdana, Tahoma, sans-serif !important;
|
552
564
|
box-shadow: 0 1px 70px rgba(0, 0, 0, 0.5);
|
553
565
|
}
|
554
566
|
#redactor-modal header {
|
@@ -590,7 +602,7 @@ body .redactor-box-fullscreen {
|
|
590
602
|
color: #333;
|
591
603
|
width: 100%;
|
592
604
|
font-size: 14px;
|
593
|
-
font-family: Arial, Helvetica, Verdana, Tahoma, sans-serif;
|
605
|
+
font-family: Arial, Helvetica, Verdana, Tahoma, sans-serif !important;
|
594
606
|
-moz-transition: border 0.3s ease-in;
|
595
607
|
transition: border 0.3s ease-in;
|
596
608
|
}
|
@@ -650,7 +662,7 @@ body .redactor-box-fullscreen {
|
|
650
662
|
padding-left: 0;
|
651
663
|
list-style: none;
|
652
664
|
max-height: 250px;
|
653
|
-
overflow-x:
|
665
|
+
overflow-x: auto;
|
654
666
|
}
|
655
667
|
#redactor-modal #redactor-modal-list li {
|
656
668
|
border-bottom: 1px solid #ddd;
|
@@ -680,6 +692,11 @@ body .redactor-box-fullscreen {
|
|
680
692
|
font-size: 30px;
|
681
693
|
font-weight: 300;
|
682
694
|
cursor: pointer;
|
695
|
+
-webkit-appearance: none;
|
696
|
+
padding: 0;
|
697
|
+
border: 0;
|
698
|
+
background: 0;
|
699
|
+
outline: none;
|
683
700
|
}
|
684
701
|
#redactor-modal-close:hover {
|
685
702
|
color: #000;
|
@@ -697,7 +714,7 @@ body .redactor-box-fullscreen {
|
|
697
714
|
text-decoration: none;
|
698
715
|
font-weight: normal;
|
699
716
|
font-size: 12px;
|
700
|
-
font-family: Arial, Helvetica, Verdana, Tahoma, sans-serif;
|
717
|
+
font-family: Arial, Helvetica, Verdana, Tahoma, sans-serif !important;
|
701
718
|
line-height: 1;
|
702
719
|
cursor: pointer;
|
703
720
|
}
|
@@ -773,7 +790,8 @@ body .redactor-box-fullscreen {
|
|
773
790
|
*/
|
774
791
|
.redactor-editor code,
|
775
792
|
.redactor-editor pre {
|
776
|
-
font-family: Menlo, Monaco, monospace, sans-serif;
|
793
|
+
font-family: Menlo, Monaco, monospace, sans-serif !important;
|
794
|
+
cursor: text;
|
777
795
|
}
|
778
796
|
.redactor-editor div,
|
779
797
|
.redactor-editor p,
|
@@ -823,10 +841,15 @@ body .redactor-box-fullscreen {
|
|
823
841
|
}
|
824
842
|
.redactor-editor blockquote {
|
825
843
|
margin-left: 1.6em !important;
|
826
|
-
padding
|
844
|
+
padding: 0;
|
845
|
+
text-align: left;
|
827
846
|
color: #777;
|
828
847
|
font-style: italic;
|
829
848
|
}
|
849
|
+
.redactor-editor blockquote:before,
|
850
|
+
.redactor-editor blockquote:after {
|
851
|
+
content: '';
|
852
|
+
}
|
830
853
|
.redactor-editor ul,
|
831
854
|
.redactor-editor ol {
|
832
855
|
padding-left: 2em;
|
@@ -840,6 +863,12 @@ body .redactor-box-fullscreen {
|
|
840
863
|
padding-left: 2em;
|
841
864
|
border: none;
|
842
865
|
}
|
866
|
+
.redactor-editor ol ol li {
|
867
|
+
list-style-type: lower-alpha;
|
868
|
+
}
|
869
|
+
.redactor-editor ol ol ol li {
|
870
|
+
list-style-type: lower-roman;
|
871
|
+
}
|
843
872
|
.redactor-editor dl dt {
|
844
873
|
font-weight: bold;
|
845
874
|
}
|
@@ -866,12 +895,10 @@ body .redactor-box-fullscreen {
|
|
866
895
|
background-color: #d8d7d7;
|
867
896
|
}
|
868
897
|
.redactor-editor pre {
|
869
|
-
overflow: auto;
|
870
898
|
padding: 1em;
|
871
899
|
border: 1px solid #ddd;
|
872
900
|
border-radius: 3px;
|
873
901
|
background: #f8f8f8;
|
874
|
-
white-space: pre;
|
875
902
|
font-size: 90%;
|
876
903
|
}
|
877
904
|
.redactor-editor hr {
|
@@ -32,7 +32,8 @@ class Comfy::Admin::Cms::BaseController < ComfortableMexicanSofa.config.base_con
|
|
32
32
|
protected
|
33
33
|
|
34
34
|
def load_admin_site
|
35
|
-
|
35
|
+
id_param = params[:site_id] || session[:site_id]
|
36
|
+
if @site = ::Comfy::Cms::Site.find_by(:id => id_param) || ::Comfy::Cms::Site.first
|
36
37
|
session[:site_id] = @site.id
|
37
38
|
else
|
38
39
|
I18n.locale = ComfortableMexicanSofa.config.admin_locale || I18n.default_locale
|
@@ -1,5 +1,4 @@
|
|
1
1
|
class Comfy::Admin::Cms::PagesController < Comfy::Admin::Cms::BaseController
|
2
|
-
|
3
2
|
before_action :check_for_layouts, :only => [:new, :edit]
|
4
3
|
before_action :build_cms_page, :only => [:new, :create]
|
5
4
|
before_action :load_cms_page, :only => [:edit, :update, :destroy]
|
@@ -132,6 +131,10 @@ protected
|
|
132
131
|
@cms_layout = @page.layout
|
133
132
|
@cms_page = @page
|
134
133
|
|
134
|
+
# Make sure to use the site locale to render the preview becaue it might
|
135
|
+
# be different from the admin locale.
|
136
|
+
I18n.locale = @cms_site.locale
|
137
|
+
|
135
138
|
# Chrome chokes on content with iframes. Issue #434
|
136
139
|
response.headers['X-XSS-Protection'] = '0'
|
137
140
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
class Comfy::Cms::BaseController < ApplicationController
|
2
|
-
|
2
|
+
|
3
3
|
before_action :load_cms_site
|
4
|
-
|
4
|
+
|
5
5
|
protected
|
6
6
|
|
7
7
|
def load_cms_site
|
@@ -10,7 +10,7 @@ protected
|
|
10
10
|
else
|
11
11
|
::Comfy::Cms::Site.find_site(request.host_with_port.downcase, request.fullpath)
|
12
12
|
end
|
13
|
-
|
13
|
+
|
14
14
|
if @cms_site
|
15
15
|
if @cms_site.path.present? && !params[:site_id]
|
16
16
|
if params[:cms_path] && params[:cms_path].match(/\A#{@cms_site.path}/)
|
@@ -20,9 +20,9 @@ protected
|
|
20
20
|
raise ActionController::RoutingError.new('Site Not Found')
|
21
21
|
end
|
22
22
|
end
|
23
|
-
I18n.locale = @cms_site.locale
|
23
|
+
I18n.locale = @locale = @cms_site.locale.to_sym
|
24
24
|
else
|
25
|
-
I18n.locale = I18n.default_locale
|
25
|
+
I18n.locale = @locale = I18n.default_locale
|
26
26
|
raise ActionController::RoutingError.new('Site Not Found')
|
27
27
|
end
|
28
28
|
end
|
@@ -3,9 +3,13 @@ class Comfy::Cms::ContentController < Comfy::Cms::BaseController
|
|
3
3
|
# Authentication module must have `authenticate` method
|
4
4
|
include ComfortableMexicanSofa.config.public_auth.to_s.constantize
|
5
5
|
|
6
|
+
# Authorization module must have `authorize` method
|
7
|
+
include ComfortableMexicanSofa.config.public_authorization.to_s.constantize
|
8
|
+
|
6
9
|
before_action :load_fixtures
|
7
10
|
before_action :load_cms_page,
|
8
11
|
:authenticate,
|
12
|
+
:authorize,
|
9
13
|
:only => :show
|
10
14
|
|
11
15
|
rescue_from ActiveRecord::RecordNotFound, :with => :page_not_found
|
@@ -1,83 +1,85 @@
|
|
1
|
-
module Comfy
|
1
|
+
module Comfy
|
2
|
+
module CmsHelper
|
2
3
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
# Injects some content somewhere inside cms admin area
|
11
|
-
def cms_hook(name, options = {})
|
12
|
-
ComfortableMexicanSofa::ViewHooks.render(name, self, options)
|
13
|
-
end
|
4
|
+
# Wrapper around ComfortableMexicanSofa::FormBuilder
|
5
|
+
def comfy_form_for(record, options = {}, &proc)
|
6
|
+
options[:builder] = ComfortableMexicanSofa::FormBuilder
|
7
|
+
options[:layout] ||= :horizontal
|
8
|
+
bootstrap_form_for(record, options, &proc)
|
9
|
+
end
|
14
10
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
# Default content can go here.
|
19
|
-
# <% end %>
|
20
|
-
def cms_snippet_content(identifier, cms_site = @cms_site, &block)
|
21
|
-
unless cms_site
|
22
|
-
host, path = request.host_with_port.downcase, request.fullpath if respond_to?(:request) && request
|
23
|
-
cms_site = Comfy::Cms::Site.find_site(host, path)
|
11
|
+
# Injects some content somewhere inside cms admin area
|
12
|
+
def cms_hook(name, options = {})
|
13
|
+
ComfortableMexicanSofa::ViewHooks.render(name, self, options)
|
24
14
|
end
|
25
|
-
return '' unless cms_site
|
26
15
|
|
27
|
-
|
16
|
+
# Content of a snippet. Examples:
|
17
|
+
# cms_snippet_content(:my_snippet)
|
18
|
+
# <%= cms_snippet_content(:my_snippet) do %>
|
19
|
+
# Default content can go here.
|
20
|
+
# <% end %>
|
21
|
+
def cms_snippet_content(identifier, cms_site = @cms_site, &block)
|
22
|
+
unless cms_site
|
23
|
+
host, path = request.host_with_port.downcase, request.fullpath if respond_to?(:request) && request
|
24
|
+
cms_site = Comfy::Cms::Site.find_site(host, path)
|
25
|
+
end
|
26
|
+
return '' unless cms_site
|
28
27
|
|
29
|
-
|
30
|
-
snippet = cms_site.snippets.create(
|
31
|
-
:identifier => identifier,
|
32
|
-
:label => identifier.to_s.titleize,
|
33
|
-
:content => capture(&block)
|
34
|
-
)
|
35
|
-
end
|
28
|
+
snippet = cms_site.snippets.find_by_identifier(identifier)
|
36
29
|
|
37
|
-
|
38
|
-
|
30
|
+
if !snippet && block_given?
|
31
|
+
snippet = cms_site.snippets.create(
|
32
|
+
:identifier => identifier,
|
33
|
+
:label => identifier.to_s.titleize,
|
34
|
+
:content => capture(&block)
|
35
|
+
)
|
36
|
+
end
|
39
37
|
|
40
|
-
|
41
|
-
|
42
|
-
return '' unless cms_site
|
43
|
-
content = cms_snippet_content(identifier, cms_site, &block)
|
44
|
-
render :inline => ComfortableMexicanSofa::Tag.process_content(
|
45
|
-
cms_site.pages.build, ComfortableMexicanSofa::Tag.sanitize_irb(content)
|
46
|
-
)
|
47
|
-
end
|
38
|
+
snippet ? snippet.content : ''
|
39
|
+
end
|
48
40
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
end
|
41
|
+
# Same as cms_snippet_content but cms tags will be expanded
|
42
|
+
def cms_snippet_render(identifier, cms_site = @cms_site, &block)
|
43
|
+
return '' unless cms_site
|
44
|
+
content = cms_snippet_content(identifier, cms_site, &block)
|
45
|
+
render :inline => ComfortableMexicanSofa::Tag.process_content(
|
46
|
+
cms_site.pages.build, ComfortableMexicanSofa::Tag.sanitize_irb(content)
|
47
|
+
)
|
48
|
+
end
|
58
49
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
50
|
+
# Content of a page block. This is how you get content from page:field
|
51
|
+
# Example:
|
52
|
+
# cms_block_content(:left_column, CmsPage.first)
|
53
|
+
# cms_block_content(:left_column) # if @cms_page is present
|
54
|
+
def cms_block_content(identifier, blockable = @cms_page)
|
55
|
+
tag = blockable && (block = blockable.blocks.find_by_identifier(identifier)) && block.tag
|
56
|
+
return '' unless tag
|
57
|
+
tag.content
|
58
|
+
end
|
66
59
|
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
60
|
+
# For those times when we need to render content that shouldn't be renderable
|
61
|
+
# Example: {{cms:field}} tags
|
62
|
+
def cms_block_content_render(identifier, blockable = @cms_page)
|
63
|
+
tag = blockable && (block = blockable.blocks.find_by_identifier(identifier)) && block.tag
|
64
|
+
return '' unless tag
|
65
|
+
render :inline => ComfortableMexicanSofa::Tag.process_content(blockable, tag.content)
|
66
|
+
end
|
67
|
+
|
68
|
+
# Same as cms_block_content but with cms tags expanded
|
69
|
+
def cms_block_render(identifier, blockable = @cms_page)
|
70
|
+
tag = blockable && (block = blockable.blocks.find_by_identifier(identifier)) && block.tag
|
71
|
+
return '' unless tag
|
72
|
+
render :inline => ComfortableMexicanSofa::Tag.process_content(blockable, tag.render)
|
73
|
+
end
|
73
74
|
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
75
|
+
# Wrapper to deal with Kaminari vs WillPaginate
|
76
|
+
def comfy_paginate(collection)
|
77
|
+
return unless collection
|
78
|
+
if defined?(WillPaginate)
|
79
|
+
will_paginate collection
|
80
|
+
elsif defined?(Kaminari)
|
81
|
+
paginate collection, :theme => 'comfy'
|
82
|
+
end
|
81
83
|
end
|
82
84
|
end
|
83
|
-
end
|
85
|
+
end
|