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
@@ -3,110 +3,25 @@
3
3
  <head>
4
4
  <!-- iReach template -->
5
5
  <title><%= h(yield(:title) || "iReach Newsletter Manager") %></title>
6
- <link rel="stylesheet" href="https://code.jquery.com/ui/1.10.3/themes/le-frog/jquery-ui.css">
7
- <script src="/javascripts/jquery.js" type="text/javascript"></script>
8
- <script src="/javascripts/jquery_ujs.js" type="text/javascript"></script>
9
- <script src="/javascripts/jquery-ui-1.10.3.custom.js" type="text/javascript"></script>
6
+ <%= stylesheet_link_tag "newsletter/application", :media => "all" %>
7
+ <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/themes/le-frog/jquery-ui.css" media="screen" rel="stylesheet" type="text/css" />
8
+ <%= javascript_include_tag "newsletter/application" %>
10
9
  <%= csrf_meta_tags %>
11
-
12
- <link href="/stylesheets/nav.css" media="screen" rel="stylesheet" type="text/css" />
13
- <link href="/stylesheets/admin.css" media="screen" rel="stylesheet" type="text/css" />
14
-
15
- <% begin %>
16
- <% if admin_nav_menu.present? %>
17
- <script>
18
- function showMenu(id, id2) {
19
- <% for menuitem in admin_nav_menu %>
20
- <% if menuitem.admin_menu && menuitem.admin_menu.length > 0 && menuitem.is_visible %>
21
- elem = document.getElementById("menu_<%= menuitem.id %>")
22
- if (elem) elem.style.display = "none";
23
- <% for submenuitem in menuitem.admin_menu.order("menu_order ASC") %>
24
- <% if submenuitem.admin_menu && submenuitem.admin_menu.length > 0 && submenuitem.is_visible %>
25
- elem = document.getElementById("menu_<%= submenuitem.id %>")
26
- if (elem) elem.style.display = "none";
27
- <% end %>
28
- <% end %>
29
- <% end %>
30
- <% end %>
31
- document.getElementById("menu_"+id).style.display = "inline";
32
- if (id2) document.getElementById("menu_"+id2).style.display = "inline";
33
- }
34
- </script>
35
- <% end %>
36
- <% rescue => e %>
37
- <!-- Error building JS Menu <%= e.message %> <%= e.backtrace.join("\n") %> -->
38
- <% end %>
39
-
40
- <%= content_for :head %>
10
+ <%= yield :head %>
41
11
  </head>
42
- <body>
43
-
44
-
45
-
46
- <table width="100%" border="0" cellspacing="0" cellpadding="0">
47
- <tr>
48
- <td><img src="/images/1topLeft.gif" width="269" height="85" /></td>
49
- <td width="100%" align="left" background="/images/topMid.gif"><img src="/images/1topMidR.gif" width="435" height="85" /></td>
50
- <td align="right"><img src="/images/1topRight.gif" width="62" height="85" /></td>
51
- </tr>
52
- </table>
53
-
54
-
55
- <table width="100%" border="0" cellspacing="0" cellpadding="0">
56
-
57
- <tr>
58
- <td valign="top" bgcolor="#FFFFFF">
59
- <table border="0" cellspacing="0" cellpadding="0" class="menu">
60
- <tr>
61
- <td valign="top"><img src="/images/menuMainLeft.gif" width="7" height="257" /></td>
62
- <td valign="top" class="table-bk">
63
- <!-- Start Admin Menu <%= @admin_nav_menu.inspect %> -->
64
- <% begin %>
65
- <% if admin_nav_menu.present? %>
66
- <% for menuitem in admin_nav_menu %>
67
- <% if menuitem.admin_menu && menuitem.admin_menu.length > 0 && menuitem.is_visible && menuitem.authorized(session[:admin][:user_id]) %>
68
- <span class="category" onClick="javascript:showMenu(<%= menuitem.id %>, 0)" style="cursor:pointer"><%= menuitem.description %></span><br/>
69
- <div id="menu_<%= menuitem.id %>" style="display:<%= (params[:menu_id].to_i == menuitem.id) ? 'inline' : 'none' %>">
70
- <% for submenuitem in menuitem.admin_menu %>
71
- <% if submenuitem.is_visible and submenuitem.authorized(session[:admin][:user_id]) %>
72
- <% if submenuitem.admin_menu && submenuitem.admin_menu.length > 0 && submenuitem.is_visible && submenuitem.authorized(session[:admin][:user_id]) %>
73
- &nbsp;&nbsp;&nbsp;<span class="menuSM" onClick="javascript:showMenu(<%= menuitem.id %>, <%= submenuitem.id %>)" style="cursor:pointer"><%= submenuitem.description %></span><br/>
74
- <div id="menu_<%= submenuitem.id %>" style="display:<%= (params[:submenu_id].to_i == submenuitem.id) ? 'inline' : 'none' %>">
75
- <% for subsubmenuitem in submenuitem.admin_menu %>
76
- <% if subsubmenuitem.is_visible and subsubmenuitem.authorized(session[:admin][:user_id]) %>
77
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="menuSM"><%= link_to menuitem.description, "/#{submenuitem.path}?menu_id=#{submenuitem.id}" %></span><br/>
78
- <% end %>
79
- <% end %>
80
- </div>
81
- <% elsif submenuitem.is_visible and submenuitem.authorized(session[:admin][:user_id]) %>
82
- &nbsp;&nbsp;&nbsp;<span class="menuSM"><%= link_to submenuitem.description, "/#{submenuitem.path}?menu_id=#{menuitem.id}" %></span><br/>
83
- <% end %>
84
- <% end %>
85
- <% end %>
86
- </div>
87
- <hr class="line" />
88
- <% elsif menuitem.is_visible and menuitem.authorized(session[:admin][:user_id]) %>
89
- <%= link_to menuitem.description, "/#{menuitem.path}" %><br/>
90
- <hr class="line" />
91
- <% end %>
92
- <% end %>
93
- <% end %>
94
- <% rescue => e %>
95
- <!-- Error building Menu <%= e.message %> <%= e.backtrace.join("\n") %> -->
96
- <% end %>
97
- </td>
98
- </tr>
99
- <tr>
100
- <td><img src="/images/menuBotLeft.gif" width="7" height="8" /></td>
101
- <td><img src="/images/menuBot.gif" width="176" height="8" /></td></tr>
102
- </table>
103
-
104
-
105
-
106
-
107
- </td>
108
- <td width="100%" valign="top" bgcolor="#FFFFFF" class="main">
109
-
12
+ <div id="top"><%= image_tag "newsletter/iReach_logo.gif", width: "269", height:"85", style: "float: left;" %><%= image_tag "newsletter/TopCenter.gif", width: "435", height: "85", style: "float: left;" %><%= image_tag "newsletter/TopRight.gif", width: "62", height: "85", style: "float: right;" %>&nbsp;</div>
13
+ <div style="background-color: #fff;">
14
+ <div id="menu">
15
+ <ul>
16
+ <li><span onClick="$('#setup_submenu').toggle();return false">Setup</span>
17
+ <ul id='setup_submenu' <%= ' style="display:none"'.html_safe unless request.path =~ %r#/newsletter/designs|setup# %>>
18
+ <%= content_tag(:li, link_to('Newsletter Designs', news.designs_path)) if can?(:manage, Newsletter::Design) %>
19
+ </ul>
20
+ </li>
21
+ <%= content_tag(:li, link_to('Newsletters', news.newsletters_path)) if can?(:manage, Newsletter::Newsletter) %>
22
+ </ul>
23
+ </div>
24
+ <div id="page_content">
110
25
  <% flash.each do |name, msg| -%>
111
26
  <%= content_tag :div, msg, :id => "flash_#{name}" %>
112
27
  <% end -%>
@@ -114,22 +29,11 @@
114
29
  <% if show_title? -%>
115
30
  <h1><%=h yield(:title) %></h1>
116
31
  <% end -%>
117
-
118
32
  <%= yield %>
119
33
 
120
34
  <%= yield :page_navigation %>
121
- </td>
122
-
123
- <td background="/images/1midRight.gif"><img src="/images/1midRight.gif" width="62" height="19"/></td>
124
- </tr>
125
- </table>
126
-
127
- <table width="100%" border="0" cellspacing="0" cellpadding="0">
128
- <tr>
129
- <td width="100%" background="/images/1botMid.gif"><img src="/images/1botMid.gif" width="13" height="39" /></td>
130
- <td align="right"><img src="/images/1botRight.gif" width="62" height="39" /></td>
131
- </tr>
132
- </table>
133
-
35
+ </div>
36
+ </div>
37
+ <%= image_tag "newsletter/BottomRight.gif", width: "62", height: "85", style: "float: right;" %>
134
38
  </body>
135
39
  </html>
@@ -0,0 +1,15 @@
1
+ <!DOCTYPE html>
2
+ <html lang='en'>
3
+ <head>
4
+ <title>IReach Newsletter Archive</title>
5
+ </head>
6
+ <body>
7
+ <div id="top"><%= image_tag "mail_manager/iReach_logo.gif", width: "269", height:"85" %></div>
8
+ <div id="page_content">
9
+ <% flash.each do |name, msg| -%>
10
+ <%= content_tag :div, msg, :id => "flash_#{name}" %>
11
+ <% end -%>
12
+ <%= yield %>
13
+ </div>
14
+ </body>
15
+ </html>
@@ -14,7 +14,7 @@
14
14
  :style => "position: relative;"} do %>
15
15
  <!--Element Template - <%= piece.element.view_path %> -->
16
16
  <%= content_tag :div, link_to("Delete", piece, :confirm => 'Are you sure?',
17
- :method => :delete, :class=> "delete_link") +
17
+ :method => :delete, :class=> "delete_link", :target => '_top') +
18
18
  " | " +
19
19
  link_to("Edit", edit_piece_path(piece), :target => '_top', :class=> "edit_link"),
20
20
  :id=>"modify_piece_#{piece.id}",:style => "display:none", :class => "piece_tool" %>
@@ -1,4 +1,4 @@
1
1
  <%= div_for f.object do %>
2
2
  <%= f.text_field :name %>
3
- <%= f.link_to_remove "Remove", {class: 'button'} %><div class='linkbuttonEnding'></div>
3
+ <%= f.link_to_remove "Remove", {class: 'button'} %>
4
4
  <% end %>
@@ -1,41 +1,23 @@
1
1
  <%= nested_form_for @design do |f| %>
2
2
  <%= f.error_messages %>
3
- <table cellspacing='1' cellpadding='0' border='0'>
4
- <tr>
5
- <td width='150'><%= f.label :name %></td>
6
- <td><%= f.text_field :name %></td>
7
- </tr>
8
- <tr>
9
- <td width='150'><%= f.label :description %></td>
10
- <td><%= f.text_field :description %></td>
11
- </tr>
3
+ <%= f.label :name %>
4
+ <%= f.text_field :name %><br />
5
+ <%= f.label :description %>
6
+ <%= f.text_field :description %><br />
12
7
  <% unless @design.name.blank? %>
13
- <tr>
14
- <td width='150'><label>Design Filename</label></td>
15
- <td><%= @design.view_path.gsub(/^#{::Newsletter.designs_path}/,'') %></td>
16
- </tr>
8
+ <label>Design Filename</label>
9
+ <div style="padding-top: 9px;"><%= @design.view_path.gsub(/^#{::Newsletter.designs_path}/,'') %></div><br />
17
10
  <% 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'>
11
+ <%= f.label :html_text %>
12
+ <%= f.text_area :html_text %><br />
24
13
  <div class='newsletter_parts_group'>
25
14
  <h2 style='padding-bottom: 0; margin-bottom: 0; font-size: 10pt; '>Areas</h2>
15
+ The HTML code field above should contain &lt;%= render [your_area_name] %&gt; for each area you create.<br/>
26
16
  <div id="areas">
27
17
  <%= f.fields_for :areas %>
28
18
  </div>
29
- <%= f.link_to_add('Add Area', :areas, {class: 'button'}) %><div class='linkbuttonEnding'></div>
19
+ <%= f.link_to_add('Add Area', :areas, {class: 'button'}) %>
30
20
  </div>
31
- </td>
32
- </tr>
33
- <tr>
34
- <td align="right" colspan="2"><%= f.submit "Submit", :class => 'button' %><div class="buttonEnding"></div></td>
35
- </tr>
36
- </table>
21
+ <div class="submit_button"><%= f.submit "Submit", :class => 'button' %></div>
37
22
 
38
23
  <% end %>
39
- <% content_for :head do %>
40
- <%= javascript_include_tag '/javascripts/nested_form.js' %>
41
- <% end %>
@@ -2,14 +2,14 @@
2
2
  <% fields_for 'design[area_attributes][]', area do |naf| %>
3
3
  <%= naf.text_field :name, :index => nil %>
4
4
  <% if area.new_record? %>
5
- <%= link_to_function "Remove", "$(this).up('.area').remove()", :class => 'button' %><div class='linkbuttonEnding' style='margin-top: 7px;'></div><br/>
5
+ <%= link_to_function "Remove", "$(this).up('.area').remove()", :class => 'button' %><br/>
6
6
  <% else %>
7
7
  <%= link_to_function "Remove", "$(this).next('.should_destroy').value = 1; $(this).hide();"+
8
8
  "$('area_restore_#{area.id}').show()", :class => 'button',
9
9
  :id => "area_remove_#{area.id}" %>
10
10
  <%= link_to_function "Restore", "$(this).next('.should_destroy').value = 0; $(this).hide();"+
11
11
  "$('area_remove_#{area.id}').show()", :class => 'button',
12
- :id => "area_restore_#{area.id}", :style => 'display:none' %><div class='linkbuttonEnding' style='margin-top: 5px;'></div><br/>
12
+ :id => "area_restore_#{area.id}", :style => 'display:none' %><br/>
13
13
  <%= naf.hidden_field :id, :index => nil %>
14
14
  <%= naf.hidden_field :should_destroy, :index => nil, :class => 'should_destroy' %>
15
15
  <% end %>
@@ -1,14 +1,11 @@
1
- <% title "Edit Design" %>
1
+ <%= title "Edit Design" %>
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", @design, :class => 'button' %><div class="linkbuttonEnding"></div>
9
- <% end %>
10
- <%= link_to "View All", designs_path, :class => 'button' %><div class="linkbuttonEnding"></div>
7
+ <%= link_to "View All", designs_path, :class => 'button' %>
11
8
  <%= link_to 'Manage Elements', design_elements_path(@design),
12
- :class => 'button' %><div class="linkbuttonEnding"></div>
9
+ :class => 'button' %>
13
10
  </div>
14
11
  <% end %>
@@ -1,4 +1,4 @@
1
- <% title "Designs" %>
1
+ <%= title "Designs" %>
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 design in @designs %>
14
- <tr class="<%= cycle('odd','even') %>">
14
+ <tr class="<%= cycle('odd','even') %>" id="design_<%= design.id %>">
15
15
  <td><%=h design.name %></td>
16
16
  <td><%=h design.description %></td>
17
17
  <% if::Newsletter.use_show_for_resources %>
18
- <td><%= link_to "View", design, :class => 'button' %><div class="linkbuttonEnding"></div></td>
18
+ <td><%= link_to "View", design, :class => 'button' %></td>
19
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>
20
+ <td><%= link_to "Edit", edit_design_path(design), :class => 'button' %></td>
21
+ <td><%= link_to "Delete", design, :confirm => 'Are you sure?', :method => :delete, :class => 'button' %></td>
22
22
  </tr>
23
23
  <% end %>
24
24
  </table>
@@ -26,6 +26,7 @@
26
26
 
27
27
  <%= content_for :page_navigation do %>
28
28
  <div>
29
- <%= link_to "New Design", new_design_path, :class => 'button' %><div class="linkbuttonEnding"></div>
29
+ <%= will_paginate @designs %>
30
+ <%= link_to "New Design", new_design_path, :class => 'button' %>
30
31
  </div>
31
32
  <% end %>
@@ -1,9 +1,9 @@
1
- <% title "New Design" %>
1
+ <%= title "New Design" %>
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", designs_path, :class => 'button' %><div class="linkbuttonEnding"></div>
7
+ <%= link_to "Back to List", designs_path, :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,27 +1,14 @@
1
1
  <%= div_for f.object do %>
2
- <table border="0" cellpadding="1" cellspacing="0">
3
2
  <%= 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 %>
3
+ <%= f.label :name %>
4
+ <%= f.text_field :name%><br />
5
+ <%= f.label :label %>
6
+ <%= f.text_field :label %><br />
7
+ <%= f.label :description %>
8
+ <%= f.text_field :description %><br />
9
+ <%= f.label :type %>
10
+ <%= f.select :type, options_for_select(@field_types.collect{|type| [type.gsub(/Newsletter::Field::/,'').humanize,type]}, f.object.class.name) %>
11
+ <%= f.hidden_field :sequence, {class: 'sequence'} %>
12
+ <%= f.link_to_remove "Remove", {class: 'button', style: 'margin-left: 130px;'} %>
13
+ <hr>
14
+ <% end %>
@@ -1,51 +1,55 @@
1
1
  <%= nested_form_for @element do |f| %>
2
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>
3
+ <%= f.label :name %>
4
+ <%= f.text_field :name %><br />
5
+ <%= f.label :description %>
6
+ <%= f.text_field :description %><br />
12
7
  <% 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>
8
+ <label>Design Filename</label>
9
+ <div style="padding-top: 7px";><%= @element.file_path.gsub(/^#{::Newsletter.designs_path}/,'') %></div><br />
17
10
  <% 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">
11
+ <%= f.label :html_text %>
12
+ <%= f.text_area :html_text %><br />
24
13
  <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>
14
+ <h2 style='font-size: 10pt; '>Fields</h2>
15
+ The HTML code field above should contain (at the least):
16
+ <ul>
17
+ <li>&lt;%= [field_name] %&gt; for each Text field.</li>
18
+ <li>&lt;%= filter([field_name]) %&gt; for each Textarea.</li>
19
+ <li>&lt;%= image_tag([field_name]) %&gt; for each Inlineasset that will contain an image.</li>
20
+ <li>&lt;%= link_to([field_name]) %&gt; for each Inlineasset that will contain a link.</li>
21
+ </ul>
26
22
  <div id="newsletter_fields">
27
23
  <%= f.fields_for :fields %>
24
+ <%= f.link_to_add('Add Field', :fields, {class: 'button add_field'}) %>
28
25
  </div>
29
- <%= f.link_to_add('Add Field', :fields, {class: 'button'}) %><div class="linkbuttonEnding"></div>
26
+ <%= content_for :head do %>
27
+ <script>
28
+ jQuery(document).ready(function() {
29
+ jQuery("#newsletter_fields").sortable({
30
+ axis: 'y',
31
+ stop: function (event, ui) {
32
+ var sequence = 1;
33
+ jQuery('#newsletter_fields .fields input.sequence').each(function(){
34
+ jQuery(this).val(sequence);
35
+ sequence += 1;
36
+ });
37
+ }
38
+ });
39
+ jQuery('.add_field').click(function() {
40
+ jQuery( "#newsletter_fields" ).sortable( "refresh" );
41
+ });
42
+ });
43
+ </script>
44
+ <% end %>
30
45
  </div>
31
46
  <div class='newsletter_parts_group' style='margin-top: 10px; padding: 0 5px 5px 15px; border: thin dashed black; background-color: #eee'>
32
47
  <h2 style='padding-bottom: 0; margin-bottom: 0; font-size: 10pt; '>Areas</h2>
33
48
  <% @design.areas.each do |area| %>
34
- <%= check_box_tag 'element[area_ids][]', area.id, @element.areas.include?(area) %><%= area.name %><br/>
49
+ <%= check_box_tag "element[area_ids][#{area.id}]", area.id, @element.areas.include?(area), name: "element[area_ids][]" %><%= label_tag "element[area_ids][#{area.id}]", area.name %><br/>
35
50
  <% end %>
36
51
  </div>
37
52
  <%= 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 %>
53
+ <div class="submit_button"><%= f.submit "Submit", :class => 'button' %></div>
46
54
 
47
- <% content_for :head do %>
48
- <%= javascript_include_tag '/javascripts/nested_form.js' %>
49
55
  <% end %>
50
-
51
-