alchemy_cms 2.1.4 → 2.1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (143) hide show
  1. data/Gemfile +1 -1
  2. data/README.md +11 -31
  3. data/app/assets/javascripts/alchemy/alchemy.elements_window.js +3 -1
  4. data/app/assets/javascripts/alchemy/alchemy.windows.js +1 -1
  5. data/app/assets/stylesheets/alchemy/base.css.scss +0 -4
  6. data/app/assets/stylesheets/alchemy/buttons.css.scss +7 -4
  7. data/app/assets/stylesheets/alchemy/icons.css.scss +7 -1
  8. data/app/assets/stylesheets/alchemy/tinymce_dialog.css.scss +11 -15
  9. data/app/assets/{javascripts → stylesheets}/tiny_mce/plugins/inlinepopups/skins/alchemy/window.css.scss +51 -18
  10. data/app/controllers/alchemy/admin/contents_controller.rb +5 -5
  11. data/app/controllers/alchemy/base_controller.rb +1 -1
  12. data/app/helpers/alchemy/admin/base_helper.rb +4 -7
  13. data/app/helpers/alchemy/admin/elements_helper.rb +2 -2
  14. data/app/models/alchemy/attachment.rb +1 -1
  15. data/app/models/alchemy/cell.rb +3 -3
  16. data/app/models/alchemy/content.rb +4 -4
  17. data/app/models/alchemy/element.rb +8 -8
  18. data/app/models/alchemy/essence_html.rb +1 -1
  19. data/app/models/alchemy/essence_richtext.rb +4 -4
  20. data/app/models/alchemy/essence_text.rb +1 -1
  21. data/app/models/alchemy/language.rb +10 -7
  22. data/app/models/alchemy/language/code.rb +19 -0
  23. data/app/models/alchemy/message.rb +6 -6
  24. data/app/models/alchemy/page.rb +26 -26
  25. data/app/models/alchemy/picture.rb +11 -13
  26. data/app/models/alchemy/user.rb +5 -5
  27. data/app/models/alchemy/user_session.rb +1 -1
  28. data/app/views/alchemy/admin/contents/destroy.js.erb +1 -1
  29. data/app/views/alchemy/admin/elements/create.js.erb +1 -0
  30. data/app/views/alchemy/admin/elements/fold.js.erb +2 -2
  31. data/app/views/alchemy/admin/elements/index.html.erb +1 -1
  32. data/app/views/alchemy/admin/essence_pictures/edit.html.erb +6 -6
  33. data/app/views/alchemy/admin/languages/_form.html.erb +47 -0
  34. data/app/views/alchemy/admin/languages/_language.html.erb +47 -0
  35. data/app/views/alchemy/admin/languages/_table.html.erb +33 -0
  36. data/app/views/alchemy/essences/_essence_picture_tools.html.erb +4 -1
  37. data/app/views/alchemy/essences/_essence_picture_view.html.erb +1 -3
  38. data/app/views/alchemy/essences/_essence_text_editor.html.erb +1 -1
  39. data/config/locales/alchemy.de.yml +26 -22
  40. data/config/locales/alchemy.en.yml +2 -0
  41. data/config/routes.rb +2 -2
  42. data/db/migrate/20120216135355_add_country_code_to_languages.rb +9 -0
  43. data/lib/alchemy/i18n.rb +21 -14
  44. data/lib/alchemy/seeder.rb +2 -2
  45. data/lib/alchemy/version.rb +1 -1
  46. data/spec/dummy/db/schema.rb +5 -3
  47. data/spec/factories.rb +2 -2
  48. data/spec/models/language_spec.rb +22 -4
  49. data/vendor/assets/javascripts/tiny_mce/langs/de.js +0 -0
  50. data/vendor/assets/javascripts/tiny_mce/langs/en.js +0 -0
  51. data/vendor/assets/javascripts/tiny_mce/license.txt +0 -0
  52. data/vendor/assets/javascripts/tiny_mce/plugins/autoresize/editor_plugin.js +1 -137
  53. data/vendor/assets/javascripts/tiny_mce/plugins/fullscreen/editor_plugin.js +0 -0
  54. data/vendor/assets/javascripts/tiny_mce/plugins/fullscreen/fullscreen.htm +0 -0
  55. data/vendor/assets/javascripts/tiny_mce/plugins/inlinepopups/editor_plugin.js +0 -0
  56. data/vendor/assets/javascripts/tiny_mce/plugins/inlinepopups/template.htm +0 -0
  57. data/vendor/assets/javascripts/tiny_mce/plugins/paste/editor_plugin.js +0 -0
  58. data/vendor/assets/javascripts/tiny_mce/plugins/paste/js/pastetext.js +0 -0
  59. data/vendor/assets/javascripts/tiny_mce/plugins/paste/js/pasteword.js +0 -0
  60. data/vendor/assets/javascripts/tiny_mce/plugins/paste/langs/de_dlg.js +0 -0
  61. data/vendor/assets/javascripts/tiny_mce/plugins/paste/langs/en_dlg.js +0 -0
  62. data/vendor/assets/javascripts/tiny_mce/plugins/paste/pastetext.htm +0 -0
  63. data/vendor/assets/javascripts/tiny_mce/plugins/paste/pasteword.htm +0 -0
  64. data/vendor/assets/javascripts/tiny_mce/plugins/table/cell.htm +0 -0
  65. data/vendor/assets/javascripts/tiny_mce/plugins/table/css/cell.css +0 -0
  66. data/vendor/assets/javascripts/tiny_mce/plugins/table/css/row.css +0 -0
  67. data/vendor/assets/javascripts/tiny_mce/plugins/table/css/table.css +0 -0
  68. data/vendor/assets/javascripts/tiny_mce/plugins/table/editor_plugin.js +0 -0
  69. data/vendor/assets/javascripts/tiny_mce/plugins/table/js/cell.js +0 -0
  70. data/vendor/assets/javascripts/tiny_mce/plugins/table/js/merge_cells.js +0 -0
  71. data/vendor/assets/javascripts/tiny_mce/plugins/table/js/row.js +0 -0
  72. data/vendor/assets/javascripts/tiny_mce/plugins/table/js/table.js +5 -1
  73. data/vendor/assets/javascripts/tiny_mce/plugins/table/langs/de_dlg.js +0 -0
  74. data/vendor/assets/javascripts/tiny_mce/plugins/table/langs/en_dlg.js +0 -0
  75. data/vendor/assets/javascripts/tiny_mce/plugins/table/merge_cells.htm +0 -0
  76. data/vendor/assets/javascripts/tiny_mce/plugins/table/row.htm +0 -0
  77. data/vendor/assets/javascripts/tiny_mce/plugins/table/table.htm +0 -0
  78. data/vendor/assets/javascripts/tiny_mce/themes/advanced/about.htm +0 -0
  79. data/vendor/assets/javascripts/tiny_mce/themes/advanced/anchor.htm +0 -0
  80. data/vendor/assets/javascripts/tiny_mce/themes/advanced/charmap.htm +0 -0
  81. data/vendor/assets/javascripts/tiny_mce/themes/advanced/color_picker.htm +0 -0
  82. data/vendor/assets/javascripts/tiny_mce/themes/advanced/editor_template.js +1 -1
  83. data/vendor/assets/javascripts/tiny_mce/themes/advanced/image.htm +0 -0
  84. data/vendor/assets/javascripts/tiny_mce/themes/advanced/img/colorpicker.jpg +0 -0
  85. data/vendor/assets/javascripts/tiny_mce/themes/advanced/img/flash.gif +0 -0
  86. data/vendor/assets/javascripts/tiny_mce/themes/advanced/img/icons.gif +0 -0
  87. data/vendor/assets/javascripts/tiny_mce/themes/advanced/img/iframe.gif +0 -0
  88. data/vendor/assets/javascripts/tiny_mce/themes/advanced/img/pagebreak.gif +0 -0
  89. data/vendor/assets/javascripts/tiny_mce/themes/advanced/img/quicktime.gif +0 -0
  90. data/vendor/assets/javascripts/tiny_mce/themes/advanced/img/realmedia.gif +0 -0
  91. data/vendor/assets/javascripts/tiny_mce/themes/advanced/img/shockwave.gif +0 -0
  92. data/vendor/assets/javascripts/tiny_mce/themes/advanced/img/trans.gif +0 -0
  93. data/vendor/assets/javascripts/tiny_mce/themes/advanced/img/video.gif +0 -0
  94. data/vendor/assets/javascripts/tiny_mce/themes/advanced/img/windowsmedia.gif +0 -0
  95. data/vendor/assets/javascripts/tiny_mce/themes/advanced/js/about.js +0 -0
  96. data/vendor/assets/javascripts/tiny_mce/themes/advanced/js/anchor.js +0 -0
  97. data/vendor/assets/javascripts/tiny_mce/themes/advanced/js/charmap.js +0 -0
  98. data/vendor/assets/javascripts/tiny_mce/themes/advanced/js/color_picker.js +0 -0
  99. data/vendor/assets/javascripts/tiny_mce/themes/advanced/js/image.js +0 -0
  100. data/vendor/assets/javascripts/tiny_mce/themes/advanced/js/link.js +0 -0
  101. data/vendor/assets/javascripts/tiny_mce/themes/advanced/js/source_editor.js +0 -0
  102. data/vendor/assets/javascripts/tiny_mce/themes/advanced/langs/de.js +0 -0
  103. data/vendor/assets/javascripts/tiny_mce/themes/advanced/langs/de_dlg.js +0 -0
  104. data/vendor/assets/javascripts/tiny_mce/themes/advanced/langs/en.js +0 -0
  105. data/vendor/assets/javascripts/tiny_mce/themes/advanced/langs/en_dlg.js +0 -0
  106. data/vendor/assets/javascripts/tiny_mce/themes/advanced/link.htm +0 -0
  107. data/vendor/assets/javascripts/tiny_mce/themes/advanced/shortcuts.htm +0 -0
  108. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/default/content.css +0 -0
  109. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/default/dialog.css +0 -0
  110. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/default/img/buttons.png +0 -0
  111. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/default/img/items.gif +0 -0
  112. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif +0 -0
  113. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/default/img/menu_check.gif +0 -0
  114. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/default/img/progress.gif +0 -0
  115. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/default/img/tabs.gif +0 -0
  116. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/default/ui.css +0 -0
  117. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/highcontrast/content.css +0 -0
  118. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/highcontrast/dialog.css +0 -0
  119. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/highcontrast/ui.css +0 -0
  120. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/content.css +0 -0
  121. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/dialog.css +0 -0
  122. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png +0 -0
  123. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png +0 -0
  124. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png +0 -0
  125. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui.css +0 -0
  126. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui_black.css +0 -0
  127. data/vendor/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css +0 -0
  128. data/vendor/assets/javascripts/tiny_mce/themes/advanced/source_editor.htm +0 -0
  129. data/vendor/assets/javascripts/tiny_mce/tiny_mce.js +1 -1
  130. data/vendor/assets/javascripts/tiny_mce/tiny_mce_popup.js +0 -0
  131. data/vendor/assets/javascripts/tiny_mce/utils/editable_selects.js +0 -0
  132. data/vendor/assets/javascripts/tiny_mce/utils/form_utils.js +0 -0
  133. data/vendor/assets/javascripts/tiny_mce/utils/mctabs.js +0 -0
  134. data/vendor/assets/javascripts/tiny_mce/utils/validate.js +0 -0
  135. metadata +39 -42
  136. data/vendor/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif +0 -0
  137. data/vendor/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif +0 -0
  138. data/vendor/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif +0 -0
  139. data/vendor/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif +0 -0
  140. data/vendor/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif +0 -0
  141. data/vendor/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif +0 -0
  142. data/vendor/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif +0 -0
  143. data/vendor/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css +0 -90
data/Gemfile CHANGED
@@ -7,7 +7,7 @@ group :test do
7
7
  gem 'sqlite3'
8
8
  gem 'factory_girl_rails', '1.4.0'
9
9
  gem "capybara"
10
- gem 'capybara-webkit'
10
+ gem 'capybara-webkit', '~>0.8.0'
11
11
  gem "launchy"
12
12
  gem "database_cleaner"
13
13
  gem "fuubar"
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  Alchemy CMS
2
2
  ===========
3
3
 
4
- [![Build Status](https://secure.travis-ci.org/magiclabs/alchemy_cms.png)](http://travis-ci.org/magiclabs/alchemy_cms)
4
+ [![Build Status](https://secure.travis-ci.org/magiclabs/alchemy_cms.png?branch=master)](http://travis-ci.org/magiclabs/alchemy_cms)
5
5
  ![Status](http://stillmaintained.com/magiclabs/alchemy_cms.png)
6
6
 
7
7
  About
@@ -10,40 +10,20 @@ About
10
10
  Features
11
11
  --------
12
12
 
13
- - Highly flexible Templating:
14
- - Content is stored in small parts not as a complete, monolithic page
15
- - The designer chooses the template structure, not the CMS!
16
- - Every Design is possible, no templating, or theming restrictions
17
- - Even Flash® Content Management is possible
18
- - Gorgious End-User centric interface:
19
- - No markup editors
20
- - Multilingual:
21
- - Create as many (complete independent) language trees as you want
22
- - URL based language switching
13
+ - Highly flexible Templating
14
+ - Gorgious End-User centric interface
15
+ - Multilingual
23
16
  - SEO
24
- - Every Part of SEO is manageable by the user
25
- - Human readable urls (multilingual)
26
- - automatic XML Sitemap generation
27
- - Access Control:
28
- - Rolebased Authentification (RBAS)
29
- - Protect pages for restricted access
17
+ - Access Control
30
18
  - Fulltext Search
31
19
  - RSS Feeds
32
20
  - Contactforms
33
21
  - Attachments and downloads
34
22
  - Powerfull image rendering
35
- - Resizing
36
- - Image Cropping via an graphical Userinterface!
37
- - Borders, Text, Rotation
38
- - and much more via Imagemagick processing (polaroid effect, etc.)
39
- - and all this gets cached!
40
- - Extendable:
41
- - Flexible Plugin DSL allows you to add custom plugins into Alchemy
23
+ - Extendable
42
24
  - Integrates in exsiting Rails Apps
43
25
  - Caching
44
- - Completely free:
45
- - BSD License
46
- - No Enterprise Licences, or Community Editions
26
+ - BSD License
47
27
  - Hostable on any Server that supports RubyOnRails and ImageMagick ([Software Requirements](https://github.com/magiclabs/alchemy_cms/wiki/Software-Requirements))
48
28
 
49
29
  Rails Version
@@ -51,14 +31,14 @@ Rails Version
51
31
 
52
32
  This branch of Alchemy runs with Rails 3.1.3.
53
33
 
54
- If you are looking for a Rails 3 compatible version check the rails-3 branch.
34
+ If you are looking for a Rails 3 compatible version check the 2.0-stable branch.
55
35
 
56
- If you are looking for a Rails 2 compatible version check the rails-2 branch.
36
+ If you are looking for a Rails 2 compatible version check the 1.6-stable branch.
57
37
 
58
38
  Ruby Version
59
39
  ------------
60
40
 
61
- Alchemy under Ruby 1.8.7, Ruby 1.9.2, Ruby 1.9.3 and REE (Ruby Enterprise Edition).
41
+ Alchemy runs under Ruby 1.8.7, Ruby 1.9.2, Ruby 1.9.3 and REE (Ruby Enterprise Edition).
62
42
 
63
43
  Installation
64
44
  ------------
@@ -93,7 +73,7 @@ Add to existing Rails project
93
73
 
94
74
  In your Gemfile:
95
75
 
96
- gem 'alchemy_cms', '~> 2.1'
76
+ gem 'alchemy_cms'
97
77
 
98
78
  Run in terminal:
99
79
 
@@ -38,7 +38,9 @@ if (typeof(Alchemy) === 'undefined') {
38
38
  $dialog.html(data);
39
39
  Alchemy.ButtonObserver('#alchemyElementWindow .button');
40
40
  Alchemy.Datepicker('#alchemyElementWindow input.date, #alchemyElementWindow input[type="date"]');
41
- callback.call();
41
+ if (callback) {
42
+ callback.call();
43
+ }
42
44
  },
43
45
  error: function(XMLHttpRequest, textStatus, errorThrown) {
44
46
  Alchemy.AjaxErrorHandler($dialog, XMLHttpRequest.status, textStatus, errorThrown);
@@ -170,7 +170,7 @@ if (typeof(Alchemy) === 'undefined') {
170
170
  Alchemy.AjaxErrorHandler($dialog, XMLHttpRequest.status, textStatus, errorThrown);
171
171
  },
172
172
  complete: function(jqXHR, textStatus) {
173
- Alchemy.enableButton('.button.disabled');
173
+ Alchemy.enableButton('.button');
174
174
  }
175
175
  });
176
176
  },
@@ -1392,10 +1392,6 @@ select#url_protocol.medium {
1392
1392
  margin: 0;
1393
1393
  }
1394
1394
 
1395
- #alchemy .ui-dialog-content .short {
1396
- width: 40px;
1397
- }
1398
-
1399
1395
  #alchemy .ui-dialog-content p a.button {
1400
1396
  float: right;
1401
1397
  }
@@ -122,6 +122,7 @@ div.button_with_label {
122
122
  float: left;
123
123
  min-width: 70px;
124
124
  line-height: 0;
125
+ cursor: pointer;
125
126
 
126
127
  &.active {
127
128
  .icon_button {
@@ -313,13 +314,15 @@ a.icon_button {
313
314
  float: none;
314
315
  display: inline-block;
315
316
  background-position: 0 -8px;
316
- vertical-align: -1px;
317
+ vertical-align: -2px;
317
318
 
318
319
  .icon {
319
- position: absolute;
320
- right: 5px;
320
+ height: 9px;
321
321
  left: auto;
322
- top: 4px;
322
+ position: absolute;
323
+ right: 1px;
324
+ top: 1px;
325
+ width: 9px;
323
326
  }
324
327
  }
325
328
 
@@ -16,7 +16,13 @@
16
16
  }
17
17
 
18
18
  .icon.delete-small {
19
- background-position: 0 -72px;
19
+ background-position: -1px -72px;
20
+ }
21
+
22
+ .icon_button.small {
23
+ .icon.delete-small {
24
+ background-position: -4px -76px;
25
+ }
20
26
  }
21
27
 
22
28
  .icon.zoom-in {
@@ -33,6 +33,10 @@ a:hover {
33
33
 
34
34
  /* Forms */
35
35
 
36
+ form {
37
+ margin: 0;
38
+ }
39
+
36
40
  fieldset {
37
41
  margin: 0;
38
42
  padding: 4px;
@@ -89,20 +93,12 @@ input.checkbox {
89
93
  /* Buttons */
90
94
 
91
95
  #insert, #cancel, input.button, .updateButton {
92
- font: 11px "Lucida Grande", Arial, sans-serif;
93
- border: 1px solid #9a9a9a;
94
- height: 21px;
95
- padding-left: 8px;
96
- padding-right: 8px;
97
- padding-bottom: 2px;
98
- margin: 0;
99
- background: #eaeaea image-url('alchemy/shading.png') repeat-x 0 -75px;
100
- -webkit-border-radius: 2px;
101
- -moz-border-radius: 2px;
102
- border-radius: 2px;
103
- cursor: pointer;
104
- color: #333;
105
- text-shadow: #f2f2f2 1px 1px 0;
96
+ @include button-styles;
97
+ height: 26px;
98
+
99
+ &:hover {
100
+ @include button-hover-styles;
101
+ }
106
102
  }
107
103
 
108
104
  /* Browse */
@@ -327,7 +323,7 @@ h3 {
327
323
  .title {
328
324
  font-size: 12px;
329
325
  font-weight: bold;
330
- color: #2B6FB6;
326
+ color: $text-color;
331
327
  }
332
328
 
333
329
  /* Dialog specific */
@@ -65,7 +65,7 @@
65
65
  .alchemy .mceTop, .alchemy .mceTop div {
66
66
  top: 0;
67
67
  width: 100%;
68
- height: 29px;
68
+ height: 31px;
69
69
  }
70
70
 
71
71
  .alchemy .mceTop .mceLeft {
@@ -75,17 +75,15 @@
75
75
  .alchemy .mceTop .mceCenter,
76
76
  a.mceMove {
77
77
  width: 100%;
78
- height: 29px;
79
- background: #c6dbe7;
80
- color: #333333;
81
- font-weight: bold;
82
- border-bottom: 2px solid #ededed;
78
+ height: 31px;
79
+ background: $light-blue;
80
+ color: $text-color;
83
81
  }
84
82
 
85
83
  .alchemy .mceTop .mceRight {
86
84
  right: 0;
87
85
  width: 0px;
88
- height: 29px;
86
+ height: 32px;
89
87
  }
90
88
 
91
89
  .alchemy .mceTop span {
@@ -197,7 +195,6 @@ a.mceMove {
197
195
  .alchemy a {
198
196
  width: 29px;
199
197
  height: 16px;
200
- top: 3px;
201
198
  }
202
199
 
203
200
  .alchemy .mceClose {
@@ -206,6 +203,7 @@ a.mceMove {
206
203
  width: 16px;
207
204
  height: 16px;
208
205
  top: 6px;
206
+
209
207
  }
210
208
 
211
209
  .alchemy .mceMin {
@@ -231,10 +229,41 @@ a.mceMove {
231
229
  top: 6px;
232
230
  }
233
231
 
232
+ .alchemy .mceClose, .alchemy .mceMin, .alchemy .mceMed, .alchemy .mceMax {
233
+ &:hover {
234
+ border: 1px solid $button-hover-border-color;
235
+ @include rounded-corner;
236
+ background-color: $button-hover-bg-color;
237
+ color: $text-color;
238
+ font-weight: normal;
239
+ }
240
+ }
241
+
242
+ .alchemy .mceClose {
243
+ &:hover {
244
+ background-position: -97px -129px;
245
+ right: 6px;
246
+ }
247
+ }
248
+
249
+ .alchemy .mceMax {
250
+ &:hover {
251
+ background-position: -33px -81px;
252
+ right: 26px;
253
+ }
254
+ }
255
+
256
+ .alchemy .mceMed {
257
+ &:hover {
258
+ background-position: -50px -81px;
259
+ right: 26px;
260
+ }
261
+ }
262
+
234
263
  .alchemy .mceMove {
235
264
  display: none;
236
265
  cursor: move;
237
- height: 26px;
266
+ height: 31px;
238
267
  width: 100%;
239
268
  }
240
269
 
@@ -340,14 +369,18 @@ a.mceMove {
340
369
  /* Alert/Confirm */
341
370
 
342
371
  .alchemy .mceButton {
343
- font-weight: bold;
372
+ @include button-styles;
344
373
  bottom: 10px;
345
374
  width: 80px;
346
- height: 31px;
347
- line-height: 31px;
375
+ height: 25px;
376
+ line-height: 25px;
348
377
  vertical-align: middle;
349
378
  text-align: center;
350
- outline: 0
379
+ outline: 0;
380
+
381
+ &:hover {
382
+ @include button-hover-styles;
383
+ }
351
384
  }
352
385
 
353
386
  .alchemy .mceMiddle .mceIcon {
@@ -359,21 +392,21 @@ a.mceMove {
359
392
 
360
393
  .alchemy .mceAlert .mceMiddle span, .alchemy .mceConfirm .mceMiddle span {
361
394
  background: transparent;
362
- left: 60px;
395
+ left: 8px;
363
396
  top: 35px;
364
- width: 320px;
397
+ width: auto;
365
398
  height: 50px;
366
- font-weight: bold;
399
+ text-align: center;
367
400
  overflow: auto;
368
401
  white-space: normal
369
402
  }
370
403
 
371
404
  .alchemy a:hover {
372
- font-weight: bold;
405
+ font-weight: normal;
373
406
  }
374
407
 
375
408
  .alchemy .mceAlert .mceMiddle, .alchemy .mceConfirm .mceMiddle {
376
- background: #D6D7D5
409
+ background: $light-gray;
377
410
  }
378
411
 
379
412
  .alchemy .mceAlert .mceOk {
@@ -42,12 +42,12 @@ module Alchemy
42
42
  end
43
43
 
44
44
  def destroy
45
- content = Content.find(params[:id])
46
- element = content.element
47
- content_name = content.name
48
- @content_dom_id = "#{content.essence_type.underscore}_#{content.id}"
45
+ @content = Content.find(params[:id])
46
+ @content_dup = @content.clone
47
+ element = @content.element
48
+ content_name = @content.name
49
49
  @notice = t("Successfully deleted content", :content => content_name)
50
- content.destroy
50
+ @content.destroy
51
51
  end
52
52
 
53
53
  end
@@ -46,7 +46,7 @@ module Alchemy
46
46
 
47
47
  # Overriding +I18n+s default +t+ helper, so we can pass it through +Alchemy::I18n+
48
48
  def t(key, *args)
49
- Alchemy::I18n.t(key, *args)
49
+ ::Alchemy::I18n.t(key, *args)
50
50
  end
51
51
 
52
52
  private
@@ -272,11 +272,6 @@ module Alchemy
272
272
  ['main_navi_entry', admin_mainnavi_active?(navigation) ? 'active' : nil].compact.join(" ")
273
273
  end
274
274
 
275
- # (internal) Checks if all options we need for the image cropper are provided
276
- def necessary_options_for_cropping_provided?(options)
277
- options[:crop].to_s == 'true' && !options[:image_size].blank?
278
- end
279
-
280
275
  # (internal) Renders translated Module Names for html title element.
281
276
  def render_alchemy_title
282
277
  if content_for?(:title)
@@ -330,6 +325,7 @@ module Alchemy
330
325
  # :overlay_options [Hash] # Overlay options. See link_to_overlay_window helper.
331
326
  # :if_permitted_to [Array] # Check permission for button. [:action, :controller]. Exactly how you defined the permission in your +authorization_rules.rb+. Defaults to controller and action from button url.
332
327
  # :skip_permission_check [Boolean] # Skip the permission check. Default false. NOT RECOMMENDED!
328
+ # :loading_indicator [Boolean] # Shows the please wait overlay while loading. Default false.
333
329
  #
334
330
  def toolbar_button(options = {})
335
331
  options.symbolize_keys!
@@ -338,7 +334,8 @@ module Alchemy
338
334
  :skip_permission_check => false,
339
335
  :active => false,
340
336
  :link_options => {},
341
- :overlay_options => {}
337
+ :overlay_options => {},
338
+ :loading_indicator => false
342
339
  }
343
340
  options = defaults.merge(options)
344
341
  button = content_tag('div', :class => 'button_with_label' + (options[:active] ? ' active' : '')) do
@@ -353,7 +350,7 @@ module Alchemy
353
350
  }
354
351
  )
355
352
  else
356
- link_to options[:url], {:class => "icon_button#{options[:remote] ? nil : ' please_wait'}", :title => options[:title]}.merge(options[:link_options]) do
353
+ link_to options[:url], {:class => "icon_button#{options[:loading_indicator] ? nil : ' please_wait'}", :title => options[:title]}.merge(options[:link_options]) do
357
354
  render_icon(options[:icon])
358
355
  end
359
356
  end
@@ -68,7 +68,7 @@ module Alchemy
68
68
  # The elements are returned as an array to be used in alchemy_selectbox form builder.
69
69
  def elements_for_select(elements)
70
70
  return [] if elements.nil?
71
- options = elements.collect{ |e| [t("element_names.#{e['name']}", :default => e['name'].capitalize), e["name"]] }
71
+ options = elements.collect{ |e| [t(e['name'], :scope => :element_names), e["name"]] }
72
72
  return options_for_select(options)
73
73
  end
74
74
 
@@ -106,7 +106,7 @@ module Alchemy
106
106
  ]
107
107
  else
108
108
  [
109
- t("alchemy.element_names.#{e['name']}", :default => e['name'].capitalize),
109
+ t(e['name'], :scope => :element_names),
110
110
  e[object_method] + (cell ? "##{cell['name']}" : "")
111
111
  ]
112
112
  end
@@ -19,7 +19,7 @@ module Alchemy
19
19
  end
20
20
 
21
21
  def urlname
22
- CGI.escape(read_attribute(:filename).split('.').first)
22
+ ::CGI.escape(read_attribute(:filename).split('.').first)
23
23
  end
24
24
 
25
25
  def extension