alchemy_cms 2.6.0.rc5 → 2.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (86) hide show
  1. data/.travis.yml +1 -1
  2. data/Gemfile +2 -1
  3. data/README.md +2 -4
  4. data/alchemy_cms.gemspec +1 -1
  5. data/app/assets/fonts/alchemy/icons.eot +0 -0
  6. data/app/assets/fonts/alchemy/icons.svg +71 -0
  7. data/app/assets/fonts/alchemy/icons.ttf +0 -0
  8. data/app/assets/fonts/alchemy/icons.woff +0 -0
  9. data/app/assets/javascripts/alchemy/alchemy.elements_window.js.coffee +6 -8
  10. data/app/assets/javascripts/alchemy/alchemy.hotkeys.js.coffee +2 -3
  11. data/app/assets/javascripts/alchemy/alchemy.image_cropper.js.coffee +3 -8
  12. data/app/assets/javascripts/alchemy/alchemy.link_overlay.js.coffee +3 -3
  13. data/app/assets/javascripts/alchemy/alchemy.preview_window.js.coffee +19 -9
  14. data/app/assets/javascripts/tiny_mce/plugins/alchemy_link/editor_plugin.js +6 -7
  15. data/app/assets/stylesheets/alchemy/admin.css.scss +0 -1
  16. data/app/assets/stylesheets/alchemy/archive.scss +55 -7
  17. data/app/assets/stylesheets/alchemy/base.scss +8 -144
  18. data/app/assets/stylesheets/alchemy/defaults.scss +1 -1
  19. data/app/assets/stylesheets/alchemy/elements.scss +20 -16
  20. data/app/assets/stylesheets/alchemy/flash.scss +1 -1
  21. data/app/assets/stylesheets/alchemy/form_elements.scss +49 -42
  22. data/app/assets/stylesheets/alchemy/icon-font.css.scss +67 -0
  23. data/app/assets/stylesheets/alchemy/icons.scss +16 -4
  24. data/app/assets/stylesheets/alchemy/jquery-ui.scss +40 -26
  25. data/app/assets/stylesheets/alchemy/menubar.css.scss +1 -1
  26. data/app/assets/stylesheets/alchemy/notices.scss +6 -1
  27. data/app/assets/stylesheets/alchemy/search.scss +3 -2
  28. data/app/assets/stylesheets/alchemy/sitemap.scss +72 -13
  29. data/app/assets/stylesheets/alchemy/tables.scss +31 -24
  30. data/app/assets/stylesheets/alchemy/upload.scss +1 -1
  31. data/app/assets/stylesheets/alchemy/variables.scss +2 -1
  32. data/app/assets/stylesheets/tiny_mce/plugins/inlinepopups/skins/{alchemy → alchemy-tinymce-dialog}/window.css.scss +70 -65
  33. data/app/controllers/alchemy/admin/base_controller.rb +7 -4
  34. data/app/controllers/alchemy/admin/pictures_controller.rb +2 -0
  35. data/app/controllers/alchemy/admin/users_controller.rb +1 -1
  36. data/app/controllers/alchemy/user_sessions_controller.rb +1 -1
  37. data/app/helpers/alchemy/admin/base_helper.rb +161 -60
  38. data/app/helpers/alchemy/admin/pages_helper.rb +4 -1
  39. data/app/helpers/alchemy/elements_block_helper.rb +1 -1
  40. data/app/helpers/alchemy/elements_helper.rb +119 -31
  41. data/app/helpers/alchemy/pages_helper.rb +29 -72
  42. data/app/models/alchemy/attachment.rb +0 -2
  43. data/app/models/alchemy/content.rb +1 -1
  44. data/app/models/alchemy/language.rb +1 -0
  45. data/app/models/alchemy/page.rb +8 -8
  46. data/app/views/alchemy/admin/attachments/_archive_overlay.html.erb +3 -1
  47. data/app/views/alchemy/admin/attachments/_overlay_file_list.html.erb +1 -1
  48. data/app/views/alchemy/admin/attachments/_tag_list.html.erb +25 -27
  49. data/app/views/alchemy/admin/attachments/index.html.erb +4 -1
  50. data/app/views/alchemy/admin/elements/_elements_select.html.erb +6 -6
  51. data/app/views/alchemy/admin/elements/list.js.erb +1 -1
  52. data/app/views/alchemy/admin/pages/_page.html.erb +1 -1
  53. data/app/views/alchemy/admin/pages/_page_for_links.html.erb +1 -1
  54. data/app/views/alchemy/admin/pages/edit.html.erb +4 -2
  55. data/app/views/alchemy/admin/pictures/_archive.html.erb +0 -1
  56. data/app/views/alchemy/admin/pictures/_filter_bar.html.erb +2 -1
  57. data/app/views/alchemy/admin/pictures/_picture.html.erb +5 -0
  58. data/app/views/alchemy/admin/pictures/index.html.erb +1 -0
  59. data/app/views/alchemy/base/500.html.erb +26 -5
  60. data/app/views/alchemy/essences/_essence_picture_tools.html.erb +1 -1
  61. data/app/views/alchemy/essences/_linkable_essence_tools.html.erb +1 -1
  62. data/app/views/alchemy/language_links/_language.html.erb +12 -0
  63. data/app/views/alchemy/language_links/_spacer.html.erb +1 -0
  64. data/config/locales/alchemy.de.yml +7 -3
  65. data/config/locales/alchemy.en.yml +8 -3
  66. data/lib/alchemy/page_layout.rb +1 -1
  67. data/lib/alchemy/tinymce.rb +1 -1
  68. data/lib/alchemy/upgrader.rb +26 -0
  69. data/lib/alchemy/version.rb +1 -1
  70. data/lib/rails/generators/alchemy/scaffold/scaffold_generator.rb +4 -1
  71. data/lib/tasks/ferret.rake +1 -0
  72. data/spec/controllers/admin/users_controller_spec.rb +5 -5
  73. data/spec/features/admin/pages_controller_spec.rb +1 -1
  74. data/spec/helpers/admin/pages_helper_spec.rb +31 -0
  75. data/spec/helpers/pages_helper_spec.rb +60 -72
  76. data/spec/models/content_spec.rb +2 -1
  77. data/spec/models/page_layout_spec.rb +29 -0
  78. data/spec/models/page_spec.rb +33 -1
  79. data/spec/support/alchemy/test_tweaks.rb +2 -6
  80. metadata +34 -12
  81. data/app/assets/fonts/alchemy-icons.eot +0 -0
  82. data/app/assets/fonts/alchemy-icons.svg +0 -54
  83. data/app/assets/fonts/alchemy-icons.ttf +0 -0
  84. data/app/assets/fonts/alchemy-icons.woff +0 -0
  85. data/app/assets/images/alchemy/placeholder.png +0 -0
  86. data/app/assets/stylesheets/alchemy/fonts.scss +0 -46
@@ -4,7 +4,7 @@ rvm:
4
4
  - 2.0.0
5
5
  branches:
6
6
  only:
7
- - master
7
+ - 2.6-stable
8
8
  script: rake
9
9
  env:
10
10
  - DB=mysql
data/Gemfile CHANGED
@@ -14,6 +14,8 @@ group :test do
14
14
  gem 'mysql2' if ENV['DB'] == 'mysql'
15
15
  gem 'pg' if ENV['DB'] == 'postgresql'
16
16
  gem 'poltergeist', '1.1.0'
17
+ gem 'faye-websocket', '0.4.7' # https://github.com/jonleighton/poltergeist/issues/320
18
+ gem 'connection_pool' # https://gist.github.com/mperham/3049152
17
19
  unless ENV['CI']
18
20
  gem 'launchy'
19
21
  end
@@ -32,5 +34,4 @@ group :development do
32
34
  gem 'quiet_assets' # Mute assets loggin
33
35
  gem 'thin' # Get rid off 'Could not determine content-length of response body' Warning. Start with 'rails s thin'
34
36
  end
35
- gem 'rspec-rails', github: 'rspec/rspec-rails', branch: '2-13-maintenance'
36
37
  end
data/README.md CHANGED
@@ -1,11 +1,9 @@
1
1
  ![Alchemy CMS](http://alchemy-cms.com/assets/alchemy_logo.png)
2
2
 
3
- [![Build Status](https://secure.travis-ci.org/magiclabs/alchemy_cms.png?branch=master)](http://travis-ci.org/magiclabs/alchemy_cms) [![Dependency Status](https://gemnasium.com/magiclabs/alchemy_cms.png)](https://gemnasium.com/magiclabs/alchemy_cms) [![Code Climate](https://codeclimate.com/github/magiclabs/alchemy_cms.png)](https://codeclimate.com/github/magiclabs/alchemy_cms) [![Coverage Status](https://coveralls.io/repos/magiclabs/alchemy_cms/badge.png?branch=master)](https://coveralls.io/r/magiclabs/alchemy_cms)
3
+ [![Build Status](https://secure.travis-ci.org/magiclabs/alchemy_cms.png?branch=2.6-stable)](http://travis-ci.org/magiclabs/alchemy_cms) [![Dependency Status](https://gemnasium.com/magiclabs/alchemy_cms.png)](https://gemnasium.com/magiclabs/alchemy_cms) [![Code Climate](https://codeclimate.com/github/magiclabs/alchemy_cms.png)](https://codeclimate.com/github/magiclabs/alchemy_cms) [![Coverage Status](https://coveralls.io/repos/magiclabs/alchemy_cms/badge.png?branch=2.6-stable)](https://coveralls.io/r/magiclabs/alchemy_cms)
4
4
 
5
5
  About
6
6
  -----
7
- **This branch is a beta development branch. For productive environments use the current rubygems version, or the [latest stable branch (2.5-stable)](https://github.com/magiclabs/alchemy_cms/tree/2.5-stable).**
8
-
9
7
  Alchemy is a powerful, userfriendly and flexible Rails 3 CMS.
10
8
 
11
9
  Read more on the [website](http://alchemy-cms.com) and in the [guidelines](http://guides.alchemy-cms.com).
@@ -68,7 +66,7 @@ Add to existing Rails project
68
66
 
69
67
  In your Gemfile:
70
68
 
71
- gem 'alchemy_cms', github: 'magiclabs/alchemy_cms', branch: 'master'
69
+ gem 'alchemy_cms', github: 'magiclabs/alchemy_cms', branch: '2.6-stable'
72
70
 
73
71
  Run in terminal:
74
72
 
@@ -56,7 +56,7 @@ POST_INSTALL
56
56
  s.add_development_dependency %q<bumpy>
57
57
  s.add_development_dependency %q<capybara>, ['~> 2.0.3']
58
58
  s.add_development_dependency %q<factory_girl_rails>
59
- #s.add_development_dependency %q<rspec-rails>, ['~> 2.13.0']
59
+ s.add_development_dependency %q<rspec-rails>, ['~> 2.13.1']
60
60
  s.add_development_dependency %q<sqlite3>
61
61
  s.add_development_dependency %q<yard>
62
62
  s.add_development_dependency %q<redcarpet>
@@ -0,0 +1,71 @@
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
3
+ <svg xmlns="http://www.w3.org/2000/svg">
4
+ <metadata>
5
+ This is a custom SVG font generated by IcoMoon.
6
+ <iconset grid="20"></iconset>
7
+ </metadata>
8
+ <defs>
9
+ <font id="Alchemy-Icons" horiz-adv-x="640" >
10
+ <font-face units-per-em="640" ascent="608" descent="-32" />
11
+ <missing-glyph horiz-adv-x="640" />
12
+ <glyph unicode="&#xe000;" d="M 512.00,544.00L 128.00,544.00 C 92.80,544.00, 64.00,515.20, 64.00,480.00l0.00-384.00 c0.00-35.20, 28.80-64.00, 64.00-64.00l 384.00,0.00 c 35.20,0.00, 64.00,28.80, 64.00,64.00L 576.00,480.00 C 576.00,515.20, 547.20,544.00, 512.00,544.00z M 480.00,256.00l-128.00,0.00 l0.00-128.00 L 288.00,128.00 l0.00,128.00 L 160.00,256.00 L 160.00,320.00 l 128.00,0.00 L 288.00,448.00 l 64.00,0.00 l0.00-128.00 l 128.00,0.00 L 480.00,256.00 z" />
13
+ <glyph unicode="&#xe001;" d="M 512.00,544.00L 128.00,544.00 C 92.80,544.00, 64.00,515.20, 64.00,480.00l0.00-384.00 c0.00-35.20, 28.80-64.00, 64.00-64.00l 384.00,0.00 c 35.20,0.00, 64.00,28.80, 64.00,64.00L 576.00,480.00 C 576.00,515.20, 547.20,544.00, 512.00,544.00z M 480.00,256.00L 160.00,256.00 L 160.00,320.00 l 320.00,0.00 L 480.00,256.00 z" />
14
+ <glyph unicode="&#xe004;" d="M 459.168,187.136L 370.912,288.00l 88.256,100.864c 15.008,15.008, 15.008,39.328,0.00,54.304c-15.008,14.976-39.328,14.976-54.304,0.00L 320.00,346.176
15
+ l-84.832,96.96c-15.008,15.008-39.328,15.008-54.304,0.00c-14.976-15.008-14.976-39.328,0.00-54.304L 269.088,288.00l-88.256-100.864
16
+ c-14.976-15.008-14.976-39.264,0.00-54.24c 15.008-15.008, 39.328-15.008, 54.304,0.00L 320.00,229.824l 84.832-96.928c 15.008-15.008, 39.328-15.008, 54.304,0.00
17
+ S 474.144,172.128, 459.168,187.136z" />
18
+ <glyph unicode="&#xe005;" d="M 486.368,320.00l-134.40,0.00 L 351.968,454.40 c0.00,17.664-14.304,19.20-32.00,19.20c-17.664,0.00-32.00-1.504-32.00-19.20L 287.968,320.00 L 153.60,320.00 c-17.696,0.00-19.20-14.336-19.20-32.00s 1.504-32.00, 19.20-32.00l 134.368,0.00
19
+ l0.00-134.40 c0.00-17.664, 14.336-19.20, 32.00-19.20c 17.696,0.00, 32.00,1.536, 32.00,19.20L 351.968,256.00 l 134.40,0.00 c 17.696,0.00, 19.232,14.336, 19.232,32.00S 504.064,320.00, 486.368,320.00z" />
20
+ <glyph unicode="&#xe006;" d="M 486.368,320.00L 153.60,320.00 c-17.696,0.00-19.20-14.336-19.20-32.00s 1.504-32.00, 19.20-32.00l 332.768,0.00 c 17.696,0.00, 19.232,14.336, 19.232,32.00S 504.064,320.00, 486.368,320.00z" />
21
+ <glyph unicode="&#xe007;" d="M 529.952,497.984c-46.144,46.176-80.80,39.264-80.80,39.264L 287.456,375.552L 102.72,190.816L 70.40,38.40l 152.416,32.32l 184.736,184.736l 161.664,161.664
22
+ C 569.216,417.12, 576.16,451.776, 529.952,497.984z M 213.728,89.056l-51.936-11.20c-5.024,9.376-11.072,18.752-22.112,29.824
23
+ c-11.04,11.04-20.448,17.056-29.824,22.08l 11.232,51.968l 15.008,15.008c0.00,0.00, 28.288-0.576, 60.192-32.48c 31.936-31.936, 32.512-60.224, 32.512-60.224
24
+ L 213.728,89.056z" />
25
+ <glyph unicode="&#xe034;" d="M 96.747,279.653L 345.147,528.00L 558.48,528.00 l0.00-213.333 l -248.40-248.373c -16.747-16.747, -43.893-16.747, -60.64,0.00l -152.693,152.72
26
+ C 80.00,235.733, 80.00,262.88, 96.747,279.653z M 438.48,354.667c 29.467,0.00 53.333,23.867 53.333,53.333s -23.867,53.333, -53.333,53.333c -29.467,0.08, -53.333-23.867, -53.333-53.333S 409.067,354.667, 438.48,354.667
27
+ z" />
28
+ <glyph unicode="&#xe008;" d="M 316.064,582.368c-162.56-2.176-292.608-135.744-290.432-298.336c 2.176-162.496, 135.744-292.576, 298.304-290.40
29
+ c 162.56,2.176, 292.608,135.744, 290.432,298.336C 612.224,454.496, 478.624,584.544, 316.064,582.368z M 348.704,484.256c 29.92,0.00, 38.752-17.344, 38.752-37.216
30
+ c0.00-24.80-19.872-47.744-53.76-47.744c-28.352,0.00-41.824,14.272-41.024,37.824C 292.672,456.992, 309.312,484.256, 348.704,484.256z M 271.968,104.00
31
+ c-20.448,0.00-35.424,12.416-21.12,67.008l 23.456,96.768c 4.064,15.52, 4.736,21.728,0.00,21.728c-6.112,0.00-32.672-10.72-48.384-21.28l-10.208,16.736
32
+ c 49.76,41.536, 106.976,65.92, 131.488,65.92c 20.448,0.00, 23.84-24.192, 13.632-61.408l-26.88-101.76c-4.736-17.984-2.688-24.192, 2.048-24.192
33
+ c 6.112,0.00, 26.24,7.424, 46.016,22.976l 11.552-15.52C 345.216,122.624, 292.448,104.00, 271.968,104.00z" />
34
+ <glyph unicode="&#xe009;" d="M 624.384,32.576L 339.328,532.768C 335.392,539.68, 328.00,543.936, 320.00,543.936c-8.00,0.00-15.36-4.256-19.328-11.168L 15.648,32.576
35
+ c-3.872-6.784-3.808-15.072, 0.16-21.792s 11.264-10.848, 19.136-10.848l 570.08,0.00 c 7.808,0.00, 15.136,4.128, 19.136,10.848
36
+ C 628.128,17.504, 628.192,25.792, 624.384,32.576z M 355.20,63.936L 284.80,63.936 l0.00,64.00 l 70.40,0.00 L 355.20,63.936 z M 355.20,175.936L 284.80,175.936 l0.00,192.00 l 70.40,0.00 L 355.20,175.936 z" />
37
+ <glyph unicode="&#xe00a;" d="M 265.44,64.00c-13.92,0.00-27.104,6.496-35.552,17.696L 115.52,232.672c-14.88,19.648-11.008,47.616, 8.64,62.496
38
+ c 19.68,14.912, 47.616,11.008, 62.496-8.64l 75.232-99.328l 189.184,303.712c 13.024,20.896, 40.544,27.296, 61.472,14.272
39
+ c 20.896-12.992, 27.296-40.544, 14.24-61.44L 303.328,85.024c-7.776-12.512-21.184-20.352-35.872-20.992C 266.784,64.00, 266.112,64.00, 265.44,64.00z" />
40
+ <glyph unicode="&#xe00b;" d="M 359.232,550.40c-142.24,0.00-257.92-113.984-261.408-255.84L 19.20,294.56 l 117.728-131.20l 117.696,131.20L 163.232,294.56 C 166.688,400.192, 253.088,484.80, 359.232,484.80
41
+ c 108.384,0.00, 196.192-88.096, 196.192-196.80s-87.808-196.80-196.192-196.80c-43.424,0.00-83.552,14.208-116.064,38.176l-44.992-48.128
42
+ C 242.56,46.40, 298.464,25.60, 359.232,25.60c 144.48,0.00, 261.60,117.472, 261.60,262.40C 620.80,432.928, 503.68,550.40, 359.232,550.40z" />
43
+ <glyph unicode="&#xf014;" d="M 182.857,345.143l0.00-205.714 q0.00-5.00 -3.214-8.214t-8.214-3.214l-22.857,0.00 q-5.00,0.00 -8.214,3.214t-3.214,8.214l0.00,205.714 q0.00,5.00 3.214,8.214t 8.214,3.214l 22.857,0.00 q 5.00,0.00 8.214-3.214t 3.214-8.214zM 274.286,345.143l0.00-205.714 q0.00-5.00 -3.214-8.214t-8.214-3.214l-22.857,0.00 q-5.00,0.00 -8.214,3.214t-3.214,8.214l0.00,205.714 q0.00,5.00 3.214,8.214t 8.214,3.214l 22.857,0.00 q 5.00,0.00 8.214-3.214t 3.214-8.214zM 365.714,345.143l0.00-205.714 q0.00-5.00 -3.214-8.214t-8.214-3.214l-22.857,0.00 q-5.00,0.00 -8.214,3.214t-3.214,8.214l0.00,205.714 q0.00,5.00 3.214,8.214t 8.214,3.214l 22.857,0.00 q 5.00,0.00 8.214-3.214t 3.214-8.214zM 411.429,86.571l0.00,338.571 l-320.00,0.00 l0.00-338.571 q0.00-7.857 2.50-14.464t 5.179-9.643t 3.75-3.036l 297.143,0.00 q 1.071,0.00 3.75,3.036t 5.179,9.643t 2.50,14.464zM 171.429,470.857l 160.00,0.00 l-17.143,41.786q-2.50,3.214 -6.071,3.929l-113.214,0.00 q-3.571-0.714 -6.071-3.929zM 502.857,459.429l0.00-22.857 q0.00-5.00 -3.214-8.214t-8.214-3.214l-34.286,0.00 l0.00-338.571 q0.00-29.643 -16.786-51.25t-40.357-21.607l-297.143,0.00 q-23.571,0.00 -40.357,20.893t-16.786,50.536l0.00,340.00 l-34.286,0.00 q-5.00,0.00 -8.214,3.214t-3.214,8.214l0.00,22.857 q0.00,5.00 3.214,8.214t 8.214,3.214l 110.357,0.00 l 25.00,59.643q 5.357,13.214 19.286,22.50t 28.214,9.286l 114.286,0.00 q 14.286,0.00 28.214-9.286t 19.286-22.50l 25.00-59.643l 110.357,0.00 q 5.00,0.00 8.214-3.214t 3.214-8.214z" horiz-adv-x="502.8571428571429" />
44
+ <glyph unicode="&#xe00e;" d="M 320.00,556.80c-148.48,0.00-268.80-120.384-268.80-268.80c0.00-148.48, 120.352-268.80, 268.80-268.80c 148.448,0.00, 268.80,120.352, 268.80,268.80C 588.80,436.448, 468.448,556.80, 320.00,556.80z
45
+ M 375.328,288.00l 97.952-97.952l-55.328-55.328L 320.00,232.672l-97.952-97.952l-55.296,55.328L 264.672,288.00l-97.92,97.92l 55.296,55.328L 320.00,343.328l 97.952,97.92
46
+ l 55.328-55.296L 375.328,288.00z" />
47
+ <glyph unicode="&#xe00f;" d="M 548.00,378.464l-65.472,180.352c-4.832,13.312-19.04,20.352-31.648,15.744L 15.776,415.744C 3.136,411.168-3.232,396.64, 1.60,383.328
48
+ l 69.024-190.144L 70.624,295.104 c0.00,45.984, 36.736,83.36, 81.952,83.36l 114.976,0.00 l 137.12,96.256l 79.36-96.256L 548.00,378.464 z M 615.616,320.736L 152.576,320.736
49
+ c-13.44,0.00-24.384-11.488-24.384-25.664l0.00-301.472 c0.00-14.144, 10.912-25.664, 24.384-25.664l 463.04,0.00 c 13.472,0.00, 24.384,11.488, 24.384,25.664L 640.00,295.104
50
+ C 640.00,309.248, 629.088,320.736, 615.616,320.736z M 580.288,32.096L 196.448,32.096 l0.00,55.008 l 59.04,137.44l 88.608-109.984l 83.104,85.184l 106.848,38.56l 46.24-103.104
51
+ L 580.288,32.096 z" />
52
+ <glyph unicode="&#xe010;" d="M 320.00,608.00L 172.80,374.40l 294.368,0.00L 320.00,608.00z M 320.032-32.00l 147.168,233.60L 172.80,201.632L 320.032-32.00z" />
53
+ <glyph unicode="&#xe011;" d="M 402.66,608.00C 271.88,608.00, 165.46,501.60, 165.46,370.74c0.00-31.32, 6.40-61.02, 17.42-88.36L0.00,99.48L 131.40-32.00l 182.96,183.04
54
+ c 27.34-11.10, 57.04-17.50, 88.28-17.50c 130.86,0.00, 237.34,106.40, 237.34,237.16C 640.00,501.60, 533.52,608.00, 402.66,608.00z M 402.66,213.46
55
+ c-86.64,0.00-157.26,70.62-157.26,157.24c0.00,86.72, 70.62,157.34, 157.26,157.34c 86.80,0.00, 157.42-70.62, 157.42-157.34
56
+ C 560.08,284.10, 489.46,213.46, 402.66,213.46z" />
57
+ <glyph unicode="&#xe01e;" d="M 491.72,59.72L 583.44-32.00L 640.00,24.56L 548.28,116.28L 640.00,208.00L 400.00,208.00L 400.00-32.00 zM0.00,368.00L 240.00,368.00L 240.00,608.00L 148.28,516.28L 57.50,607.14L 0.94,550.58L 91.72,459.72 zM0.00,24.56L 56.56-32.00L 148.28,59.72L 240.00-32.00L 240.00,208.00L0.00,208.00L 91.72,116.28 zM 400.00,368.00L 640.00,368.00L 548.28,459.72L 639.22,550.58L 582.66,607.14L 491.72,516.28L 400.00,608.00 z" />
58
+ <glyph unicode="&#xe00c;" d="M 316.096,582.368c-162.592-2.176-292.64-135.744-290.464-298.336c 2.176-162.496, 135.744-292.576, 298.336-290.40
59
+ c 162.528,2.176, 292.608,135.744, 290.40,298.336C 612.224,454.496, 478.656,584.544, 316.096,582.368z M 315.232,108.80L 313.60,108.80 c-25.024,0.736-42.688,19.20-41.984,43.872
60
+ c 0.704,24.224, 18.784,41.856, 43.008,41.856l 1.472-0.032c 25.728-0.768, 43.20-19.04, 42.432-44.416C 357.824,125.792, 340.00,108.80, 315.232,108.80z
61
+ M 420.544,317.824c-5.92-8.352-18.848-18.752-35.168-31.456l-17.984-12.416c-9.856-7.68-15.808-14.88-18.016-21.952
62
+ c-1.792-5.632-2.624-7.072-2.784-18.432l-0.032-2.912L 277.984,230.656 l 0.192,5.824c 0.832,23.872, 1.44,37.888, 11.328,49.504
63
+ c 15.52,18.208, 49.76,40.256, 51.20,41.184c 4.896,3.712, 9.024,7.904, 12.128,12.384c 7.20,9.92, 10.368,17.76, 10.368,25.408
64
+ c0.00,10.656-3.168,20.512-9.408,29.28c-6.016,8.48-17.44,12.768-33.952,12.768c-16.384,0.00-27.584-5.216-34.304-15.872
65
+ C 278.592,380.16, 275.136,368.672, 275.136,356.896l0.00-2.944 l-70.72,0.00 l 0.128,3.072c 1.824,43.328, 17.28,74.496, 45.952,92.704C 268.48,461.344, 290.88,467.20, 316.992,467.20
66
+ c 34.208,0.00, 63.136-8.32, 85.856-24.704c 23.04-16.608, 34.72-41.504, 34.72-73.952C 437.568,350.368, 431.84,333.312, 420.544,317.824z" />
67
+ <glyph unicode="&#xe01d;" d="M 548.28,116.28L 456.56,208.00L 400.00,151.44L 491.72,59.72L 400.00-32.00L 640.00-32.00L 640.00,208.00 zM 240.00,608.00L0.00,608.00L0.00,368.00L 91.72,459.72L 182.58,368.94L 239.14,425.50L 148.28,516.28 zM 240.00,151.44L 183.44,208.00L 91.72,116.28L0.00,208.00L0.00-32.00L 240.00-32.00L 148.28,59.72 zM 640.00,608.00L 400.00,608.00L 491.72,516.28L 400.86,425.50L 457.42,368.94L 548.28,459.72L 640.00,368.00 z" />
68
+ <glyph unicode="&#xf013;" d="M 365.714,288.00q0.00,37.857 -26.786,64.643t-64.643,26.786t-64.643-26.786t-26.786-64.643t 26.786-64.643t 64.643-26.786t 64.643,26.786t 26.786,64.643zM 548.571,326.929l0.00-79.286 q0.00-4.286 -2.857-8.214t-7.143-4.643l-66.071-10.00q-6.786-19.286 -13.929-32.50q 12.50-17.857 38.214-49.286q 3.571-4.286 3.571-8.929t-3.214-8.214q-9.643-13.214 -35.357-38.571t-33.571-25.357q-4.286,0.00 -9.286,3.214l-49.286,38.571q-15.714-8.214 -32.50-13.571 q-5.714-48.571 -10.357-66.429q-2.50-10.00 -12.857-10.00l-79.286,0.00 q-5.00,0.00 -8.75,3.036t-4.107,7.679l-10.00,65.714q-17.50,5.714 -32.143,13.214l-50.357-38.214q-3.571-3.214 -8.929-3.214q-5.00,0.00 -8.929,3.929q-45.00,40.714 -58.929,60.00q-2.50,3.571 -2.50,8.214q0.00,4.286 2.857,8.214q 5.357,7.50 18.214,23.75t 19.286,25.179q-9.643,17.857 -14.643,35.357l-65.357,9.643q-4.643,0.714 -7.50,4.464t-2.857,8.393l0.00,79.286 q0.00,4.286 2.857,8.214t 6.786,4.643 l 66.429,10.00q 5.00,16.429 13.929,32.857q-14.286,20.357 -38.214,49.286q-3.571,4.286 -3.571,8.571q0.00,3.571 3.214,8.214q 9.286,12.857 35.179,38.393t 33.75,25.536q 4.643,0.00 9.286-3.571l 49.286-38.214q 15.714,8.214 32.50,13.571q 5.714,48.571 10.357,66.429q 2.50,10.00 12.857,10.00l 79.286,0.00 q 5.00,0.00 8.75-3.036t 4.107-7.679l 10.00-65.714q 17.50-5.714 32.143-13.214l 50.714,38.214q 3.214,3.214 8.571,3.214q 4.643,0.00 8.929-3.571q 46.071-42.50 58.929-60.714q 2.50-2.857 2.50-7.857 q0.00-4.286 -2.857-8.214q-5.357-7.50 -18.214-23.75t-19.286-25.179q 9.286-17.857 14.643-35.00l 65.357-10.00q 4.643-0.714 7.50-4.464t 2.857-8.393z" horiz-adv-x="548.5714285714286" />
69
+ <glyph unicode="&#x20;" horiz-adv-x="320" />
70
+ <glyph class="hidden" unicode="&#xf000;" d="M0,608L 640 -32L0 -32 z" horiz-adv-x="0" />
71
+ </font></defs></svg>
@@ -6,11 +6,13 @@ Alchemy.ToolbarButton = (options) ->
6
6
  $btn = $('<div class="button_with_label" />')
7
7
  if options.buttonId
8
8
  $btn.attr(id: options.buttonId)
9
- $lnk = $("<a title='#{options.buttonTitle}' class='icon_button' href='#' />")
9
+ $lnk = $("<a title='#{options.title}' class='icon_button' href='#' />")
10
+ if options.hotkey
11
+ $lnk.attr('data-alchemy-hotkey', options.hotkey)
10
12
  $lnk.click options.onClick
11
13
  $lnk.append "<span class='icon #{options.iconClass}' />"
12
14
  $btn.append $lnk
13
- $btn.append "<br><label>#{options.buttonLabel}</label>"
15
+ $btn.append "<br><label>#{options.label}</label>"
14
16
  $btn
15
17
 
16
18
  Alchemy.ElementsWindow =
@@ -71,12 +73,7 @@ Alchemy.ElementsWindow =
71
73
  createToolbar: (buttons) ->
72
74
  $toolbar = $('<div id="overlay_toolbar"/>')
73
75
  for btn in buttons
74
- $toolbar.append Alchemy.ToolbarButton
75
- buttonTitle: btn.title
76
- buttonLabel: btn.label
77
- iconClass: btn.iconClass
78
- onClick: btn.onClick
79
- buttonId: btn.buttonId
76
+ $toolbar.append Alchemy.ToolbarButton(btn)
80
77
  $toolbar
81
78
 
82
79
  reload: ->
@@ -86,6 +83,7 @@ Alchemy.ElementsWindow =
86
83
  success: (data, textStatus, XMLHttpRequest) ->
87
84
  self.dialog.html data
88
85
  Alchemy.GUI.init "#alchemyElementWindow"
86
+ Alchemy.Hotkeys "#overlay_toolbar"
89
87
  if self.callback
90
88
  self.callback.call()
91
89
  error: (XMLHttpRequest, textStatus, errorThrown) ->
@@ -22,10 +22,9 @@ Alchemy.Hotkeys = (scope) ->
22
22
  # Simply add a data-alchemy-hotkey attribute to your link.
23
23
  # If a hotkey is triggered by user, the click event of the element gets triggerd.
24
24
  #
25
- $('[data-alchemy-hotkey]').each ->
25
+ $('[data-alchemy-hotkey]', scope).each ->
26
26
  $this = $(this)
27
- key = $this.data('alchemy-hotkey')
28
- keymage key, ->
27
+ keymage $this.data('alchemy-hotkey'), ->
29
28
  $this.click()
30
29
 
31
30
  keymage 'alt-w', ->
@@ -11,7 +11,6 @@ Alchemy.ImageCropper =
11
11
  onSelect: (coords) ->
12
12
  crop_from_field.val coords.x + "x" + coords.y
13
13
  crop_size_field.val coords.w + "x" + coords.h
14
- return
15
14
  setSelect: box
16
15
  aspectRatio: (if ratio then ratio else `undefined`)
17
16
  minSize: [size_x, size_y]
@@ -26,21 +25,17 @@ Alchemy.ImageCropper =
26
25
  Alchemy.ImageCropper.api = $.Jcrop("#imageToCrop", options)
27
26
  Alchemy.ImageCropper.initialized = true
28
27
  $(".alchemy_overlay").on 'dialogclose', Alchemy.ImageCropper.destroy
29
- return
30
28
 
31
29
  undo: ->
32
30
  Alchemy.ImageCropper.api.setSelect Alchemy.ImageCropper.box
33
- return
34
31
 
35
32
  reset: ->
36
33
  Alchemy.ImageCropper.api.setSelect Alchemy.ImageCropper.default_box
37
34
  Alchemy.ImageCropper.crop_from_field.val ""
38
35
  Alchemy.ImageCropper.crop_size_field.val ""
39
- return
40
36
 
41
37
  destroy: ->
42
- try
38
+ if Alchemy.ImageCropper.api
43
39
  Alchemy.ImageCropper.api.destroy()
44
- finally
45
- Alchemy.ImageCropper.initialized = false
46
- return
40
+ Alchemy.ImageCropper.initialized = false
41
+ true
@@ -8,15 +8,15 @@
8
8
 
9
9
  Alchemy.LinkOverlay = {
10
10
 
11
- open: (linked_element, width) ->
11
+ open: (linked_element) ->
12
12
  self = Alchemy.LinkOverlay
13
13
  $dialog = $('<div style="display:none" id="alchemyLinkOverlay"></div>')
14
14
 
15
- $dialog.html(Alchemy.getOverlaySpinner({width: width}))
15
+ $dialog.html(Alchemy.getOverlaySpinner({width: 600, height: 450}))
16
16
 
17
17
  self.current = $dialog.dialog({
18
18
  modal: true,
19
- minWidth: if parseInt(width) < 600 then 600 else parseInt(width),
19
+ minWidth: 600,
20
20
  minHeight: 450,
21
21
  title: 'Link setzen',
22
22
  show: "fade",
@@ -8,6 +8,7 @@ Alchemy.PreviewWindow =
8
8
  $iframe = $("<iframe src=\"#{url}\" id=\"alchemyPreviewWindow\" frameborder=\"0\"/>")
9
9
  $iframe.load ->
10
10
  $(".preview-refresh-spinner").hide()
11
+ $(".ui-dialog-titlebar-refresh").show()
11
12
  $iframe.css "background-color": "#ffffff"
12
13
  Alchemy.PreviewWindow.currentWindow = $iframe.dialog(
13
14
  modal: false
@@ -23,20 +24,16 @@ Alchemy.PreviewWindow =
23
24
  closeOnEscape: false
24
25
  dialogClass: 'alchemy-preview-window'
25
26
  create: ->
26
- spinner = Alchemy.Spinner.small(className: "preview-refresh-spinner")
27
- $reload = $("<button class=\"ui-dialog-titlebar-refresh ui-corner-all ui-state-default\" role=\"button\"></button>")
28
27
  $titlebar = $("#alchemyPreviewWindow").prev()
29
- $reload.append "<span class=\"ui-icon ui-icon-refresh\">reload</span>"
30
- $titlebar.append $reload
28
+ $titlebar.append Alchemy.PreviewWindow.reloadButton()
29
+ spinner = Alchemy.Spinner.small(className: "preview-refresh-spinner")
31
30
  $titlebar.append spinner.spin().el
32
- $reload.click Alchemy.reloadPreview
33
- $reload.hover ->
34
- $(this).toggleClass "ui-state-hover ui-state-default"
35
31
  close: (event, ui) ->
36
32
  Alchemy.PreviewWindow.button.enable()
37
33
  open: (event, ui) ->
38
34
  $(this).css width: "100%"
39
35
  Alchemy.PreviewWindow.button.disable()
36
+ Alchemy.Hotkeys('.alchemy-preview-window')
40
37
  ).dialogExtend
41
38
  maximize: true
42
39
  dblclick: "maximize"
@@ -48,9 +45,13 @@ Alchemy.PreviewWindow =
48
45
 
49
46
  refresh: ->
50
47
  $iframe = $("#alchemyPreviewWindow")
51
- $(".preview-refresh-spinner").show()
48
+ $spinner = $(".preview-refresh-spinner")
49
+ $refresh = $('.ui-dialog-titlebar-refresh')
50
+ $spinner.show()
51
+ $refresh.hide()
52
52
  $iframe.load ->
53
- $(".preview-refresh-spinner").hide()
53
+ $spinner.hide()
54
+ $refresh.show()
54
55
  $iframe.attr("src", $iframe.attr("src"))
55
56
  true
56
57
 
@@ -67,5 +68,14 @@ Alchemy.PreviewWindow =
67
68
  else
68
69
  Alchemy.PreviewWindow.button.disable()
69
70
 
71
+ reloadButton: ->
72
+ $reload = $('<button class="ui-dialog-titlebar-refresh ui-corner-all ui-state-default" role="button" data-alchemy-hotkey="alt-r" />')
73
+ $reload.append('<span class="ui-icon ui-icon-refresh" />')
74
+ $reload.click Alchemy.reloadPreview
75
+ $reload.hover ->
76
+ $(this).toggleClass "ui-state-hover ui-state-default"
77
+ $reload.hide()
78
+ $reload
79
+
70
80
  Alchemy.reloadPreview = ->
71
81
  Alchemy.PreviewWindow.refresh()
@@ -10,12 +10,11 @@
10
10
  onclick:function () {
11
11
  ed.focus();
12
12
  Alchemy.LinkOverlay.open({
13
- node:ed.selection.getNode(),
14
- bookmark:ed.selection.getBookmark(),
15
- selection:ed.selection,
16
- editor:ed
17
- },
18
- (ed.settings.alchemy_link_overlay_width || 408));
13
+ node:ed.selection.getNode(),
14
+ bookmark:ed.selection.getBookmark(),
15
+ selection:ed.selection,
16
+ editor:ed
17
+ });
19
18
  }
20
19
  });
21
20
  ed.onNodeChange.add(function (ed, cm, n, co) {
@@ -34,7 +33,7 @@
34
33
  author:'magic labs*',
35
34
  authorurl:'http://magiclabs.de',
36
35
  infourl:'http://alchemy-app.com',
37
- version:"0.3.2"
36
+ version:"0.4.0"
38
37
  };
39
38
  }
40
39
  });
@@ -14,7 +14,6 @@
14
14
  @import "alchemy/form_elements";
15
15
  @import "alchemy/frame";
16
16
  @import "alchemy/icons";
17
- @import "alchemy/fonts";
18
17
  @import "alchemy/login";
19
18
  @import "alchemy/modules";
20
19
  @import "alchemy/notices";
@@ -137,12 +137,6 @@ div.assign_image_list_image {
137
137
  }
138
138
  }
139
139
 
140
- #assign_image_list, #assign_file_list {
141
- position: relative;
142
- padding-right: 244px;
143
- height: 519px;
144
- }
145
-
146
140
  .picture_tool {
147
141
  width: 16px;
148
142
  height: 16px;
@@ -298,7 +292,7 @@ div#filter_bar {
298
292
  top: 8px;
299
293
  font-family: 'Alchemy Icons';
300
294
  @extend .icon-tag:before;
301
- line-height: 10px;
295
+ line-height: 8px;
302
296
  }
303
297
 
304
298
  a {
@@ -324,7 +318,13 @@ div#alchemy_window_body {
324
318
  }
325
319
  }
326
320
 
321
+ #assign_image_list, #assign_file_list {
322
+ position: relative;
323
+ height: 519px;
324
+ }
325
+
327
326
  #assign_image_list {
327
+ padding-right: 244px;
328
328
 
329
329
  #tag_list ul {
330
330
  height: 316px;
@@ -365,13 +365,23 @@ div#pictures_page_list {
365
365
 
366
366
  #overlay_file_list {
367
367
 
368
+ &.with_tag_list {
369
+ padding-right: 234px;
370
+ }
371
+
368
372
  .assign_file_file {
369
373
  display: block;
370
374
  margin-bottom: 4px;
375
+ word-break: break-all;
376
+
377
+ &:hover {
378
+ background-color: $light_yellow;
379
+ }
371
380
  }
372
381
 
373
382
  > ul {
374
383
  margin: 0;
384
+ padding: 4px 0;
375
385
 
376
386
  a {
377
387
  @extend %text-overflow;
@@ -387,3 +397,41 @@ div#pictures_page_list {
387
397
  }
388
398
  }
389
399
  }
400
+
401
+ .picture_tags {
402
+ @include box-sizing(border-box);
403
+ width: 50%;
404
+ max-height: 100%;
405
+ position: absolute;
406
+ top: 16px;
407
+ left: 0;
408
+ padding: $default-padding;
409
+ pointer-events: none;
410
+ display: none;
411
+ }
412
+
413
+ .picture_thumbnail:hover .picture_tags {
414
+ display: block;
415
+ }
416
+
417
+ .tag {
418
+ @include inline-block;
419
+ @extend .rounded-border;
420
+ padding: $default-padding 2*$default-padding $default-padding 4*$default-padding;
421
+ margin: $default-margin/2 0;
422
+ background-color: rgba($medium-gray, 0.85);
423
+ color: $text-color;
424
+ overflow: hidden;
425
+ position: relative;
426
+ pointer-events: none;
427
+ font-size: 10px;
428
+
429
+ &:before {
430
+ position: absolute;
431
+ left: $default-padding;
432
+ top: 2*$default-padding;
433
+ font-family: 'Alchemy Icons';
434
+ @extend .icon-tag:before;
435
+ line-height: 6px;
436
+ }
437
+ }
@@ -524,140 +524,6 @@ input#link_to_text {
524
524
  margin: 0;
525
525
  }
526
526
 
527
- #alchemy .ui-dialog-content ul#sitemap {
528
- margin: 0;
529
- padding: 0 8px 8px 0;
530
- }
531
-
532
- #alchemy .ui-dialog-content ul#sitemap li {
533
- margin-left: 0;
534
- padding-left: 0;
535
- }
536
-
537
- #alchemy .ui-dialog-content ul#sitemap li li {
538
- padding-left: 22px;
539
- }
540
-
541
- #alchemy .ui-dialog-content ul#sitemap ul li span.sitemap_sitename {
542
- background-color: #f9f9f9;
543
- width: 311px;
544
- margin: 6px 0 0;
545
- padding: 0 0 4px 4px;
546
- height: 14px;
547
- float: left;
548
- line-height: 18px;
549
- }
550
-
551
- #alchemy .ui-dialog-content ul#sitemap ul li ul li span.sitemap_sitename {
552
- float: left;
553
- background-color: #f9f9f9;
554
- width: 290px;
555
- margin: 6px 0 0;
556
- padding: 0 0 4px 4px;
557
- height: 14px;
558
- }
559
-
560
- #alchemy .ui-dialog-content ul#sitemap ul li ul li ul li span.sitemap_sitename {
561
- float: left;
562
- background-color: #f9f9f9;
563
- width: 269px;
564
- margin: 6px 0 0;
565
- padding: 0 0 4px 4px;
566
- height: 14px;
567
- }
568
-
569
- #alchemy .ui-dialog-content ul#sitemap ul li ul li ul li ul li span.sitemap_sitename {
570
- float: left;
571
- background-color: #f9f9f9;
572
- width: 248px;
573
- margin: 6px 0 0;
574
- padding: 0 0 4px 4px;
575
- height: 14px;
576
- }
577
-
578
- #alchemy .ui-dialog-content ul#sitemap img.site_status {
579
- float: left;
580
- border-style: none;
581
- margin-bottom: 0px;
582
- border-width: 0;
583
- padding: 0;
584
- padding-top: 6px;
585
- margin-right: 4px;
586
- }
587
-
588
- #alchemy .ui-dialog-content ul#sitemap ul li img {
589
- border-width: 0;
590
- border-style: none;
591
- float: left;
592
- }
593
-
594
- #alchemy .ui-dialog-content ul#sitemap .sitemap_row {
595
- padding: 0;
596
- margin: 0px;
597
- font-size: 12px;
598
- line-height: 22px;
599
- position: relative;
600
- height: 28px;
601
- }
602
-
603
- div.elements_from_page_selector {
604
- width: 154px;
605
- }
606
-
607
- div.elements_for_page {
608
- position: absolute;
609
- right: 32px;
610
- top: -7px;
611
- z-index: 15;
612
- background-color: white;
613
- width: 240px;
614
- height: 33px;
615
- padding: $default-padding;
616
- border: $default-border;
617
- @include box-shadow(#9ea09f 0px 0px 4px);
618
- @extend .rounded-border;
619
-
620
- .spinner {
621
- top: 17px !important;
622
- left: 50% !important;
623
- margin-left: 4px;
624
- }
625
-
626
- .alchemy_selectbox {
627
- float: left;
628
- width: 212px;
629
- }
630
- }
631
-
632
- a.close_elements_from_page_selector {
633
- position: absolute;
634
- right: 0;
635
- top: 12px;
636
- font-size: 0;
637
- width: 8px;
638
- height: 8px;
639
- background: url('icons.png') no-repeat 0 -72px;
640
- cursor: pointer;
641
- }
642
-
643
- #alchemy .ui-dialog-content ul#sitemap ul .sitemap_row a {
644
- color: black;
645
- text-decoration: none;
646
- display: block;
647
- outline: none;
648
- }
649
-
650
- #sitemap a.show_elements_to_link {
651
- float: left;
652
- width: 16px;
653
- height: 16px;
654
- position: relative;
655
- background: url('icons.png') no-repeat -512px -72px;
656
- margin: 2px;
657
- font-size: 0;
658
- text-decoration: none;
659
- }
660
-
661
527
  .bordertop_white {
662
528
  border-top: 4px solid white;
663
529
  padding-top: 8px;
@@ -666,11 +532,6 @@ a.close_elements_from_page_selector {
666
532
  float: none;
667
533
  }
668
534
 
669
- ul#sitemap li .sitemap_sitename.selected_page a {
670
- background-color: $linked-color;
671
- color: $dark-gray;
672
- }
673
-
674
535
  #alchemy .ui-dialog-content ul#sitemap ul li span.sitemap_sitename.selected_page a {
675
536
  font-weight: bold;
676
537
  padding-left: 4px;
@@ -721,11 +582,6 @@ select#url_protocol.medium {
721
582
  padding: 2*$default-padding;
722
583
  }
723
584
 
724
- .ui-dialog-titlebar .preview-refresh-spinner {
725
- float: left;
726
- margin-top: 8px;
727
- }
728
-
729
585
  #clipboard_items {
730
586
 
731
587
  ul {
@@ -782,3 +638,11 @@ div.browse {
782
638
  #alchemyPreviewWindow {
783
639
  width: 100% !important;
784
640
  }
641
+
642
+ #error_trace {
643
+ border: $default-border;
644
+ width: 80%;
645
+ padding: $default-padding;
646
+ overflow: auto;
647
+ @extend .rounded-border;
648
+ }