alchemy_crm 2.0.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 (240) hide show
  1. data/.gitignore +22 -0
  2. data/.travis.yml +12 -0
  3. data/Gemfile +21 -0
  4. data/Guardfile +13 -0
  5. data/LICENSE +24 -0
  6. data/README.md +82 -0
  7. data/Rakefile +27 -0
  8. data/alchemy_crm.gemspec +31 -0
  9. data/app/assets/images/.DS_Store +0 -0
  10. data/app/assets/images/alchemy_crm/.DS_Store +0 -0
  11. data/app/assets/images/alchemy_crm/contact-icons.png +0 -0
  12. data/app/assets/images/alchemy_crm/fill_content.gif +0 -0
  13. data/app/assets/images/alchemy_crm/group-icons.png +0 -0
  14. data/app/assets/images/alchemy_crm/mailing-icons.png +0 -0
  15. data/app/assets/images/alchemy_crm/module_icon.png +0 -0
  16. data/app/assets/images/alchemy_crm/newsletter-icons.png +0 -0
  17. data/app/assets/images/alchemy_crm/statistic.png +0 -0
  18. data/app/assets/images/alchemy_crm/tag-icons.png +0 -0
  19. data/app/assets/javascripts/alchemy_crm/alchemy_crm.base.js +65 -0
  20. data/app/assets/javascripts/alchemy_crm/scripts.js +2 -0
  21. data/app/assets/stylesheets/alchemy_crm/base.css.scss +473 -0
  22. data/app/assets/stylesheets/alchemy_crm/styles.css +3 -0
  23. data/app/controllers/alchemy_crm/admin/base_controller.rb +7 -0
  24. data/app/controllers/alchemy_crm/admin/contact_groups_controller.rb +23 -0
  25. data/app/controllers/alchemy_crm/admin/contacts_controller.rb +112 -0
  26. data/app/controllers/alchemy_crm/admin/deliveries_controller.rb +80 -0
  27. data/app/controllers/alchemy_crm/admin/elements_controller_extension.rb +32 -0
  28. data/app/controllers/alchemy_crm/admin/mailings_controller.rb +47 -0
  29. data/app/controllers/alchemy_crm/admin/newsletters_controller.rb +24 -0
  30. data/app/controllers/alchemy_crm/admin/tags_controller.rb +62 -0
  31. data/app/controllers/alchemy_crm/base_controller.rb +5 -0
  32. data/app/controllers/alchemy_crm/contacts_controller.rb +103 -0
  33. data/app/controllers/alchemy_crm/mailings_controller.rb +20 -0
  34. data/app/controllers/alchemy_crm/recipients_controller.rb +35 -0
  35. data/app/controllers/alchemy_crm/subscriptions_controller.rb +57 -0
  36. data/app/helpers/alchemy/pages_helper_extension.rb +18 -0
  37. data/app/helpers/alchemy_crm/admin/base_helper.rb +12 -0
  38. data/app/helpers/alchemy_crm/mailings_helper.rb +190 -0
  39. data/app/mailers/alchemy_crm/bounce_receiver.rb +13 -0
  40. data/app/mailers/alchemy_crm/contacts_mailer.rb +26 -0
  41. data/app/mailers/alchemy_crm/mailings_mailer.rb +48 -0
  42. data/app/mailers/alchemy_crm/subscriptions_mailer.rb +17 -0
  43. data/app/models/alchemy/essence_element_teaser.rb +19 -0
  44. data/app/models/alchemy_crm/contact.rb +264 -0
  45. data/app/models/alchemy_crm/contact_group.rb +26 -0
  46. data/app/models/alchemy_crm/contact_group_filter.rb +26 -0
  47. data/app/models/alchemy_crm/delivery.rb +57 -0
  48. data/app/models/alchemy_crm/element_extension.rb +28 -0
  49. data/app/models/alchemy_crm/mailing.rb +93 -0
  50. data/app/models/alchemy_crm/newsletter.rb +48 -0
  51. data/app/models/alchemy_crm/reaction.rb +9 -0
  52. data/app/models/alchemy_crm/recipient.rb +48 -0
  53. data/app/models/alchemy_crm/subscription.rb +8 -0
  54. data/app/views/alchemy/admin/elements/_view_not_found.text.erb +0 -0
  55. data/app/views/alchemy/admin/elements/fill.js.erb +13 -0
  56. data/app/views/alchemy/admin/elements/link.js.erb +1 -0
  57. data/app/views/alchemy/elements/_newsletter_article_editor.html.erb +4 -0
  58. data/app/views/alchemy/elements/_newsletter_article_view.html.erb +16 -0
  59. data/app/views/alchemy/elements/_newsletter_article_view.text.erb +5 -0
  60. data/app/views/alchemy/elements/_newsletter_greeting_editor.html.erb +3 -0
  61. data/app/views/alchemy/elements/_newsletter_greeting_view.html.erb +11 -0
  62. data/app/views/alchemy/elements/_newsletter_greeting_view.text.erb +6 -0
  63. data/app/views/alchemy/elements/_newsletter_signout_form_editor.html.erb +3 -0
  64. data/app/views/alchemy/elements/_newsletter_signout_form_view.html.erb +32 -0
  65. data/app/views/alchemy/elements/_newsletter_signout_mail_editor.html.erb +4 -0
  66. data/app/views/alchemy/elements/_newsletter_signup_form_editor.html.erb +6 -0
  67. data/app/views/alchemy/elements/_newsletter_signup_form_view.html.erb +78 -0
  68. data/app/views/alchemy/elements/_newsletter_signup_mail_editor.html.erb +4 -0
  69. data/app/views/alchemy/essences/_essence_date_view.text.erb +3 -0
  70. data/app/views/alchemy/essences/_essence_element_teaser_editor.html.erb +31 -0
  71. data/app/views/alchemy/essences/_essence_element_teaser_view.html.erb +1 -0
  72. data/app/views/alchemy/essences/_essence_element_teaser_view.text.erb +3 -0
  73. data/app/views/alchemy/essences/_essence_richtext_view.text.erb +1 -0
  74. data/app/views/alchemy/essences/_essence_text_view.text.erb +1 -0
  75. data/app/views/alchemy/newsletter_layouts/_standard.html.erb +39 -0
  76. data/app/views/alchemy/newsletter_layouts/_standard.text.erb +5 -0
  77. data/app/views/alchemy_crm/admin/contact_groups/_contact_group.html.erb +32 -0
  78. data/app/views/alchemy_crm/admin/contact_groups/_filter.html.erb +30 -0
  79. data/app/views/alchemy_crm/admin/contact_groups/_form.html.erb +47 -0
  80. data/app/views/alchemy_crm/admin/contact_groups/_tag.html.erb +6 -0
  81. data/app/views/alchemy_crm/admin/contact_groups/add_filter.js.erb +9 -0
  82. data/app/views/alchemy_crm/admin/contact_groups/destroy.rjs +1 -0
  83. data/app/views/alchemy_crm/admin/contact_groups/edit.html.erb +1 -0
  84. data/app/views/alchemy_crm/admin/contact_groups/index.html.erb +41 -0
  85. data/app/views/alchemy_crm/admin/contact_groups/new.html.erb +1 -0
  86. data/app/views/alchemy_crm/admin/contacts/_contact.html.erb +44 -0
  87. data/app/views/alchemy_crm/admin/contacts/_form.html.erb +86 -0
  88. data/app/views/alchemy_crm/admin/contacts/destroy.rjs +1 -0
  89. data/app/views/alchemy_crm/admin/contacts/edit.html.erb +1 -0
  90. data/app/views/alchemy_crm/admin/contacts/import.html.erb +33 -0
  91. data/app/views/alchemy_crm/admin/contacts/import.js.erb +2 -0
  92. data/app/views/alchemy_crm/admin/contacts/index.html.erb +51 -0
  93. data/app/views/alchemy_crm/admin/contacts/new.html.erb +1 -0
  94. data/app/views/alchemy_crm/admin/contacts/vcf_import_result.html.erb +49 -0
  95. data/app/views/alchemy_crm/admin/deliveries/_delivery.html.erb +41 -0
  96. data/app/views/alchemy_crm/admin/deliveries/_form.html.erb +65 -0
  97. data/app/views/alchemy_crm/admin/deliveries/_recipient.html.erb +40 -0
  98. data/app/views/alchemy_crm/admin/deliveries/edit.html.erb +1 -0
  99. data/app/views/alchemy_crm/admin/deliveries/index.html.erb +29 -0
  100. data/app/views/alchemy_crm/admin/deliveries/new.html.erb +1 -0
  101. data/app/views/alchemy_crm/admin/deliveries/show.html.erb +66 -0
  102. data/app/views/alchemy_crm/admin/elements/link.rjs +4 -0
  103. data/app/views/alchemy_crm/admin/elements/teasables.html.erb +57 -0
  104. data/app/views/alchemy_crm/admin/mailings/_form.html.erb +43 -0
  105. data/app/views/alchemy_crm/admin/mailings/_mailing.html.erb +75 -0
  106. data/app/views/alchemy_crm/admin/mailings/edit.html.erb +1 -0
  107. data/app/views/alchemy_crm/admin/mailings/edit_content.html.erb +194 -0
  108. data/app/views/alchemy_crm/admin/mailings/import_result.html.erb +37 -0
  109. data/app/views/alchemy_crm/admin/mailings/index.html.erb +39 -0
  110. data/app/views/alchemy_crm/admin/mailings/new.html.erb +1 -0
  111. data/app/views/alchemy_crm/admin/mailings/show.html.erb +1 -0
  112. data/app/views/alchemy_crm/admin/mailings/show.text.erb +1 -0
  113. data/app/views/alchemy_crm/admin/newsletters/_form.html.erb +54 -0
  114. data/app/views/alchemy_crm/admin/newsletters/_newsletter.html.erb +42 -0
  115. data/app/views/alchemy_crm/admin/newsletters/_tag_with_radiobutton.html.erb +7 -0
  116. data/app/views/alchemy_crm/admin/newsletters/destroy.rjs +1 -0
  117. data/app/views/alchemy_crm/admin/newsletters/edit.html.erb +1 -0
  118. data/app/views/alchemy_crm/admin/newsletters/index.html.erb +42 -0
  119. data/app/views/alchemy_crm/admin/newsletters/new.html.erb +10 -0
  120. data/app/views/alchemy_crm/admin/tags/_radio_tag.html.erb +6 -0
  121. data/app/views/alchemy_crm/admin/tags/_tag.html.erb +32 -0
  122. data/app/views/alchemy_crm/admin/tags/edit.html.erb +40 -0
  123. data/app/views/alchemy_crm/admin/tags/index.html.erb +35 -0
  124. data/app/views/alchemy_crm/admin/tags/new.html.erb +16 -0
  125. data/app/views/alchemy_crm/contacts_mailer/signout_mail.html.erb +8 -0
  126. data/app/views/alchemy_crm/contacts_mailer/signout_mail.text.erb +4 -0
  127. data/app/views/alchemy_crm/contacts_mailer/signup_mail.html.erb +11 -0
  128. data/app/views/alchemy_crm/contacts_mailer/signup_mail.text.erb +4 -0
  129. data/app/views/alchemy_crm/mailings/show.html.erb +1 -0
  130. data/app/views/alchemy_crm/mailings_mailer/verification_mail.html.erb +11 -0
  131. data/app/views/alchemy_crm/subscriptions/index.html.erb +23 -0
  132. data/app/views/alchemy_crm/subscriptions_mailer/overview_mail.html.erb +27 -0
  133. data/app/views/alchemy_crm/subscriptions_mailer/overview_mail.text.erb +19 -0
  134. data/app/views/csv_magic/import_errors.html.erb +44 -0
  135. data/app/views/csv_magic/mapper.html.erb +62 -0
  136. data/app/views/layouts/alchemy_crm/mailings.html.erb +212 -0
  137. data/app/views/layouts/alchemy_crm/mailings.text.erb +3 -0
  138. data/config/alchemy_crm.config.yml +21 -0
  139. data/config/authorization_rules.rb +37 -0
  140. data/config/initializers/assets.rb +4 -0
  141. data/config/initializers/delayed_job.rb +6 -0
  142. data/config/locales/alchemy.de.yml +55 -0
  143. data/config/locales/alchemy.en.yml +52 -0
  144. data/config/locales/alchemy_crm.de.yml +196 -0
  145. data/config/locales/alchemy_crm.en.yml +53 -0
  146. data/config/locales/localized_country_select.de.rb +268 -0
  147. data/config/locales/localized_country_select.en.rb +282 -0
  148. data/config/module_definition.yml +30 -0
  149. data/config/routes.rb +71 -0
  150. data/db/migrate/20100708220434_create_mailings.rb +19 -0
  151. data/db/migrate/20100708220534_create_contacts.rb +27 -0
  152. data/db/migrate/20100708220812_create_contact_groups.rb +13 -0
  153. data/db/migrate/20100708221009_create_newsletters.rb +15 -0
  154. data/db/migrate/20100708221319_create_sent_mailings.rb +15 -0
  155. data/db/migrate/20100708221529_create_recipients.rb +21 -0
  156. data/db/migrate/20100708222620_acts_as_taggable_migration.rb +28 -0
  157. data/db/migrate/20100708223324_create_contact_group_filters.rb +17 -0
  158. data/db/migrate/20100708223727_create_newsletter_subscriptions.rb +14 -0
  159. data/db/migrate/20100708223922_create_essence_element_teasers.rb +15 -0
  160. data/db/migrate/20100714172207_create_contact_groups_newsletters.rb +12 -0
  161. data/db/migrate/20100927152601_create_reactions.rb +14 -0
  162. data/db/migrate/20111028091722_acts_as_taggable_on_migration.rb +15 -0
  163. data/db/migrate/20111028200710_add_counter_cache_columns_for_tags.rb +11 -0
  164. data/db/migrate/20111030204931_create_delayed_jobs.rb +21 -0
  165. data/db/migrate/20111104105854_add_deliver_at_to_sent_mailings.rb +9 -0
  166. data/db/migrate/20111104125306_remove_sent_mailing_pdf_id_from_sent_mailings.rb +9 -0
  167. data/db/migrate/20111104131912_add_delivered_at_to_sent_mailings.rb +9 -0
  168. data/db/migrate/20111124145923_namespace_alchemy_crm_models.rb +17 -0
  169. data/db/migrate/20120306115555_add_disabled_to_alchemy_crm_contacts.rb +5 -0
  170. data/db/migrate/20120307160721_rename_alchemy_crm_recipients_sent_mailing_id.rb +5 -0
  171. data/db/migrate/20120315113522_add_url_to_alchemy_crm_reactions.rb +5 -0
  172. data/db/migrate/20120316161333_add_sha1_and_salt_to_alchemy_crm_recipients.rb +6 -0
  173. data/db/migrate/20120320103412_add_indexes_to_alchemy_crm_sha1_columns.rb +7 -0
  174. data/db/migrate/20120321105455_add_queue_to_delayed_jobs.rb +9 -0
  175. data/db/migrate/20120327174301_add_more_indexes_to_alchemy_crm_tables.rb +12 -0
  176. data/lib/alchemy_crm.rb +18 -0
  177. data/lib/alchemy_crm/bounced_delivery.rb +46 -0
  178. data/lib/alchemy_crm/config.rb +28 -0
  179. data/lib/alchemy_crm/engine.rb +40 -0
  180. data/lib/alchemy_crm/i18n_helpers.rb +35 -0
  181. data/lib/alchemy_crm/newsletter_layout.rb +40 -0
  182. data/lib/alchemy_crm/seeder.rb +30 -0
  183. data/lib/alchemy_crm/version.rb +3 -0
  184. data/lib/generators/alchemy_crm/scaffold/files/_standard.html.erb +1 -0
  185. data/lib/generators/alchemy_crm/scaffold/files/_standard.text.erb +1 -0
  186. data/lib/generators/alchemy_crm/scaffold/files/elements.yml +51 -0
  187. data/lib/generators/alchemy_crm/scaffold/files/newsletter_layouts.yml +3 -0
  188. data/lib/generators/alchemy_crm/scaffold/files/newsletters.html.erb +22 -0
  189. data/lib/generators/alchemy_crm/scaffold/files/newsletters.text.erb +4 -0
  190. data/lib/generators/alchemy_crm/scaffold/files/page_layouts.yml +19 -0
  191. data/lib/generators/alchemy_crm/scaffold/scaffold_generator.rb +26 -0
  192. data/lib/tasks/alchemy_crm.rake +28 -0
  193. data/lib/tasks/routes.rake +29 -0
  194. data/rails/init.rb +1 -0
  195. data/recipes/alchemy-mailings-capistrano-tasks.rb +12 -0
  196. data/spec/alchemy_mailings_spec.rb +7 -0
  197. data/spec/config_spec.rb +28 -0
  198. data/spec/controllers/alchemy_crm/contacts_controller_spec.rb +210 -0
  199. data/spec/controllers/alchemy_crm/mailings_controller_spec.rb +89 -0
  200. data/spec/controllers/alchemy_crm/recipients_controller_spec.rb +155 -0
  201. data/spec/dummy/Rakefile +7 -0
  202. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  203. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  204. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  205. data/spec/dummy/config.ru +4 -0
  206. data/spec/dummy/config/alchemy/config.yml +142 -0
  207. data/spec/dummy/config/alchemy/elements.yml +79 -0
  208. data/spec/dummy/config/alchemy/newsletter_layouts.yml +4 -0
  209. data/spec/dummy/config/alchemy/page_layouts.yml +55 -0
  210. data/spec/dummy/config/application.rb +43 -0
  211. data/spec/dummy/config/boot.rb +10 -0
  212. data/spec/dummy/config/database.yml +22 -0
  213. data/spec/dummy/config/environment.rb +5 -0
  214. data/spec/dummy/config/environments/development.rb +30 -0
  215. data/spec/dummy/config/environments/production.rb +60 -0
  216. data/spec/dummy/config/environments/test.rb +39 -0
  217. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  218. data/spec/dummy/config/initializers/inflections.rb +10 -0
  219. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  220. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  221. data/spec/dummy/config/initializers/session_store.rb +8 -0
  222. data/spec/dummy/config/locales/en.yml +5 -0
  223. data/spec/dummy/config/routes.rb +4 -0
  224. data/spec/dummy/db/schema.rb +452 -0
  225. data/spec/dummy/public/404.html +26 -0
  226. data/spec/dummy/public/422.html +26 -0
  227. data/spec/dummy/public/500.html +26 -0
  228. data/spec/dummy/public/favicon.ico +0 -0
  229. data/spec/dummy/script/rails +6 -0
  230. data/spec/helpers/alchemy_crm/mailings_helper_spec.rb +169 -0
  231. data/spec/mailers/alchemy_crm/contacts_mailer_spec.rb +88 -0
  232. data/spec/mailers/alchemy_crm/mailings_mailer_spec.rb +42 -0
  233. data/spec/models/alchemy_crm/contact_group_spec.rb +41 -0
  234. data/spec/models/alchemy_crm/contact_spec.rb +108 -0
  235. data/spec/models/alchemy_crm/delivery_spec.rb +55 -0
  236. data/spec/models/alchemy_crm/mailing_spec.rb +63 -0
  237. data/spec/models/alchemy_crm/newsletter_spec.rb +45 -0
  238. data/spec/spec_helper.rb +58 -0
  239. data/vendor/assets/javascripts/autocomplete-rails.js +16 -0
  240. metadata +438 -0
@@ -0,0 +1,282 @@
1
+ #encoding: UTF-8
2
+ { :en => {
3
+
4
+ :countries => {
5
+ :AC => "Ascension Island",
6
+ :AD => "Andorra",
7
+ :AE => "United Arab Emirates",
8
+ :AF => "Afghanistan",
9
+ :AG => "Antigua and Barbuda",
10
+ :AI => "Anguilla",
11
+ :AL => "Albania",
12
+ :AM => "Armenia",
13
+ :AN => "Netherlands Antilles",
14
+ :AO => "Angola",
15
+ :AQ => "Antarctica",
16
+ :AR => "Argentina",
17
+ :AS => "American Samoa",
18
+ :AT => "Austria",
19
+ :AU => "Australia",
20
+ :AW => "Aruba",
21
+ :AX => "Åland Islands",
22
+ :AZ => "Azerbaijan",
23
+ :BA => "Bosnia and Herzegovina",
24
+ :BB => "Barbados",
25
+ :BD => "Bangladesh",
26
+ :BE => "Belgium",
27
+ :BF => "Burkina Faso",
28
+ :BG => "Bulgaria",
29
+ :BH => "Bahrain",
30
+ :BI => "Burundi",
31
+ :BJ => "Benin",
32
+ :BL => "Saint Barthélemy",
33
+ :BM => "Bermuda",
34
+ :BN => "Brunei",
35
+ :BO => "Bolivia",
36
+ :BQ => "British Antarctic Territory",
37
+ :BR => "Brazil",
38
+ :BS => "Bahamas",
39
+ :BT => "Bhutan",
40
+ :BV => "Bouvet Island",
41
+ :BW => "Botswana",
42
+ :BY => "Belarus",
43
+ :BZ => "Belize",
44
+ :CA => "Canada",
45
+ :CC => "Cocos [Keeling] Islands",
46
+ :CD => "Congo - Kinshasa",
47
+ :CF => "Central African Republic",
48
+ :CG => "Congo - Brazzaville",
49
+ :CH => "Switzerland",
50
+ :CI => "Côte d’Ivoire",
51
+ :CK => "Cook Islands",
52
+ :CL => "Chile",
53
+ :CM => "Cameroon",
54
+ :CN => "China",
55
+ :CO => "Colombia",
56
+ :CP => "Clipperton Island",
57
+ :CR => "Costa Rica",
58
+ :CS => "Serbia and Montenegro",
59
+ :CT => "Canton and Enderbury Islands",
60
+ :CU => "Cuba",
61
+ :CV => "Cape Verde",
62
+ :CW => "CW",
63
+ :CX => "Christmas Island",
64
+ :CY => "Cyprus",
65
+ :CZ => "Czech Republic",
66
+ :DD => "East Germany",
67
+ :DE => "Germany",
68
+ :DG => "Diego Garcia",
69
+ :DJ => "Djibouti",
70
+ :DK => "Denmark",
71
+ :DM => "Dominica",
72
+ :DO => "Dominican Republic",
73
+ :DZ => "Algeria",
74
+ :EA => "Ceuta and Melilla",
75
+ :EC => "Ecuador",
76
+ :EE => "Estonia",
77
+ :EG => "Egypt",
78
+ :EH => "Western Sahara",
79
+ :ER => "Eritrea",
80
+ :ES => "Spain",
81
+ :ET => "Ethiopia",
82
+ :EU => "European Union",
83
+ :FI => "Finland",
84
+ :FJ => "Fiji",
85
+ :FK => "Falkland Islands",
86
+ :FM => "Micronesia",
87
+ :FO => "Faroe Islands",
88
+ :FQ => "French Southern and Antarctic Territories",
89
+ :FR => "France",
90
+ :FX => "Metropolitan France",
91
+ :GA => "Gabon",
92
+ :GB => "United Kingdom",
93
+ :GD => "Grenada",
94
+ :GE => "Georgia",
95
+ :GF => "French Guiana",
96
+ :GG => "Guernsey",
97
+ :GH => "Ghana",
98
+ :GI => "Gibraltar",
99
+ :GL => "Greenland",
100
+ :GM => "Gambia",
101
+ :GN => "Guinea",
102
+ :GP => "Guadeloupe",
103
+ :GQ => "Equatorial Guinea",
104
+ :GR => "Greece",
105
+ :GS => "South Georgia and the South Sandwich Islands",
106
+ :GT => "Guatemala",
107
+ :GU => "Guam",
108
+ :GW => "Guinea-Bissau",
109
+ :GY => "Guyana",
110
+ :HK => "Hong Kong SAR China",
111
+ :HM => "Heard Island and McDonald Islands",
112
+ :HN => "Honduras",
113
+ :HR => "Croatia",
114
+ :HT => "Haiti",
115
+ :HU => "Hungary",
116
+ :IC => "Canary Islands",
117
+ :ID => "Indonesia",
118
+ :IE => "Ireland",
119
+ :IL => "Israel",
120
+ :IM => "Isle of Man",
121
+ :IN => "India",
122
+ :IO => "British Indian Ocean Territory",
123
+ :IQ => "Iraq",
124
+ :IR => "Iran",
125
+ :IS => "Iceland",
126
+ :IT => "Italy",
127
+ :JE => "Jersey",
128
+ :JM => "Jamaica",
129
+ :JO => "Jordan",
130
+ :JP => "Japan",
131
+ :JT => "Johnston Island",
132
+ :KE => "Kenya",
133
+ :KG => "Kyrgyzstan",
134
+ :KH => "Cambodia",
135
+ :KI => "Kiribati",
136
+ :KM => "Comoros",
137
+ :KN => "Saint Kitts and Nevis",
138
+ :KP => "North Korea",
139
+ :KR => "South Korea",
140
+ :KW => "Kuwait",
141
+ :KY => "Cayman Islands",
142
+ :KZ => "Kazakhstan",
143
+ :LA => "Laos",
144
+ :LB => "Lebanon",
145
+ :LC => "Saint Lucia",
146
+ :LI => "Liechtenstein",
147
+ :LK => "Sri Lanka",
148
+ :LR => "Liberia",
149
+ :LS => "Lesotho",
150
+ :LT => "Lithuania",
151
+ :LU => "Luxembourg",
152
+ :LV => "Latvia",
153
+ :LY => "Libya",
154
+ :MA => "Morocco",
155
+ :MC => "Monaco",
156
+ :MD => "Moldova",
157
+ :ME => "Montenegro",
158
+ :MF => "Saint Martin",
159
+ :MG => "Madagascar",
160
+ :MH => "Marshall Islands",
161
+ :MI => "Midway Islands",
162
+ :MK => "Macedonia",
163
+ :ML => "Mali",
164
+ :MM => "Myanmar [Burma]",
165
+ :MN => "Mongolia",
166
+ :MO => "Macau SAR China",
167
+ :MP => "Northern Mariana Islands",
168
+ :MQ => "Martinique",
169
+ :MR => "Mauritania",
170
+ :MS => "Montserrat",
171
+ :MT => "Malta",
172
+ :MU => "Mauritius",
173
+ :MV => "Maldives",
174
+ :MW => "Malawi",
175
+ :MX => "Mexico",
176
+ :MY => "Malaysia",
177
+ :MZ => "Mozambique",
178
+ :NA => "Namibia",
179
+ :NC => "New Caledonia",
180
+ :NE => "Niger",
181
+ :NF => "Norfolk Island",
182
+ :NG => "Nigeria",
183
+ :NI => "Nicaragua",
184
+ :NL => "Netherlands",
185
+ :NO => "Norway",
186
+ :NP => "Nepal",
187
+ :NQ => "Dronning Maud Land",
188
+ :NR => "Nauru",
189
+ :NT => "Neutral Zone",
190
+ :NU => "Niue",
191
+ :NZ => "New Zealand",
192
+ :OM => "Oman",
193
+ :PA => "Panama",
194
+ :PC => "Pacific Islands Trust Territory",
195
+ :PE => "Peru",
196
+ :PF => "French Polynesia",
197
+ :PG => "Papua New Guinea",
198
+ :PH => "Philippines",
199
+ :PK => "Pakistan",
200
+ :PL => "Poland",
201
+ :PM => "Saint Pierre and Miquelon",
202
+ :PN => "Pitcairn Islands",
203
+ :PR => "Puerto Rico",
204
+ :PS => "Palestinian Territories",
205
+ :PT => "Portugal",
206
+ :PU => "U.S. Miscellaneous Pacific Islands",
207
+ :PW => "Palau",
208
+ :PY => "Paraguay",
209
+ :PZ => "Panama Canal Zone",
210
+ :QA => "Qatar",
211
+ :QO => "Outlying Oceania",
212
+ :RE => "Réunion",
213
+ :RO => "Romania",
214
+ :RS => "Serbia",
215
+ :RU => "Russia",
216
+ :RW => "Rwanda",
217
+ :SA => "Saudi Arabia",
218
+ :SB => "Solomon Islands",
219
+ :SC => "Seychelles",
220
+ :SD => "Sudan",
221
+ :SE => "Sweden",
222
+ :SG => "Singapore",
223
+ :SH => "Saint Helena",
224
+ :SI => "Slovenia",
225
+ :SJ => "Svalbard and Jan Mayen",
226
+ :SK => "Slovakia",
227
+ :SL => "Sierra Leone",
228
+ :SM => "San Marino",
229
+ :SN => "Senegal",
230
+ :SO => "Somalia",
231
+ :SR => "Suriname",
232
+ :ST => "São Tomé and Príncipe",
233
+ :SU => "Union of Soviet Socialist Republics",
234
+ :SV => "El Salvador",
235
+ :SX => "SX",
236
+ :SY => "Syria",
237
+ :SZ => "Swaziland",
238
+ :TA => "Tristan da Cunha",
239
+ :TC => "Turks and Caicos Islands",
240
+ :TD => "Chad",
241
+ :TF => "French Southern Territories",
242
+ :TG => "Togo",
243
+ :TH => "Thailand",
244
+ :TJ => "Tajikistan",
245
+ :TK => "Tokelau",
246
+ :TL => "Timor-Leste",
247
+ :TM => "Turkmenistan",
248
+ :TN => "Tunisia",
249
+ :TO => "Tonga",
250
+ :TR => "Turkey",
251
+ :TT => "Trinidad and Tobago",
252
+ :TV => "Tuvalu",
253
+ :TW => "Taiwan",
254
+ :TZ => "Tanzania",
255
+ :UA => "Ukraine",
256
+ :UG => "Uganda",
257
+ :UM => "U.S. Minor Outlying Islands",
258
+ :US => "United States",
259
+ :UY => "Uruguay",
260
+ :UZ => "Uzbekistan",
261
+ :VA => "Vatican City",
262
+ :VC => "Saint Vincent and the Grenadines",
263
+ :VD => "North Vietnam",
264
+ :VE => "Venezuela",
265
+ :VG => "British Virgin Islands",
266
+ :VI => "U.S. Virgin Islands",
267
+ :VN => "Vietnam",
268
+ :VU => "Vanuatu",
269
+ :WF => "Wallis and Futuna",
270
+ :WK => "Wake Island",
271
+ :WS => "Samoa",
272
+ :YD => "People’s Democratic Republic of Yemen",
273
+ :YE => "Yemen",
274
+ :YT => "Mayotte",
275
+ :ZA => "South Africa",
276
+ :ZM => "Zambia",
277
+ :ZW => "Zimbabwe",
278
+ :ZZ => "Unknown Region",
279
+ }
280
+
281
+ }
282
+ }
@@ -0,0 +1,30 @@
1
+ name: alchemy_crm
2
+ engine_name: alchemy_crm
3
+ order: 1
4
+ navigation:
5
+ name: modules.crm
6
+ controller: alchemy_crm/admin/mailings
7
+ action: index
8
+ image: /assets/alchemy_crm/module_icon.png
9
+ sub_navigation:
10
+ - name: Mailings
11
+ controller: alchemy_crm/admin/mailings
12
+ action: index
13
+ - name: Newsletter
14
+ controller: alchemy_crm/admin/newsletters
15
+ action: index
16
+ - name: Kontakte
17
+ controller: alchemy_crm/admin/contacts
18
+ action: index
19
+ nested_actions: [import]
20
+ - name: Zielgruppen
21
+ controller: alchemy_crm/admin/contact_groups
22
+ action: index
23
+ - name: Tags
24
+ controller: alchemy_crm/admin/tags
25
+ action: index
26
+ nested:
27
+ - controller: alchemy_crm/admin/mailings
28
+ action: edit_content
29
+ - controller: alchemy_crm/admin/contacts
30
+ action: import
data/config/routes.rb ADDED
@@ -0,0 +1,71 @@
1
+ AlchemyCrm::Engine.routes.draw do
2
+
3
+ match '/recipients/:h/reads' => 'recipients#reads',
4
+ :as => 'recipient_reads'
5
+
6
+ match '/recipients/:h/reacts' => 'recipients#reacts',
7
+ :as => 'recipient_reacts'
8
+
9
+ match '/subscriptions/:token/destroy/:newsletter_id' => 'subscriptions#destroy',
10
+ :as => 'destroy_subscription'
11
+
12
+ match '/admin/elements/teasables' => 'admin/elements#teasables',
13
+ :as => 'teasable_elements'
14
+
15
+ match '/admin/elements/teasables' => 'admin/elements#teasables',
16
+ :as => 'teasable_elements'
17
+
18
+ match '/contacts/:token/verify' => 'contacts#verify',
19
+ :as => 'verify_contact'
20
+
21
+ match '/contacts/:token/disable' => 'contacts#disable',
22
+ :as => 'disable_contact'
23
+
24
+ match '/mailings/:m/show/:r' => 'mailings#show',
25
+ :as => 'show_mailing'
26
+
27
+ resources :mailings, :only => [:show]
28
+
29
+ resources :contacts do
30
+ collection do
31
+ post :signup, :signout
32
+ end
33
+ end
34
+
35
+ resources :subscriptions do
36
+ collection do
37
+ post :overview
38
+ end
39
+ end
40
+
41
+ namespace :admin do
42
+
43
+ resources :contacts do
44
+ collection do
45
+ get :import
46
+ get :autocomplete_tag_list
47
+ post :import
48
+ end
49
+ member { get :export }
50
+ end
51
+
52
+ resources :contact_groups do
53
+ collection { get :add_filter }
54
+ end
55
+
56
+ resources :tags, :newsletters
57
+
58
+ resources :deliveries
59
+
60
+ resources :mailings do
61
+ resources :deliveries
62
+ collection { get :signout }
63
+ member do
64
+ get :copy
65
+ get :edit_content
66
+ end
67
+ end
68
+
69
+ end
70
+
71
+ end
@@ -0,0 +1,19 @@
1
+ class CreateMailings < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :mailings do |t|
4
+ t.string :name
5
+ t.string :subject
6
+ t.string :salt
7
+ t.string :sha1
8
+ t.integer :page_id
9
+ t.text :additional_email_addresses
10
+ t.integer :newsletter_id
11
+ t.timestamps
12
+ t.userstamps
13
+ end
14
+ end
15
+
16
+ def self.down
17
+ drop_table :mailings
18
+ end
19
+ end
@@ -0,0 +1,27 @@
1
+ class CreateContacts < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :contacts do |t|
4
+ t.string :title
5
+ t.string :salutation
6
+ t.string :firstname
7
+ t.string :lastname
8
+ t.string :email
9
+ t.string :phone
10
+ t.string :mobile
11
+ t.string :address
12
+ t.string :zip
13
+ t.string :city
14
+ t.string :country
15
+ t.string :organisation
16
+ t.string :email_sha1
17
+ t.string :email_salt
18
+ t.boolean :verified, :default => false
19
+ t.timestamps
20
+ t.userstamps
21
+ end
22
+ end
23
+
24
+ def self.down
25
+ drop_table :contacts
26
+ end
27
+ end
@@ -0,0 +1,13 @@
1
+ class CreateContactGroups < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :contact_groups do |t|
4
+ t.string :name, :string
5
+ t.timestamps
6
+ t.userstamps
7
+ end
8
+ end
9
+
10
+ def self.down
11
+ drop_table :contact_groups
12
+ end
13
+ end