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.
Files changed (144) hide show
  1. checksums.yaml +15 -0
  2. data/.gitignore +20 -0
  3. data/.ruby-gemset +1 -0
  4. data/.ruby-version +1 -0
  5. data/Gemfile +26 -0
  6. data/Gemfile.lock +199 -0
  7. data/Guardfile +24 -0
  8. data/LICENSE +22 -0
  9. data/MIT-LICENSE +20 -0
  10. data/Manifest.txt +220 -0
  11. data/Procfile +2 -0
  12. data/README +243 -0
  13. data/README.rdoc +3 -0
  14. data/Rakefile +29 -0
  15. data/app/assets/images/newsletter/.gitkeep +0 -0
  16. data/app/assets/javascripts/newsletter/application.js +15 -0
  17. data/app/assets/stylesheets/newsletter/application.css +13 -0
  18. data/app/controllers/newsletter/application_controller.rb +27 -0
  19. data/app/controllers/newsletter/areas_controller.rb +63 -0
  20. data/app/controllers/newsletter/designs_controller.rb +51 -0
  21. data/app/controllers/newsletter/elements_controller.rb +75 -0
  22. data/app/controllers/newsletter/fields_controller.rb +49 -0
  23. data/app/controllers/newsletter/newsletters_controller.rb +104 -0
  24. data/app/controllers/newsletter/pieces_controller.rb +72 -0
  25. data/app/helpers/newsletter/application_helper.rb +4 -0
  26. data/app/helpers/newsletter/areas_helper.rb +4 -0
  27. data/app/helpers/newsletter/assets_helper.rb +4 -0
  28. data/app/helpers/newsletter/designs_helper.rb +11 -0
  29. data/app/helpers/newsletter/elements_helper.rb +4 -0
  30. data/app/helpers/newsletter/field_values_helper.rb +4 -0
  31. data/app/helpers/newsletter/fields_helper.rb +4 -0
  32. data/app/helpers/newsletter/newsletters_helper.rb +43 -0
  33. data/app/helpers/newsletter/pieces_helper.rb +4 -0
  34. data/app/models/newsletter/area.rb +50 -0
  35. data/app/models/newsletter/asset.rb +31 -0
  36. data/app/models/newsletter/design.rb +160 -0
  37. data/app/models/newsletter/element.rb +169 -0
  38. data/app/models/newsletter/field/inline_asset.rb +67 -0
  39. data/app/models/newsletter/field/text.rb +15 -0
  40. data/app/models/newsletter/field/text_area.rb +15 -0
  41. data/app/models/newsletter/field.rb +115 -0
  42. data/app/models/newsletter/field_value.rb +20 -0
  43. data/app/models/newsletter/newsletter.rb +125 -0
  44. data/app/models/newsletter/piece.rb +96 -0
  45. data/app/models/newsletter.rb +11 -0
  46. data/app/uploaders/newsletter/asset_uploader.rb +51 -0
  47. data/app/views/layouts/newsletter/application.html.erb +135 -0
  48. data/app/views/newsletter/areas/_area.html.erb +49 -0
  49. data/app/views/newsletter/designs/_area_fields.html.erb +4 -0
  50. data/app/views/newsletter/designs/_form.html.erb +41 -0
  51. data/app/views/newsletter/designs/_newsletter_area.html.erb +17 -0
  52. data/app/views/newsletter/designs/edit.html.erb +14 -0
  53. data/app/views/newsletter/designs/index.html.erb +31 -0
  54. data/app/views/newsletter/designs/new.html.erb +9 -0
  55. data/app/views/newsletter/designs/show.html.erb +22 -0
  56. data/app/views/newsletter/elements/_field_fields.html.erb +27 -0
  57. data/app/views/newsletter/elements/_form.html.erb +51 -0
  58. data/app/views/newsletter/elements/_newsletter_field.html.erb +37 -0
  59. data/app/views/newsletter/elements/edit.html.erb +12 -0
  60. data/app/views/newsletter/elements/index.html.erb +32 -0
  61. data/app/views/newsletter/elements/new.html.erb +9 -0
  62. data/app/views/newsletter/elements/show.html.erb +22 -0
  63. data/app/views/newsletter/fields/_form.html.erb +15 -0
  64. data/app/views/newsletter/fields/_inline_asset.html.erb +36 -0
  65. data/app/views/newsletter/fields/_text.html.erb +4 -0
  66. data/app/views/newsletter/fields/_text_area.html.erb +7 -0
  67. data/app/views/newsletter/newsletters/_form.html.erb +21 -0
  68. data/app/views/newsletter/newsletters/_head.html.erb +48 -0
  69. data/app/views/newsletter/newsletters/_newsletter.html.erb +6 -0
  70. data/app/views/newsletter/newsletters/_newsletter_area.html.erb +30 -0
  71. data/app/views/newsletter/newsletters/archive.html.erb +9 -0
  72. data/app/views/newsletter/newsletters/edit.html.erb +37 -0
  73. data/app/views/newsletter/newsletters/index.html.erb +29 -0
  74. data/app/views/newsletter/newsletters/new.html.erb +9 -0
  75. data/app/views/newsletter/newsletters/show.html.erb +6 -0
  76. data/app/views/newsletter/pieces/_form.html.erb +19 -0
  77. data/app/views/newsletter/pieces/edit.html.erb +11 -0
  78. data/app/views/newsletter/pieces/new.html.erb +10 -0
  79. data/app/views/newsletter/pieces/show.html.erb +2 -0
  80. data/assets/docs/index.html +45 -0
  81. data/assets/docs/newsletter_templates/index.html +45 -0
  82. data/config/routes.rb +33 -0
  83. data/db/migrate/001_newsletter_initial.rb +104 -0
  84. data/db/migrate/002_carrier_wave_for_assets.rb +9 -0
  85. data/db/pre-scoped/002_newsletter_scoped.rb +61 -0
  86. data/doc/README_FOR_APP +2 -0
  87. data/doc/newsletter.wiki.txt +130 -0
  88. data/doc/start_rails_engine_with_rspec.txt +43 -0
  89. data/engine_plan.rb +13 -0
  90. data/features/step_definitions/webrat_steps.rb +115 -0
  91. data/features/support/env.rb +17 -0
  92. data/features/support/paths.rb +27 -0
  93. data/lib/deleteable.rb +50 -0
  94. data/lib/newsletter/config.rb +50 -0
  95. data/lib/newsletter/engine.rb +62 -0
  96. data/lib/newsletter/settings.rb +50 -0
  97. data/lib/newsletter/version.rb +3 -0
  98. data/lib/newsletter.rb +7 -0
  99. data/lib/tasks/newsletter.rake +84 -0
  100. data/lib/tasks/newsletter_tasks.rake +4 -0
  101. data/lib/tasks/rspec.rake +158 -0
  102. data/newsletter.gemspec +30 -0
  103. data/newsletters/exports/example-export.yaml +213 -0
  104. data/script/rails +8 -0
  105. data/spec/rcov.opts +2 -0
  106. data/spec/spec.opts +4 -0
  107. data/spec/spec_helper.rb +41 -0
  108. data/spec/test_app/README.rdoc +261 -0
  109. data/spec/test_app/Rakefile +7 -0
  110. data/spec/test_app/app/assets/javascripts/application.js +15 -0
  111. data/spec/test_app/app/assets/stylesheets/application.css +13 -0
  112. data/spec/test_app/app/controllers/application_controller.rb +3 -0
  113. data/spec/test_app/app/helpers/application_helper.rb +2 -0
  114. data/spec/test_app/app/mailers/.gitkeep +0 -0
  115. data/spec/test_app/app/models/.gitkeep +0 -0
  116. data/spec/test_app/app/views/layouts/application.html.erb +14 -0
  117. data/spec/test_app/config/application.rb +65 -0
  118. data/spec/test_app/config/boot.rb +10 -0
  119. data/spec/test_app/config/database.yml +25 -0
  120. data/spec/test_app/config/environment.rb +5 -0
  121. data/spec/test_app/config/environments/development.rb +37 -0
  122. data/spec/test_app/config/environments/production.rb +67 -0
  123. data/spec/test_app/config/environments/test.rb +37 -0
  124. data/spec/test_app/config/initializers/backtrace_silencers.rb +7 -0
  125. data/spec/test_app/config/initializers/inflections.rb +15 -0
  126. data/spec/test_app/config/initializers/mime_types.rb +5 -0
  127. data/spec/test_app/config/initializers/secret_token.rb +7 -0
  128. data/spec/test_app/config/initializers/session_store.rb +8 -0
  129. data/spec/test_app/config/initializers/wrap_parameters.rb +14 -0
  130. data/spec/test_app/config/locales/en.yml +5 -0
  131. data/spec/test_app/config/newsletter.yml +9 -0
  132. data/spec/test_app/config/routes.rb +4 -0
  133. data/spec/test_app/config.ru +4 -0
  134. data/spec/test_app/db/migrate/20131222171229_newsletter_initial.rb +104 -0
  135. data/spec/test_app/db/schema.rb +116 -0
  136. data/spec/test_app/lib/assets/.gitkeep +0 -0
  137. data/spec/test_app/log/.gitkeep +0 -0
  138. data/spec/test_app/public/404.html +26 -0
  139. data/spec/test_app/public/422.html +26 -0
  140. data/spec/test_app/public/500.html +25 -0
  141. data/spec/test_app/public/favicon.ico +0 -0
  142. data/spec/test_app/script/rails +6 -0
  143. data/zeus.json +22 -0
  144. 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,9 @@
1
+ <% title "New Design" %>
2
+
3
+ <%= render :partial => 'form' %>
4
+
5
+ <%= content_for :page_navigation do %>
6
+ <div>
7
+ <%= link_to "Back to List", designs_path, :class => 'button' %><div class="linkbuttonEnding"></div>
8
+ </div>
9
+ <% 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,9 @@
1
+ <% title "New Element" %>
2
+
3
+ <%= render :partial => 'form' %>
4
+
5
+ <%= content_for :page_navigation do %>
6
+ <div>
7
+ <%= link_to "Back to List", design_elements_path(@design), :class => 'button' %><div class="linkbuttonEnding"></div>
8
+ </div>
9
+ <% 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,4 @@
1
+ <tr valign="top">
2
+ <td width='150'><%= label_tag 'piece[field_values_attributes]['+field.id.to_s+'][text]', "#{field.label}:" %></td>
3
+ <td><%= text_field_tag 'piece[field_values_attributes]['+field.id.to_s+'][text]', field.value_for_piece(piece) %></td>
4
+ </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,9 @@
1
+ <% title "Newsletter Archive" %>
2
+
3
+ <ul style="margin-bottom: 100px;">
4
+ <% @newsletters.published.each do |newsletter| %>
5
+ <li><%= link_to newsletter.name, public_newsletter_path(newsletter) %></li>
6
+ <% end %>
7
+ </ul>
8
+
9
+
@@ -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&ndash;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,9 @@
1
+ <% title "New Newsletter" %>
2
+
3
+ <%= render :partial => 'form' %>
4
+
5
+ <%= content_for :page_navigation do %>
6
+ <div>
7
+ <%= link_to "Back to List", newsletters_path, :class => 'button' %><div class="linkbuttonEnding"></div>
8
+ </div>
9
+ <% 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
+
@@ -0,0 +1,10 @@
1
+ <% title "New Piece" %>
2
+
3
+ <%= render :partial => 'form' %>
4
+
5
+ <%= content_for :page_navigation do %>
6
+ <div>
7
+ <%= link_to 'Back', edit_newsletter_path(@newsletter), :class => 'button' %><div class="linkbuttonEnding"></div>
8
+ </div>
9
+ <% end %>
10
+
@@ -0,0 +1,2 @@
1
+ <%= link_to 'Edit', edit_piece_path(@piece) %> |
2
+ <%= link_to 'Back', newsletter_pieces_path(@newsletter) %>