newsletter 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +15 -0
- data/.gitignore +20 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/Gemfile +26 -0
- data/Gemfile.lock +199 -0
- data/Guardfile +24 -0
- data/LICENSE +22 -0
- data/MIT-LICENSE +20 -0
- data/Manifest.txt +220 -0
- data/Procfile +2 -0
- data/README +243 -0
- data/README.rdoc +3 -0
- data/Rakefile +29 -0
- data/app/assets/images/newsletter/.gitkeep +0 -0
- data/app/assets/javascripts/newsletter/application.js +15 -0
- data/app/assets/stylesheets/newsletter/application.css +13 -0
- data/app/controllers/newsletter/application_controller.rb +27 -0
- data/app/controllers/newsletter/areas_controller.rb +63 -0
- data/app/controllers/newsletter/designs_controller.rb +51 -0
- data/app/controllers/newsletter/elements_controller.rb +75 -0
- data/app/controllers/newsletter/fields_controller.rb +49 -0
- data/app/controllers/newsletter/newsletters_controller.rb +104 -0
- data/app/controllers/newsletter/pieces_controller.rb +72 -0
- data/app/helpers/newsletter/application_helper.rb +4 -0
- data/app/helpers/newsletter/areas_helper.rb +4 -0
- data/app/helpers/newsletter/assets_helper.rb +4 -0
- data/app/helpers/newsletter/designs_helper.rb +11 -0
- data/app/helpers/newsletter/elements_helper.rb +4 -0
- data/app/helpers/newsletter/field_values_helper.rb +4 -0
- data/app/helpers/newsletter/fields_helper.rb +4 -0
- data/app/helpers/newsletter/newsletters_helper.rb +43 -0
- data/app/helpers/newsletter/pieces_helper.rb +4 -0
- data/app/models/newsletter/area.rb +50 -0
- data/app/models/newsletter/asset.rb +31 -0
- data/app/models/newsletter/design.rb +160 -0
- data/app/models/newsletter/element.rb +169 -0
- data/app/models/newsletter/field/inline_asset.rb +67 -0
- data/app/models/newsletter/field/text.rb +15 -0
- data/app/models/newsletter/field/text_area.rb +15 -0
- data/app/models/newsletter/field.rb +115 -0
- data/app/models/newsletter/field_value.rb +20 -0
- data/app/models/newsletter/newsletter.rb +125 -0
- data/app/models/newsletter/piece.rb +96 -0
- data/app/models/newsletter.rb +11 -0
- data/app/uploaders/newsletter/asset_uploader.rb +51 -0
- data/app/views/layouts/newsletter/application.html.erb +135 -0
- data/app/views/newsletter/areas/_area.html.erb +49 -0
- data/app/views/newsletter/designs/_area_fields.html.erb +4 -0
- data/app/views/newsletter/designs/_form.html.erb +41 -0
- data/app/views/newsletter/designs/_newsletter_area.html.erb +17 -0
- data/app/views/newsletter/designs/edit.html.erb +14 -0
- data/app/views/newsletter/designs/index.html.erb +31 -0
- data/app/views/newsletter/designs/new.html.erb +9 -0
- data/app/views/newsletter/designs/show.html.erb +22 -0
- data/app/views/newsletter/elements/_field_fields.html.erb +27 -0
- data/app/views/newsletter/elements/_form.html.erb +51 -0
- data/app/views/newsletter/elements/_newsletter_field.html.erb +37 -0
- data/app/views/newsletter/elements/edit.html.erb +12 -0
- data/app/views/newsletter/elements/index.html.erb +32 -0
- data/app/views/newsletter/elements/new.html.erb +9 -0
- data/app/views/newsletter/elements/show.html.erb +22 -0
- data/app/views/newsletter/fields/_form.html.erb +15 -0
- data/app/views/newsletter/fields/_inline_asset.html.erb +36 -0
- data/app/views/newsletter/fields/_text.html.erb +4 -0
- data/app/views/newsletter/fields/_text_area.html.erb +7 -0
- data/app/views/newsletter/newsletters/_form.html.erb +21 -0
- data/app/views/newsletter/newsletters/_head.html.erb +48 -0
- data/app/views/newsletter/newsletters/_newsletter.html.erb +6 -0
- data/app/views/newsletter/newsletters/_newsletter_area.html.erb +30 -0
- data/app/views/newsletter/newsletters/archive.html.erb +9 -0
- data/app/views/newsletter/newsletters/edit.html.erb +37 -0
- data/app/views/newsletter/newsletters/index.html.erb +29 -0
- data/app/views/newsletter/newsletters/new.html.erb +9 -0
- data/app/views/newsletter/newsletters/show.html.erb +6 -0
- data/app/views/newsletter/pieces/_form.html.erb +19 -0
- data/app/views/newsletter/pieces/edit.html.erb +11 -0
- data/app/views/newsletter/pieces/new.html.erb +10 -0
- data/app/views/newsletter/pieces/show.html.erb +2 -0
- data/assets/docs/index.html +45 -0
- data/assets/docs/newsletter_templates/index.html +45 -0
- data/config/routes.rb +33 -0
- data/db/migrate/001_newsletter_initial.rb +104 -0
- data/db/migrate/002_carrier_wave_for_assets.rb +9 -0
- data/db/pre-scoped/002_newsletter_scoped.rb +61 -0
- data/doc/README_FOR_APP +2 -0
- data/doc/newsletter.wiki.txt +130 -0
- data/doc/start_rails_engine_with_rspec.txt +43 -0
- data/engine_plan.rb +13 -0
- data/features/step_definitions/webrat_steps.rb +115 -0
- data/features/support/env.rb +17 -0
- data/features/support/paths.rb +27 -0
- data/lib/deleteable.rb +50 -0
- data/lib/newsletter/config.rb +50 -0
- data/lib/newsletter/engine.rb +62 -0
- data/lib/newsletter/settings.rb +50 -0
- data/lib/newsletter/version.rb +3 -0
- data/lib/newsletter.rb +7 -0
- data/lib/tasks/newsletter.rake +84 -0
- data/lib/tasks/newsletter_tasks.rake +4 -0
- data/lib/tasks/rspec.rake +158 -0
- data/newsletter.gemspec +30 -0
- data/newsletters/exports/example-export.yaml +213 -0
- data/script/rails +8 -0
- data/spec/rcov.opts +2 -0
- data/spec/spec.opts +4 -0
- data/spec/spec_helper.rb +41 -0
- data/spec/test_app/README.rdoc +261 -0
- data/spec/test_app/Rakefile +7 -0
- data/spec/test_app/app/assets/javascripts/application.js +15 -0
- data/spec/test_app/app/assets/stylesheets/application.css +13 -0
- data/spec/test_app/app/controllers/application_controller.rb +3 -0
- data/spec/test_app/app/helpers/application_helper.rb +2 -0
- data/spec/test_app/app/mailers/.gitkeep +0 -0
- data/spec/test_app/app/models/.gitkeep +0 -0
- data/spec/test_app/app/views/layouts/application.html.erb +14 -0
- data/spec/test_app/config/application.rb +65 -0
- data/spec/test_app/config/boot.rb +10 -0
- data/spec/test_app/config/database.yml +25 -0
- data/spec/test_app/config/environment.rb +5 -0
- data/spec/test_app/config/environments/development.rb +37 -0
- data/spec/test_app/config/environments/production.rb +67 -0
- data/spec/test_app/config/environments/test.rb +37 -0
- data/spec/test_app/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/test_app/config/initializers/inflections.rb +15 -0
- data/spec/test_app/config/initializers/mime_types.rb +5 -0
- data/spec/test_app/config/initializers/secret_token.rb +7 -0
- data/spec/test_app/config/initializers/session_store.rb +8 -0
- data/spec/test_app/config/initializers/wrap_parameters.rb +14 -0
- data/spec/test_app/config/locales/en.yml +5 -0
- data/spec/test_app/config/newsletter.yml +9 -0
- data/spec/test_app/config/routes.rb +4 -0
- data/spec/test_app/config.ru +4 -0
- data/spec/test_app/db/migrate/20131222171229_newsletter_initial.rb +104 -0
- data/spec/test_app/db/schema.rb +116 -0
- data/spec/test_app/lib/assets/.gitkeep +0 -0
- data/spec/test_app/log/.gitkeep +0 -0
- data/spec/test_app/public/404.html +26 -0
- data/spec/test_app/public/422.html +26 -0
- data/spec/test_app/public/500.html +25 -0
- data/spec/test_app/public/favicon.ico +0 -0
- data/spec/test_app/script/rails +6 -0
- data/zeus.json +22 -0
- metadata +352 -0
@@ -0,0 +1,14 @@
|
|
1
|
+
<% title "Edit Design" %>
|
2
|
+
|
3
|
+
<%= render :partial => 'form' %>
|
4
|
+
|
5
|
+
<%= content_for :page_navigation do %>
|
6
|
+
<div>
|
7
|
+
<% if::Newsletter.use_show_for_resources %>
|
8
|
+
<%= link_to "Show", @design, :class => 'button' %><div class="linkbuttonEnding"></div>
|
9
|
+
<% end %>
|
10
|
+
<%= link_to "View All", designs_path, :class => 'button' %><div class="linkbuttonEnding"></div>
|
11
|
+
<%= link_to 'Manage Elements', design_elements_path(@design),
|
12
|
+
:class => 'button' %><div class="linkbuttonEnding"></div>
|
13
|
+
</div>
|
14
|
+
<% end %>
|
@@ -0,0 +1,31 @@
|
|
1
|
+
<% title "Designs" %>
|
2
|
+
|
3
|
+
<table class="list" cellpadding="1" cellspacing="0">
|
4
|
+
<tr class="title">
|
5
|
+
<td>Name</td>
|
6
|
+
<td>Description</td>
|
7
|
+
<% if::Newsletter.use_show_for_resources %>
|
8
|
+
<td colspan="3"> </td>
|
9
|
+
<% else %>
|
10
|
+
<td colspan="2"> </td>
|
11
|
+
<% end %>
|
12
|
+
</tr>
|
13
|
+
<% for design in @designs %>
|
14
|
+
<tr class="<%= cycle('odd','even') %>">
|
15
|
+
<td><%=h design.name %></td>
|
16
|
+
<td><%=h design.description %></td>
|
17
|
+
<% if::Newsletter.use_show_for_resources %>
|
18
|
+
<td><%= link_to "View", design, :class => 'button' %><div class="linkbuttonEnding"></div></td>
|
19
|
+
<% end %>
|
20
|
+
<td><%= link_to "Edit", edit_design_path(design), :class => 'button' %><div class="linkbuttonEnding"></div></td>
|
21
|
+
<td><%= link_to "Delete", design, :confirm => 'Are you sure?', :method => :delete, :class => 'button' %><div class="linkbuttonEnding"></div></td>
|
22
|
+
</tr>
|
23
|
+
<% end %>
|
24
|
+
</table>
|
25
|
+
|
26
|
+
|
27
|
+
<%= content_for :page_navigation do %>
|
28
|
+
<div>
|
29
|
+
<%= link_to "New Design", new_design_path, :class => 'button' %><div class="linkbuttonEnding"></div>
|
30
|
+
</div>
|
31
|
+
<% end %>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<% title "Element" %>
|
2
|
+
|
3
|
+
<p>
|
4
|
+
<strong>Name:</strong>
|
5
|
+
<%=h @element.name %>
|
6
|
+
</p>
|
7
|
+
<p>
|
8
|
+
<strong>Description:</strong>
|
9
|
+
<%=h @element.description %>
|
10
|
+
</p>
|
11
|
+
<p>
|
12
|
+
<strong>Html Design Text:</strong>
|
13
|
+
<%=h @element.html_design %>
|
14
|
+
</p>
|
15
|
+
|
16
|
+
<%= content_for :page_navigation do %>
|
17
|
+
<div>
|
18
|
+
<%= link_to "Edit", edit_element_path(@element), :class => 'button' %><div class="linkbuttonEnding"></div>
|
19
|
+
<%= link_to "Delete", @element, :confirm => 'Are you sure?', :method => :delete, :class => 'button' %><div class="linkbuttonEnding"></div>
|
20
|
+
<%= link_to "View All", design_elements_path(@design), :class => 'button' %><div class="linkbuttonEnding"></div>
|
21
|
+
</div>
|
22
|
+
<% end %>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
<%= div_for f.object do %>
|
2
|
+
<table border="0" cellpadding="1" cellspacing="0">
|
3
|
+
<%= f.error_messages %>
|
4
|
+
<tr vlalign="top">
|
5
|
+
<td width="150"><%= f.label :name %></td>
|
6
|
+
<td><%= f.text_field :name%></td>
|
7
|
+
</tr>
|
8
|
+
<tr vlalign="top">
|
9
|
+
<td width="150"><%= f.label :label %><br /></td>
|
10
|
+
<td><%= f.text_field :label %></td>
|
11
|
+
</tr>
|
12
|
+
<tr vlalign="top">
|
13
|
+
<td width="150"><%= f.label :description %><br /></td>
|
14
|
+
<td><%= f.text_field :description %></td>
|
15
|
+
</tr>
|
16
|
+
<tr vlalign="top">
|
17
|
+
<td width="150"><%= f.label :type %></td>
|
18
|
+
<td><%= f.select :type, options_for_select(@field_types.collect{|type| [type.gsub(/Newsletter::Field::/,'').humanize,type]}, f.object.class.name) %></td>
|
19
|
+
</tr>
|
20
|
+
<tr vlalign="top">
|
21
|
+
<td align="right" colspan="2">
|
22
|
+
<%= f.link_to_remove "Remove", {class: 'button'} %><div class='linkbuttonEnding'>
|
23
|
+
<br/><br/><hr/>
|
24
|
+
</td>
|
25
|
+
</tr>
|
26
|
+
</table>
|
27
|
+
<% end %>
|
@@ -0,0 +1,51 @@
|
|
1
|
+
<%= nested_form_for @element do |f| %>
|
2
|
+
<%= f.error_messages %>
|
3
|
+
<table cellspacing='1' cellpadding='0' border='0'>
|
4
|
+
<tr valign="top">
|
5
|
+
<td width='150'><%= f.label :name %></td>
|
6
|
+
<td><%= f.text_field :name %></td>
|
7
|
+
</tr>
|
8
|
+
<tr valign="top">
|
9
|
+
<td width='150'><%= f.label :description %></td>
|
10
|
+
<td><%= f.text_field :description %></td>
|
11
|
+
</tr>
|
12
|
+
<% unless @element.name.blank? %>
|
13
|
+
<tr valign="top">
|
14
|
+
<td width='150'><label>Design Filename</label></td>
|
15
|
+
<td><%= @element.file_path.gsub(/^#{::Newsletter.designs_path}/,'') %></td>
|
16
|
+
</tr>
|
17
|
+
<% end %>
|
18
|
+
<tr valign="top">
|
19
|
+
<td width='150'><%= f.label :html_text %></td>
|
20
|
+
<td><%= f.text_area :html_text %></td>
|
21
|
+
</tr>
|
22
|
+
<tr valign="top">
|
23
|
+
<td colspan="2">
|
24
|
+
<div class='newsletter_parts_group' style='margin-top: 10px; padding: 0 5px 5px 15px; border: thin dashed black; background-color: #eee'>
|
25
|
+
<h2 style='padding-bottom: 0; margin-bottom: 0; font-size: 10pt; '>Fields</h2>
|
26
|
+
<div id="newsletter_fields">
|
27
|
+
<%= f.fields_for :fields %>
|
28
|
+
</div>
|
29
|
+
<%= f.link_to_add('Add Field', :fields, {class: 'button'}) %><div class="linkbuttonEnding"></div>
|
30
|
+
</div>
|
31
|
+
<div class='newsletter_parts_group' style='margin-top: 10px; padding: 0 5px 5px 15px; border: thin dashed black; background-color: #eee'>
|
32
|
+
<h2 style='padding-bottom: 0; margin-bottom: 0; font-size: 10pt; '>Areas</h2>
|
33
|
+
<% @design.areas.each do |area| %>
|
34
|
+
<%= check_box_tag 'element[area_ids][]', area.id, @element.areas.include?(area) %><%= area.name %><br/>
|
35
|
+
<% end %>
|
36
|
+
</div>
|
37
|
+
<%= hidden_field_tag :design_id, @design.id %>
|
38
|
+
</td>
|
39
|
+
</tr>
|
40
|
+
<tr>
|
41
|
+
<td align="right" colspan="2"><%= f.submit "Submit", :class => 'button' %><div class="buttonEnding"></div></td>
|
42
|
+
</tr>
|
43
|
+
</table>
|
44
|
+
|
45
|
+
<% end %>
|
46
|
+
|
47
|
+
<% content_for :head do %>
|
48
|
+
<%= javascript_include_tag '/javascripts/nested_form.js' %>
|
49
|
+
<% end %>
|
50
|
+
|
51
|
+
|
@@ -0,0 +1,37 @@
|
|
1
|
+
<% div_for newsletter_field do %>
|
2
|
+
<table border="0" cellpadding="1" cellspacing="0">
|
3
|
+
<% fields_for 'newsletter_element[field_attributes][]', newsletter_field do |f| %>
|
4
|
+
<%= f.error_messages %>
|
5
|
+
<tr vlalign="top">
|
6
|
+
<td width="150"><%= f.label :name %></td>
|
7
|
+
<td><%= f.text_field :name, :index => nil %></td>
|
8
|
+
</tr>
|
9
|
+
<tr vlalign="top">
|
10
|
+
<td width="150"><%= f.label :label %><br /></td>
|
11
|
+
<td><%= f.text_field :label, :index => nil %></td>
|
12
|
+
</tr>
|
13
|
+
<tr vlalign="top">
|
14
|
+
<td width="150"><%= f.label :description %><br /></td>
|
15
|
+
<td><%= f.text_field :description, :index => nil %></td>
|
16
|
+
</tr>
|
17
|
+
<tr vlalign="top">
|
18
|
+
<td width="150"><%= f.label :type %></td>
|
19
|
+
<td><%= select_tag 'newsletter_element[field_attributes][][type]', options_for_select(@field_types.collect{|type| [type.gsub(/Newsletter::Field::/,'').humanize,type]}, newsletter_field.class.name) %></td>
|
20
|
+
</tr>
|
21
|
+
<tr vlalign="top">
|
22
|
+
<td align="right" colspan="2">
|
23
|
+
<% if newsletter_field.new_record? %>
|
24
|
+
<%= link_to_function "Remove", "$(this).up('.newsletter_field').remove()",
|
25
|
+
:class => 'button' %><div class='linkbuttonEnding'></div>
|
26
|
+
<% else %>
|
27
|
+
<%= link_to_function "Remove", "$(this).next('.should_destroy').value = 1; $(this).hide(); $(this).next('.button').show()", :class => 'button' %>
|
28
|
+
<%= link_to_function "Restore", "$(this).next('.should_destroy').value = 0; $(this).hide(); $(this).previous('.button').show()", :class => 'button', :style => 'display:none' %><div class='linkbuttonEnding'></div>
|
29
|
+
<%= f.hidden_field :id, :index => nil %>
|
30
|
+
<%= f.hidden_field :should_destroy, :index => nil, :class => 'should_destroy' %>
|
31
|
+
<% end %>
|
32
|
+
<% end %>
|
33
|
+
<br/><br/><hr/>
|
34
|
+
</td>
|
35
|
+
</tr>
|
36
|
+
</table>
|
37
|
+
<% end %>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<% title "Edit Element" %>
|
2
|
+
|
3
|
+
<%= render :partial => 'form' %>
|
4
|
+
|
5
|
+
<%= content_for :page_navigation do %>
|
6
|
+
<div>
|
7
|
+
<% if::Newsletter.use_show_for_resources %>
|
8
|
+
<%= link_to "Show", @element, :class => 'button' %><div class="linkbuttonEnding"></div>
|
9
|
+
<% end %>
|
10
|
+
<%= link_to "View All", design_elements_path(@design), :class => 'button' %><div class="linkbuttonEnding"></div>
|
11
|
+
</div>
|
12
|
+
<% end %>
|
@@ -0,0 +1,32 @@
|
|
1
|
+
<% title "Elements" %>
|
2
|
+
|
3
|
+
<table class="list" cellpadding="1" cellspacing="0">
|
4
|
+
<tr class="title">
|
5
|
+
<td>Name</td>
|
6
|
+
<td>Description</td>
|
7
|
+
<% if::Newsletter.use_show_for_resources %>
|
8
|
+
<td colspan="3"> </td>
|
9
|
+
<% else %>
|
10
|
+
<td colspan="2"> </td>
|
11
|
+
<% end %>
|
12
|
+
</tr>
|
13
|
+
<% for element in @elements %>
|
14
|
+
<tr class="<%= cycle('odd','even') %>">
|
15
|
+
<td><%=h element.name %></td>
|
16
|
+
<td><%=h element.description %></td>
|
17
|
+
<% if::Newsletter.use_show_for_resources %>
|
18
|
+
<td><%= link_to "View", element, :class => 'button' %><div class="linkbuttonEnding"></div></td>
|
19
|
+
<% end %>
|
20
|
+
<td><%= link_to "Edit", edit_element_path(element), :class => 'button' %><div class="linkbuttonEnding"></div></td>
|
21
|
+
<td><%= link_to "Delete", element, :confirm => 'Are you sure?', :method => :delete, :class => 'button' %><div class="linkbuttonEnding"></div></td>
|
22
|
+
</tr>
|
23
|
+
<% end %>
|
24
|
+
</table>
|
25
|
+
|
26
|
+
|
27
|
+
<%= content_for :page_navigation do %>
|
28
|
+
<div>
|
29
|
+
<%= link_to "Back to Design", edit_design_path(@design), :class => 'button' %><div class="linkbuttonEnding"></div>
|
30
|
+
<%= link_to "New Newsletter Element", new_design_element_path(@design), :class => 'button' %><div class="linkbuttonEnding"></div>
|
31
|
+
</div>
|
32
|
+
<% end %>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<% title "Element" %>
|
2
|
+
|
3
|
+
<p>
|
4
|
+
<strong>Name:</strong>
|
5
|
+
<%=h @element.name %>
|
6
|
+
</p>
|
7
|
+
<p>
|
8
|
+
<strong>Description:</strong>
|
9
|
+
<%=h @element.description %>
|
10
|
+
</p>
|
11
|
+
<p>
|
12
|
+
<strong>Html Design Text:</strong>
|
13
|
+
<%=h @element.html_text %>
|
14
|
+
</p>
|
15
|
+
|
16
|
+
<%= content_for :page_navigation do %>
|
17
|
+
<div>
|
18
|
+
<%= link_to "Edit", edit_element_path(@element), :class => 'button' %><div class="linkbuttonEnding"></div>
|
19
|
+
<%= link_to "Delete", @element, :confirm => 'Are you sure?', :method => :delete, :class => 'button' %><div class="linkbuttonEnding"></div>
|
20
|
+
<%= link_to "View All", design_elements_path(@design), :class => 'button' %><div class="linkbuttonEnding"></div>
|
21
|
+
</div>
|
22
|
+
<% end %>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<%= form_for(@field) do |f| %>
|
2
|
+
<%= f.error_messages %>
|
3
|
+
|
4
|
+
<p>
|
5
|
+
<%= f.label :name %><br />
|
6
|
+
<%= f.text_field :name %>
|
7
|
+
</p>
|
8
|
+
<p>
|
9
|
+
<%= f.label :description %><br />
|
10
|
+
<%= f.text_field :description %>
|
11
|
+
</p>
|
12
|
+
<p>
|
13
|
+
<%= f.submit %>
|
14
|
+
</p>
|
15
|
+
<% end %>
|
@@ -0,0 +1,36 @@
|
|
1
|
+
<tr valign="top">
|
2
|
+
<td colspan="2">
|
3
|
+
<div class="newsletter_parts_group">
|
4
|
+
<h2>Asset for <%= field.label %></h2>
|
5
|
+
<table cellpadding="2" cellspacing="0" border="0">
|
6
|
+
<tr>
|
7
|
+
<td colspan="2">Either enter a url to your asset or upload a file.</td>
|
8
|
+
</tr>
|
9
|
+
|
10
|
+
<tr>
|
11
|
+
<td colspan="2">
|
12
|
+
<% unless field.description.blank? %>
|
13
|
+
<%= field.description %>
|
14
|
+
<% end %>
|
15
|
+
<%= image_tag field_value.url unless field_value.url.blank? %>
|
16
|
+
</td>
|
17
|
+
</tr>
|
18
|
+
|
19
|
+
<tr>
|
20
|
+
<td><%= label_tag 'piece[field_values_attributes]['+field.id.to_s+'][url]', "Url:" %></td>
|
21
|
+
<td><%= text_field_tag 'piece[field_values_attributes]['+field.id.to_s+'][url]', field_value.url %></td>
|
22
|
+
</tr>
|
23
|
+
|
24
|
+
<tr>
|
25
|
+
<td>
|
26
|
+
<label for="asset">Upload An Asset:</label></td>
|
27
|
+
<td><%= file_field_tag 'piece[field_values_attributes]['+field.id.to_s+'][uploaded_data]' %>
|
28
|
+
|
29
|
+
<%= hidden_field_tag 'piece[field_values_attributes]['+field.id.to_s+'][asset_id]', field_value.asset_id %>
|
30
|
+
</td>
|
31
|
+
</tr>
|
32
|
+
|
33
|
+
</table>
|
34
|
+
</div>
|
35
|
+
</td>
|
36
|
+
</tr>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<tr valign="top">
|
2
|
+
<td width='150'><%= label_tag 'piece[field_values_attributes]['+field.id.to_s+'][text_area]', "#{field.label}:" %></td>
|
3
|
+
<td><%= text_area_tag 'piece[field_values_attributes]['+field.id.to_s+'][text_area]', field.value_for_piece(piece), {:cols => 80, :rows => 30} %></td>
|
4
|
+
</tr>
|
5
|
+
<div class="entry">
|
6
|
+
|
7
|
+
</div>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<%= form_for(@newsletter) do |f| %>
|
2
|
+
<%= f.error_messages %>
|
3
|
+
|
4
|
+
<table cellpadding="2" cellspacing="0" border="0">
|
5
|
+
<tr>
|
6
|
+
<td><%= f.label :name %> </td>
|
7
|
+
<td><%= f.text_field :name %></td>
|
8
|
+
</tr>
|
9
|
+
<% if @newsletter.design.nil? %>
|
10
|
+
<tr>
|
11
|
+
<td><%= f.label :design %></td>
|
12
|
+
<td><%= f.select :design_id, @designs.collect {|design| [ design.name, design.id ] } %></td>
|
13
|
+
</tr>
|
14
|
+
<% end %>
|
15
|
+
<tr>
|
16
|
+
<td colspan="2" align="right"><%= f.submit "Save", :class => "button" %><div class="buttonEnding"></div>
|
17
|
+
</td>
|
18
|
+
</tr>
|
19
|
+
</table>
|
20
|
+
|
21
|
+
<% end %>
|
@@ -0,0 +1,48 @@
|
|
1
|
+
<% unless is_email? %>
|
2
|
+
<link rel="stylesheet" href="https://code.jquery.com/ui/1.10.3/themes/le-frog/jquery-ui.css">
|
3
|
+
<script src="/javascripts/jquery.js" type="text/javascript"></script>
|
4
|
+
<script src="/javascripts/jquery_ujs.js" type="text/javascript"></script>
|
5
|
+
<script src="/javascripts/jquery-ui-1.10.3.custom.js" type="text/javascript"></script>
|
6
|
+
|
7
|
+
<style>
|
8
|
+
.edit_link {
|
9
|
+
font-family: Verdana, Arial, Helvetica, sans-serif;
|
10
|
+
font-size: 10pt;
|
11
|
+
font-weight: bold;
|
12
|
+
}
|
13
|
+
|
14
|
+
a.edit_link {
|
15
|
+
color: #6fc143;
|
16
|
+
text-decoration: none;
|
17
|
+
}
|
18
|
+
|
19
|
+
a.edit_link:hover {
|
20
|
+
color: #469a18;
|
21
|
+
}
|
22
|
+
|
23
|
+
.delete_link {
|
24
|
+
font-family: Verdana, Arial, Helvetica, sans-serif;
|
25
|
+
font-size: 10pt;
|
26
|
+
font-weight: bold;
|
27
|
+
}
|
28
|
+
|
29
|
+
a.delete_link {
|
30
|
+
color: #d25151;
|
31
|
+
text-decoration: none;
|
32
|
+
}
|
33
|
+
|
34
|
+
a.delete_link:hover {
|
35
|
+
color: #a21010;
|
36
|
+
}
|
37
|
+
|
38
|
+
.piece_tool {
|
39
|
+
background: #f8f9b0;
|
40
|
+
width: 100px;
|
41
|
+
padding: 5px;
|
42
|
+
border-top: 1px dashed black;
|
43
|
+
border-left: 1px dashed black;
|
44
|
+
border-right: 1px dashed black;
|
45
|
+
}
|
46
|
+
|
47
|
+
</style>
|
48
|
+
<% end %>
|
@@ -0,0 +1,6 @@
|
|
1
|
+
<% content_for :head_content do %>
|
2
|
+
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
|
3
|
+
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
|
4
|
+
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
|
5
|
+
<% end %>
|
6
|
+
<%= render :inline => File.readlines(@newsletter.design.view_path).join, :locals => @newsletter.locals %>
|
@@ -0,0 +1,30 @@
|
|
1
|
+
<% unless params[:editor] %>
|
2
|
+
<% area.pieces.by_newsletter(@newsletter).each do |piece| %>
|
3
|
+
<% begin %>
|
4
|
+
<%= render :inline => piece.element.html_text, :locals => piece.locals %>
|
5
|
+
<% rescue => e %>
|
6
|
+
<!-- Error rendering piece: <%= piece.element.html_text %>/ <%= piece.id %> with data <%=h piece.locals.inspect %> and template: <%=h piece.element.html_text %> <br/> <%= e.message %><br/> <%= e.backtrace.join(",") %> -->
|
7
|
+
<% end %>
|
8
|
+
<% end %>
|
9
|
+
<% else %>
|
10
|
+
<%= div_for area do %>
|
11
|
+
<% area.pieces.by_newsletter(@newsletter).each do |piece| %>
|
12
|
+
<%= div_for piece, {:onMouseOver => "\$('modify_piece_#{piece.id}').show()",
|
13
|
+
:onMouseOut => "\$('modify_piece_#{piece.id}').hide()", :class => 'sortable' } do %>
|
14
|
+
<!--Element Template - <%= piece.element.view_path %> -->
|
15
|
+
<%= content_tag :div, link_to("Delete", piece, :confirm => 'Are you sure?',
|
16
|
+
:method => :delete, :class=> "delete_link") +
|
17
|
+
" | " +
|
18
|
+
link_to("Edit", edit_piece_path(piece), :target => '_top', :class => "edit_link"),
|
19
|
+
:id=>"modify_piece_#{piece.id}", :style => "display:none", :class => "piece_tool" %>
|
20
|
+
<% begin %>
|
21
|
+
<%= render :inline => piece.element.html_text, :locals => piece.locals %>
|
22
|
+
<% rescue => e %>
|
23
|
+
Error rendering piece: <%= piece.element.html_text %>/ <%= piece.id %> with data <%=h piece.locals.inspect %> and template: <%=h piece.element.html_text %> <br/> <%= e.message %><br/> <%= e.backtrace.join(",") %>
|
24
|
+
<% end %>
|
25
|
+
<% end %>
|
26
|
+
<% end %>
|
27
|
+
<!-- = sortable_element("area_#{area.id}", :tag=>:div,
|
28
|
+
:constraint => :vertical, :url => sort_area_path(:id=>area.id,:newsletter_id=>@newsletter.id)) %> -->
|
29
|
+
<% end %>
|
30
|
+
<% end %>
|
@@ -0,0 +1,37 @@
|
|
1
|
+
<% title "Edit Newsletter" %>
|
2
|
+
|
3
|
+
<%= render :partial => 'form' %>
|
4
|
+
|
5
|
+
<h3>Design - <%= @newsletter.design.name %> </h3>
|
6
|
+
<% if @newsletter.design %>
|
7
|
+
<table cellpadding="2" cellspacing="0" border="0">
|
8
|
+
<% @newsletter.areas.each do |area| %>
|
9
|
+
<%= form_tag new_newsletter_piece_path(@newsletter), :method => :get do %>
|
10
|
+
<%= hidden_field_tag 'area_id', area.id %>
|
11
|
+
<tr>
|
12
|
+
<td><%= label_tag 'element_id', "Area: #{area.name.humanize}" %></td>
|
13
|
+
<td><%= select_tag 'element_id', options_from_collection_for_select(area.elements, 'id', 'name') %></td>
|
14
|
+
<td><%= submit_tag 'Add Element', :class => 'button' %><div class="buttonEnding"></div></td>
|
15
|
+
</tr>
|
16
|
+
<% end %>
|
17
|
+
<% end %>
|
18
|
+
</table>
|
19
|
+
|
20
|
+
<p><b>Newsletter Window Size: </b>
|
21
|
+
<% [[640,480],[800,600],[1024,768],[1280,1024],[1600,1200]].each do |width,height| %>
|
22
|
+
<%= link_to_function "#{width}x#{height}","$('#preview').css({height: '#{height}px', width: '#{width}px'})" %>
|
23
|
+
<% end %>
|
24
|
+
</p>
|
25
|
+
<%= content_tag :iframe, @newsletter.name, :id => 'preview', :src => editor_newsletter_path(@newsletter), :width => 800, :height => 600 %>
|
26
|
+
|
27
|
+
|
28
|
+
<% end %>
|
29
|
+
|
30
|
+
<%= content_for :page_navigation do %>
|
31
|
+
<div>
|
32
|
+
<% if::Newsletter.use_show_for_resources %>
|
33
|
+
<%= link_to "Show", @newsletter, :class => 'button' %><div class="linkbuttonEnding"></div>
|
34
|
+
<% end %>
|
35
|
+
<%= link_to "Back", newsletters_path, :class => 'button' %><div class="linkbuttonEnding"></div>
|
36
|
+
</div>
|
37
|
+
<% end %>
|
@@ -0,0 +1,29 @@
|
|
1
|
+
<% title "Newsletters" %>
|
2
|
+
<div>
|
3
|
+
<%= link_to "New Newsletter", new_newsletter_path, :class => 'button' %><div class="linkbuttonEnding"></div>
|
4
|
+
<div><br /><br /><%= will_paginate @newsletters %></div>
|
5
|
+
<table class="list" cellpadding="1" cellspacing="0">
|
6
|
+
<tr class="title">
|
7
|
+
<td>Name</td>
|
8
|
+
<td colspan="3"> </td>
|
9
|
+
</tr>
|
10
|
+
<% for newsletter in @newsletters %>
|
11
|
+
<tr class="<%= cycle('odd','even') %>">
|
12
|
+
<td><%=h newsletter.name %></td>
|
13
|
+
<% if newsletter.published? %>
|
14
|
+
<td><%= link_to 'Un–Publish'.html_safe, unpublish_newsletter_path(newsletter), :class=>"button" %><div class="linkbuttonEnding"></div></td>
|
15
|
+
<% else %><td><%= link_to 'Publish', publish_newsletter_path(newsletter), :class=>"button" %><div class="linkbuttonEnding"></div></td>
|
16
|
+
<% end %>
|
17
|
+
<td><%= link_to "Edit", edit_newsletter_path(newsletter), :class => 'button' %><div class="linkbuttonEnding"></div></td>
|
18
|
+
<td><%= link_to "Delete", newsletter, :confirm => 'Are you sure?', :method => :delete, :class => 'button' %><div class="linkbuttonEnding"></div></td>
|
19
|
+
</tr>
|
20
|
+
<% end %>
|
21
|
+
</table>
|
22
|
+
|
23
|
+
|
24
|
+
<%= content_for :page_navigation do %>
|
25
|
+
<div>
|
26
|
+
<%= link_to "New Newsletter", new_newsletter_path, :class => 'button' %><div class="linkbuttonEnding"></div>
|
27
|
+
</div>
|
28
|
+
<div><br /><br /><%= will_paginate @newsletters %></div>
|
29
|
+
<% end %>
|
@@ -0,0 +1,6 @@
|
|
1
|
+
<% content_for :head_content do %>
|
2
|
+
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
|
3
|
+
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
|
4
|
+
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
|
5
|
+
<% end %>
|
6
|
+
<%= render :inline => File.readlines(@newsletter.design.view_path).join, :locals => @newsletter.locals %>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
|
2
|
+
<table cellspacing='1' cellpadding='0' border='0'>
|
3
|
+
<%= form_for(@piece, :html => { :multipart => true }) do |f| %>
|
4
|
+
<%= f.error_messages %>
|
5
|
+
<% @piece.element.fields.each do |field| %>
|
6
|
+
<!-- Rendering Field: <%= field.name %> <%= field.type %> -->
|
7
|
+
<%= render :partial => field.form_partial_path, :locals => { :piece => @piece, :field => field, :field_value => field.value_for_piece(@piece) } %>
|
8
|
+
|
9
|
+
<% end %>
|
10
|
+
<tr>
|
11
|
+
<td colspan="2" align="right">
|
12
|
+
<%= f.hidden_field :element_id %>
|
13
|
+
<%= f.hidden_field :area_id %>
|
14
|
+
<%= f.hidden_field :newsletter_id %>
|
15
|
+
<%= f.submit "Submit", :class => 'button' %><div class="buttonEnding"></div>
|
16
|
+
</td>
|
17
|
+
</tr>
|
18
|
+
<% end %>
|
19
|
+
</table>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<% title "Editing #{ @piece.element.name }" %>
|
2
|
+
<p><%= @piece.element.description %></p>
|
3
|
+
<%= render :partial => 'form' %>
|
4
|
+
|
5
|
+
|
6
|
+
<%= content_for :page_navigation do %>
|
7
|
+
<div>
|
8
|
+
<%= link_to 'Back', edit_newsletter_path(@newsletter), :class => 'button' %><div class="linkbuttonEnding"></div>
|
9
|
+
</div>
|
10
|
+
<% end %>
|
11
|
+
|