refinerycms-pages 0.9.9.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. data/app/controllers/admin/page_parts_controller.rb +24 -0
  2. data/app/controllers/admin/pages_controller.rb +37 -0
  3. data/app/controllers/admin/pages_dialogs_controller.rb +87 -0
  4. data/app/controllers/pages_controller.rb +31 -0
  5. data/app/helpers/pages_helper.rb +2 -0
  6. data/app/models/page.rb +274 -0
  7. data/app/models/page_part.rb +23 -0
  8. data/app/presenters/page_presenter.rb +7 -0
  9. data/app/views/admin/pages/_form.html.erb +61 -0
  10. data/app/views/admin/pages/_form_advanced_options.html.erb +79 -0
  11. data/app/views/admin/pages/_form_advanced_options_seo.html.erb +24 -0
  12. data/app/views/admin/pages/_form_fields_after_title.html.erb +1 -0
  13. data/app/views/admin/pages/_form_new_page_parts.html.erb +14 -0
  14. data/app/views/admin/pages/_form_page_parts.html.erb +47 -0
  15. data/app/views/admin/pages/_locale_picker.html.erb +11 -0
  16. data/app/views/admin/pages/_page.html.erb +35 -0
  17. data/app/views/admin/pages/_page_part_field.html.erb +5 -0
  18. data/app/views/admin/pages/_sortable_list.html.erb +5 -0
  19. data/app/views/admin/pages/edit.html.erb +1 -0
  20. data/app/views/admin/pages/index.html.erb +40 -0
  21. data/app/views/admin/pages/new.html.erb +1 -0
  22. data/app/views/admin/pages_dialogs/_page_link.html.erb +13 -0
  23. data/app/views/admin/pages_dialogs/link_to.html.erb +141 -0
  24. data/app/views/pages/home.html.erb +1 -0
  25. data/app/views/pages/show.html.erb +1 -0
  26. data/config/locales/cs.yml +84 -0
  27. data/config/locales/da.yml +84 -0
  28. data/config/locales/de.yml +84 -0
  29. data/config/locales/el.yml +84 -0
  30. data/config/locales/en.yml +84 -0
  31. data/config/locales/es.yml +83 -0
  32. data/config/locales/fr.yml +84 -0
  33. data/config/locales/it.yml +98 -0
  34. data/config/locales/lolcat.yml +83 -0
  35. data/config/locales/lt.yml +85 -0
  36. data/config/locales/lv.yml +86 -0
  37. data/config/locales/nb.yml +85 -0
  38. data/config/locales/nl.yml +81 -0
  39. data/config/locales/pl.yml +85 -0
  40. data/config/locales/pt-BR.yml +85 -0
  41. data/config/locales/rs.yml +84 -0
  42. data/config/locales/ru.yml +108 -0
  43. data/config/locales/sl.yml +83 -0
  44. data/config/locales/sv.yml +84 -0
  45. data/config/locales/vi.yml +84 -0
  46. data/config/locales/zh-CN.yml +84 -0
  47. data/config/locales/zh-TW.yml +84 -0
  48. data/config/routes.rb +21 -0
  49. data/db/migrate/20100913234708_create_refinerycms_pages_schema.rb +53 -0
  50. data/db/migrate/20101214040815_translate_page_plugin.rb +29 -0
  51. data/db/migrate/20101216194133_remove_cached_slug_from_pages.rb +9 -0
  52. data/db/seeds/pages.rb +43 -0
  53. data/features/manage_pages.feature +47 -0
  54. data/features/step_definitions/page_steps.rb +53 -0
  55. data/features/support/paths.rb +26 -0
  56. data/features/visit_pages.feature +47 -0
  57. data/lib/gemspec.rb +33 -0
  58. data/lib/generators/refinerycms_pages_generator.rb +8 -0
  59. data/lib/pages/marketable_routes.rb +10 -0
  60. data/lib/pages/tabs.rb +30 -0
  61. data/lib/refinerycms-pages.rb +45 -0
  62. data/license.md +21 -0
  63. data/readme.md +156 -0
  64. data/refinerycms-pages.gemspec +110 -0
  65. data/spec/models/page_spec.rb +144 -0
  66. metadata +133 -0
@@ -0,0 +1,23 @@
1
+ class PagePart < ActiveRecord::Base
2
+
3
+ belongs_to :page
4
+
5
+ validates :title, :presence => true
6
+ alias_attribute :content, :body
7
+
8
+ translates :body if respond_to?(:translates)
9
+
10
+ def to_param
11
+ "page_part_#{title.downcase.gsub(/\W/, '_')}"
12
+ end
13
+
14
+ before_save :normalise_text_fields
15
+
16
+ protected
17
+ def normalise_text_fields
18
+ unless body.blank? or body =~ /^\</
19
+ self.body = "<p>#{body.gsub("\r\n\r\n", "</p><p>").gsub("\r\n", "<br/>")}</p>"
20
+ end
21
+ end
22
+
23
+ end
@@ -0,0 +1,7 @@
1
+ class PagePresenter < Refinery::BasePresenter
2
+
3
+ def custom_title_type
4
+ @model.custom_title_type
5
+ end
6
+
7
+ end
@@ -0,0 +1,61 @@
1
+ <% url_opts = action_name == 'edit' ? {:url => admin_page_path(@page.id)} : {} %>
2
+ <%= form_for [:admin, @page], url_opts do |f| %>
3
+
4
+ <%= render :partial => "/shared/admin/error_messages",
5
+ :locals => {
6
+ :object => @page,
7
+ :include_object_name => true
8
+ } %>
9
+
10
+ <%= render :partial => "locale_picker",
11
+ :locals => {
12
+ :current_locale => Thread.current[:globalize_locale]
13
+ } if defined?(::Refinery::I18n) %>
14
+
15
+ <div class="field">
16
+ <%= f.label :title %>
17
+ <%= f.text_field :title, :class => "larger widest" %>
18
+ </div>
19
+
20
+ <%= render :partial => "form_fields_after_title",
21
+ :locals => {
22
+ :f => f
23
+ } %>
24
+
25
+ <div class='field'>
26
+ <%= render :partial => "form_page_parts",
27
+ :locals => {
28
+ :f => f
29
+ } %>
30
+ </div>
31
+
32
+ <%= render :partial => "form_advanced_options",
33
+ :locals => {
34
+ :f => f
35
+ } %>
36
+
37
+ <%= render :partial => "/shared/admin/form_actions",
38
+ :locals => {
39
+ :f => f,
40
+ :continue_editing => true,
41
+ :delete_title => t('delete', :scope => 'admin.pages'),
42
+ :delete_confirmation => t('message', :scope => 'shared.admin.delete', :title => @page.title)
43
+ } %>
44
+
45
+ <%= render :partial => "form_new_page_parts",
46
+ :locals => {
47
+ :f => f
48
+ } if RefinerySetting.find_or_set(:new_page_parts, false) %>
49
+ <% end %>
50
+
51
+ <% content_for :javascripts do %>
52
+ <script>
53
+ $(document).ready(function(){
54
+ page_options.init(
55
+ <%= RefinerySetting.find_or_set(:new_page_parts, false).to_s %>
56
+ , "<%= new_admin_page_part_path %>"
57
+ , "<%= admin_page_parts_path %>"
58
+ );
59
+ });
60
+ </script>
61
+ <% end %>
@@ -0,0 +1,79 @@
1
+ <div id='more_options_field'>
2
+ <p>
3
+ <%= link_to t('.advanced_options'), "#",
4
+ :id => 'toggle_advanced_options',
5
+ :title => t('.toggle_advanced_options') %>
6
+ </p>
7
+ <span id='draft_field'>
8
+ <%= f.check_box :draft %>
9
+ <%= f.label :draft, t('.save_as_draft'),
10
+ :class => "stripped" %>
11
+ </span>
12
+ </div>
13
+ <div id='more_options' style="display:none;">
14
+ <div class="hemisquare">
15
+ <h2><%= t('.page_options') %></h2>
16
+ <div class='field'>
17
+ <span class='label_with_help'>
18
+ <%= f.label :parent_id, t('.parent_page') %>
19
+ <%= refinery_help_tag t('.parent_page_help') %>
20
+ </span>
21
+ <%= f.select :parent_id, nested_set_options(Page, @page) {|i| "#{'-' * i.level} #{i.title}" },
22
+ :include_blank => true %>
23
+ </div>
24
+ <div class='field'>
25
+ <span class='label_with_help'>
26
+ <%= label_tag :custom_title, t('.custom_title') %>
27
+ <%= refinery_help_tag t('.custom_title_help') %>
28
+ </span>
29
+ <% %w(none text).each do |type| %>
30
+ <%= f.radio_button :custom_title_type, type %>
31
+ <%= label_tag "page_custom_title_type_#{type}", t(type.downcase.gsub(" ", "_"), :scope => 'admin.pages.form_advanced_options.title_types'),
32
+ :class => "stripped" %>
33
+ <% end %>
34
+ <div id='custom_title_none'></div>
35
+ <div id='custom_title_text' style='display: <%= @page.custom_title_type == 'text' ? 'block' : 'none' %>'>
36
+ <%= f.text_field :custom_title, :class => 'widest' %>
37
+ </div>
38
+ </div>
39
+ <div class='field'>
40
+ <span class='label_with_help'>
41
+ <%= f.label :skip_to_first_child?, t('.skip_to_first_child') %>
42
+ <%= refinery_help_tag t('.skip_to_first_child_help') %>
43
+ </span>
44
+ <%= f.check_box :skip_to_first_child %>
45
+ <%= f.label :skip_to_first_child, t('.skip_to_first_child_label'),
46
+ :class => "stripped" %>
47
+ </div>
48
+ <div class='field'>
49
+ <span class='label_with_help'>
50
+ <%= f.label :link_url, t('.link_url') %>
51
+ <%= refinery_help_tag t('.link_url_help') %>
52
+ </span>
53
+ <%= f.text_field :link_url, :style=> 'width:400px;' %>
54
+ <% content_for :javascripts do %>
55
+ <script>
56
+ $(document).ready(function(){
57
+ link_tester.init('<%= test_url_admin_pages_dialogs_url %>',
58
+ '<%= test_email_admin_pages_dialogs_url %>');
59
+
60
+ link_tester.validate_url_textbox("#page_link_url")
61
+ });
62
+ </script>
63
+ <% end %>
64
+ </div>
65
+ <div class='field'>
66
+ <span class='label_with_help'>
67
+ <%= f.label :show_in_menu, t('.show_in_menu_title'),
68
+ :id => 'page_show_in_menu_heading' %>
69
+ <%= refinery_help_tag t('.show_in_menu_help') %>
70
+ </span>
71
+ <%= f.check_box :show_in_menu %>
72
+ <%= f.label :show_in_menu, t('.show_in_menu_description'),
73
+ :class => "stripped" %>
74
+ </div>
75
+ </div>
76
+
77
+ <%= render :partial => "form_advanced_options_seo",
78
+ :locals => {:f => f} %>
79
+ </div>
@@ -0,0 +1,24 @@
1
+ <div class="hemisquare right_side">
2
+ <h2><%= t('.seo') %></h2>
3
+ <div class='field'>
4
+ <span class='label_with_help'>
5
+ <%= f.label :browser_title, t('.seo_override_title') %>
6
+ <%= refinery_help_tag t('.seo_override_title_help')%>
7
+ </span>
8
+ <%= f.text_field :browser_title, :class => 'widest' %>
9
+ </div>
10
+ <div class='field'>
11
+ <span class='label_with_help'>
12
+ <%= f.label :meta_keywords, t('.meta_keywords_title') %>
13
+ <%= refinery_help_tag t('.meta_keywords_help') %>
14
+ </span>
15
+ <%= f.text_field :meta_keywords, :class => 'widest' %>
16
+ </div>
17
+ <div class='field'>
18
+ <span class='label_with_help'>
19
+ <%= f.label :meta_description, t('.meta_description_title') %>
20
+ <%= refinery_help_tag t('.meta_description_help') %>
21
+ </span>
22
+ <%= f.text_area :meta_description, :class => 'widest', :rows => 7 %>
23
+ </div>
24
+ </div>
@@ -0,0 +1 @@
1
+ <%# Intentionally empty, useful override point to add extra fields. %>
@@ -0,0 +1,14 @@
1
+ <div id='new_page_part_dialog' style='display: none'>
2
+ <div class='field'>
3
+ <label for='new_page_part_title'><%= t('.title') %></label>
4
+ <input id='new_page_part_title' value='' class='larger widest' />
5
+ <input id='new_page_part_index' type='hidden' value='<%= @page.parts.size %>' />
6
+ </div>
7
+ <%= render :partial => "/shared/admin/form_actions", :locals => {
8
+ :f => f,
9
+ :continue_editing => false,
10
+ :submit_button_id => "new_page_part_save",
11
+ :cancel_button_id => "new_page_part_cancel",
12
+ :hide_delete => true
13
+ } %>
14
+ </div>
@@ -0,0 +1,47 @@
1
+ <% if RefinerySetting.find_or_set(:new_page_parts, false) %>
2
+ <ul id="page_parts_controls">
3
+ <li>
4
+ <%= link_to refinery_icon_tag('add.png'), '#',
5
+ :id => 'add_page_part',
6
+ :title => t('.create_content_section') %>
7
+ </li>
8
+ <li>
9
+ <%= link_to refinery_icon_tag('delete.png'), '#',
10
+ :title => t('.delete_content_section'),
11
+ :class => 'delete_page_part',
12
+ :name => t('.delete_content_section'),
13
+ :id => 'delete_page_part' %>
14
+ </li>
15
+ </ul>
16
+ <% end %>
17
+ <div id='page-tabs' class='clearfix ui-tabs ui-widget ui-widget-content ui-corner-all'>
18
+ <ul id='page_parts'>
19
+ <% @page.parts.each_with_index do |part, part_index| %>
20
+ <li class='ui-state-default<%= ' ui-state-active' if part_index == 0 %>'>
21
+ <%= link_to part.title, "##{@page.persisted? ? part.to_param : "page_part_new_#{part_index}"}" %>
22
+ </li>
23
+ <% end %>
24
+ <% Refinery::Pages.tabs.each_with_index do |tab, tab_index| %>
25
+ <li class='ui-state-default' id="custom_<%= tab.name %>_tab">
26
+ <%= link_to tab.name.titleize, "#custom_tab_#{tab_index}" %>
27
+ </li>
28
+ <% end %>
29
+ </ul>
30
+
31
+ <div id='page_part_editors'>
32
+ <% part_index = -1 %>
33
+ <%= f.fields_for :parts do |p| %>
34
+ <%= render :partial => 'page_part_field',
35
+ :locals => {
36
+ :part => p.object,
37
+ :part_index => (part_index += 1),
38
+ :new_part => !@page.persisted?
39
+ } -%>
40
+ <% end %>
41
+ <% Refinery::Pages.tabs.each_with_index do |tab, tab_index| %>
42
+ <div class='page_part' id='<%= "custom_tab_#{tab_index}" %>'>
43
+ <%= render :partial => tab.partial, :locals => {:f => f} %>
44
+ </div>
45
+ <% end %>
46
+ </div>
47
+ </div>
@@ -0,0 +1,11 @@
1
+ <input type='hidden' name='switch_locale' id='switch_locale' value='<%= local_assigns[:current_locale] %>' />
2
+ <% if (locales ||= ::Refinery::I18n.frontend_locales).present? and locales.many? %>
3
+ <ul id='switch_locale_picker' class='clearfix'>
4
+ <% locales.each do |locale| %>
5
+ <li<%= " class='selected'" if locale.to_s == local_assigns[:current_locale].to_s %>>
6
+ <%= link_to refinery_icon_tag("flags/#{locale}.png", :size => '48x33'),
7
+ url_for(:switch_locale => locale) %>
8
+ </li>
9
+ <% end %>
10
+ </ul>
11
+ <% end %>
@@ -0,0 +1,35 @@
1
+ <li class='clearfix record' id="<%= dom_id(page) -%>">
2
+ <div class='clearfix'>
3
+ <span class='title'>
4
+ <%= page.title_with_meta.html_safe %>
5
+ <% if defined?(::Refinery::I18n) and ::Refinery::I18n.frontend_locales.many? and
6
+ (locales = page.translations.collect{|t| t.locale}).present? %>
7
+ <span class='preview'>
8
+ <% locales.each do |locale| %>
9
+ <%= link_to refinery_icon_tag("flags/#{locale}.png", :size => '16x11'),
10
+ edit_admin_page_url(page, :switch_locale => locale),
11
+ :class => 'locale' %>
12
+ <% end %>
13
+ </span>
14
+ <% end %>
15
+ </span>
16
+
17
+ <span class='actions'>
18
+ <%= link_to refinery_icon_tag('application_go.png'), page.url,
19
+ :target => "_blank",
20
+ :title => t('.view_live_html') %>
21
+ <%= link_to refinery_icon_tag('application_edit.png'), edit_admin_page_url(page),
22
+ :title => t('edit', :scope => 'admin.pages') %>
23
+ <%= link_to refinery_icon_tag('delete.png'), admin_page_url(page),
24
+ :class => "cancel confirm-delete",
25
+ :title => t('delete', :scope => 'admin.pages'),
26
+ :confirm => t('message', :scope => 'shared.admin.delete', :title => page.title_with_meta.gsub(/\ ?<em>.*<\/em>/, "")),
27
+ :method => :delete if page.deletable? %>
28
+ </span>
29
+ </div>
30
+ <ul class='nested'>
31
+ <% if (children = page.children).any? -%>
32
+ <%= render :partial => 'page', :collection => children %>
33
+ <% end -%>
34
+ </ul>
35
+ </li>
@@ -0,0 +1,5 @@
1
+ <div class='page_part' id='<%= new_part ? "page_part_new_#{part_index}" : part.to_param %>'>
2
+ <%= hidden_field_tag "page[parts_attributes][#{part_index}][title]", part.title if new_part %>
3
+ <%= text_area_tag "page[parts_attributes][#{part_index}][body]", part.body, :rows => 20, :class => 'wymeditor widest' %>
4
+ <%= hidden_field_tag "page[parts_attributes][#{part_index}][position]", part_index if new_part %>
5
+ </div>
@@ -0,0 +1,5 @@
1
+ <ul id='sortable_list'>
2
+ <%= render :partial => "page", :collection => @pages %>
3
+ </ul>
4
+ <%= render :partial => "/shared/admin/sortable_list",
5
+ :locals => {:continue_reordering => !!local_assigns[:continue_reordering]} %>
@@ -0,0 +1 @@
1
+ <%= render :partial => "form" %>
@@ -0,0 +1,40 @@
1
+ <div id='records' class='tree'>
2
+ <% if searching? %>
3
+ <h2><%= t('results_for', :scope => 'shared.admin.search', :query => params[:search]) %></h2>
4
+ <% end %>
5
+ <% if @pages.any? %>
6
+ <%= render :partial => 'sortable_list' %>
7
+ <% else %>
8
+ <p>
9
+ <% unless searching? %>
10
+ <strong><%=t('.no_pages_yet')%></strong>
11
+ <% else %>
12
+ <%= t('no_results', :scope => 'shared.admin.search') %>
13
+ <% end %>
14
+ </p>
15
+ <% end %>
16
+ </div>
17
+ <div id='actions'>
18
+ <ul>
19
+ <li>
20
+ <%= render :partial => "/shared/admin/search", :locals => {:url => admin_pages_url} %>
21
+ </li>
22
+ <li>
23
+ <%= link_to t('.create_new_page'), new_admin_page_url, :class => "add_icon" %>
24
+ </li>
25
+ <% if @pages.many? and !searching? %>
26
+ <li>
27
+ <%= link_to t('.reorder_pages'), admin_pages_url,
28
+ :id => "reorder_action",
29
+ :class => "reorder_icon" %>
30
+
31
+ <%= link_to t('.reorder_pages_done'), admin_pages_url,
32
+ :id => "reorder_action_done",
33
+ :style => "display: none;",
34
+ :class => "reorder_icon" %>
35
+ </li>
36
+ <% end %>
37
+ </ul>
38
+ </div>
39
+ <%= render :partial => "/shared/admin/make_sortable",
40
+ :locals => {:tree => true} if @pages.many? -%>
@@ -0,0 +1 @@
1
+ <%= render :partial => "form" %>
@@ -0,0 +1,13 @@
1
+ <% linked = (url_for(page_link.url) == params[:current_link]) if params[:current_link].present? -%>
2
+ <% link_args = defined?(link_to_arguments) ? link_to_arguments : {} %>
3
+ <li class='clearfix<%= " child#{child}" if child %><%= " linked" if linked%>' id="<%= dom_id(page_link) -%>">
4
+ <%= link_to page_link.title_with_meta.html_safe, page_link.url,
5
+ { :title => t('.link_to_this_page'),
6
+ :rel => page_link.title,
7
+ :class => 'page_link' }.merge(link_args) %>
8
+ </li>
9
+ <%= render :partial => 'page_link', :collection => page_link.children,
10
+ :locals => {
11
+ :child => (child ||= 0) + 1,
12
+ :link_to_arguments => link_args
13
+ } if page_link.children.any? -%>
@@ -0,0 +1,141 @@
1
+ <div class='clearfix dialog_link_to'>
2
+ <div id='dialog_menu_left'>
3
+ <span id='your_page_radio' class='radio<%= " selected_radio" if @page_area_selected %>'>
4
+ <input type='radio' name='link_to' value='your_page' id='link_to_your_page' <%= "checked='true'" if @page_area_selected %> />
5
+ <label for='link_to_your_page' class='stripped'><%= t('.your_page.tab_name') %></label>
6
+ </span>
7
+ <span id='web_address_radio' class='radio<%= " selected_radio" if @web_address_area_selected %>'>
8
+ <input type='radio' name='link_to' value='web_address' id='link_to_web_address' <%= "checked='true'" if @web_address_area_selected %> />
9
+ <label for='link_to_web_address' class='stripped'><%= t('tab_name', :scope => 'admin.pages_dialogs.link_to.web_address') %></label>
10
+ </span>
11
+
12
+ <span id='email_address_radio' class='radio<%= " selected_radio" if @email_address_area_selected %>'>
13
+ <input type='radio' name='link_to' value='email_address' id='link_to_email_address' <%= "checked='true'" if @email_address_area_selected %> />
14
+ <label for='link_to_email_address' class='stripped'><%= t('tab_name', :scope => 'admin.pages_dialogs.link_to.email_address') %></label>
15
+ </span>
16
+ <% if ::Refinery::Plugins.registered.names.include?("refinery_files") %>
17
+ <span id="resource_file_radio" class="radio<%= " selected_radio" if @resource_area_selected %>">
18
+ <input type="radio" name="link_to" value="resource_file" id="link_to_resource_file" <%= "checked='true'" if @resource_area_selected %> />
19
+ <label for="link_to_resource_file" class="stripped"><%= t('tab_name', :scope => 'admin.pages_dialogs.link_to.your_resource') %></label>
20
+ </span>
21
+ <% end %>
22
+ </div>
23
+
24
+ <div id='dialog_main'>
25
+ <div id='your_page_area' class='dialog_area' <%= "style='display: none'" unless @page_area_selected %>>
26
+ <input type='hidden' name='selected_image' id='selected_image' />
27
+ <div id='your_page_content' class='clearfix'>
28
+ <div id='pages_list'>
29
+ <ul class="link_list">
30
+ <%= render :partial => "page_link", :collection => @pages,
31
+ :locals => {
32
+ :child => 0,
33
+ :link_to_arguments => {}
34
+ } %>
35
+ </ul>
36
+ <%= will_paginate @pages,
37
+ :param_name => :page,
38
+ :renderer => Refinery::LinkRenderer,
39
+ :id => 'pages_paginate' %>
40
+ </div>
41
+ </div>
42
+ </div>
43
+ <div id='web_address_area' <%= "style='display: none'" unless @web_address_area_selected %> class='dialog_area'>
44
+ <div id='web_address_content'>
45
+ <label for='web_address_text'><%= t('location', :scope => 'admin.pages_dialogs.link_to.web_address') %></label>
46
+ <%= text_field :web_address, :text, :value => @web_address_text, :style => "width: 70%" %>
47
+
48
+ <label><%= t('new_window', :scope => 'admin.pages_dialogs.link_to.web_address') %></label>
49
+ <input type='checkbox' name='web_address_target_blank' id='web_address_target_blank' <%= "checked='checked'" if @web_address_target_blank %> />
50
+ <label for='web_address_target_blank' class='stripped'><%= t('new_window_label', :scope => 'admin.pages_dialogs.link_to.web_address') %></label>
51
+ <p>
52
+ <strong><%= t('not_sure', :scope => 'admin.pages_dialogs.link_to.web_address') %></strong>
53
+ </p>
54
+ <ol>
55
+ <li><%= t('step1', :scope => 'admin.pages_dialogs.link_to.web_address') %></li>
56
+ <li><%= t('step2', :scope => 'admin.pages_dialogs.link_to.web_address') %></li>
57
+ </ol>
58
+ </div>
59
+ </div>
60
+ <div id='email_address_area' <%= "style='display: none'" unless @email_address_area_selected %> class='dialog_area'>
61
+ <div id='email_address_content'>
62
+ <div class='field'>
63
+ <label for='email_address_text'><%= t('tab_name', :scope => 'admin.pages_dialogs.link_to.email_address') %></label>
64
+ <%= text_field :email_address, :text, :value => @email_address_text, :style => "width: 70%" %>
65
+ <img id='email_address_test_loader' src='/images/refinery/ajax-loader.gif' alt='Testing...' style='display: none;'/>
66
+ <span id='email_address_test_result'></span>
67
+ </div>
68
+
69
+ <div class='field'>
70
+ <label for='email_default_subject_text'><%= t('subject_line_optional', :scope => 'admin.pages_dialogs.link_to.email_address') %></label>
71
+ <%= text_field :email_default_subject, :text, :value => @email_default_subject_text, :style => "width: 70%" %>
72
+ </div>
73
+
74
+ <div class='field'>
75
+ <label for='email_default_body_text'><%= t('body_optional', :scope => 'admin.pages_dialogs.link_to.email_address') %></label>
76
+ <%= text_area :email_default_body, :text, :value => @email_default_body_text, :style => "width: 70%", :rows => '' %>
77
+ </div>
78
+
79
+ <p>
80
+ <strong><%= t('not_sure', :scope => 'admin.pages_dialogs.link_to.email_address') %></strong>
81
+ </p>
82
+ <ol style='margin-top: 3px'>
83
+ <li>
84
+ <%= t('step1_html', :scope => 'admin.pages_dialogs.link_to.email_address') %>
85
+ </li>
86
+ <li>
87
+ <%= t('step2_html', :scope => 'admin.pages_dialogs.link_to.email_address') %>
88
+ </li>
89
+ <li>
90
+ <%= t('step3_html', :scope => 'admin.pages_dialogs.link_to.email_address') %>
91
+ </li>
92
+ </ol>
93
+ </div>
94
+ </div>
95
+ <% if ::Refinery::Plugins.registered.names.include?("refinery_files") %>
96
+ <div id="resource_file_area"<%= " style='display:none'" unless @resource_area_selected %> class="dialog_area">
97
+ <div id='pages_list'>
98
+ <ul class="link_list">
99
+ <% @resources.each do |resource| -%>
100
+ <% resource_linked = (resource.url == params[:current_link]) unless params[:current_link].blank? %>
101
+ <li<%= " class='linked'" if resource_linked %>>
102
+ <%= link_to "#{resource.title}.#{resource.ext}", resource.url,
103
+ :title => t('link_to_this_resource', :scope => 'admin.pages_dialogs.link_to.your_resource'),
104
+ :rel => resource.title,
105
+ :class => "page_link #{resource.ext}" %>
106
+ </li>
107
+ <% end %>
108
+ </ul>
109
+ <%= will_paginate @resources,
110
+ :param_name => :resource_page,
111
+ :renderer => Refinery::LinkRenderer,
112
+ :url => {:paginating => "resource_file"},
113
+ :id => 'resouces_paginate' %>
114
+ </div>
115
+ </div>
116
+ <% end %>
117
+ </div>
118
+ <%= render :partial => "/shared/admin/form_actions",
119
+ :locals => {
120
+ :f => nil,
121
+ :cancel_url => '',
122
+ :submit_button_text => t('.insert'),
123
+ :hide_cancel => false,
124
+ :cancel_title => nil,
125
+ :hide_delete => true
126
+ } %>
127
+ </div>
128
+
129
+ <% content_for :javascripts do %>
130
+ <script>
131
+ $(document).ready(function(){
132
+ link_tester.init('<%= test_url_admin_pages_dialogs_url %>',
133
+ '<%= test_email_admin_pages_dialogs_url %>');
134
+ link_dialog.init();
135
+
136
+ $('.link_list a').click(function(e){
137
+ e.preventDefault();
138
+ });
139
+ });
140
+ </script>
141
+ <% end %>