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.
- checksums.yaml +5 -13
- data/.gitignore +6 -0
- data/.ruby-version +1 -1
- data/Gemfile +17 -5
- data/README.md +40 -0
- data/app/assets/images/newsletter/BottomRight.gif +0 -0
- data/app/assets/images/newsletter/MidRight.gif +0 -0
- data/app/assets/images/newsletter/TopCenter.gif +0 -0
- data/app/assets/images/newsletter/TopRight.gif +0 -0
- data/app/assets/images/newsletter/calendar_date_select/calendar.gif +0 -0
- data/app/assets/images/newsletter/iReach_logo.gif +0 -0
- data/app/assets/images/newsletter/spacer.gif +0 -0
- data/app/assets/images/newsletter/topMid.gif +0 -0
- data/app/assets/javascripts/newsletter/application.js +6 -0
- data/app/assets/stylesheets/newsletter/admin.css +261 -0
- data/app/assets/stylesheets/newsletter/application.css +3 -1
- data/app/assets/stylesheets/newsletter/nav.css +68 -0
- data/app/assets/stylesheets/newsletter/timepicker.css +54 -0
- data/app/controllers/newsletter/application_controller.rb +5 -26
- data/app/controllers/newsletter/areas_controller.rb +0 -38
- data/app/controllers/newsletter/designs_controller.rb +5 -2
- data/app/controllers/newsletter/elements_controller.rb +7 -7
- data/app/controllers/newsletter/fields_controller.rb +1 -46
- data/app/controllers/newsletter/newsletters_controller.rb +6 -24
- data/app/controllers/newsletter/pieces_controller.rb +8 -21
- data/app/helpers/newsletter/designs_helper.rb +1 -8
- data/app/helpers/newsletter/layout_helper.rb +43 -0
- data/app/helpers/newsletter/newsletters_helper.rb +9 -5
- data/app/models/newsletter/area.rb +1 -4
- data/app/models/newsletter/asset.rb +7 -1
- data/app/models/newsletter/design.rb +48 -34
- data/app/models/newsletter/element.rb +0 -42
- data/app/models/newsletter/field.rb +7 -10
- data/app/models/newsletter/field/inline_asset.rb +15 -2
- data/app/models/newsletter/newsletter.rb +18 -11
- data/app/models/newsletter/piece.rb +20 -24
- data/app/views/layouts/newsletter/application.html.erb +20 -116
- data/app/views/layouts/newsletter/layout.html.erb +15 -0
- data/app/views/newsletter/areas/_area.html.erb +1 -1
- data/app/views/newsletter/designs/_area_fields.html.erb +1 -1
- data/app/views/newsletter/designs/_form.html.erb +11 -29
- data/app/views/newsletter/designs/_newsletter_area.html.erb +2 -2
- data/app/views/newsletter/designs/edit.html.erb +3 -6
- data/app/views/newsletter/designs/index.html.erb +7 -6
- data/app/views/newsletter/designs/new.html.erb +2 -2
- data/app/views/newsletter/designs/show.html.erb +5 -5
- data/app/views/newsletter/elements/_field_fields.html.erb +12 -25
- data/app/views/newsletter/elements/_form.html.erb +38 -34
- data/app/views/newsletter/elements/edit.html.erb +2 -5
- data/app/views/newsletter/elements/index.html.erb +7 -7
- data/app/views/newsletter/elements/new.html.erb +2 -2
- data/app/views/newsletter/elements/show.html.erb +5 -5
- data/app/views/newsletter/fields/_inline_asset.html.erb +12 -32
- data/app/views/newsletter/fields/_text.html.erb +2 -4
- data/app/views/newsletter/fields/_text_area.html.erb +2 -7
- data/app/views/newsletter/newsletters/_form.html.erb +6 -16
- data/app/views/newsletter/newsletters/_head.html.erb +2 -3
- data/app/views/newsletter/newsletters/_newsletter.html.erb +11 -6
- data/app/views/newsletter/newsletters/archive.html.erb +1 -1
- data/app/views/newsletter/newsletters/edit.html.erb +8 -16
- data/app/views/newsletter/newsletters/index.html.erb +7 -7
- data/app/views/newsletter/newsletters/new.html.erb +2 -2
- data/app/views/newsletter/newsletters/show.html.erb +11 -6
- data/app/views/newsletter/pieces/_form.html.erb +1 -8
- data/app/views/newsletter/pieces/edit.html.erb +2 -4
- data/app/views/newsletter/pieces/new.html.erb +3 -5
- data/config/locales/newsletters.en.yml +27 -0
- data/config/routes.rb +4 -4
- data/designs/exports/Example.yml +202 -0
- data/designs/exports/example-export.yaml +481 -87
- data/lib/deleteable.rb +12 -14
- data/lib/newsletter/engine.rb +112 -6
- data/lib/newsletter/version.rb +1 -1
- data/lib/tasks/newsletter.rake +54 -41
- data/newsletter.gemspec +3 -1
- data/spec/test_app/.rspec +2 -0
- data/spec/test_app/app/controllers/application_controller.rb +5 -0
- data/spec/test_app/app/models/ability.rb +8 -0
- data/spec/test_app/app/models/user.rb +10 -0
- data/spec/test_app/app/views/layouts/application.html.erb +3 -1
- data/spec/test_app/config/database.postgres.yml +21 -0
- data/spec/test_app/config/initializers/carrierwave.rb +23 -0
- data/spec/test_app/config/newsletter.yml +6 -3
- data/spec/test_app/config/routes.rb +1 -2
- data/spec/test_app/db/migrate/20131222171230_create_users.rb +13 -0
- data/spec/test_app/db/schema.rb +13 -2
- data/spec/test_app/features/newsletter_management.feature +39 -0
- data/spec/test_app/features/piece_management.feature +20 -0
- data/spec/test_app/features/step_definitions/debugging_steps.rb +3 -0
- data/spec/test_app/features/step_definitions/design_steps.rb +3 -0
- data/spec/test_app/features/step_definitions/login_steps.rb +4 -0
- data/spec/test_app/features/step_definitions/newsletter_steps.rb +24 -0
- data/spec/test_app/features/step_definitions/piece_steps.rb +26 -0
- data/{features → spec/test_app/features}/step_definitions/webrat_steps.rb +10 -6
- data/spec/test_app/features/support/env.rb +36 -0
- data/spec/test_app/features/support/functions.rb +3 -0
- data/{features → spec/test_app/features}/support/paths.rb +10 -1
- data/spec/test_app/lib/debugging.rb +61 -0
- data/spec/test_app/script/full_suite +44 -0
- data/spec/test_app/script/rspec_multi_db +26 -0
- data/spec/test_app/spec/controllers/newsletter/pieces_controller_spec.rb +175 -0
- data/spec/test_app/spec/factories/_functions.rb +19 -0
- data/spec/test_app/spec/factories/assets.rb +8 -0
- data/spec/test_app/spec/factories/designs.rb +1 -1
- data/spec/test_app/spec/factories/newsletters.rb +68 -6
- data/spec/test_app/spec/factories/pieces.rb +8 -0
- data/spec/test_app/spec/factories/users.rb +13 -0
- data/spec/test_app/spec/features/newsletter/design_spec.rb +175 -0
- data/spec/test_app/spec/features/newsletter/element_spec.rb +53 -0
- data/spec/test_app/spec/features/newsletter/newsletter_spec.rb +99 -3
- data/spec/test_app/spec/helpers/newsletter/newsletters_helper_spec.rb +65 -0
- data/spec/test_app/spec/models/newsletter/asset_spec.rb +23 -0
- data/spec/test_app/spec/models/newsletter/design_spec.rb +23 -2
- data/spec/test_app/spec/models/newsletter/element_spec.rb +4 -0
- data/spec/test_app/spec/models/newsletter/inline_asset_spec.rb +43 -0
- data/spec/test_app/spec/models/newsletter/newsletter_spec.rb +102 -2
- data/spec/test_app/spec/models/newsletter/piece_spec.rb +33 -0
- data/spec/test_app/spec/rails_helper.rb +82 -0
- data/spec/test_app/spec/routing/newsletter/pieces_routing_spec.rb +28 -0
- data/spec/test_app/spec/spec_helper.rb +73 -64
- data/spec/test_app/spec/support/carrierwave.rb +7 -0
- data/spec/test_app/spec/support/continuances.rb +18 -0
- data/spec/test_app/spec/support/files/iReach_logo.gif +0 -0
- data/spec/test_app/spec/support/files/test.pdf +0 -0
- data/spec/test_app/spec/support/functions.rb +3 -0
- metadata +145 -726
- data/README +0 -243
- data/README.rdoc +0 -3
- data/app/views/newsletter/elements/_newsletter_field.html.erb +0 -37
- data/features/support/env.rb +0 -17
- data/lib/tasks/newsletter_tasks.rake +0 -4
- data/lib/tasks/rspec.rake +0 -158
- data/spec/spec_helper.rb +0 -55
- data/spec/test_app/db/structure.sql +0 -12
- data/spec/test_app/newsletters/designs/My_Design/elements/_left_column_article.html.erb +0 -10
- data/spec/test_app/newsletters/designs/My_Design/elements/_left_column_image.html.erb +0 -2
- data/spec/test_app/newsletters/designs/My_Design/elements/_right_column_article.html.erb +0 -5
- data/spec/test_app/newsletters/designs/My_Design/elements/_right_column_headline.html.erb +0 -1
- data/spec/test_app/newsletters/designs/My_Design/elements/_right_column_image.html.erb +0 -1
- data/spec/test_app/newsletters/designs/My_Design/elements/_right_column_paragraph.html.erb +0 -3
- data/spec/test_app/newsletters/designs/My_Design/layout.html.erb +0 -66
- data/spec/test_app/newsletters/designs/Testo_Changeo/elements/_left_column_article.html.erb +0 -10
- data/spec/test_app/newsletters/designs/Testo_Changeo/layout.html.erb +0 -66
- data/spec/test_app/newsletters/designs/empower_innovative_e-business/elements/_left_column_article.html.erb +0 -10
- data/spec/test_app/newsletters/designs/empower_innovative_e-business/elements/_left_column_image.html.erb +0 -2
- data/spec/test_app/newsletters/designs/empower_innovative_e-business/elements/_right_column_article.html.erb +0 -5
- data/spec/test_app/newsletters/designs/empower_innovative_e-business/elements/_right_column_headline.html.erb +0 -1
- data/spec/test_app/newsletters/designs/empower_innovative_e-business/elements/_right_column_image.html.erb +0 -1
- data/spec/test_app/newsletters/designs/empower_innovative_e-business/elements/_right_column_paragraph.html.erb +0 -3
- data/spec/test_app/newsletters/designs/empower_innovative_e-business/layout.html.erb +0 -66
- data/spec/test_app/newsletters/designs/enable_extensible_systems/elements/_left_column_article.html.erb +0 -10
- data/spec/test_app/newsletters/designs/enable_extensible_systems/elements/_left_column_image.html.erb +0 -2
- data/spec/test_app/newsletters/designs/enable_extensible_systems/elements/_right_column_article.html.erb +0 -5
- data/spec/test_app/newsletters/designs/enable_extensible_systems/elements/_right_column_headline.html.erb +0 -1
- data/spec/test_app/newsletters/designs/enable_extensible_systems/elements/_right_column_image.html.erb +0 -1
- data/spec/test_app/newsletters/designs/enable_extensible_systems/elements/_right_column_paragraph.html.erb +0 -3
- data/spec/test_app/newsletters/designs/enable_extensible_systems/layout.html.erb +0 -66
- data/spec/test_app/newsletters/designs/engage_innovative_schemas/elements/_left_column_article.html.erb +0 -10
- data/spec/test_app/newsletters/designs/engage_innovative_schemas/elements/_left_column_image.html.erb +0 -2
- data/spec/test_app/newsletters/designs/engage_innovative_schemas/elements/_right_column_article.html.erb +0 -5
- data/spec/test_app/newsletters/designs/engage_innovative_schemas/elements/_right_column_headline.html.erb +0 -1
- data/spec/test_app/newsletters/designs/engage_innovative_schemas/elements/_right_column_image.html.erb +0 -1
- data/spec/test_app/newsletters/designs/engage_innovative_schemas/elements/_right_column_paragraph.html.erb +0 -3
- data/spec/test_app/newsletters/designs/engage_innovative_schemas/layout.html.erb +0 -67
- data/spec/test_app/newsletters/designs/envisioneer_seamless_ROI/elements/_left_column_article.html.erb +0 -10
- data/spec/test_app/newsletters/designs/envisioneer_seamless_ROI/elements/_left_column_image.html.erb +0 -2
- data/spec/test_app/newsletters/designs/envisioneer_seamless_ROI/elements/_right_column_article.html.erb +0 -5
- data/spec/test_app/newsletters/designs/envisioneer_seamless_ROI/elements/_right_column_headline.html.erb +0 -1
- data/spec/test_app/newsletters/designs/envisioneer_seamless_ROI/elements/_right_column_image.html.erb +0 -1
- data/spec/test_app/newsletters/designs/envisioneer_seamless_ROI/elements/_right_column_paragraph.html.erb +0 -3
- data/spec/test_app/newsletters/designs/envisioneer_seamless_ROI/layout.html.erb +0 -66
- data/spec/test_app/newsletters/designs/harness_integrated_partnerships/elements/_left_column_article.html.erb +0 -10
- data/spec/test_app/newsletters/designs/harness_integrated_partnerships/elements/_left_column_image.html.erb +0 -2
- data/spec/test_app/newsletters/designs/harness_integrated_partnerships/elements/_right_column_article.html.erb +0 -5
- data/spec/test_app/newsletters/designs/harness_integrated_partnerships/elements/_right_column_headline.html.erb +0 -1
- data/spec/test_app/newsletters/designs/harness_integrated_partnerships/elements/_right_column_image.html.erb +0 -1
- data/spec/test_app/newsletters/designs/harness_integrated_partnerships/elements/_right_column_paragraph.html.erb +0 -3
- data/spec/test_app/newsletters/designs/harness_integrated_partnerships/layout.html.erb +0 -66
- data/spec/test_app/newsletters/designs/innovate_24_365_functionalities/elements/_left_column_article.html.erb +0 -10
- data/spec/test_app/newsletters/designs/innovate_24_365_functionalities/elements/_left_column_image.html.erb +0 -2
- data/spec/test_app/newsletters/designs/innovate_24_365_functionalities/elements/_right_column_article.html.erb +0 -5
- data/spec/test_app/newsletters/designs/innovate_24_365_functionalities/elements/_right_column_headline.html.erb +0 -1
- data/spec/test_app/newsletters/designs/innovate_24_365_functionalities/elements/_right_column_image.html.erb +0 -1
- data/spec/test_app/newsletters/designs/innovate_24_365_functionalities/elements/_right_column_paragraph.html.erb +0 -3
- data/spec/test_app/newsletters/designs/innovate_24_365_functionalities/layout.html.erb +0 -66
- data/spec/test_app/newsletters/designs/integrate_mission-critical_systems/elements/_left_column_article.html.erb +0 -10
- data/spec/test_app/newsletters/designs/integrate_mission-critical_systems/layout.html.erb +0 -66
- data/spec/test_app/newsletters/designs/iterate_real-time_web-readiness/elements/_left_column_article.html.erb +0 -10
- data/spec/test_app/newsletters/designs/iterate_real-time_web-readiness/elements/_left_column_image.html.erb +0 -2
- data/spec/test_app/newsletters/designs/iterate_real-time_web-readiness/elements/_right_column_article.html.erb +0 -5
- data/spec/test_app/newsletters/designs/iterate_real-time_web-readiness/elements/_right_column_headline.html.erb +0 -1
- data/spec/test_app/newsletters/designs/iterate_real-time_web-readiness/elements/_right_column_image.html.erb +0 -1
- data/spec/test_app/newsletters/designs/iterate_real-time_web-readiness/elements/_right_column_paragraph.html.erb +0 -3
- data/spec/test_app/newsletters/designs/iterate_real-time_web-readiness/layout.html.erb +0 -67
- data/spec/test_app/newsletters/designs/iterate_strategic_architectures/elements/_left_column_article.html.erb +0 -10
- data/spec/test_app/newsletters/designs/iterate_strategic_architectures/elements/_left_column_image.html.erb +0 -2
- data/spec/test_app/newsletters/designs/iterate_strategic_architectures/elements/_right_column_article.html.erb +0 -5
- data/spec/test_app/newsletters/designs/iterate_strategic_architectures/elements/_right_column_headline.html.erb +0 -1
- data/spec/test_app/newsletters/designs/iterate_strategic_architectures/elements/_right_column_image.html.erb +0 -1
- data/spec/test_app/newsletters/designs/iterate_strategic_architectures/elements/_right_column_paragraph.html.erb +0 -3
- data/spec/test_app/newsletters/designs/iterate_strategic_architectures/layout.html.erb +0 -67
- data/spec/test_app/newsletters/designs/orchestrate_sticky_communities/elements/_left_column_article.html.erb +0 -10
- data/spec/test_app/newsletters/designs/orchestrate_sticky_communities/elements/_left_column_image.html.erb +0 -2
- data/spec/test_app/newsletters/designs/orchestrate_sticky_communities/elements/_right_column_article.html.erb +0 -5
- data/spec/test_app/newsletters/designs/orchestrate_sticky_communities/elements/_right_column_headline.html.erb +0 -1
- data/spec/test_app/newsletters/designs/orchestrate_sticky_communities/elements/_right_column_image.html.erb +0 -1
- data/spec/test_app/newsletters/designs/orchestrate_sticky_communities/elements/_right_column_paragraph.html.erb +0 -3
- data/spec/test_app/newsletters/designs/orchestrate_sticky_communities/layout.html.erb +0 -67
- data/spec/test_app/newsletters/designs/repurpose_impactful_partnerships/elements/_left_column_article.html.erb +0 -10
- data/spec/test_app/newsletters/designs/repurpose_impactful_partnerships/elements/_left_column_image.html.erb +0 -2
- data/spec/test_app/newsletters/designs/repurpose_impactful_partnerships/elements/_right_column_article.html.erb +0 -5
- data/spec/test_app/newsletters/designs/repurpose_impactful_partnerships/elements/_right_column_headline.html.erb +0 -1
- data/spec/test_app/newsletters/designs/repurpose_impactful_partnerships/elements/_right_column_image.html.erb +0 -1
- data/spec/test_app/newsletters/designs/repurpose_impactful_partnerships/elements/_right_column_paragraph.html.erb +0 -3
- data/spec/test_app/newsletters/designs/repurpose_impactful_partnerships/layout.html.erb +0 -67
- data/spec/test_app/newsletters/designs/revolutionize_robust_partnerships/elements/_left_column_article.html.erb +0 -10
- data/spec/test_app/newsletters/designs/revolutionize_robust_partnerships/elements/_left_column_image.html.erb +0 -2
- data/spec/test_app/newsletters/designs/revolutionize_robust_partnerships/elements/_right_column_article.html.erb +0 -5
- data/spec/test_app/newsletters/designs/revolutionize_robust_partnerships/elements/_right_column_headline.html.erb +0 -1
- data/spec/test_app/newsletters/designs/revolutionize_robust_partnerships/elements/_right_column_image.html.erb +0 -1
- data/spec/test_app/newsletters/designs/revolutionize_robust_partnerships/elements/_right_column_paragraph.html.erb +0 -3
- data/spec/test_app/newsletters/designs/revolutionize_robust_partnerships/layout.html.erb +0 -66
- data/spec/test_app/newsletters/designs/revolutionize_turn-key_bandwidth/elements/_left_column_article.html.erb +0 -10
- data/spec/test_app/newsletters/designs/revolutionize_turn-key_bandwidth/elements/_left_column_image.html.erb +0 -2
- data/spec/test_app/newsletters/designs/revolutionize_turn-key_bandwidth/elements/_right_column_article.html.erb +0 -5
- data/spec/test_app/newsletters/designs/revolutionize_turn-key_bandwidth/elements/_right_column_headline.html.erb +0 -1
- data/spec/test_app/newsletters/designs/revolutionize_turn-key_bandwidth/elements/_right_column_image.html.erb +0 -1
- data/spec/test_app/newsletters/designs/revolutionize_turn-key_bandwidth/elements/_right_column_paragraph.html.erb +0 -3
- data/spec/test_app/newsletters/designs/revolutionize_turn-key_bandwidth/layout.html.erb +0 -66
- data/spec/test_app/newsletters/designs/scale_ubiquitous_synergies/elements/_left_column_article.html.erb +0 -10
- data/spec/test_app/newsletters/designs/scale_ubiquitous_synergies/elements/_left_column_image.html.erb +0 -2
- data/spec/test_app/newsletters/designs/scale_ubiquitous_synergies/elements/_right_column_article.html.erb +0 -5
- data/spec/test_app/newsletters/designs/scale_ubiquitous_synergies/elements/_right_column_headline.html.erb +0 -1
- data/spec/test_app/newsletters/designs/scale_ubiquitous_synergies/elements/_right_column_image.html.erb +0 -1
- data/spec/test_app/newsletters/designs/scale_ubiquitous_synergies/elements/_right_column_paragraph.html.erb +0 -3
- data/spec/test_app/newsletters/designs/scale_ubiquitous_synergies/layout.html.erb +0 -67
- data/spec/test_app/newsletters/designs/syndicate_visionary_metrics/elements/_left_column_article.html.erb +0 -10
- data/spec/test_app/newsletters/designs/syndicate_visionary_metrics/elements/_left_column_image.html.erb +0 -2
- data/spec/test_app/newsletters/designs/syndicate_visionary_metrics/elements/_right_column_article.html.erb +0 -5
- data/spec/test_app/newsletters/designs/syndicate_visionary_metrics/elements/_right_column_headline.html.erb +0 -1
- data/spec/test_app/newsletters/designs/syndicate_visionary_metrics/elements/_right_column_image.html.erb +0 -1
- data/spec/test_app/newsletters/designs/syndicate_visionary_metrics/elements/_right_column_paragraph.html.erb +0 -3
- data/spec/test_app/newsletters/designs/syndicate_visionary_metrics/layout.html.erb +0 -66
- data/spec/test_app/newsletters/designs/target_enterprise_functionalities/elements/_left_column_article.html.erb +0 -10
- data/spec/test_app/newsletters/designs/target_enterprise_functionalities/elements/_left_column_image.html.erb +0 -2
- data/spec/test_app/newsletters/designs/target_enterprise_functionalities/elements/_right_column_article.html.erb +0 -5
- data/spec/test_app/newsletters/designs/target_enterprise_functionalities/elements/_right_column_headline.html.erb +0 -1
- data/spec/test_app/newsletters/designs/target_enterprise_functionalities/elements/_right_column_image.html.erb +0 -1
- data/spec/test_app/newsletters/designs/target_enterprise_functionalities/elements/_right_column_paragraph.html.erb +0 -3
- data/spec/test_app/newsletters/designs/target_enterprise_functionalities/layout.html.erb +0 -67
- data/spec/test_app/newsletters/designs/transition_enterprise_systems/elements/_left_column_article.html.erb +0 -10
- data/spec/test_app/newsletters/designs/transition_enterprise_systems/layout.html.erb +0 -66
- data/spec/test_app/newsletters/designs/utilize_one-to-one_schemas/elements/_left_column_article.html.erb +0 -10
- data/spec/test_app/newsletters/designs/utilize_one-to-one_schemas/elements/_left_column_image.html.erb +0 -2
- data/spec/test_app/newsletters/designs/utilize_one-to-one_schemas/elements/_right_column_article.html.erb +0 -5
- data/spec/test_app/newsletters/designs/utilize_one-to-one_schemas/elements/_right_column_headline.html.erb +0 -1
- data/spec/test_app/newsletters/designs/utilize_one-to-one_schemas/elements/_right_column_image.html.erb +0 -1
- data/spec/test_app/newsletters/designs/utilize_one-to-one_schemas/elements/_right_column_paragraph.html.erb +0 -3
- data/spec/test_app/newsletters/designs/utilize_one-to-one_schemas/layout.html.erb +0 -66
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
M2Q4MTkyYzYzZmY5NzFmODVmMjIzYjljYzk2YjNhNDMwOGMyYTU2MA==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 5d3fe375c39131a88ec0ed914e5be808de7b4905
|
4
|
+
data.tar.gz: 867827becbeb93b65776148c34eabaf9c14c2c2c
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
MWM5ZTBkZTdmYTdjMGRmNWQwNGVjMzA2ZTk2MjQxMDVhZjM1MGQ4Y2Y0YjY5
|
11
|
-
MzY4YzdiYjE1NmU5NjY5MGNhNTE3ZGI0ODgyYWI0YTUxZGQ0N2U=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
NGViNDMwYjNmMjc5ODc0ZWZlOGEyM2U0NmI2ODM5OGFiZDM4ZWY0YWM4ZWQ4
|
14
|
-
YTdjYzAwZDdkYjk3NTAzOTRiNjM5MWMyOTdmMDM4N2I3NGNmMzY5Njk5ZmE2
|
15
|
-
N2JmMzQ4OGQxYmE3MDFiYmM4NmE5YjY3OTQ3YmFmMGY5ODA1OWI=
|
6
|
+
metadata.gz: 757dd0a080e250bfba7a484aadf905343c48c59732cb10d6305655c50061934ee37811ebdd23d6128cfd30b4dedc01fa79bcbd1059364243456955ae44cb1562
|
7
|
+
data.tar.gz: d449dff3abe43f00768ad6a26aa91da97cb5ff70f6fd707536e14a6e9714c3907b16850f6aee9f97ab3158f3b02b0b9e0f9ae3bbc36f2721ef7b7355a4bdde38
|
data/.gitignore
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
*.gem
|
2
2
|
*.rbc
|
3
|
+
*.swp
|
4
|
+
*.DS_Store
|
5
|
+
*.local.yml
|
6
|
+
*structure.sql
|
3
7
|
.bundle
|
4
8
|
.config
|
5
9
|
.yardoc
|
@@ -20,3 +24,5 @@ log
|
|
20
24
|
*.log
|
21
25
|
spec/test_app/designs
|
22
26
|
spec/test_app/config/database.yml
|
27
|
+
spec/test_app/public/newsletter_assets
|
28
|
+
spec/test_app/public/images/*
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
ruby-1.
|
1
|
+
ruby-2.1.5
|
data/Gemfile
CHANGED
@@ -3,26 +3,38 @@ source "https://rubygems.org"
|
|
3
3
|
# Declare your gem's dependencies in newsletter.gemspec.
|
4
4
|
# Bundler will treat runtime dependencies like base dependencies, and
|
5
5
|
# development dependencies will be added by default to the :development group.
|
6
|
+
gem 'dotenv-rails', :require => 'dotenv/rails-now'
|
6
7
|
gemspec
|
7
8
|
|
8
9
|
# jquery-rails is used by the dummy application
|
9
10
|
gem "jquery-rails"
|
11
|
+
gem 'jquery-ui-rails'
|
10
12
|
|
11
13
|
# Declare any dependencies that are still in development here instead of in
|
12
14
|
# your gemspec. These might include edge Rails or gems from your path or
|
13
15
|
# Git. Remember to move these dependencies to your gemspec before releasing
|
14
16
|
# your gem to rubygems.org.
|
15
17
|
|
16
|
-
|
18
|
+
gem "devise"
|
17
19
|
gem 'mysql2'
|
18
|
-
gem "rspec-rails", "~>2.14"
|
19
|
-
gem "cucumber-rails", require: false
|
20
20
|
gem "factory_girl_rails", "~>4.3"
|
21
|
-
gem 'poltergeist'
|
22
21
|
gem "faker"
|
23
22
|
gem "sqlite3"
|
24
|
-
gem 'database_cleaner'
|
25
23
|
gem 'pry-rails'
|
26
24
|
gem 'spring'
|
27
25
|
gem 'spring-commands-rspec'
|
28
26
|
gem 'spring-commands-cucumber'
|
27
|
+
gem 'quiet_assets'
|
28
|
+
if ENV['POSTGRES']
|
29
|
+
gem 'pg'
|
30
|
+
end
|
31
|
+
|
32
|
+
# Testing Gems
|
33
|
+
group :test do
|
34
|
+
gem 'simplecov', require: false
|
35
|
+
gem 'database_cleaner'
|
36
|
+
gem 'poltergeist'
|
37
|
+
gem "rspec-rails", "~>3.2"
|
38
|
+
gem "rspec-activemodel-mocks"
|
39
|
+
gem "cucumber-rails", require: false
|
40
|
+
end
|
data/README.md
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
Newsletter
|
2
|
+
==========
|
3
|
+
Put some boilerplate here
|
4
|
+
|
5
|
+
Requirements
|
6
|
+
------------
|
7
|
+
|
8
|
+
* Rails 3.2.x
|
9
|
+
* Ruby 1.9.3-x
|
10
|
+
* [Bundler](http://bundler.io)
|
11
|
+
|
12
|
+
Optional Dependencies
|
13
|
+
---------------------
|
14
|
+
* [RVM](http://rvm.io) - How we control our ruby environment(mainly concerns development)
|
15
|
+
|
16
|
+
|
17
|
+
Installation
|
18
|
+
------------
|
19
|
+
* using bundler, edit your Gemfile.. add a one of the following lines:
|
20
|
+
|
21
|
+
gem 'mail_manager', '~>3' # this points to the latest rails stable 3.2.x version
|
22
|
+
# OR
|
23
|
+
gem 'mail_manager', git: 'https://github.com/LoneStarInternet/mail_manager.git', branch: 'rails3.2.x' # for the bleeding edge rails 3.2.x version
|
24
|
+
|
25
|
+
* then run bundle install:
|
26
|
+
|
27
|
+
bundle install
|
28
|
+
|
29
|
+
* generate and configure the newsletter settings file at config/newsletter.yml: (replace table prefix with something... or nothing if you don't want to scope it)
|
30
|
+
|
31
|
+
rake newsletter:default_app_config[table_prefix]
|
32
|
+
|
33
|
+
* generate migrations
|
34
|
+
|
35
|
+
rake newsletter:import_migrations
|
36
|
+
|
37
|
+
* migrate the database
|
38
|
+
|
39
|
+
rake db:migrate
|
40
|
+
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,261 @@
|
|
1
|
+
body {
|
2
|
+
margin:0;
|
3
|
+
padding:0;
|
4
|
+
border:0;
|
5
|
+
font-family:Arial, Helvetica, sans-serif;
|
6
|
+
font-size:12px;
|
7
|
+
background:#fdba59;
|
8
|
+
}
|
9
|
+
|
10
|
+
#top {
|
11
|
+
background-image: url('/assets/newsletter/topMid.gif');
|
12
|
+
height: 85px;
|
13
|
+
min-width: 766px;
|
14
|
+
}
|
15
|
+
/*
|
16
|
+
img {
|
17
|
+
display: block;
|
18
|
+
}
|
19
|
+
|
20
|
+
.main {
|
21
|
+
font-family: helvetica, arial, sans-serif;
|
22
|
+
font-size: 11pt;
|
23
|
+
font-weight: normal;
|
24
|
+
padding-left: 20px;
|
25
|
+
padding-top: 20px;
|
26
|
+
padding-right: 10px;
|
27
|
+
padding-bottom: 5px; }
|
28
|
+
|
29
|
+
#container{
|
30
|
+
margin:0;
|
31
|
+
padding:0;
|
32
|
+
width:100%;
|
33
|
+
float:left;
|
34
|
+
}
|
35
|
+
*/
|
36
|
+
h1 {
|
37
|
+
font-size: 16pt;
|
38
|
+
color: #599c41;
|
39
|
+
}
|
40
|
+
|
41
|
+
h2.list_group {
|
42
|
+
padding-bottom: 0;
|
43
|
+
margin-bottom: 0;
|
44
|
+
font-size: 12pt;
|
45
|
+
}
|
46
|
+
|
47
|
+
#page_content {
|
48
|
+
overflow: hidden;
|
49
|
+
background-image: url('/assets/newsletter/MidRight.gif');
|
50
|
+
background-repeat: repeat-y;
|
51
|
+
background-position: right;
|
52
|
+
padding: 10px 40px 10px 10px;
|
53
|
+
min-height: 300px;
|
54
|
+
}
|
55
|
+
|
56
|
+
/*Content------------------------------------------------*/
|
57
|
+
/*
|
58
|
+
#content {
|
59
|
+
margin:0;
|
60
|
+
padding:10px 15px 15px 15px;
|
61
|
+
clear:both;
|
62
|
+
font-family: Arial, Helvetica, sans-serif;
|
63
|
+
border-top: 1px solid #c4c1a8;
|
64
|
+
}
|
65
|
+
|
66
|
+
#content table {
|
67
|
+
font-family:Arial, Helvetica, sans-serif;
|
68
|
+
font-size: 14px;
|
69
|
+
}
|
70
|
+
*/
|
71
|
+
hr {
|
72
|
+
margin: 0 0 0 10px;
|
73
|
+
width: 620px;
|
74
|
+
text-align:center;
|
75
|
+
color: #636343;
|
76
|
+
}
|
77
|
+
|
78
|
+
|
79
|
+
/* tables used as lists ------------------------------*/
|
80
|
+
table.list {
|
81
|
+
margin:10px 0 20px 20px;
|
82
|
+
padding: 0;
|
83
|
+
border-top: 1px solid #599c41;
|
84
|
+
border-right: 1px solid #599c41;
|
85
|
+
border-left: 1px solid #599c41;
|
86
|
+
font-size: 10pt;
|
87
|
+
border-collapse: collapse;
|
88
|
+
}
|
89
|
+
|
90
|
+
table.list th {
|
91
|
+
background-color: #fef1de;
|
92
|
+
border-bottom: 2px solid #599c41;
|
93
|
+
padding: 3px 10px 0;
|
94
|
+
}
|
95
|
+
|
96
|
+
table.list td {
|
97
|
+
margin:0;
|
98
|
+
padding: 5px 5px 5px;
|
99
|
+
border-bottom: 1px solid #599c41;
|
100
|
+
}
|
101
|
+
|
102
|
+
table.list tr.title {
|
103
|
+
font-weight: bold;
|
104
|
+
color: #ffffff;
|
105
|
+
font-size: 11pt;
|
106
|
+
background: #599c41;
|
107
|
+
white-space: nowrap;
|
108
|
+
}
|
109
|
+
|
110
|
+
|
111
|
+
/* none of the hover stuff will work in IE
|
112
|
+
* without a proper DOCTYPE declaration.
|
113
|
+
* HTML 1.0 Transitional//EN works, as does
|
114
|
+
* XHTML 1.0 Strict//EN
|
115
|
+
*/
|
116
|
+
|
117
|
+
table.list tr.odd {
|
118
|
+
background: #d9eabd;
|
119
|
+
}
|
120
|
+
table.list tr.even:hover {
|
121
|
+
background: #d9dcd3;
|
122
|
+
}
|
123
|
+
|
124
|
+
table.list tr.odd:hover {
|
125
|
+
background: #e0f2c3;
|
126
|
+
}
|
127
|
+
|
128
|
+
table.list tr.even {
|
129
|
+
background: #e2e8d9;
|
130
|
+
}
|
131
|
+
|
132
|
+
|
133
|
+
/* form labels have different alignment*/
|
134
|
+
label {font-size: 11pt;
|
135
|
+
font-family: helvetica, arial, sans-serif;
|
136
|
+
font-weight: bold;
|
137
|
+
text-align: right;
|
138
|
+
color:#555;
|
139
|
+
width: 145px;
|
140
|
+
float:left;
|
141
|
+
display: block;
|
142
|
+
text-align: right;
|
143
|
+
padding: 7px 7px 0 0;
|
144
|
+
}
|
145
|
+
|
146
|
+
input, select, textarea {
|
147
|
+
margin: 6px 0;
|
148
|
+
padding: 2px;
|
149
|
+
text-align: left;
|
150
|
+
color: #444;
|
151
|
+
border: 1px solid #599c41;
|
152
|
+
font-size: 10pt;
|
153
|
+
background-color: #e2e8d9;
|
154
|
+
}
|
155
|
+
|
156
|
+
|
157
|
+
/*Input style buttons within table*/
|
158
|
+
|
159
|
+
|
160
|
+
input.button {
|
161
|
+
background: #ffd04f;
|
162
|
+
background-image: -webkit-linear-gradient(top, #ffd04f, #faeabe);
|
163
|
+
background-image: -moz-linear-gradient(top, #ffd04f, #faeabe);
|
164
|
+
background-image: -ms-linear-gradient(top, #ffd04f, #faeabe);
|
165
|
+
background-image: -o-linear-gradient(top, #ffd04f, #faeabe);
|
166
|
+
background-image: linear-gradient(to bottom, #ffd04f, #faeabe);
|
167
|
+
-webkit-border-radius: 12;
|
168
|
+
-moz-border-radius: 12;
|
169
|
+
border-radius: 10px;
|
170
|
+
padding: 0 10px;
|
171
|
+
border: solid #669421 1px;
|
172
|
+
text-decoration: none;
|
173
|
+
font-size: 11pt;
|
174
|
+
font-weight: bold;
|
175
|
+
color: #555;
|
176
|
+
margin-right: 10px;
|
177
|
+
cursor: pointer;
|
178
|
+
}
|
179
|
+
|
180
|
+
input.button:hover {
|
181
|
+
background: #bafc56;
|
182
|
+
background-image: -webkit-linear-gradient(top, #bafc56, #f7ffeb);
|
183
|
+
background-image: -moz-linear-gradient(top, #bafc56, #f7ffeb);
|
184
|
+
background-image: -ms-linear-gradient(top, #bafc56, #f7ffeb);
|
185
|
+
background-image: -o-linear-gradient(top, #bafc56, #f7ffeb);
|
186
|
+
background-image: linear-gradient(to bottom, #bafc56, #f7ffeb);
|
187
|
+
text-decoration: none;
|
188
|
+
}
|
189
|
+
|
190
|
+
a.button:link, a.button:visited {
|
191
|
+
/* background: #a6f038;
|
192
|
+
background-image: -webkit-linear-gradient(top, #a6f038, #f4ffe3);
|
193
|
+
background-image: -moz-linear-gradient(top, #a6f038, #f4ffe3);
|
194
|
+
background-image: -ms-linear-gradient(top, #a6f038, #f4ffe3);
|
195
|
+
background-image: -o-linear-gradient(top, #a6f038, #f4ffe3);
|
196
|
+
background-image: linear-gradient(to bottom, #a6f038, #f4ffe3);*/
|
197
|
+
/* freaky orange background */
|
198
|
+
background: #ffd04f;
|
199
|
+
background-image: -webkit-linear-gradient(top, #ffd04f, #faeabe);
|
200
|
+
background-image: -moz-linear-gradient(top, #ffd04f, #faeabe);
|
201
|
+
background-image: -ms-linear-gradient(top, #ffd04f, #faeabe);
|
202
|
+
background-image: -o-linear-gradient(top, #ffd04f, #faeabe);
|
203
|
+
background-image: linear-gradient(to bottom, #ffd04f, #faeabe);
|
204
|
+
-webkit-border-radius: 10;
|
205
|
+
-moz-border-radius: 10;
|
206
|
+
border-radius: 10px;
|
207
|
+
padding: 2px 10px 1px 10px;
|
208
|
+
border: solid #669421 1px;
|
209
|
+
text-decoration: none;
|
210
|
+
font-size: 11pt;
|
211
|
+
font-weight: bold;
|
212
|
+
color: #555;
|
213
|
+
margin-right: 10px;
|
214
|
+
/* do I need this? */
|
215
|
+
cursor: pointer;
|
216
|
+
}
|
217
|
+
|
218
|
+
a.button:hover {
|
219
|
+
background: #bafc56;
|
220
|
+
background-image: -webkit-linear-gradient(top, #bafc56, #f7ffeb);
|
221
|
+
background-image: -moz-linear-gradient(top, #bafc56, #f7ffeb);
|
222
|
+
background-image: -ms-linear-gradient(top, #bafc56, #f7ffeb);
|
223
|
+
background-image: -o-linear-gradient(top, #bafc56, #f7ffeb);
|
224
|
+
background-image: linear-gradient(to bottom, #bafc56, #f7ffeb);
|
225
|
+
text-decoration: none;
|
226
|
+
}
|
227
|
+
|
228
|
+
.newsletter_parts_group {
|
229
|
+
margin-top: 10px;
|
230
|
+
padding: 0 5px 5px 15px;
|
231
|
+
border: thin dashed #599c41;
|
232
|
+
background-color: #eee;
|
233
|
+
width: 755px;
|
234
|
+
}
|
235
|
+
|
236
|
+
a:link {
|
237
|
+
color: #F60;
|
238
|
+
text-decoration:none;
|
239
|
+
}
|
240
|
+
|
241
|
+
a:visited {
|
242
|
+
color:#F60;
|
243
|
+
text-decoration:none;
|
244
|
+
}
|
245
|
+
|
246
|
+
a:hover {
|
247
|
+
color: #efaa45;
|
248
|
+
}
|
249
|
+
|
250
|
+
.submit_button {
|
251
|
+
width: 500px;
|
252
|
+
text-align: right;
|
253
|
+
}
|
254
|
+
|
255
|
+
.mailing_lists_group {
|
256
|
+
margin-top: 10px;
|
257
|
+
padding: 0 5px 5px 15px;
|
258
|
+
border: thin dashed black;
|
259
|
+
background-color: #eee;
|
260
|
+
width: 500px;
|
261
|
+
}
|
@@ -0,0 +1,68 @@
|
|
1
|
+
.line
|
2
|
+
{ color: #d9eabd;
|
3
|
+
width:160px;
|
4
|
+
background: #d9eabd;
|
5
|
+
border:none;
|
6
|
+
height:1px;
|
7
|
+
margin:4px 0;
|
8
|
+
|
9
|
+
}
|
10
|
+
|
11
|
+
#menu {font-size: 10pt;
|
12
|
+
float: left;
|
13
|
+
padding-left: 3px;
|
14
|
+
padding-bottom: 10px;
|
15
|
+
margin: 0 5px 5px 0;
|
16
|
+
/*border-right: 1px solid #fdba59;
|
17
|
+
border-bottom: 1px solid #fdba59;*/
|
18
|
+
font-family: helvetica, arial, sans-serif;
|
19
|
+
font-weight: bold;
|
20
|
+
line-height: 12pt;
|
21
|
+
color: #000000;
|
22
|
+
width:176px;
|
23
|
+
background: #8fc23f; /* Old browsers */
|
24
|
+
background: -moz-linear-gradient(top, #8fc23f 0%, #b2d57b 50%, #fffffe 100%); /* FF3.6+ */
|
25
|
+
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#8fc23f), color-stop(50%,#b2d57b), color-stop(100%,#fffffe)); /* Chrome,Safari4+ */
|
26
|
+
background: -webkit-linear-gradient(top, #8fc23f 0%,#b2d57b 50%,#fffffe 100%); /* Chrome10+,Safari5.1+ */
|
27
|
+
background: -o-linear-gradient(top, #8fc23f 0%,#b2d57b 50%,#fffffe 100%); /* Opera 11.10+ */
|
28
|
+
background: -ms-linear-gradient(top, #8fc23f 0%,#b2d57b 50%,#fffffe 100%); /* IE10+ */
|
29
|
+
background: linear-gradient(to bottom, #8fc23f 0%,#b2d57b 50%,#fffffe 100%); /* W3C */
|
30
|
+
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#8fc23f', endColorstr='#fffffe',GradientType=0 ); /* IE6-9 */
|
31
|
+
}
|
32
|
+
|
33
|
+
#menu a:link { color: #000000; text-decoration: none; }
|
34
|
+
#menu a:visited { color: #000000; text-decoration: none; }
|
35
|
+
#menu a:active { color: #000000; text-decoration: none; }
|
36
|
+
#menu a:hover { color: #Fc6; text-decoration: none; }
|
37
|
+
|
38
|
+
#menu ul {
|
39
|
+
padding-left: 10px;
|
40
|
+
list-style: outside none none;
|
41
|
+
}
|
42
|
+
|
43
|
+
#menu ul li {
|
44
|
+
border-bottom: 1px solid #fff;
|
45
|
+
}
|
46
|
+
|
47
|
+
#menu ul li ul {
|
48
|
+
padding-left: 20px;
|
49
|
+
list-style: outside none none;
|
50
|
+
}
|
51
|
+
|
52
|
+
#menu ul li ul li {font-size: 9pt;
|
53
|
+
font-family: helvetica, arial, sans-serif;
|
54
|
+
font-weight: bold;
|
55
|
+
line-height: 12pt;
|
56
|
+
color: #a42529;
|
57
|
+
border: none;
|
58
|
+
|
59
|
+
}
|
60
|
+
#menu ul li ul li a:link { color:#C18100; text-decoration: none; }
|
61
|
+
#menu ul li ul li a:visited { color:#a42529; text-decoration: none; }
|
62
|
+
#menu ul li ul li a:hover { color:#FC6; text-decoration: none; }
|
63
|
+
|
64
|
+
.table-bk {
|
65
|
+
background: url(/assets/newsletter/menuMain.gif) no-repeat top right;
|
66
|
+
padding-top: 20px;
|
67
|
+
padding-left:3px;
|
68
|
+
}
|