newsletter 3.0.2 → 3.2.0

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 (259) hide show
  1. checksums.yaml +5 -13
  2. data/.gitignore +6 -0
  3. data/.ruby-version +1 -1
  4. data/Gemfile +17 -5
  5. data/README.md +40 -0
  6. data/app/assets/images/newsletter/BottomRight.gif +0 -0
  7. data/app/assets/images/newsletter/MidRight.gif +0 -0
  8. data/app/assets/images/newsletter/TopCenter.gif +0 -0
  9. data/app/assets/images/newsletter/TopRight.gif +0 -0
  10. data/app/assets/images/newsletter/calendar_date_select/calendar.gif +0 -0
  11. data/app/assets/images/newsletter/iReach_logo.gif +0 -0
  12. data/app/assets/images/newsletter/spacer.gif +0 -0
  13. data/app/assets/images/newsletter/topMid.gif +0 -0
  14. data/app/assets/javascripts/newsletter/application.js +6 -0
  15. data/app/assets/stylesheets/newsletter/admin.css +261 -0
  16. data/app/assets/stylesheets/newsletter/application.css +3 -1
  17. data/app/assets/stylesheets/newsletter/nav.css +68 -0
  18. data/app/assets/stylesheets/newsletter/timepicker.css +54 -0
  19. data/app/controllers/newsletter/application_controller.rb +5 -26
  20. data/app/controllers/newsletter/areas_controller.rb +0 -38
  21. data/app/controllers/newsletter/designs_controller.rb +5 -2
  22. data/app/controllers/newsletter/elements_controller.rb +7 -7
  23. data/app/controllers/newsletter/fields_controller.rb +1 -46
  24. data/app/controllers/newsletter/newsletters_controller.rb +6 -24
  25. data/app/controllers/newsletter/pieces_controller.rb +8 -21
  26. data/app/helpers/newsletter/designs_helper.rb +1 -8
  27. data/app/helpers/newsletter/layout_helper.rb +43 -0
  28. data/app/helpers/newsletter/newsletters_helper.rb +9 -5
  29. data/app/models/newsletter/area.rb +1 -4
  30. data/app/models/newsletter/asset.rb +7 -1
  31. data/app/models/newsletter/design.rb +48 -34
  32. data/app/models/newsletter/element.rb +0 -42
  33. data/app/models/newsletter/field.rb +7 -10
  34. data/app/models/newsletter/field/inline_asset.rb +15 -2
  35. data/app/models/newsletter/newsletter.rb +18 -11
  36. data/app/models/newsletter/piece.rb +20 -24
  37. data/app/views/layouts/newsletter/application.html.erb +20 -116
  38. data/app/views/layouts/newsletter/layout.html.erb +15 -0
  39. data/app/views/newsletter/areas/_area.html.erb +1 -1
  40. data/app/views/newsletter/designs/_area_fields.html.erb +1 -1
  41. data/app/views/newsletter/designs/_form.html.erb +11 -29
  42. data/app/views/newsletter/designs/_newsletter_area.html.erb +2 -2
  43. data/app/views/newsletter/designs/edit.html.erb +3 -6
  44. data/app/views/newsletter/designs/index.html.erb +7 -6
  45. data/app/views/newsletter/designs/new.html.erb +2 -2
  46. data/app/views/newsletter/designs/show.html.erb +5 -5
  47. data/app/views/newsletter/elements/_field_fields.html.erb +12 -25
  48. data/app/views/newsletter/elements/_form.html.erb +38 -34
  49. data/app/views/newsletter/elements/edit.html.erb +2 -5
  50. data/app/views/newsletter/elements/index.html.erb +7 -7
  51. data/app/views/newsletter/elements/new.html.erb +2 -2
  52. data/app/views/newsletter/elements/show.html.erb +5 -5
  53. data/app/views/newsletter/fields/_inline_asset.html.erb +12 -32
  54. data/app/views/newsletter/fields/_text.html.erb +2 -4
  55. data/app/views/newsletter/fields/_text_area.html.erb +2 -7
  56. data/app/views/newsletter/newsletters/_form.html.erb +6 -16
  57. data/app/views/newsletter/newsletters/_head.html.erb +2 -3
  58. data/app/views/newsletter/newsletters/_newsletter.html.erb +11 -6
  59. data/app/views/newsletter/newsletters/archive.html.erb +1 -1
  60. data/app/views/newsletter/newsletters/edit.html.erb +8 -16
  61. data/app/views/newsletter/newsletters/index.html.erb +7 -7
  62. data/app/views/newsletter/newsletters/new.html.erb +2 -2
  63. data/app/views/newsletter/newsletters/show.html.erb +11 -6
  64. data/app/views/newsletter/pieces/_form.html.erb +1 -8
  65. data/app/views/newsletter/pieces/edit.html.erb +2 -4
  66. data/app/views/newsletter/pieces/new.html.erb +3 -5
  67. data/config/locales/newsletters.en.yml +27 -0
  68. data/config/routes.rb +4 -4
  69. data/designs/exports/Example.yml +202 -0
  70. data/designs/exports/example-export.yaml +481 -87
  71. data/lib/deleteable.rb +12 -14
  72. data/lib/newsletter/engine.rb +112 -6
  73. data/lib/newsletter/version.rb +1 -1
  74. data/lib/tasks/newsletter.rake +54 -41
  75. data/newsletter.gemspec +3 -1
  76. data/spec/test_app/.rspec +2 -0
  77. data/spec/test_app/app/controllers/application_controller.rb +5 -0
  78. data/spec/test_app/app/models/ability.rb +8 -0
  79. data/spec/test_app/app/models/user.rb +10 -0
  80. data/spec/test_app/app/views/layouts/application.html.erb +3 -1
  81. data/spec/test_app/config/database.postgres.yml +21 -0
  82. data/spec/test_app/config/initializers/carrierwave.rb +23 -0
  83. data/spec/test_app/config/newsletter.yml +6 -3
  84. data/spec/test_app/config/routes.rb +1 -2
  85. data/spec/test_app/db/migrate/20131222171230_create_users.rb +13 -0
  86. data/spec/test_app/db/schema.rb +13 -2
  87. data/spec/test_app/features/newsletter_management.feature +39 -0
  88. data/spec/test_app/features/piece_management.feature +20 -0
  89. data/spec/test_app/features/step_definitions/debugging_steps.rb +3 -0
  90. data/spec/test_app/features/step_definitions/design_steps.rb +3 -0
  91. data/spec/test_app/features/step_definitions/login_steps.rb +4 -0
  92. data/spec/test_app/features/step_definitions/newsletter_steps.rb +24 -0
  93. data/spec/test_app/features/step_definitions/piece_steps.rb +26 -0
  94. data/{features → spec/test_app/features}/step_definitions/webrat_steps.rb +10 -6
  95. data/spec/test_app/features/support/env.rb +36 -0
  96. data/spec/test_app/features/support/functions.rb +3 -0
  97. data/{features → spec/test_app/features}/support/paths.rb +10 -1
  98. data/spec/test_app/lib/debugging.rb +61 -0
  99. data/spec/test_app/script/full_suite +44 -0
  100. data/spec/test_app/script/rspec_multi_db +26 -0
  101. data/spec/test_app/spec/controllers/newsletter/pieces_controller_spec.rb +175 -0
  102. data/spec/test_app/spec/factories/_functions.rb +19 -0
  103. data/spec/test_app/spec/factories/assets.rb +8 -0
  104. data/spec/test_app/spec/factories/designs.rb +1 -1
  105. data/spec/test_app/spec/factories/newsletters.rb +68 -6
  106. data/spec/test_app/spec/factories/pieces.rb +8 -0
  107. data/spec/test_app/spec/factories/users.rb +13 -0
  108. data/spec/test_app/spec/features/newsletter/design_spec.rb +175 -0
  109. data/spec/test_app/spec/features/newsletter/element_spec.rb +53 -0
  110. data/spec/test_app/spec/features/newsletter/newsletter_spec.rb +99 -3
  111. data/spec/test_app/spec/helpers/newsletter/newsletters_helper_spec.rb +65 -0
  112. data/spec/test_app/spec/models/newsletter/asset_spec.rb +23 -0
  113. data/spec/test_app/spec/models/newsletter/design_spec.rb +23 -2
  114. data/spec/test_app/spec/models/newsletter/element_spec.rb +4 -0
  115. data/spec/test_app/spec/models/newsletter/inline_asset_spec.rb +43 -0
  116. data/spec/test_app/spec/models/newsletter/newsletter_spec.rb +102 -2
  117. data/spec/test_app/spec/models/newsletter/piece_spec.rb +33 -0
  118. data/spec/test_app/spec/rails_helper.rb +82 -0
  119. data/spec/test_app/spec/routing/newsletter/pieces_routing_spec.rb +28 -0
  120. data/spec/test_app/spec/spec_helper.rb +73 -64
  121. data/spec/test_app/spec/support/carrierwave.rb +7 -0
  122. data/spec/test_app/spec/support/continuances.rb +18 -0
  123. data/spec/test_app/spec/support/files/iReach_logo.gif +0 -0
  124. data/spec/test_app/spec/support/files/test.pdf +0 -0
  125. data/spec/test_app/spec/support/functions.rb +3 -0
  126. metadata +145 -726
  127. data/README +0 -243
  128. data/README.rdoc +0 -3
  129. data/app/views/newsletter/elements/_newsletter_field.html.erb +0 -37
  130. data/features/support/env.rb +0 -17
  131. data/lib/tasks/newsletter_tasks.rake +0 -4
  132. data/lib/tasks/rspec.rake +0 -158
  133. data/spec/spec_helper.rb +0 -55
  134. data/spec/test_app/db/structure.sql +0 -12
  135. data/spec/test_app/newsletters/designs/My_Design/elements/_left_column_article.html.erb +0 -10
  136. data/spec/test_app/newsletters/designs/My_Design/elements/_left_column_image.html.erb +0 -2
  137. data/spec/test_app/newsletters/designs/My_Design/elements/_right_column_article.html.erb +0 -5
  138. data/spec/test_app/newsletters/designs/My_Design/elements/_right_column_headline.html.erb +0 -1
  139. data/spec/test_app/newsletters/designs/My_Design/elements/_right_column_image.html.erb +0 -1
  140. data/spec/test_app/newsletters/designs/My_Design/elements/_right_column_paragraph.html.erb +0 -3
  141. data/spec/test_app/newsletters/designs/My_Design/layout.html.erb +0 -66
  142. data/spec/test_app/newsletters/designs/Testo_Changeo/elements/_left_column_article.html.erb +0 -10
  143. data/spec/test_app/newsletters/designs/Testo_Changeo/layout.html.erb +0 -66
  144. data/spec/test_app/newsletters/designs/empower_innovative_e-business/elements/_left_column_article.html.erb +0 -10
  145. data/spec/test_app/newsletters/designs/empower_innovative_e-business/elements/_left_column_image.html.erb +0 -2
  146. data/spec/test_app/newsletters/designs/empower_innovative_e-business/elements/_right_column_article.html.erb +0 -5
  147. data/spec/test_app/newsletters/designs/empower_innovative_e-business/elements/_right_column_headline.html.erb +0 -1
  148. data/spec/test_app/newsletters/designs/empower_innovative_e-business/elements/_right_column_image.html.erb +0 -1
  149. data/spec/test_app/newsletters/designs/empower_innovative_e-business/elements/_right_column_paragraph.html.erb +0 -3
  150. data/spec/test_app/newsletters/designs/empower_innovative_e-business/layout.html.erb +0 -66
  151. data/spec/test_app/newsletters/designs/enable_extensible_systems/elements/_left_column_article.html.erb +0 -10
  152. data/spec/test_app/newsletters/designs/enable_extensible_systems/elements/_left_column_image.html.erb +0 -2
  153. data/spec/test_app/newsletters/designs/enable_extensible_systems/elements/_right_column_article.html.erb +0 -5
  154. data/spec/test_app/newsletters/designs/enable_extensible_systems/elements/_right_column_headline.html.erb +0 -1
  155. data/spec/test_app/newsletters/designs/enable_extensible_systems/elements/_right_column_image.html.erb +0 -1
  156. data/spec/test_app/newsletters/designs/enable_extensible_systems/elements/_right_column_paragraph.html.erb +0 -3
  157. data/spec/test_app/newsletters/designs/enable_extensible_systems/layout.html.erb +0 -66
  158. data/spec/test_app/newsletters/designs/engage_innovative_schemas/elements/_left_column_article.html.erb +0 -10
  159. data/spec/test_app/newsletters/designs/engage_innovative_schemas/elements/_left_column_image.html.erb +0 -2
  160. data/spec/test_app/newsletters/designs/engage_innovative_schemas/elements/_right_column_article.html.erb +0 -5
  161. data/spec/test_app/newsletters/designs/engage_innovative_schemas/elements/_right_column_headline.html.erb +0 -1
  162. data/spec/test_app/newsletters/designs/engage_innovative_schemas/elements/_right_column_image.html.erb +0 -1
  163. data/spec/test_app/newsletters/designs/engage_innovative_schemas/elements/_right_column_paragraph.html.erb +0 -3
  164. data/spec/test_app/newsletters/designs/engage_innovative_schemas/layout.html.erb +0 -67
  165. data/spec/test_app/newsletters/designs/envisioneer_seamless_ROI/elements/_left_column_article.html.erb +0 -10
  166. data/spec/test_app/newsletters/designs/envisioneer_seamless_ROI/elements/_left_column_image.html.erb +0 -2
  167. data/spec/test_app/newsletters/designs/envisioneer_seamless_ROI/elements/_right_column_article.html.erb +0 -5
  168. data/spec/test_app/newsletters/designs/envisioneer_seamless_ROI/elements/_right_column_headline.html.erb +0 -1
  169. data/spec/test_app/newsletters/designs/envisioneer_seamless_ROI/elements/_right_column_image.html.erb +0 -1
  170. data/spec/test_app/newsletters/designs/envisioneer_seamless_ROI/elements/_right_column_paragraph.html.erb +0 -3
  171. data/spec/test_app/newsletters/designs/envisioneer_seamless_ROI/layout.html.erb +0 -66
  172. data/spec/test_app/newsletters/designs/harness_integrated_partnerships/elements/_left_column_article.html.erb +0 -10
  173. data/spec/test_app/newsletters/designs/harness_integrated_partnerships/elements/_left_column_image.html.erb +0 -2
  174. data/spec/test_app/newsletters/designs/harness_integrated_partnerships/elements/_right_column_article.html.erb +0 -5
  175. data/spec/test_app/newsletters/designs/harness_integrated_partnerships/elements/_right_column_headline.html.erb +0 -1
  176. data/spec/test_app/newsletters/designs/harness_integrated_partnerships/elements/_right_column_image.html.erb +0 -1
  177. data/spec/test_app/newsletters/designs/harness_integrated_partnerships/elements/_right_column_paragraph.html.erb +0 -3
  178. data/spec/test_app/newsletters/designs/harness_integrated_partnerships/layout.html.erb +0 -66
  179. data/spec/test_app/newsletters/designs/innovate_24_365_functionalities/elements/_left_column_article.html.erb +0 -10
  180. data/spec/test_app/newsletters/designs/innovate_24_365_functionalities/elements/_left_column_image.html.erb +0 -2
  181. data/spec/test_app/newsletters/designs/innovate_24_365_functionalities/elements/_right_column_article.html.erb +0 -5
  182. data/spec/test_app/newsletters/designs/innovate_24_365_functionalities/elements/_right_column_headline.html.erb +0 -1
  183. data/spec/test_app/newsletters/designs/innovate_24_365_functionalities/elements/_right_column_image.html.erb +0 -1
  184. data/spec/test_app/newsletters/designs/innovate_24_365_functionalities/elements/_right_column_paragraph.html.erb +0 -3
  185. data/spec/test_app/newsletters/designs/innovate_24_365_functionalities/layout.html.erb +0 -66
  186. data/spec/test_app/newsletters/designs/integrate_mission-critical_systems/elements/_left_column_article.html.erb +0 -10
  187. data/spec/test_app/newsletters/designs/integrate_mission-critical_systems/layout.html.erb +0 -66
  188. data/spec/test_app/newsletters/designs/iterate_real-time_web-readiness/elements/_left_column_article.html.erb +0 -10
  189. data/spec/test_app/newsletters/designs/iterate_real-time_web-readiness/elements/_left_column_image.html.erb +0 -2
  190. data/spec/test_app/newsletters/designs/iterate_real-time_web-readiness/elements/_right_column_article.html.erb +0 -5
  191. data/spec/test_app/newsletters/designs/iterate_real-time_web-readiness/elements/_right_column_headline.html.erb +0 -1
  192. data/spec/test_app/newsletters/designs/iterate_real-time_web-readiness/elements/_right_column_image.html.erb +0 -1
  193. data/spec/test_app/newsletters/designs/iterate_real-time_web-readiness/elements/_right_column_paragraph.html.erb +0 -3
  194. data/spec/test_app/newsletters/designs/iterate_real-time_web-readiness/layout.html.erb +0 -67
  195. data/spec/test_app/newsletters/designs/iterate_strategic_architectures/elements/_left_column_article.html.erb +0 -10
  196. data/spec/test_app/newsletters/designs/iterate_strategic_architectures/elements/_left_column_image.html.erb +0 -2
  197. data/spec/test_app/newsletters/designs/iterate_strategic_architectures/elements/_right_column_article.html.erb +0 -5
  198. data/spec/test_app/newsletters/designs/iterate_strategic_architectures/elements/_right_column_headline.html.erb +0 -1
  199. data/spec/test_app/newsletters/designs/iterate_strategic_architectures/elements/_right_column_image.html.erb +0 -1
  200. data/spec/test_app/newsletters/designs/iterate_strategic_architectures/elements/_right_column_paragraph.html.erb +0 -3
  201. data/spec/test_app/newsletters/designs/iterate_strategic_architectures/layout.html.erb +0 -67
  202. data/spec/test_app/newsletters/designs/orchestrate_sticky_communities/elements/_left_column_article.html.erb +0 -10
  203. data/spec/test_app/newsletters/designs/orchestrate_sticky_communities/elements/_left_column_image.html.erb +0 -2
  204. data/spec/test_app/newsletters/designs/orchestrate_sticky_communities/elements/_right_column_article.html.erb +0 -5
  205. data/spec/test_app/newsletters/designs/orchestrate_sticky_communities/elements/_right_column_headline.html.erb +0 -1
  206. data/spec/test_app/newsletters/designs/orchestrate_sticky_communities/elements/_right_column_image.html.erb +0 -1
  207. data/spec/test_app/newsletters/designs/orchestrate_sticky_communities/elements/_right_column_paragraph.html.erb +0 -3
  208. data/spec/test_app/newsletters/designs/orchestrate_sticky_communities/layout.html.erb +0 -67
  209. data/spec/test_app/newsletters/designs/repurpose_impactful_partnerships/elements/_left_column_article.html.erb +0 -10
  210. data/spec/test_app/newsletters/designs/repurpose_impactful_partnerships/elements/_left_column_image.html.erb +0 -2
  211. data/spec/test_app/newsletters/designs/repurpose_impactful_partnerships/elements/_right_column_article.html.erb +0 -5
  212. data/spec/test_app/newsletters/designs/repurpose_impactful_partnerships/elements/_right_column_headline.html.erb +0 -1
  213. data/spec/test_app/newsletters/designs/repurpose_impactful_partnerships/elements/_right_column_image.html.erb +0 -1
  214. data/spec/test_app/newsletters/designs/repurpose_impactful_partnerships/elements/_right_column_paragraph.html.erb +0 -3
  215. data/spec/test_app/newsletters/designs/repurpose_impactful_partnerships/layout.html.erb +0 -67
  216. data/spec/test_app/newsletters/designs/revolutionize_robust_partnerships/elements/_left_column_article.html.erb +0 -10
  217. data/spec/test_app/newsletters/designs/revolutionize_robust_partnerships/elements/_left_column_image.html.erb +0 -2
  218. data/spec/test_app/newsletters/designs/revolutionize_robust_partnerships/elements/_right_column_article.html.erb +0 -5
  219. data/spec/test_app/newsletters/designs/revolutionize_robust_partnerships/elements/_right_column_headline.html.erb +0 -1
  220. data/spec/test_app/newsletters/designs/revolutionize_robust_partnerships/elements/_right_column_image.html.erb +0 -1
  221. data/spec/test_app/newsletters/designs/revolutionize_robust_partnerships/elements/_right_column_paragraph.html.erb +0 -3
  222. data/spec/test_app/newsletters/designs/revolutionize_robust_partnerships/layout.html.erb +0 -66
  223. data/spec/test_app/newsletters/designs/revolutionize_turn-key_bandwidth/elements/_left_column_article.html.erb +0 -10
  224. data/spec/test_app/newsletters/designs/revolutionize_turn-key_bandwidth/elements/_left_column_image.html.erb +0 -2
  225. data/spec/test_app/newsletters/designs/revolutionize_turn-key_bandwidth/elements/_right_column_article.html.erb +0 -5
  226. data/spec/test_app/newsletters/designs/revolutionize_turn-key_bandwidth/elements/_right_column_headline.html.erb +0 -1
  227. data/spec/test_app/newsletters/designs/revolutionize_turn-key_bandwidth/elements/_right_column_image.html.erb +0 -1
  228. data/spec/test_app/newsletters/designs/revolutionize_turn-key_bandwidth/elements/_right_column_paragraph.html.erb +0 -3
  229. data/spec/test_app/newsletters/designs/revolutionize_turn-key_bandwidth/layout.html.erb +0 -66
  230. data/spec/test_app/newsletters/designs/scale_ubiquitous_synergies/elements/_left_column_article.html.erb +0 -10
  231. data/spec/test_app/newsletters/designs/scale_ubiquitous_synergies/elements/_left_column_image.html.erb +0 -2
  232. data/spec/test_app/newsletters/designs/scale_ubiquitous_synergies/elements/_right_column_article.html.erb +0 -5
  233. data/spec/test_app/newsletters/designs/scale_ubiquitous_synergies/elements/_right_column_headline.html.erb +0 -1
  234. data/spec/test_app/newsletters/designs/scale_ubiquitous_synergies/elements/_right_column_image.html.erb +0 -1
  235. data/spec/test_app/newsletters/designs/scale_ubiquitous_synergies/elements/_right_column_paragraph.html.erb +0 -3
  236. data/spec/test_app/newsletters/designs/scale_ubiquitous_synergies/layout.html.erb +0 -67
  237. data/spec/test_app/newsletters/designs/syndicate_visionary_metrics/elements/_left_column_article.html.erb +0 -10
  238. data/spec/test_app/newsletters/designs/syndicate_visionary_metrics/elements/_left_column_image.html.erb +0 -2
  239. data/spec/test_app/newsletters/designs/syndicate_visionary_metrics/elements/_right_column_article.html.erb +0 -5
  240. data/spec/test_app/newsletters/designs/syndicate_visionary_metrics/elements/_right_column_headline.html.erb +0 -1
  241. data/spec/test_app/newsletters/designs/syndicate_visionary_metrics/elements/_right_column_image.html.erb +0 -1
  242. data/spec/test_app/newsletters/designs/syndicate_visionary_metrics/elements/_right_column_paragraph.html.erb +0 -3
  243. data/spec/test_app/newsletters/designs/syndicate_visionary_metrics/layout.html.erb +0 -66
  244. data/spec/test_app/newsletters/designs/target_enterprise_functionalities/elements/_left_column_article.html.erb +0 -10
  245. data/spec/test_app/newsletters/designs/target_enterprise_functionalities/elements/_left_column_image.html.erb +0 -2
  246. data/spec/test_app/newsletters/designs/target_enterprise_functionalities/elements/_right_column_article.html.erb +0 -5
  247. data/spec/test_app/newsletters/designs/target_enterprise_functionalities/elements/_right_column_headline.html.erb +0 -1
  248. data/spec/test_app/newsletters/designs/target_enterprise_functionalities/elements/_right_column_image.html.erb +0 -1
  249. data/spec/test_app/newsletters/designs/target_enterprise_functionalities/elements/_right_column_paragraph.html.erb +0 -3
  250. data/spec/test_app/newsletters/designs/target_enterprise_functionalities/layout.html.erb +0 -67
  251. data/spec/test_app/newsletters/designs/transition_enterprise_systems/elements/_left_column_article.html.erb +0 -10
  252. data/spec/test_app/newsletters/designs/transition_enterprise_systems/layout.html.erb +0 -66
  253. data/spec/test_app/newsletters/designs/utilize_one-to-one_schemas/elements/_left_column_article.html.erb +0 -10
  254. data/spec/test_app/newsletters/designs/utilize_one-to-one_schemas/elements/_left_column_image.html.erb +0 -2
  255. data/spec/test_app/newsletters/designs/utilize_one-to-one_schemas/elements/_right_column_article.html.erb +0 -5
  256. data/spec/test_app/newsletters/designs/utilize_one-to-one_schemas/elements/_right_column_headline.html.erb +0 -1
  257. data/spec/test_app/newsletters/designs/utilize_one-to-one_schemas/elements/_right_column_image.html.erb +0 -1
  258. data/spec/test_app/newsletters/designs/utilize_one-to-one_schemas/elements/_right_column_paragraph.html.erb +0 -3
  259. data/spec/test_app/newsletters/designs/utilize_one-to-one_schemas/layout.html.erb +0 -66
@@ -1,12 +1,9 @@
1
- <% title "Edit Element" %>
1
+ <%= title "Edit Element '#{@element.name}'" %>
2
2
 
3
3
  <%= render :partial => 'form' %>
4
4
 
5
5
  <%= content_for :page_navigation do %>
6
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>
7
+ <%= link_to "View All", design_elements_path(@design), :class => 'button' %>
11
8
  </div>
12
9
  <% end %>
@@ -1,4 +1,4 @@
1
- <% title "Elements" %>
1
+ <%= title "Elements" %>
2
2
 
3
3
  <table class="list" cellpadding="1" cellspacing="0">
4
4
  <tr class="title">
@@ -11,14 +11,14 @@
11
11
  <% end %>
12
12
  </tr>
13
13
  <% for element in @elements %>
14
- <tr class="<%= cycle('odd','even') %>">
14
+ <tr class="<%= cycle('odd','even') %>" id="element_<%= element.id %>">
15
15
  <td><%=h element.name %></td>
16
16
  <td><%=h element.description %></td>
17
17
  <% if::Newsletter.use_show_for_resources %>
18
- <td><%= link_to "View", element, :class => 'button' %><div class="linkbuttonEnding"></div></td>
18
+ <td><%= link_to "View", element, :class => 'button' %></td>
19
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>
20
+ <td><%= link_to "Edit", edit_element_path(element), :class => 'button' %></td>
21
+ <td><%= link_to "Delete", element, :confirm => 'Are you sure?', :method => :delete, :class => 'button' %></td>
22
22
  </tr>
23
23
  <% end %>
24
24
  </table>
@@ -26,7 +26,7 @@
26
26
 
27
27
  <%= content_for :page_navigation do %>
28
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>
29
+ <%= link_to "Back to Design", edit_design_path(@design), :class => 'button' %>
30
+ <%= link_to "New Newsletter Element", new_design_element_path(@design), :class => 'button' %>
31
31
  </div>
32
32
  <% end %>
@@ -1,9 +1,9 @@
1
- <% title "New Element" %>
1
+ <%= title "New Element" %>
2
2
 
3
3
  <%= render :partial => 'form' %>
4
4
 
5
5
  <%= content_for :page_navigation do %>
6
6
  <div>
7
- <%= link_to "Back to List", design_elements_path(@design), :class => 'button' %><div class="linkbuttonEnding"></div>
7
+ <%= link_to "Back to List", design_elements_path(@design), :class => 'button' %>
8
8
  </div>
9
9
  <% end %>
@@ -1,4 +1,4 @@
1
- <% title "Element" %>
1
+ <%= title "Element" %>
2
2
 
3
3
  <p>
4
4
  <strong>Name:</strong>
@@ -15,8 +15,8 @@
15
15
 
16
16
  <%= content_for :page_navigation do %>
17
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>
18
+ <%= link_to "Edit", edit_element_path(@element), :class => 'button' %>
19
+ <%= link_to "Delete", @element, :confirm => 'Are you sure?', :method => :delete, :class => 'button' %>
20
+ <%= link_to "View All", design_elements_path(@design), :class => 'button' %>
21
21
  </div>
22
- <% end %>
22
+ <% end %>
@@ -1,36 +1,16 @@
1
- <tr valign="top">
2
- <td colspan="2">
3
- <div class="newsletter_parts_group">
1
+ <div class="newsletter_parts_group" id="piece_field_values_attributes_<%= field.id %>">
4
2
  <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">
3
+ Either enter a url to your asset or upload a file.<br />
12
4
  <% unless field.description.blank? %>
13
- <%= field.description %>
5
+ <%= field.description %><br />
14
6
  <% 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>
7
+ <% if field_value.url.present? && field_value.is_image? %>
8
+ <%= image_tag field_value.url, id: "piece_field_values_image_#{field.id}" %><br />
9
+ <% end %>
10
+ <%= label_tag 'piece[field_values_attributes]['+field.id.to_s+'][url]', "Url:" %>
11
+ <%= text_field_tag 'piece[field_values_attributes]['+field.id.to_s+'][url]', field_value.url, :style=>'width: 590px;' %><br />
12
+ <label for="asset">Upload An Asset:</label>
13
+ <%= file_field_tag 'piece[field_values_attributes]['+field.id.to_s+'][uploaded_data]' %>
14
+ <%= hidden_field_tag 'piece[field_values_attributes]['+field.id.to_s+'][asset_id]', field_value.asset_id %>
15
+ <%= link_to "Delete Asset", "#", onclick: "if(confirm('Are you sure?')) {jQuery('#piece_field_values_image_#{field.id}').hide(); jQuery('#piece_field_values_attributes_#{field.id}_url').val('')}; return false;", class: "button" %>
34
16
  </div>
35
- </td>
36
- </tr>
@@ -1,4 +1,2 @@
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>
1
+ <%= label_tag 'piece[field_values_attributes]['+field.id.to_s+'][text]', "#{field.label}:" %>
2
+ <%= text_field_tag 'piece[field_values_attributes]['+field.id.to_s+'][text]', field.value_for_piece(piece,false), :style=>'width: 620px;' %><br />
@@ -1,7 +1,2 @@
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>
1
+ <%= label_tag 'piece[field_values_attributes]['+field.id.to_s+'][text_area]', "#{field.label}:" %>
2
+ <%= text_area_tag 'piece[field_values_attributes]['+field.id.to_s+'][text_area]', field.value_for_piece(piece), {:cols => 74, :rows => 30} %><br />
@@ -1,21 +1,11 @@
1
1
  <%= form_for(@newsletter) do |f| %>
2
2
  <%= f.error_messages %>
3
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
4
  <% 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
-
5
+ <%= f.label :design %>
6
+ <%= f.select :design_id, @designs.collect {|design| [ design.name, design.id ] } %><br />
7
+ <% end %>
8
+ <%= f.label :name %>
9
+ <%= f.text_field :name, :style=> 'float: left; margin-right: 10px;' %>
10
+ <%= f.submit "Save", :class => "button" %><div style="clear: both;"></div>
21
11
  <% end %>
@@ -1,8 +1,7 @@
1
1
  <% unless is_email? %>
2
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>
3
+ <%= javascript_include_tag 'newsletter/application' %>
4
+ <%= yield :head_content %>
6
5
 
7
6
  <style>
8
7
  .edit_link {
@@ -1,6 +1,11 @@
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 %>
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml">
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5
+ <title><%= @newsletter.name %></title>
6
+ <%= render 'newsletter/newsletters/head' %>
7
+ </head>
8
+ <body>
9
+ <%= render :inline => File.readlines(@newsletter.design.view_path).join, :locals => @newsletter.locals %>
10
+ </body>
11
+ </html>
@@ -1,4 +1,4 @@
1
- <% title "Newsletter Archive" %>
1
+ <%= title "Newsletter Archive" %>
2
2
 
3
3
  <ul style="margin-bottom: 100px;">
4
4
  <% @newsletters.published.each do |newsletter| %>
@@ -1,21 +1,16 @@
1
- <% title "Edit Newsletter" %>
2
-
1
+ <%= title "Edit Newsletter" %>
2
+ <label>Design</label>
3
+ <div style="font-size: 11pt; padding-top: 5px;"><%= @newsletter.design.name %> </div><br />
3
4
  <%= render :partial => 'form' %>
4
-
5
- <h3>Design - <%= @newsletter.design.name %> </h3>
6
5
  <% if @newsletter.design %>
7
- <table cellpadding="2" cellspacing="0" border="0">
8
6
  <% @newsletter.areas.each do |area| %>
9
- <%= form_tag new_newsletter_piece_path(@newsletter), :method => :get do %>
7
+ <%= form_tag new_newsletter_piece_path(@newsletter), :method => :get, :id => "add_element_for_area_#{area.id}" do %>
10
8
  <%= 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>
9
+ <%= label_tag "area_#{area.id}_element_id", "Area: #{area.name.humanize}" %>
10
+ <%= select_tag 'element_id', options_from_collection_for_select(area.elements, 'id', 'name'), :style=>'margin-right: 10px;', :id => "area_#{area.id}_element_id" %>
11
+ <%= submit_tag 'Add Element', :class => 'button', :id => "add_element_#{area.id}" %><br />
16
12
  <% end %>
17
13
  <% end %>
18
- </table>
19
14
 
20
15
  <p><b>Newsletter Window Size: </b>
21
16
  <% [[640,480],[800,600],[1024,768],[1280,1024],[1600,1200]].each do |width,height| %>
@@ -29,9 +24,6 @@
29
24
 
30
25
  <%= content_for :page_navigation do %>
31
26
  <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>
27
+ <%= link_to "Back", newsletters_path, :class => 'button' %>
36
28
  </div>
37
29
  <% end %>
@@ -1,6 +1,6 @@
1
- <% title "Newsletters" %>
1
+ <%= title "Newsletters" %>
2
2
  <div>
3
- <%= link_to "New Newsletter", new_newsletter_path, :class => 'button' %><div class="linkbuttonEnding"></div>
3
+ <%= link_to "New Newsletter", new_newsletter_path, :class => 'button' %>
4
4
  <div><br /><br /><%= will_paginate @newsletters %></div>
5
5
  <table class="list" cellpadding="1" cellspacing="0">
6
6
  <tr class="title">
@@ -11,11 +11,11 @@
11
11
  <tr class="<%= cycle('odd','even') %>">
12
12
  <td><%=h newsletter.name %></td>
13
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>
14
+ <td><%= link_to 'Un&ndash;Publish'.html_safe, unpublish_newsletter_path(newsletter), :class=>"button" %></td>
15
+ <% else %><td><%= link_to 'Publish', publish_newsletter_path(newsletter), :class=>"button" %></td>
16
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>
17
+ <td><%= link_to "Edit", edit_newsletter_path(newsletter), :class => 'button' %></td>
18
+ <td><%= link_to "Delete", newsletter, :confirm => 'Are you sure?', :method => :delete, :class => 'button' %></td>
19
19
  </tr>
20
20
  <% end %>
21
21
  </table>
@@ -23,7 +23,7 @@
23
23
 
24
24
  <%= content_for :page_navigation do %>
25
25
  <div>
26
- <%= link_to "New Newsletter", new_newsletter_path, :class => 'button' %><div class="linkbuttonEnding"></div>
26
+ <%= link_to "New Newsletter", new_newsletter_path, :class => 'button' %>
27
27
  </div>
28
28
  <div><br /><br /><%= will_paginate @newsletters %></div>
29
29
  <% end %>
@@ -1,9 +1,9 @@
1
- <% title "New Newsletter" %>
1
+ <%= title "New Newsletter" %>
2
2
 
3
3
  <%= render :partial => 'form' %>
4
4
 
5
5
  <%= content_for :page_navigation do %>
6
6
  <div>
7
- <%= link_to "Back to List", newsletters_path, :class => 'button' %><div class="linkbuttonEnding"></div>
7
+ <%= link_to "Back to List", newsletters_path, :class => 'button' %>
8
8
  </div>
9
9
  <% end %>
@@ -1,6 +1,11 @@
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 %>
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml">
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5
+ <title><%= @newsletter.name %></title>
6
+ <%= render 'newsletter/newsletters/head' %>
7
+ </head>
8
+ <body>
9
+ <%= render :inline => File.readlines(@newsletter.design.view_path).join, :locals => @newsletter.locals %>
10
+ </body>
11
+ </html>
@@ -1,5 +1,3 @@
1
-
2
- <table cellspacing='1' cellpadding='0' border='0'>
3
1
  <%= form_for(@piece, :html => { :multipart => true }) do |f| %>
4
2
  <%= f.error_messages %>
5
3
  <% @piece.element.fields.each do |field| %>
@@ -7,13 +5,8 @@
7
5
  <%= render :partial => field.form_partial_path, :locals => { :piece => @piece, :field => field, :field_value => field.value_for_piece(@piece) } %>
8
6
 
9
7
  <% end %>
10
- <tr>
11
- <td colspan="2" align="right">
12
8
  <%= f.hidden_field :element_id %>
13
9
  <%= f.hidden_field :area_id %>
14
10
  <%= f.hidden_field :newsletter_id %>
15
- <%= f.submit "Submit", :class => 'button' %><div class="buttonEnding"></div>
16
- </td>
17
- </tr>
11
+ <%= f.submit "Submit", :class => 'button' %>
18
12
  <% end %>
19
- </table>
@@ -1,11 +1,9 @@
1
- <% title "Editing #{ @piece.element.name }" %>
1
+ <%= title "Editing #{ @piece.element.name } in Area: #{ @piece.area.name.humanize }" %>
2
2
  <p><%= @piece.element.description %></p>
3
3
  <%= render :partial => 'form' %>
4
4
 
5
5
 
6
6
  <%= content_for :page_navigation do %>
7
- <div>
8
- <%= link_to 'Back', edit_newsletter_path(@newsletter), :class => 'button' %><div class="linkbuttonEnding"></div>
9
- </div>
7
+ <%= link_to 'Back', edit_newsletter_path(@newsletter), :class => 'button' %>
10
8
  <% end %>
11
9
 
@@ -1,10 +1,8 @@
1
- <% title "New Piece" %>
2
-
1
+ <%= title "New #{ @piece.element.name } in Area: #{ @piece.area.name.humanize }" %>
2
+ <p><%= @piece.element.description %></p>
3
3
  <%= render :partial => 'form' %>
4
4
 
5
5
  <%= content_for :page_navigation do %>
6
- <div>
7
- <%= link_to 'Back', edit_newsletter_path(@newsletter), :class => 'button' %><div class="linkbuttonEnding"></div>
8
- </div>
6
+ <%= link_to 'Back', edit_newsletter_path(@newsletter), :class => 'button' %>
9
7
  <% end %>
10
8
 
@@ -0,0 +1,27 @@
1
+ en:
2
+ activerecord:
3
+ models:
4
+ newsletter/design:
5
+ one: "Design"
6
+ other: "Designs"
7
+ newsletter/element:
8
+ one: "Element"
9
+ other: "Elements"
10
+
11
+ attributes:
12
+ newsletter/design:
13
+ name: "Name"
14
+ description: "Description"
15
+ html_text: "HTML code"
16
+ newsletter/element:
17
+ html_text: "HTML code"
18
+
19
+ errors:
20
+ messages:
21
+ record_invalid: "record is invalid"
22
+
23
+ navigation:
24
+
25
+ helpers:
26
+
27
+ messages:
data/config/routes.rb CHANGED
@@ -7,9 +7,9 @@ Newsletter::Engine.routes.draw do
7
7
  get :editor
8
8
  end
9
9
  collection do
10
- get :short
10
+ get :sort
11
11
  end
12
- resources :pieces, :only => [:index,:new,:create]
12
+ resources :pieces, :only => [:new]
13
13
  end
14
14
  resources :pieces, :only => [:edit,:create,:update,:destroy]
15
15
  resources :designs do
@@ -21,7 +21,7 @@ Newsletter::Engine.routes.draw do
21
21
  match '/newsletters/:id/:mode' => 'newsletters#show', :method => :get, :as => :public_newsletter_mode
22
22
  match '/newsletters/:id/public' => 'newsletters#show', :method => :get, :as => :public_newsletter
23
23
  match '/newsletters/:id' => 'newsletters#show', :method => :get, :as => :newsletter
24
- match '/newsletters' => 'newsletters#index', :method => :get, :as => :newsletter
24
+ match '/newsletters' => 'newsletters#index', :method => :get, :as => :newsletters
25
25
  root :to => 'newsletters#index'
26
26
  end
27
27
 
@@ -30,4 +30,4 @@ Rails.application.routes.draw do
30
30
  match '/newsletters/archive' => 'newsletter/newsletters#archive', :method => :get, :as => :newsletter_archive
31
31
  match '/newsletters/:id/:mode' => 'newsletter/newsletters#show', :method => :get, :as => :public_newsletter_mode
32
32
  match '/newsletters/:id/public' => 'newsletter/newsletters#show', :method => :get, :as => :public_newsletter
33
- end
33
+ end
@@ -0,0 +1,202 @@
1
+ ---
2
+ :name: Example Design
3
+ :html_text: ! "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\r\n<html
4
+ xmlns=\"http://www.w3.org/1999/xhtml\">\r\n<head>\r\n<meta http-equiv=\"Content-Type\"
5
+ content=\"text/html; charset=utf-8\" />\r\n<style type=\"text/css\">\r\nh1{font-family:
6
+ Arial Black, Arial, Helvetica, sans-serif; color: #333333; font-size:22px; margin:0;
7
+ padding: 0 0 10px 0; }\r\nh2{font-family: Arial Black, Arial, Helvetica, sans-serif;
8
+ color: #333333; font-size:17px; margin:0; padding: 7px 0 0 0;}\r\nh3 {font-family:
9
+ Arial Black, Arial, Helvetica, sans-serif; color: #0068b3; font-size:9pt; margin:0;
10
+ padding: 0;}\r\np {font-family: Arial, Helvetica, sans-serif; color: #333333; font-size:8.5pt;
11
+ margin-top:4px; margin-bottom:4px;}\r\np.right{font-family: Arial, Helvetica, sans-serif;
12
+ color: #333333; font-size:9.5pt; margin:0 0 15px 0; padding: 0; line-height:1.2em;}\r\na{text-decoration:none;
13
+ color: #0068b3;}\r\na:hover {color: #7fc348;}\r\n.footer {font-size:7pt;}\r\np a
14
+ {font-size: 6pt; font-weight: bold;}\r\np.right a {font-size: 7pt;}\r\nhr{color:
15
+ #7fc348; margin:5px 0; height: 1px; padding: 0;}\r\n.bullet {color: #7fc348; font-weight:
16
+ bold; height: 5px;}\r\np.pullquote {color: #333333; background:url(<%= asset_path(
17
+ \"images/pullquote_bg.gif\") %>) repeat-x ; margin:0; padding: 15px; text-align:center;
18
+ font-style: italic; font-size: 7pt;}\r\np.pullquote a { color: #333333;}\r\np.pullquote
19
+ a:hover {color: #0068b3;}\r\n .wrappertable {\r\n\twidth: 574px;\r\n\tmargin: 0
20
+ 8px;\r\n }\r\n .leftcoltable {\r\n\twidth: 227px;\r\n } \r\n .rightcoltable
21
+ {\r\n\twidth: 347px;\r\n\tpadding-left: 15px;\r\n }\r\n@media only screen and (max-device-width:
22
+ 600px) {\r\n .wrappertable {\r\n\twidth: 95%;\r\n }\r\n .leftcoltable {\r\n\twidth:
23
+ 100%;\r\n }\r\n .rightcoltable {\r\n\twidth: 100%;\r\n }\r\n}\r\n</style>\r\n<%=
24
+ render partial: 'head' %>\r\n</head>\r\n<body>\r\n<table cellspacing=\"0\" cellpadding=\"0\"
25
+ class=\"wrappertable\">\r\n<tr><td colspan=\"2\" align=\"center\">\r\n<h1>Newsletter
26
+ Header Image or Name</h1></td></tr>\r\n<tr bgcolor=\"#0068b3\" cellpadding=\"2\"
27
+ cellspacing=\"2\"><td style=\"font-family:arial,sans-serif;font-size:11px;color:#FFFFFF;\"cellpadding=\"2\"
28
+ cellspacing=\"2\">Your Tagline or Newsletter Description</td><td align=\"right\"
29
+ style=\"font-family:arial,sans-serif;font-size:12px;color:#FFFFFF;\" cellpadding=\"2\"
30
+ cellspacing=\"2\"><%= @newsletter.name %></td></tr>\r\n</table>\r\n\r\n<table cellspacing=\"0\"
31
+ cellpadding=\"0\" class=\"wrappertable\">\r\n<tr valign=\"top\">\r\n<td><table cellspacing=\"0\"
32
+ cellpadding=\"0\" class=\"leftcoltable\" align=\"left\"><tr><td>\r\n<h2>In This
33
+ Issue</h2>\r\n<!-- Left Column -->\r\n<%= render left_column %>\r\n<hr />\r\n<h3><%=
34
+ link_to \"Newsletter Archives\", \"#{::Newsletter.site_url}/newsletters/archive\",
35
+ :target => '_blank' %></h3>\r\n<p>If you missed a previous release or simply want
36
+ to review an article of interest, all our newsletters have been archived. <%= link_to
37
+ \"Read More\", \"#{::Newsletter.site_url}/newsletters/archive\" %></p>\r\n</td></tr></table>\r\n<!--Right
38
+ Column-->\r\n<table cellspacing=\"0\" cellpadding=\"0\" class=\"rightcoltable\"
39
+ align=\"right\"><tr><td>\r\n<%= render right_column %>\r\n</td></tr></table></td>\r\n</tr>\r\n<%
40
+ if is_email? %>\r\n<tr><td><hr /><p class=\"footer\" align=\"center\"><font color=\"#aaaaaa\">To
41
+ remove your address from this newsletter list, please click <%= link_to \"Here\",
42
+ '#UNSUBSCRIBE_URL##' %>.</font></p></td></tr>\r\n<% end %>\r\n<tr><td><hr /><p class=\"footer\"
43
+ align=\"center\"><font color=\"#555555\"><b>My Company, Inc.</b> <span class=\"bullet\">&#8226;</span>
44
+ 123 Test Road <span class=\"bullet\">&#8226;</span> Austin, TX 78230 p:210.495.1171
45
+ <span class=\"bullet\">&#8226;</span> f:555.555.1244 <span class=\"bullet\">&#8226;</span>
46
+ toll free: 1.800.555.5555</font></p></td></tr>\r\n</table>\r\n</body>\r\n</html>"
47
+ :description: This is the simple newsletter template.
48
+ :areas:
49
+ - :name: left_column
50
+ :description: This will house the elements of the 'left_column'
51
+ - :name: right_column
52
+ :description: This will house the elements of the 'right_column'
53
+ :elements:
54
+ - :name: Left Column Article
55
+ :description: Has a heading, an excerpt, and a Read More link
56
+ :html_text: ! '<hr />
57
+
58
+ <h3>
59
+
60
+ <% unless link.url.blank? %>
61
+
62
+ <%= link_to headline, link.url %>
63
+
64
+ <% else %>
65
+
66
+ <%=h headline %>
67
+
68
+ <% end %>
69
+
70
+ </h3>
71
+
72
+
73
+ <p><%= filter(article_excerpt) %> <nobr><%= link_to(''Read More'', link.url) unless
74
+ link.url.blank? %></nobr></p>
75
+
76
+ '
77
+ :areas:
78
+ - :name: left_column
79
+ :description: This will house the elements of the 'left_column'
80
+ :fields:
81
+ - :name: article_excerpt
82
+ :label: Article Excerpt
83
+ :sequence:
84
+ :is_required:
85
+ :description: Article Excerpt
86
+ :type: Newsletter::Field::TextArea
87
+ - :name: link
88
+ :label: Read More Link
89
+ :sequence:
90
+ :is_required:
91
+ :description: Read More Link
92
+ :type: Newsletter::Field::InlineAsset
93
+ - :name: headline
94
+ :label: Headline
95
+ :sequence:
96
+ :is_required:
97
+ :description: Headline
98
+ :type: Newsletter::Field::Text
99
+ - :name: Left Column Image
100
+ :description: Image that is formatted for the left column
101
+ :html_text: ! '<hr />
102
+
103
+ <p><%= image_tag image.url, {:width=>"220", :alt=>image.text } %></p>
104
+
105
+ '
106
+ :areas:
107
+ - :name: left_column
108
+ :description: This will house the elements of the 'left_column'
109
+ :fields:
110
+ - :name: image
111
+ :label: Image
112
+ :sequence: 1
113
+ :is_required: true
114
+ :description: image formatted for left column
115
+ :type: Newsletter::Field::InlineAsset
116
+ - :name: Right column article
117
+ :description: RIght Column Article
118
+ :html_text: ! '<h1><%= headline %></h1>
119
+
120
+ <p class="right">
121
+
122
+ <%= image_tag(image.url, {:width=>"174", :vspace=>"5", :hspace=>"10", :align=>"left",
123
+ :alt => image.text} ) unless image.url.blank? %>
124
+
125
+ <%= filter(article_excerpt) %>
126
+
127
+ <nobr><%= link_to(''Read More'', link.url) unless link.url.blank? %></nobr></p>'
128
+ :areas:
129
+ - :name: right_column
130
+ :description: This will house the elements of the 'right_column'
131
+ :fields:
132
+ - :name: headline
133
+ :label: Headline
134
+ :sequence:
135
+ :is_required:
136
+ :description: Headline
137
+ :type: Newsletter::Field::Text
138
+ - :name: image
139
+ :label: Image
140
+ :sequence:
141
+ :is_required:
142
+ :description: Article Image
143
+ :type: Newsletter::Field::InlineAsset
144
+ - :name: link
145
+ :label: Read More Link
146
+ :sequence:
147
+ :is_required:
148
+ :description: Read More Link
149
+ :type: Newsletter::Field::InlineAsset
150
+ - :name: article_excerpt
151
+ :label: Article Excerpt
152
+ :sequence:
153
+ :is_required:
154
+ :description: Article Excerpt
155
+ :type: Newsletter::Field::TextArea
156
+ - :name: Right Column Headline
157
+ :description: Headline for use in the right column!
158
+ :html_text: <h1><%= headline %></h1>
159
+ :areas:
160
+ - :name: right_column
161
+ :description: This will house the elements of the 'right_column'
162
+ :fields:
163
+ - :name: headline
164
+ :label: Headline
165
+ :sequence:
166
+ :is_required:
167
+ :description: Headline
168
+ :type: Newsletter::Field::Text
169
+ - :name: Right Column Image
170
+ :description: Image for use in the right column
171
+ :html_text: ! '<%= image_tag image.url, {:width=>"320", :alt=>image.text, :style=>"margin:0;
172
+ padding: 15px 0 0 0;"} %>'
173
+ :areas:
174
+ - :name: right_column
175
+ :description: This will house the elements of the 'right_column'
176
+ :fields:
177
+ - :name: image
178
+ :label: Image
179
+ :sequence:
180
+ :is_required:
181
+ :description: Right Column Image
182
+ :type: Newsletter::Field::InlineAsset
183
+ - :name: Right Column Paragraph
184
+ :description: paragraph for use in the right column, may contain a link
185
+ :html_text: ! "<p class=\"right\">\n\t<%= filter(body) %> <%= link_to 'Read More',
186
+ link.url unless link.url.blank? %>\n</p>"
187
+ :areas:
188
+ - :name: right_column
189
+ :description: This will house the elements of the 'right_column'
190
+ :fields:
191
+ - :name: link
192
+ :label: Link
193
+ :sequence:
194
+ :is_required:
195
+ :description: Link
196
+ :type: Newsletter::Field::InlineAsset
197
+ - :name: body
198
+ :label: Body
199
+ :sequence:
200
+ :is_required:
201
+ :description: Body
202
+ :type: Newsletter::Field::TextArea