refinerycms-pages 0.9.9.1
Sign up to get free protection for your applications and to get access to all the features.
- data/app/controllers/admin/page_parts_controller.rb +24 -0
- data/app/controllers/admin/pages_controller.rb +37 -0
- data/app/controllers/admin/pages_dialogs_controller.rb +87 -0
- data/app/controllers/pages_controller.rb +31 -0
- data/app/helpers/pages_helper.rb +2 -0
- data/app/models/page.rb +274 -0
- data/app/models/page_part.rb +23 -0
- data/app/presenters/page_presenter.rb +7 -0
- data/app/views/admin/pages/_form.html.erb +61 -0
- data/app/views/admin/pages/_form_advanced_options.html.erb +79 -0
- data/app/views/admin/pages/_form_advanced_options_seo.html.erb +24 -0
- data/app/views/admin/pages/_form_fields_after_title.html.erb +1 -0
- data/app/views/admin/pages/_form_new_page_parts.html.erb +14 -0
- data/app/views/admin/pages/_form_page_parts.html.erb +47 -0
- data/app/views/admin/pages/_locale_picker.html.erb +11 -0
- data/app/views/admin/pages/_page.html.erb +35 -0
- data/app/views/admin/pages/_page_part_field.html.erb +5 -0
- data/app/views/admin/pages/_sortable_list.html.erb +5 -0
- data/app/views/admin/pages/edit.html.erb +1 -0
- data/app/views/admin/pages/index.html.erb +40 -0
- data/app/views/admin/pages/new.html.erb +1 -0
- data/app/views/admin/pages_dialogs/_page_link.html.erb +13 -0
- data/app/views/admin/pages_dialogs/link_to.html.erb +141 -0
- data/app/views/pages/home.html.erb +1 -0
- data/app/views/pages/show.html.erb +1 -0
- data/config/locales/cs.yml +84 -0
- data/config/locales/da.yml +84 -0
- data/config/locales/de.yml +84 -0
- data/config/locales/el.yml +84 -0
- data/config/locales/en.yml +84 -0
- data/config/locales/es.yml +83 -0
- data/config/locales/fr.yml +84 -0
- data/config/locales/it.yml +98 -0
- data/config/locales/lolcat.yml +83 -0
- data/config/locales/lt.yml +85 -0
- data/config/locales/lv.yml +86 -0
- data/config/locales/nb.yml +85 -0
- data/config/locales/nl.yml +81 -0
- data/config/locales/pl.yml +85 -0
- data/config/locales/pt-BR.yml +85 -0
- data/config/locales/rs.yml +84 -0
- data/config/locales/ru.yml +108 -0
- data/config/locales/sl.yml +83 -0
- data/config/locales/sv.yml +84 -0
- data/config/locales/vi.yml +84 -0
- data/config/locales/zh-CN.yml +84 -0
- data/config/locales/zh-TW.yml +84 -0
- data/config/routes.rb +21 -0
- data/db/migrate/20100913234708_create_refinerycms_pages_schema.rb +53 -0
- data/db/migrate/20101214040815_translate_page_plugin.rb +29 -0
- data/db/migrate/20101216194133_remove_cached_slug_from_pages.rb +9 -0
- data/db/seeds/pages.rb +43 -0
- data/features/manage_pages.feature +47 -0
- data/features/step_definitions/page_steps.rb +53 -0
- data/features/support/paths.rb +26 -0
- data/features/visit_pages.feature +47 -0
- data/lib/gemspec.rb +33 -0
- data/lib/generators/refinerycms_pages_generator.rb +8 -0
- data/lib/pages/marketable_routes.rb +10 -0
- data/lib/pages/tabs.rb +30 -0
- data/lib/refinerycms-pages.rb +45 -0
- data/license.md +21 -0
- data/readme.md +156 -0
- data/refinerycms-pages.gemspec +110 -0
- data/spec/models/page_spec.rb +144 -0
- 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,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 @@
|
|
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 %>
|