alchemy_cms 2.1.6 → 2.1.7
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +0 -1
- data/alchemy_cms.gemspec +3 -2
- data/app/assets/javascripts/alchemy/alchemy.link_overlay.js +1 -1
- data/app/assets/javascripts/alchemy/alchemy.windows.js +1 -1
- data/app/assets/stylesheets/alchemy/alchemy.css +0 -1
- data/app/assets/stylesheets/alchemy/base.css.scss +2 -5
- data/app/assets/stylesheets/alchemy/elements.css.scss +118 -139
- data/app/assets/stylesheets/alchemy/frame.css.scss +10 -4
- data/app/assets/stylesheets/alchemy/tables.css.scss +4 -0
- data/app/controllers/alchemy/admin/attachments_controller.rb +1 -1
- data/app/controllers/alchemy/admin/base_controller.rb +1 -1
- data/app/controllers/alchemy/admin/contents_controller.rb +1 -1
- data/app/controllers/alchemy/admin/essence_audios_controller.rb +1 -1
- data/app/controllers/alchemy/admin/essence_files_controller.rb +1 -1
- data/app/controllers/alchemy/admin/essence_flashes_controller.rb +1 -1
- data/app/controllers/alchemy/admin/essence_pictures_controller.rb +4 -3
- data/app/controllers/alchemy/admin/essence_videos_controller.rb +1 -1
- data/app/controllers/alchemy/admin/pages_controller.rb +3 -3
- data/app/controllers/alchemy/admin/resources_controller.rb +3 -3
- data/app/controllers/alchemy/admin/users_controller.rb +3 -3
- data/app/controllers/alchemy/base_controller.rb +1 -1
- data/app/controllers/alchemy/messages_controller.rb +3 -2
- data/app/helpers/alchemy/admin/base_helper.rb +5 -1
- data/app/helpers/alchemy/admin/elements_helper.rb +1 -1
- data/app/helpers/alchemy/admin/essences_helper.rb +4 -4
- data/app/helpers/alchemy/base_helper.rb +20 -0
- data/app/helpers/alchemy/elements_helper.rb +1 -0
- data/app/helpers/alchemy/pages_helper.rb +15 -3
- data/app/models/alchemy/attachment.rb +1 -4
- data/app/models/alchemy/language.rb +1 -1
- data/app/models/alchemy/message.rb +5 -1
- data/app/models/alchemy/page.rb +8 -5
- data/app/models/alchemy/picture.rb +1 -4
- data/app/views/alchemy/admin/attachments/_files_list.html.erb +1 -1
- data/app/views/alchemy/admin/elements/_new_element_form.html.erb +2 -1
- data/app/views/alchemy/admin/elements/index.html.erb +12 -8
- data/app/views/alchemy/admin/essence_pictures/crop.html.erb +1 -1
- data/app/views/alchemy/admin/essence_pictures/update.js.erb +1 -1
- data/app/views/alchemy/admin/languages/_form.html.erb +2 -2
- data/app/views/alchemy/admin/pages/_page_status.html.erb +2 -2
- data/app/views/alchemy/admin/pages/edit.html.erb +1 -0
- data/app/views/alchemy/admin/partials/_pagination_links.html.erb +1 -7
- data/app/views/alchemy/admin/partials/_sub_navigation_tab.html.erb +1 -1
- data/app/views/alchemy/admin/pictures/_archive_overlay.html.erb +4 -9
- data/app/views/alchemy/admin/pictures/_pictures_list.html.erb +1 -1
- data/app/views/alchemy/admin/users/index.html.erb +1 -1
- data/app/views/alchemy/base/error_notice.html.erb +4 -0
- data/app/views/alchemy/essences/_essence_picture_view.html.erb +2 -1
- data/app/views/alchemy/essences/_essence_text_editor.html.erb +7 -3
- data/app/views/alchemy/navigation/_link.html.erb +1 -1
- data/app/views/kaminari/_gap.html.erb +8 -0
- data/app/views/kaminari/_next_page.html.erb +13 -0
- data/app/views/kaminari/_page.html.erb +14 -0
- data/app/views/kaminari/_paginator.html.erb +21 -0
- data/app/views/kaminari/_prev_page.html.erb +13 -0
- data/app/views/layouts/alchemy/admin.html.erb +1 -1
- data/app/views/layouts/alchemy/login.html.erb +1 -1
- data/config/alchemy/config.yml +3 -0
- data/config/initializers/kaminari_config.rb +9 -0
- data/config/locales/alchemy.de.yml +5 -6
- data/config/locales/alchemy.en.yml +5 -6
- data/lib/alchemy/capistrano.rb +0 -3
- data/lib/alchemy/scoped_pagination_url_helper.rb +13 -0
- data/lib/alchemy/version.rb +1 -1
- data/lib/alchemy_cms.rb +2 -2
- data/lib/rails/generators/alchemy/elements/elements_generator.rb +1 -1
- data/spec/factories.rb +4 -0
- data/spec/helpers/elements_helper_spec.rb +38 -0
- data/spec/models/language_spec.rb +29 -9
- data/spec/models/page_spec.rb +17 -0
- metadata +53 -39
- data/app/assets/images/alchemy/flags.png +0 -0
- data/app/assets/stylesheets/alchemy/flags.css.scss +0 -1
- data/app/views/alchemy/admin/partials/_remote_pagination_links.html.erb +0 -9
- data/lib/alchemy/remote_pagination_link_renderer.rb +0 -31
- data/lib/alchemy/scoped_pagination_link_renderer.rb +0 -27
data/Gemfile
CHANGED
data/alchemy_cms.gemspec
CHANGED
@@ -24,14 +24,15 @@ Gem::Specification.new do |s|
|
|
24
24
|
s.add_runtime_dependency(%q<awesome_nested_set>, ["~> 2.0"])
|
25
25
|
s.add_runtime_dependency(%q<declarative_authorization>, ["~> 0.5.4"])
|
26
26
|
s.add_runtime_dependency(%q<tvdeyen-fleximage>, ["~> 1.0.9"])
|
27
|
-
s.add_runtime_dependency(%q<
|
27
|
+
s.add_runtime_dependency(%q<kaminari>, ["~> 0.13.0"])
|
28
28
|
s.add_runtime_dependency(%q<acts_as_ferret>, ["~> 0.5"])
|
29
29
|
s.add_runtime_dependency(%q<acts_as_list>, ["~> 0.1"])
|
30
30
|
s.add_runtime_dependency(%q<magiclabs-userstamp>, ["~> 2.0.2"])
|
31
31
|
s.add_runtime_dependency(%q<dynamic_form>, ["~> 1.1"])
|
32
32
|
s.add_runtime_dependency(%q<jquery-rails>, ["~> 1.0.16"])
|
33
33
|
s.add_runtime_dependency(%q<attachment_magic>, ["~> 0.2.1"])
|
34
|
-
|
34
|
+
s.add_runtime_dependency('sass-rails', ['~> 3.1.4'])
|
35
|
+
|
35
36
|
s.add_development_dependency(%q<rspec-rails>, ["~> 2.8"])
|
36
37
|
s.add_development_dependency(%q<sqlite3>)
|
37
38
|
|
@@ -27,7 +27,7 @@ if (typeof(Alchemy) === 'undefined') {
|
|
27
27
|
url: Alchemy.routes.link_admin_pages_path,
|
28
28
|
success: function(data, textStatus, XMLHttpRequest) {
|
29
29
|
$dialog.html(data);
|
30
|
-
Alchemy.SelectBox('#alchemyLinkOverlay select');
|
30
|
+
Alchemy.SelectBox('#alchemyLinkOverlay select.alchemy_selectbox');
|
31
31
|
},
|
32
32
|
error: function(XMLHttpRequest, textStatus, errorThrown) {
|
33
33
|
Alchemy.AjaxErrorHandler($dialog, XMLHttpRequest.status, textStatus, errorThrown);
|
@@ -162,7 +162,7 @@ if (typeof(Alchemy) === 'undefined') {
|
|
162
162
|
top: ($(window).height() - $dialog.dialog('widget').height()) / 2
|
163
163
|
});
|
164
164
|
}
|
165
|
-
Alchemy.SelectBox('#alchemyOverlay select');
|
165
|
+
Alchemy.SelectBox('#alchemyOverlay select.alchemy_selectbox');
|
166
166
|
Alchemy.Datepicker('#alchemyOverlay input.date, #alchemyOverlay input[type="date"]');
|
167
167
|
Alchemy.ButtonObserver('#alchemyOverlay .button');
|
168
168
|
},
|
@@ -787,7 +787,8 @@ div.field_with_errors {
|
|
787
787
|
}
|
788
788
|
|
789
789
|
p.foot_note {
|
790
|
-
font-size:
|
790
|
+
font-size: 10px;
|
791
|
+
line-height: 1.5em;
|
791
792
|
}
|
792
793
|
|
793
794
|
#errorExplanation ul {
|
@@ -1357,10 +1358,6 @@ div.assign_file_file_icon img {
|
|
1357
1358
|
width: 217px;
|
1358
1359
|
}
|
1359
1360
|
|
1360
|
-
#alchemy .ui-dialog-content p {
|
1361
|
-
min-height: 21px;
|
1362
|
-
}
|
1363
|
-
|
1364
1361
|
table.window_form td.checkbox {
|
1365
1362
|
text-align: left;
|
1366
1363
|
}
|
@@ -1,18 +1,5 @@
|
|
1
1
|
@import "alchemy/defaults";
|
2
2
|
|
3
|
-
#alchemy div.content_editor input.text_with_icon.auto_resize.thin_border {
|
4
|
-
padding-right: 52px;
|
5
|
-
width: 314px;
|
6
|
-
}
|
7
|
-
|
8
|
-
.element_editor p.footnote {
|
9
|
-
clear: both;
|
10
|
-
float: left;
|
11
|
-
font-size: 10px;
|
12
|
-
margin-top: 4px;
|
13
|
-
width: 100%;
|
14
|
-
}
|
15
|
-
|
16
3
|
.element_heading .preview_text_quote {
|
17
4
|
font-size: 10px;
|
18
5
|
font-style: italic;
|
@@ -174,30 +161,74 @@ div.element_editor {
|
|
174
161
|
@include rounded-corner;
|
175
162
|
background-color: #f0e8d7;
|
176
163
|
margin-bottom: 8px;
|
177
|
-
}
|
178
164
|
|
179
|
-
|
180
|
-
|
181
|
-
}
|
165
|
+
&.not-draggable {
|
166
|
+
@include opacity(50);
|
167
|
+
}
|
182
168
|
|
183
|
-
|
184
|
-
|
185
|
-
}
|
169
|
+
&.dirty {
|
170
|
+
border-color: #d0c83d;
|
186
171
|
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
}
|
172
|
+
.element_head, .element_foot {
|
173
|
+
background-color: #fff8df;
|
174
|
+
}
|
175
|
+
}
|
176
|
+
|
177
|
+
&.selected {
|
178
|
+
border-color: #4b93db;
|
179
|
+
-moz-box-shadow: 0 0 3px #4b93db;
|
180
|
+
-webkit-box-shadow: 0 0 3px #4b93db;
|
181
|
+
box-shadow: 0 0 3px #4b93db;
|
182
|
+
}
|
183
|
+
|
184
|
+
div.error {
|
185
|
+
padding: 8px 4px 8px 32px;
|
186
|
+
margin-bottom: 8px;
|
187
|
+
margin-top: 8px;
|
188
|
+
@include rounded-corner;
|
189
|
+
background-color: #f1c9ca;
|
190
|
+
color: #931f23;
|
191
|
+
border-style: solid;
|
192
|
+
border-width: 1px;
|
193
|
+
position: relative;
|
194
|
+
|
195
|
+
span.icon {
|
196
|
+
position: absolute;
|
197
|
+
left: 8px;
|
198
|
+
top: 8px;
|
199
|
+
}
|
200
|
+
}
|
201
|
+
|
202
|
+
.validation_notice {
|
203
|
+
font-size: 10px;
|
204
|
+
margin-top: 1em;
|
205
|
+
}
|
206
|
+
|
207
|
+
.foot_note {
|
208
|
+
padding: $default-padding;
|
209
|
+
background-color: #fffdef;
|
210
|
+
@include rounded-corner;
|
211
|
+
margin-bottom: 1em;
|
212
|
+
}
|
213
|
+
|
214
|
+
p.content_editor_error {
|
215
|
+
border: 1px solid #f5b04e;
|
216
|
+
padding: 4px 8px;
|
217
|
+
line-height: 21px;
|
218
|
+
background-color: #f5dea9;
|
219
|
+
margin-top: 4px;
|
220
|
+
@include rounded-corner;
|
191
221
|
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
222
|
+
span.icon.warning {
|
223
|
+
position: relative;
|
224
|
+
top: 2px;
|
225
|
+
margin-right: 8px;
|
226
|
+
}
|
227
|
+
}
|
197
228
|
}
|
198
229
|
|
199
230
|
#alchemy .ui-dialog div.element_editor form {
|
200
|
-
margin:
|
231
|
+
margin: 0;
|
201
232
|
padding: 0 8px;
|
202
233
|
overflow: hidden;
|
203
234
|
}
|
@@ -363,33 +394,6 @@ a.fold_element {
|
|
363
394
|
margin: 1px;
|
364
395
|
}
|
365
396
|
|
366
|
-
.content_editor select.essence_editor_select {
|
367
|
-
@include rounded-corner;
|
368
|
-
background: white;
|
369
|
-
border: 1px solid $button-border-color;
|
370
|
-
font-size:11px;
|
371
|
-
height:21px;
|
372
|
-
line-height:21px;
|
373
|
-
padding:2px;
|
374
|
-
}
|
375
|
-
|
376
|
-
.content_editor select.essence_editor_select optgroup {
|
377
|
-
color: gray;
|
378
|
-
font-style: normal;
|
379
|
-
font-weight: bold;
|
380
|
-
text-indent: 8px;
|
381
|
-
}
|
382
|
-
|
383
|
-
.content_editor select.essence_editor_select option {
|
384
|
-
padding-top: 2px;
|
385
|
-
padding-bottom: 2px;
|
386
|
-
color: black;
|
387
|
-
}
|
388
|
-
|
389
|
-
.content_editor select.essence_editor_select optgroup option {
|
390
|
-
text-indent: 24px;
|
391
|
-
}
|
392
|
-
|
393
397
|
.droppable_element_placeholder {
|
394
398
|
border: 1px dotted $button-border-color;
|
395
399
|
background-color: $medium-gray;
|
@@ -437,17 +441,6 @@ a.icon_button.linked {
|
|
437
441
|
cursor: default;
|
438
442
|
}
|
439
443
|
|
440
|
-
div.content_editor.essence_date {
|
441
|
-
float: none;
|
442
|
-
display: inline;
|
443
|
-
display: inline-block;
|
444
|
-
vertical-align: top;
|
445
|
-
|
446
|
-
input.date {
|
447
|
-
width: 154px;
|
448
|
-
}
|
449
|
-
}
|
450
|
-
|
451
444
|
div.essence_picture_editor {
|
452
445
|
float: left;
|
453
446
|
height: 126px;
|
@@ -455,14 +448,6 @@ div.essence_picture_editor {
|
|
455
448
|
position: relative;
|
456
449
|
}
|
457
450
|
|
458
|
-
div.essence_picture_editor.content_editor {
|
459
|
-
float: none;
|
460
|
-
height: auto;
|
461
|
-
display: inline;
|
462
|
-
display: inline-block;
|
463
|
-
margin: 8px 0;
|
464
|
-
}
|
465
|
-
|
466
451
|
div.essence_picture_editor .picture_tool_delete {
|
467
452
|
position: absolute;
|
468
453
|
right: 4px;
|
@@ -676,14 +661,6 @@ div.content_text_editor input.text_short {
|
|
676
661
|
width: 100%;
|
677
662
|
}
|
678
663
|
|
679
|
-
// div.element_content {
|
680
|
-
// white-space: nowrap;
|
681
|
-
|
682
|
-
// p, div {
|
683
|
-
// white-space: normal;
|
684
|
-
// }
|
685
|
-
// }
|
686
|
-
|
687
664
|
div.content_editor {
|
688
665
|
margin-bottom: 8px;
|
689
666
|
margin-top: 8px;
|
@@ -750,46 +727,66 @@ div.content_editor {
|
|
750
727
|
min-width: 90px;
|
751
728
|
margin-right: 4px;
|
752
729
|
}
|
730
|
+
|
731
|
+
a.icon_button.small {
|
732
|
+
display: none;
|
733
|
+
}
|
753
734
|
}
|
754
|
-
}
|
755
735
|
|
756
|
-
|
757
|
-
|
758
|
-
|
759
|
-
margin-bottom: 8px;
|
760
|
-
margin-top: 8px;
|
761
|
-
@include rounded-corner;
|
762
|
-
border: 1px solid #f5b04e;
|
763
|
-
position: relative;
|
764
|
-
}
|
736
|
+
&:hover label a.icon_button.small {
|
737
|
+
display: inline-block;
|
738
|
+
}
|
765
739
|
|
766
|
-
.
|
767
|
-
|
768
|
-
|
769
|
-
|
770
|
-
}
|
740
|
+
input.text_with_icon.auto_resize.thin_border {
|
741
|
+
padding-right: 52px;
|
742
|
+
width: 314px;
|
743
|
+
}
|
771
744
|
|
772
|
-
.
|
773
|
-
|
774
|
-
|
775
|
-
|
776
|
-
|
777
|
-
|
778
|
-
|
779
|
-
|
745
|
+
select.essence_editor_select {
|
746
|
+
@include rounded-corner;
|
747
|
+
background: white;
|
748
|
+
border: 1px solid $button-border-color;
|
749
|
+
font-size:11px;
|
750
|
+
height:21px;
|
751
|
+
line-height:21px;
|
752
|
+
padding:2px;
|
753
|
+
|
754
|
+
optgroup {
|
755
|
+
color: gray;
|
756
|
+
font-style: normal;
|
757
|
+
font-weight: bold;
|
758
|
+
text-indent: 8px;
|
759
|
+
|
760
|
+
option {
|
761
|
+
text-indent: 24px;
|
762
|
+
}
|
763
|
+
}
|
780
764
|
|
781
|
-
|
782
|
-
|
783
|
-
|
784
|
-
|
785
|
-
}
|
765
|
+
option {
|
766
|
+
padding-top: 2px;
|
767
|
+
padding-bottom: 2px;
|
768
|
+
color: black;
|
769
|
+
}
|
770
|
+
}
|
786
771
|
|
787
|
-
|
788
|
-
|
789
|
-
|
772
|
+
&.essence_date {
|
773
|
+
float: none;
|
774
|
+
display: inline;
|
775
|
+
display: inline-block;
|
776
|
+
vertical-align: top;
|
790
777
|
|
791
|
-
|
792
|
-
|
778
|
+
input.date {
|
779
|
+
width: 154px;
|
780
|
+
}
|
781
|
+
}
|
782
|
+
|
783
|
+
&.essence_picture_editor {
|
784
|
+
float: none;
|
785
|
+
height: auto;
|
786
|
+
display: inline;
|
787
|
+
display: inline-block;
|
788
|
+
margin: 8px 0;
|
789
|
+
}
|
793
790
|
}
|
794
791
|
|
795
792
|
.o2k7Skin span.alchemy_link {
|
@@ -834,24 +831,6 @@ textarea.tinymce {
|
|
834
831
|
border-width: 1px;
|
835
832
|
}
|
836
833
|
|
837
|
-
div.element_editor div.error {
|
838
|
-
padding: 8px 4px 8px 32px;
|
839
|
-
margin-bottom: 8px;
|
840
|
-
margin-top: 8px;
|
841
|
-
@include rounded-corner;
|
842
|
-
background-color: #f1c9ca;
|
843
|
-
color: #931f23;
|
844
|
-
border-style: solid;
|
845
|
-
border-width: 1px;
|
846
|
-
position: relative;
|
847
|
-
}
|
848
|
-
|
849
|
-
div.element_editor div.error span.icon {
|
850
|
-
position: absolute;
|
851
|
-
left: 8px;
|
852
|
-
top: 8px;
|
853
|
-
}
|
854
|
-
|
855
834
|
.element_errors {
|
856
835
|
margin-top: 8px;
|
857
836
|
margin-bottom: 8px;
|
@@ -862,9 +841,9 @@ div.element_editor div.error span.icon {
|
|
862
841
|
color: #931f23;
|
863
842
|
border-style: solid;
|
864
843
|
border-width: 1px;
|
865
|
-
}
|
866
844
|
|
867
|
-
|
868
|
-
|
869
|
-
|
845
|
+
p {
|
846
|
+
margin: 0;
|
847
|
+
line-height: 24px;
|
848
|
+
}
|
870
849
|
}
|
@@ -205,7 +205,7 @@ div#user_info {
|
|
205
205
|
span.page_status_and_name {
|
206
206
|
padding: 0 8px;
|
207
207
|
background-color: $medium-gray;
|
208
|
-
text-shadow:
|
208
|
+
text-shadow: 0px 1px 1px #FFFFFF;
|
209
209
|
@include disable-user-select;
|
210
210
|
cursor: default;
|
211
211
|
line-height: 20px;
|
@@ -216,12 +216,18 @@ div#user_info {
|
|
216
216
|
height: 22px;
|
217
217
|
margin-right: 1px;
|
218
218
|
|
219
|
-
.
|
219
|
+
.page_language {
|
220
220
|
float: none;
|
221
221
|
position: relative;
|
222
222
|
display: inline-block;
|
223
|
-
bottom:
|
224
|
-
|
223
|
+
bottom: 2px;
|
224
|
+
border: 1px solid #f0c8d1;
|
225
|
+
background-color: #f0c8d1;
|
226
|
+
color: #ac3d57;
|
227
|
+
@include rounded-corner;
|
228
|
+
margin-right: 2px;
|
229
|
+
padding: 2px 3px;
|
230
|
+
line-height: 11px;
|
225
231
|
}
|
226
232
|
|
227
233
|
span.page_name {
|
@@ -50,7 +50,7 @@ module Alchemy
|
|
50
50
|
def update
|
51
51
|
@attachment = Attachment.find(params[:id])
|
52
52
|
oldname = @attachment.name
|
53
|
-
if @attachment.update_attributes(params[:attachment])
|
53
|
+
if @attachment.update_attributes(params[:attachment], :as => current_user.role.to_sym)
|
54
54
|
flash[:notice] = t("File renamed successfully from: '%{from}' to '%{to}'", :from => oldname, :to => @attachment.name)
|
55
55
|
else
|
56
56
|
render :action => "edit"
|