alchemy_cms 2.4.beta2 → 2.4.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (168) hide show
  1. data/.gitignore +2 -1
  2. data/.travis.yml +3 -1
  3. data/.yardopts +1 -1
  4. data/Gemfile +2 -1
  5. data/alchemy_cms.gemspec +18 -17
  6. data/app/assets/images/alchemy/ajax_loader.gif +0 -0
  7. data/app/assets/images/alchemy/alchemy-logo.png +0 -0
  8. data/app/assets/images/alchemy/icons.png +0 -0
  9. data/app/assets/images/alchemy/image_loader.gif +0 -0
  10. data/app/assets/images/alchemy/placeholder.png +0 -0
  11. data/app/assets/images/alchemy/shading.png +0 -0
  12. data/app/assets/images/alchemy/swfupload/browse_button.png +0 -0
  13. data/app/assets/images/alchemy/tabs.gif +0 -0
  14. data/app/assets/images/alchemy/ui-icons_666666_256x240.png +0 -0
  15. data/app/assets/images/sassy-ie-overlay.png +0 -0
  16. data/app/assets/javascripts/alchemy/alchemy.base.js +1 -3
  17. data/app/assets/javascripts/alchemy/alchemy.browser.js.coffee +28 -0
  18. data/app/assets/javascripts/alchemy/alchemy.jquery_loader.js +2 -2
  19. data/app/assets/javascripts/alchemy/alchemy.js +2 -0
  20. data/app/assets/javascripts/alchemy/alchemy.link_overlay.js.coffee +79 -47
  21. data/app/assets/javascripts/alchemy/alchemy.menubar.js +12 -4
  22. data/app/assets/javascripts/alchemy/alchemy.onload.js.coffee +1 -1
  23. data/app/assets/javascripts/alchemy/alchemy.preview.js.coffee +103 -0
  24. data/app/assets/javascripts/alchemy/alchemy.swf_upload.js +1 -1
  25. data/app/assets/javascripts/alchemy/alchemy.uploader.js +4 -6
  26. data/app/assets/javascripts/alchemy/preview.js +1 -0
  27. data/app/assets/stylesheets/alchemy/admin.css.scss +25 -0
  28. data/app/assets/stylesheets/alchemy/{archive.css.scss → archive.scss} +0 -2
  29. data/app/assets/stylesheets/alchemy/{base.css.scss → base.scss} +1 -57
  30. data/app/assets/stylesheets/alchemy/{custom.css → custom.scss} +0 -0
  31. data/app/assets/stylesheets/alchemy/{dashboard.css.scss → dashboard.scss} +0 -2
  32. data/app/assets/stylesheets/alchemy/defaults.scss +5 -0
  33. data/app/assets/stylesheets/alchemy/{elements.css.scss → elements.scss} +24 -37
  34. data/app/assets/stylesheets/alchemy/{errors.css.scss → errors.scss} +0 -2
  35. data/app/assets/stylesheets/alchemy/{flash.css.scss → flash.scss} +0 -2
  36. data/app/assets/stylesheets/alchemy/{form_elements.css.scss → form_elements.scss} +39 -12
  37. data/app/assets/stylesheets/alchemy/{frame.css.scss → frame.scss} +0 -2
  38. data/app/assets/stylesheets/alchemy/{icons.css.scss → icons.scss} +20 -2
  39. data/app/assets/stylesheets/alchemy/{jquery-ui.alchemy.css.scss → jquery-ui.scss} +6 -3
  40. data/app/assets/stylesheets/alchemy/{login.css.scss → login.scss} +3 -3
  41. data/app/assets/stylesheets/alchemy/menubar.css.scss +0 -1
  42. data/app/assets/stylesheets/alchemy/{_defaults.scss → mixins.scss} +2 -39
  43. data/app/assets/stylesheets/alchemy/{modules.css.scss → modules.scss} +4 -2
  44. data/app/assets/stylesheets/alchemy/notices.scss +51 -0
  45. data/app/assets/stylesheets/alchemy/{pagination.css.scss → pagination.scss} +0 -2
  46. data/app/assets/stylesheets/alchemy/{print.css → print.css.scss} +3 -3
  47. data/app/assets/stylesheets/alchemy/search.scss +63 -0
  48. data/app/assets/stylesheets/alchemy/{sitemap.css.scss → sitemap.scss} +1 -2
  49. data/app/assets/stylesheets/alchemy/{tables.css.scss → tables.scss} +16 -3
  50. data/app/assets/stylesheets/alchemy/tinymce_content.css.scss +3 -0
  51. data/app/assets/stylesheets/alchemy/tinymce_dialog.css.scss +3 -0
  52. data/app/assets/stylesheets/alchemy/{upload.css.scss → upload.scss} +0 -2
  53. data/app/assets/stylesheets/alchemy/variables.scss +33 -0
  54. data/app/controllers/alchemy/admin/elements_controller.rb +1 -2
  55. data/app/controllers/alchemy/admin/tags_controller.rb +64 -0
  56. data/app/controllers/alchemy/base_controller.rb +8 -23
  57. data/app/controllers/alchemy/pages_controller.rb +5 -18
  58. data/app/helpers/alchemy/admin/base_helper.rb +1 -1
  59. data/app/helpers/alchemy/admin/elements_helper.rb +1 -0
  60. data/app/helpers/alchemy/elements_block_helper.rb +162 -0
  61. data/app/helpers/alchemy/elements_helper.rb +41 -3
  62. data/app/helpers/alchemy/pages_helper.rb +2 -1
  63. data/app/models/alchemy/attachment.rb +2 -1
  64. data/app/models/alchemy/element.rb +13 -10
  65. data/app/models/alchemy/essence_link.rb +11 -0
  66. data/app/models/alchemy/essence_picture.rb +15 -4
  67. data/app/models/alchemy/page.rb +23 -25
  68. data/app/models/alchemy/picture.rb +2 -2
  69. data/app/models/alchemy/tag.rb +16 -0
  70. data/app/models/alchemy/user.rb +3 -1
  71. data/app/views/alchemy/admin/attachments/_attachment.html.erb +12 -12
  72. data/app/views/alchemy/admin/attachments/edit.html.erb +10 -4
  73. data/app/views/alchemy/admin/elements/_element.html.erb +10 -13
  74. data/app/views/alchemy/admin/elements/_element_foot.html.erb +1 -1
  75. data/app/views/alchemy/admin/essence_files/edit.html.erb +12 -76
  76. data/app/views/alchemy/admin/essence_pictures/crop.html.erb +9 -4
  77. data/app/views/alchemy/admin/layoutpages/_layoutpage.html.erb +1 -1
  78. data/app/views/alchemy/admin/layoutpages/index.html.erb +1 -1
  79. data/app/views/alchemy/admin/pages/_external_link.html.erb +9 -4
  80. data/app/views/alchemy/admin/pages/configure.html.erb +22 -12
  81. data/app/views/alchemy/admin/pages/edit.html.erb +40 -40
  82. data/app/views/alchemy/admin/partials/_autocomplete_tag_list.html.erb +9 -0
  83. data/app/views/alchemy/admin/pictures/edit.html.erb +1 -1
  84. data/app/views/alchemy/admin/pictures/edit_multiple.html.erb +11 -2
  85. data/app/views/alchemy/admin/tags/_radio_tag.html.erb +6 -0
  86. data/app/views/alchemy/admin/tags/_tag.html.erb +29 -0
  87. data/app/views/alchemy/admin/tags/edit.html.erb +41 -0
  88. data/app/views/alchemy/admin/tags/index.html.erb +46 -0
  89. data/app/views/alchemy/admin/tags/new.html.erb +16 -0
  90. data/app/views/alchemy/admin/users/_table.html.erb +18 -10
  91. data/app/views/alchemy/admin/users/_user.html.erb +2 -1
  92. data/app/views/alchemy/admin/users/index.html.erb +2 -1
  93. data/app/views/alchemy/elements/_article_view.html.erb +1 -1
  94. data/app/views/alchemy/essences/_essence_link_editor.html.erb +23 -0
  95. data/app/views/alchemy/essences/_essence_link_view.html.erb +0 -0
  96. data/app/views/alchemy/essences/_essence_picture_tools.html.erb +1 -1
  97. data/app/views/alchemy/essences/_essence_text_editor.html.erb +1 -9
  98. data/app/views/alchemy/essences/_linkable_essence_tools.html.erb +19 -0
  99. data/app/views/layouts/alchemy/admin.html.erb +1 -1
  100. data/config/alchemy/elements.yml +2 -0
  101. data/config/alchemy/modules.yml +12 -0
  102. data/config/alchemy/page_layouts.yml +2 -0
  103. data/config/authorization_rules.rb +2 -0
  104. data/config/locales/alchemy.de.yml +36 -5
  105. data/config/locales/alchemy.en.yml +3 -0
  106. data/config/routes.rb +6 -4
  107. data/db/migrate/20121026100815_alchemy_two_point_three.rb +0 -36
  108. data/db/migrate/20121113115120_create_alchemy_essence_links.rb +13 -0
  109. data/db/migrate/20121115100736_add_cached_tag_list_to_elements_pages_and_users.rb +7 -0
  110. data/db/migrate/20121116140636_add_cached_tag_list_to_alchemy_attachments.rb +5 -0
  111. data/db/migrate/20121116141016_change_alchemy_pictures_tag_list_column.rb +9 -0
  112. data/lib/alchemy/engine.rb +1 -1
  113. data/lib/alchemy/resource.rb +1 -1
  114. data/lib/alchemy/resources_helper.rb +1 -1
  115. data/lib/alchemy/upgrader.rb +17 -0
  116. data/lib/alchemy/version.rb +1 -1
  117. data/lib/alchemy_cms.rb +1 -0
  118. data/lib/rails/generators/alchemy/base.rb +41 -0
  119. data/lib/rails/generators/alchemy/deploy_script/templates/deploy.rb.tt +10 -3
  120. data/lib/rails/generators/alchemy/elements/elements_generator.rb +6 -14
  121. data/lib/rails/generators/alchemy/elements/templates/editor.html.erb +8 -6
  122. data/lib/rails/generators/alchemy/elements/templates/editor.html.haml +13 -0
  123. data/lib/rails/generators/alchemy/elements/templates/editor.html.slim +13 -0
  124. data/lib/rails/generators/alchemy/elements/templates/view.html.erb +4 -4
  125. data/lib/rails/generators/alchemy/elements/templates/view.html.haml +15 -0
  126. data/lib/rails/generators/alchemy/elements/templates/view.html.slim +15 -0
  127. data/lib/rails/generators/alchemy/essence/essence_generator.rb +1 -1
  128. data/lib/rails/generators/alchemy/essence/templates/editor.html.erb +2 -3
  129. data/lib/rails/generators/alchemy/page_layouts/page_layouts_generator.rb +4 -13
  130. data/lib/rails/generators/alchemy/page_layouts/templates/layout.html.haml +1 -0
  131. data/lib/rails/generators/alchemy/page_layouts/templates/layout.html.slim +1 -0
  132. data/spec/controllers/pages_controller_spec.rb +41 -34
  133. data/spec/dummy/app/views/layouts/application.html.erb +51 -0
  134. data/spec/dummy/db/migrate/20121026100815_alchemy_two_point_three.rb +0 -36
  135. data/spec/dummy/db/migrate/20121113115120_create_alchemy_essence_links.rb +13 -0
  136. data/spec/dummy/db/migrate/20121115100736_add_cached_tag_list_to_elements_pages_and_users.rb +7 -0
  137. data/spec/dummy/db/migrate/20121116140636_add_cached_tag_list_to_alchemy_attachments.rb +5 -0
  138. data/spec/dummy/db/migrate/20121116141016_change_alchemy_pictures_tag_list_column.rb +9 -0
  139. data/spec/dummy/db/schema.rb +24 -45
  140. data/spec/helpers/elements_block_helper_spec.rb +135 -0
  141. data/spec/helpers/elements_helper_spec.rb +43 -5
  142. data/spec/integration/pages_controller_spec.rb +22 -18
  143. data/spec/integration/translation_integration_spec.rb +0 -15
  144. data/spec/models/element_spec.rb +44 -36
  145. data/spec/models/essence_picture_spec.rb +22 -6
  146. data/spec/models/page_spec.rb +28 -0
  147. data/spec/spec_helper.rb +8 -3
  148. data/spec/support/ci/install_phantomjs +6 -0
  149. metadata +82 -40
  150. data/app/assets/images/alchemy/gui/navi-tab.png +0 -0
  151. data/app/assets/images/alchemy/gui/shading_90.png +0 -0
  152. data/app/assets/images/alchemy/jquery-sb/select_arrow.gif +0 -0
  153. data/app/assets/images/alchemy/jquery-sb/select_arrow_bg.gif +0 -0
  154. data/app/assets/images/alchemy/jquery-sb/select_arrow_bg_hover.gif +0 -0
  155. data/app/assets/javascripts/alchemy/alchemy.preview.js +0 -98
  156. data/app/assets/stylesheets/alchemy/alchemy.css +0 -21
  157. data/app/controllers/alchemy/admin/essence_audios_controller.rb +0 -12
  158. data/app/controllers/alchemy/admin/essence_flashes_controller.rb +0 -12
  159. data/app/controllers/alchemy/admin/essence_videos_controller.rb +0 -12
  160. data/app/models/alchemy/essence_audio.rb +0 -14
  161. data/app/models/alchemy/essence_flash.rb +0 -12
  162. data/app/models/alchemy/essence_video.rb +0 -20
  163. data/app/views/alchemy/essences/_essence_audio_editor.html.erb +0 -1
  164. data/app/views/alchemy/essences/_essence_audio_view.html.erb +0 -33
  165. data/app/views/alchemy/essences/_essence_flash_editor.html.erb +0 -1
  166. data/app/views/alchemy/essences/_essence_flash_view.html.erb +0 -26
  167. data/app/views/alchemy/essences/_essence_video_editor.html.erb +0 -1
  168. data/app/views/alchemy/essences/_essence_video_view.html.erb +0 -35
@@ -2,6 +2,17 @@
2
2
  module Alchemy
3
3
  class Page < ActiveRecord::Base
4
4
 
5
+ RESERVED_URLNAMES = %w(admin messages new)
6
+ DEFAULT_ATTRIBUTES_FOR_COPY = {
7
+ :do_not_autogenerate => true,
8
+ :do_not_sweep => true,
9
+ :visible => false,
10
+ :public => false,
11
+ :locked => false,
12
+ :locked_by => nil
13
+ }
14
+ SKIPPED_ATTRIBUTES_ON_COPY = %w(id updated_at created_at creator_id updater_id lft rgt depth cached_tag_list)
15
+
5
16
  attr_accessible(
6
17
  :do_not_autogenerate,
7
18
  :do_not_sweep,
@@ -23,14 +34,15 @@ module Alchemy
23
34
  :robot_index,
24
35
  :robot_follow,
25
36
  :sitemap,
37
+ :tag_list,
26
38
  :title,
27
39
  :urlname,
28
40
  :visible
29
41
  )
30
42
 
31
- RESERVED_URLNAMES = %w(admin messages new)
32
-
43
+ acts_as_taggable
33
44
  acts_as_nested_set(:dependent => :destroy)
45
+
34
46
  stampable(:stamper_class_name => 'Alchemy::User')
35
47
 
36
48
  has_many :folded_pages
@@ -177,19 +189,6 @@ module Alchemy
177
189
  end
178
190
  alias_method :next_page, :next
179
191
 
180
- def find_first_public(page)
181
- if (page.public == true)
182
- return page
183
- end
184
- page.children.each do |child|
185
- result = find_first_public(child)
186
- if (result!=nil)
187
- return result
188
- end
189
- end
190
- return nil
191
- end
192
-
193
192
  def name_entered?
194
193
  !self.name.blank?
195
194
  end
@@ -394,16 +393,11 @@ module Alchemy
394
393
  # You can pass any kind of Page#attributes as a difference to source.
395
394
  # Notice: It prevents the element auto_generator from running.
396
395
  def self.copy(source, differences = {})
397
- attributes = source.attributes.symbolize_keys.merge(differences)
398
- attributes.merge!(
399
- :do_not_autogenerate => true,
400
- :do_not_sweep => true,
401
- :visible => false,
402
- :public => false,
403
- :locked => false,
404
- :locked_by => nil
405
- )
406
- page = self.new(attributes.except(:id, :updated_at, :created_at, :creator_id, :updater_id, :lft, :rgt, :depth))
396
+ source.attributes.stringify_keys!
397
+ differences.stringify_keys!
398
+ attributes = source.attributes.merge(differences)
399
+ attributes.merge!(DEFAULT_ATTRIBUTES_FOR_COPY)
400
+ page = self.new(attributes.except(*SKIPPED_ATTRIBUTES_ON_COPY))
407
401
  if page.save
408
402
  # copy the page´s cells
409
403
  source.cells.each do |cell|
@@ -527,6 +521,10 @@ module Alchemy
527
521
  "alchemy/#{language_code}/#{urlname}"
528
522
  end
529
523
 
524
+ def taggable?
525
+ definition['taggable'] == true
526
+ end
527
+
530
528
  private
531
529
 
532
530
  def next_or_previous(direction = :next, options = {})
@@ -28,8 +28,8 @@ module Alchemy
28
28
  :image_height,
29
29
  :image_width,
30
30
  :name,
31
- :upload_hash,
32
- :tag_list
31
+ :tag_list,
32
+ :upload_hash
33
33
  )
34
34
 
35
35
  stampable(:stamper_class_name => 'Alchemy::User')
@@ -0,0 +1,16 @@
1
+ # Just holds some useful tag methods.
2
+ # The original Tag model is ActsAsTaggableOn::Tag
3
+ module Alchemy
4
+ class Tag
5
+
6
+ # Replaces tag with new tag on all models tagged with tag.
7
+ def self.replace(tag, new_tag)
8
+ tag.taggings.collect(&:taggable).each do |taggable|
9
+ taggable.tag_list.delete(tag.name)
10
+ taggable.tag_list << new_tag.name
11
+ taggable.save
12
+ end
13
+ end
14
+
15
+ end
16
+ end
@@ -7,6 +7,7 @@ module Alchemy
7
7
  c.transition_from_restful_authentication = true
8
8
  c.logged_in_timeout = Config.get(:auto_logout_time).minutes
9
9
  end
10
+ acts_as_taggable
10
11
 
11
12
  attr_accessible(
12
13
  :firstname,
@@ -17,7 +18,8 @@ module Alchemy
17
18
  :role,
18
19
  :language,
19
20
  :password,
20
- :password_confirmation
21
+ :password_confirmation,
22
+ :tag_list
21
23
  )
22
24
 
23
25
  has_many :folded_pages
@@ -3,31 +3,31 @@
3
3
  <%= render_icon attachment.icon_css_class %>
4
4
  </td>
5
5
  <td class="name">
6
- <%- if permitted_to?(:show, :attachments) -%>
6
+ <% if permitted_to?(:show, :attachments) %>
7
7
  <%= link_to(
8
8
  attachment.name,
9
9
  alchemy.admin_attachment_path(attachment),
10
10
  :target => '_blank',
11
11
  :title => t('View File')
12
12
  ) %>
13
- <%- else -%>
13
+ <% else %>
14
14
  <%= attachment.name %>
15
- <%- end -%>
15
+ <% end %>
16
16
  </td>
17
17
  <td class="file_name"><%= attachment.filename %></td>
18
18
  <td class="file_type"><%= mime_to_human(attachment.content_type) %></td>
19
19
  <td class="file_size"><%= number_to_human_size(attachment.size) %></td>
20
20
  <td class="date"><%= l(attachment.created_at, :format => :short) %></td>
21
21
  <td class="tools long">
22
- <%- permitted_to?(:download, :attachments) do -%>
22
+ <% permitted_to?(:download, :alchemy_attachments) do %>
23
23
  <%= link_to(
24
24
  "",
25
25
  alchemy.download_admin_attachment_path(attachment),
26
26
  :title => t("download_file", :filename => attachment.filename),
27
27
  :class => "icon file_download"
28
28
  ) %>
29
- <%- end -%>
30
- <%- permitted_to?(:destroy, :alchemy_admin_attachments) do -%>
29
+ <% end %>
30
+ <% permitted_to?(:destroy, :alchemy_admin_attachments) do %>
31
31
  <%= link_to_confirmation_window(
32
32
  "",
33
33
  t("confirm_to_delete_file"),
@@ -41,18 +41,18 @@
41
41
  :class => 'icon file_delete',
42
42
  :title => t('delete_file')
43
43
  }
44
- ) -%>
45
- <%- end -%>
46
- <%- permitted_to?(:edit, :alchemy_admin_attachments) do -%>
44
+ ) %>
45
+ <% end %>
46
+ <% permitted_to?(:edit, :alchemy_admin_attachments) do %>
47
47
  <%= link_to_overlay_window("",
48
48
  alchemy.edit_admin_attachment_path(attachment, :query => params[:query], :page => params[:page]),
49
49
  {
50
50
  :title => t('rename_file'),
51
- :size => '410x180'
51
+ :size => '380x220'
52
52
  },
53
53
  :class => 'icon file_edit',
54
54
  :title => t('rename_file')
55
- ) -%>
56
- <%- end -%>
55
+ ) %>
56
+ <% end %>
57
57
  </td>
58
58
  </tr>
@@ -1,12 +1,18 @@
1
1
  <%= form_for([:admin, @attachment], :url => {:action => :update, :query => params[:query], :page => params[:page]}) do |f| -%>
2
2
  <table>
3
3
  <tr>
4
- <td class="label"><%= f.label 'name', :class => "short" %></td>
5
- <td class="input"><%= f.text_field 'name', :class => 'thin_border very_long', :autofocus => true %></td>
4
+ <td class="label"><%= f.label 'name' %></td>
5
+ <td class="input"><%= f.text_field 'name', :class => 'thin_border long', :autofocus => true %></td>
6
6
  </tr>
7
7
  <tr>
8
- <td class="label"><%= f.label 'filename', :class => "short" %>*</td>
9
- <td class="input"><%= f.text_field 'filename', :class => 'thin_border very_long' %></td>
8
+ <td class="label"><%= f.label 'filename' %>*</td>
9
+ <td class="input"><%= f.text_field 'filename', :class => 'thin_border long' %></td>
10
+ </tr>
11
+ <tr>
12
+ <td class="label"><%= f.label 'tag_list' %></td>
13
+ <td class="input">
14
+ <%= render 'alchemy/admin/partials/autocomplete_tag_list', :object => @attachment, :f => f %>
15
+ </td>
10
16
  </tr>
11
17
  <tr>
12
18
  <td colspan="2" class="submit">
@@ -1,23 +1,20 @@
1
- <div class="element_editor<%= element.folded ? ' folded' : '' %> <%= defined?(draggable) && !draggable ? 'not-draggable' : 'draggable' %>" id="element_<%= element.id -%>" data-element-id="<%= element.id -%>">
1
+ <div class="element_editor<%= element.folded ? ' folded' : '' %> <%= defined?(draggable) && !draggable ? 'not-draggable' : 'draggable' %>" id="element_<%= element.id %>" data-element-id="<%= element.id %>">
2
2
  <%= render :partial => "alchemy/admin/elements/element_head", :locals => {:element => element} %>
3
- <%- if !element.folded? -%>
4
- <%= form_for(
5
- [:admin, element],
6
- :remote => true,
7
- :html => {
8
- :id => "element_#{element.id}_form"
9
- }
10
- ) do %>
3
+ <% if !element.folded? %>
4
+ <%= form_for [:admin, element], :remote => true, :html => {:id => "element_#{element.id}_form"} do |f| %>
11
5
  <div id="element_<%= element.id %>_errors" class="element_errors" style="display: none"></div>
12
6
  <div id="element_<%= element.id %>_content" class="element_content">
13
7
  <%= render_editor(element) %>
14
8
  </div>
15
- <%- if element.has_validations? -%>
9
+ <% if element.has_validations? %>
16
10
  <p class="validation_notice">
17
11
  <span class="validation_indicator">*</span> <%= t('Mandatory') %>
18
12
  </p>
19
- <%- end -%>
20
- <%= render :partial => 'alchemy/admin/elements/element_foot', :locals => {:element => element} %>
13
+ <% end %>
14
+ <% if element.taggable? %>
15
+ <%= render 'alchemy/admin/partials/autocomplete_tag_list', :f => f, :object => element %>
16
+ <% end %>
17
+ <%= render :partial => 'alchemy/admin/elements/element_foot', :locals => {:element => element, :f => f} %>
21
18
  <% end %>
22
- <%- end -%>
19
+ <% end %>
23
20
  </div>
@@ -27,7 +27,7 @@
27
27
  ) %>
28
28
  </span>
29
29
  <span class="element_public">
30
- <%= check_box_tag "public", "1", element.public?, :id => "element_#{element.id}_public" -%>
30
+ <%= f.check_box :public, :id => "element_#{element.id}_public" -%>
31
31
  <%= label_tag "element_#{element.id}_public", t("visible") -%>
32
32
  </span>
33
33
  <button type="submit" class="button">
@@ -1,5 +1,4 @@
1
- <%= form_for([:admin, @essence_file], :remote => true, :method => "put") do |f| %>
2
- <%- if @content.essence_type == "Alchemy::EssenceFile" -%>
1
+ <%= form_for([:admin, @essence_file], :remote => true) do |f| %>
3
2
  <table>
4
3
  <tr>
5
4
  <td class="label"><%= f.label "title" %></td>
@@ -7,85 +6,22 @@
7
6
  </tr>
8
7
  <tr>
9
8
  <td class="label"><%= f.label "css_class" %></td>
10
- <td class="select"><%= f.select "css_class", [[t("Layout default"), ""], [t("above"), "no_float"], [t("left"), "left"], [t("right"), "right"]], :class => 'alchemy_selectbox' %></td>
11
- </tr>
12
- <tr>
13
- <td colspan="2" class="submit">
14
- <%= f.button t("save"), :class => 'button' %>
15
- </td>
16
- </tr>
17
- </table>
18
- <%- elsif @content.essence_type == "Alchemy::EssenceFlash" -%>
19
- <table>
20
- <tr>
21
- <td class="label"><%= f.label "width" %></td>
22
- <td class="input"><%= f.text_field "width", :class => 'thin_border' %></td>
23
- </tr>
24
- <tr>
25
- <td class="label"><%= f.label "height" %></td>
26
- <td class="input"><%= f.text_field "height", :class => 'thin_border' %></td>
27
- </tr>
28
- <tr>
29
- <td class="label"><%= f.label "player_version" %></td>
30
- <td class="input"><%= f.text_field "player_version", :class => 'thin_border' %></td>
31
- </tr>
32
- <tr>
33
- <td colspan="2" class="submit">
34
- <%= f.button t("save"), :class => 'button' %>
35
- </td>
36
- </tr>
37
- </table>
38
- <%- elsif @content.essence_type == "Alchemy::EssenceVideo" -%>
39
- <table>
40
- <tr>
41
- <td class="label"><%= f.label "width" %></td>
42
- <td class="input"><%= f.text_field "width", :class => 'thin_border' %></td>
43
- </tr>
44
- <tr>
45
- <td class="label"><%= f.label "height" %></td>
46
- <td class="input"><%= f.text_field "height", :class => 'thin_border' %></td>
47
- </tr>
48
- <tr>
49
- <td class="label"><%= f.label "allow_fullscreen" %></td>
50
- <td class="checkbox"><%= f.check_box "allow_fullscreen" %></td>
51
- </tr>
52
- <tr>
53
- <td class="label"><%= f.label "auto_play" %></td>
54
- <td class="checkbox"><%= f.check_box "auto_play" %></td>
55
- </tr>
56
- <tr>
57
- <td class="label"><%= f.label "show_navigation" %></td>
58
- <td class="check_box"><%= f.check_box "show_navigation" %></td>
59
- </tr>
60
- <tr>
61
- <td colspan="2" class="submit">
62
- <%= f.button t("save"), :class => 'button' %>
9
+ <td class="select">
10
+ <%= f.select(
11
+ "css_class", [
12
+ [t("Layout default"), ""],
13
+ [t("above"), "no_float"],
14
+ [t("left"), "left"],
15
+ [t("right"), "right"]
16
+ ],
17
+ :class => 'alchemy_selectbox'
18
+ ) %>
63
19
  </td>
64
20
  </tr>
65
- </table>
66
- <%- elsif @content.essence_type == "Alchemy::EssenceAudio" -%>
67
- <table>
68
- <tr>
69
- <td class="label"><%= f.label "width" %></td>
70
- <td class="input"><%= f.text_field "width", :class => 'thin_border' %></td>
71
- </tr>
72
- <tr>
73
- <td class="label"><%= f.label "height" %></td>
74
- <td class="input"><%= f.text_field "height", :class => 'thin_border' %></td>
75
- </tr>
76
- <tr>
77
- <td class="label"><%= f.label "show_eq" %></td>
78
- <td class="checkbox"><%= f.check_box "show_eq" %></td>
79
- </tr>
80
- <tr>
81
- <td class="label"><%= f.label "show_navigation" %></td>
82
- <td class="checkbox"><%= f.check_box "show_navigation" %></td>
83
- </tr>
84
21
  <tr>
85
22
  <td colspan="2" class="submit">
86
23
  <%= f.button t("save"), :class => 'button' %>
87
24
  </td>
88
25
  </tr>
89
26
  </table>
90
- <%- end -%>
91
- <%- end -%>
27
+ <% end %>
@@ -1,11 +1,11 @@
1
- <%- if @no_image_notice -%>
1
+ <% if @no_image_notice %>
2
2
  <div class="with_padding">
3
3
  <div class="info">
4
4
  <%= render_icon('info') %>
5
5
  <%= @no_image_notice %>
6
6
  </div>
7
7
  </div>
8
- <%- else -%>
8
+ <% else %>
9
9
  <div id="overlay_toolbar">
10
10
  <%= form_for(@essence_picture, :url => alchemy.admin_essence_picture_path(@essence_picture, :options => @options), :id => 'image_cropper_form', :remote => true) do |f| %>
11
11
  <%= f.hidden_field :crop_from %>
@@ -30,7 +30,12 @@
30
30
 
31
31
  <div id="jscropper">
32
32
  <%= image_tag(
33
- alchemy.zoom_picture_path(:id => @essence_picture.picture.id, :name => @essence_picture.picture.urlname, :format => @options[:format], :sh => @essence_picture.picture.security_token),
33
+ alchemy.zoom_picture_path(
34
+ :id => @essence_picture.picture.id,
35
+ :name => @essence_picture.picture.urlname,
36
+ :format => @options[:format],
37
+ :sh => @essence_picture.picture.security_token
38
+ ),
34
39
  :id => 'imageToCrop',
35
40
  :onload => "Alchemy.ImageCropper.init(
36
41
  [#{@initial_box[:x1]}, #{@initial_box[:y1]}, #{@initial_box[:x2]}, #{@initial_box[:y2]}],
@@ -41,4 +46,4 @@
41
46
  );"
42
47
  ) %>
43
48
  </div>
44
- <%- end -%>
49
+ <% end %>
@@ -10,7 +10,7 @@
10
10
  alchemy.configure_admin_page_path(layoutpage),
11
11
  {
12
12
  :title => t('edit_page_properties'),
13
- :size => '340x150'
13
+ :size => '410x150'
14
14
  },
15
15
  :class => '',
16
16
  :title => t('edit_page_properties')
@@ -26,7 +26,7 @@
26
26
  :url => alchemy.new_admin_page_path(:parent_id => @layout_root.id, :layoutpage => true),
27
27
  :overlay_options => {
28
28
  :title => t('Add global page'),
29
- :size => '405x150',
29
+ :size => '340x150',
30
30
  :overflow => true
31
31
  },
32
32
  :title => t('Add global page'),
@@ -1,7 +1,12 @@
1
1
  <div id="overlay_tab_external_link">
2
- <h2>
3
- <%= t("enter_external_link") %>
4
- </h2>
2
+ <h2><%= t("enter_external_link") %></h2>
3
+ <%= render_message do %>
4
+ <p><%= t(:external_link_notice_1) %></p>
5
+ <p><%= t(:external_link_notice_2) %></p>
6
+ <% end %>
7
+ <div id="errors" class="errors">
8
+ <ul></ul>
9
+ </div>
5
10
  <table class="window_form">
6
11
  <tr>
7
12
  <td class="label long">
@@ -28,7 +33,7 @@
28
33
  <tr>
29
34
  <td class="submit" colspan="2">
30
35
  <%= link_to(t(:apply), '#', {
31
- :onclick => "Alchemy.LinkOverlay.createLink('external', jQuery('#external_url').val(), jQuery('#extern_link_title').val(), jQuery('#external_link_target').val()); Alchemy.LinkOverlay.close()",
36
+ :onclick => "Alchemy.LinkOverlay.createLink('external', jQuery('#external_url').val(), jQuery('#extern_link_title').val(), jQuery('#external_link_target').val());",
32
37
  :class => 'button'
33
38
  }) %>
34
39
  </td>