fat_free_crm 0.11.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of fat_free_crm might be problematic. Click here for more details.
- data/.gitignore +32 -0
- data/.travis.yml +48 -0
- data/CHANGELOG +1839 -0
- data/CONTRIBUTORS +50 -0
- data/Gemfile +40 -0
- data/Gemfile.ci +13 -0
- data/Gemfile.lock +256 -0
- data/Guardfile +45 -0
- data/LICENSE +620 -0
- data/Procfile +1 -0
- data/README.md +239 -0
- data/Rakefile +9 -0
- data/acceptance/acceptance_helper.rb +7 -0
- data/acceptance/accounts_spec.rb +74 -0
- data/acceptance/support/browser.rb +13 -0
- data/acceptance/support/database_cleaner.rb +16 -0
- data/acceptance/support/headless.rb +15 -0
- data/acceptance/support/helpers.rb +19 -0
- data/acceptance/support/maintain_sessions.rb +5 -0
- data/acceptance/support/paths.rb +9 -0
- data/app/assets/images/1x1.gif +0 -0
- data/app/assets/images/asterisk.gif +0 -0
- data/app/assets/images/avatar.jpg +0 -0
- data/app/assets/images/blog.gif +0 -0
- data/app/assets/images/facebook-close.gif +0 -0
- data/app/assets/images/facebook.gif +0 -0
- data/app/assets/images/iconset_attribution.png +0 -0
- data/app/assets/images/info.png +0 -0
- data/app/assets/images/info_tiny.png +0 -0
- data/app/assets/images/linkedin.gif +0 -0
- data/app/assets/images/loading.gif +0 -0
- data/app/assets/images/skype.gif +0 -0
- data/app/assets/images/sortable.gif +0 -0
- data/app/assets/images/stars.gif +0 -0
- data/app/assets/images/twitter.gif +0 -0
- data/app/assets/javascripts/admin/field_groups.js.coffee +3 -0
- data/app/assets/javascripts/application.js.erb +42 -0
- data/app/assets/javascripts/crm.js +487 -0
- data/app/assets/javascripts/crm_chosen.js.coffee +28 -0
- data/app/assets/javascripts/crm_classes.js +230 -0
- data/app/assets/javascripts/crm_fields.js +47 -0
- data/app/assets/javascripts/crm_loginout.js +41 -0
- data/app/assets/javascripts/jquery-noconflict.js +1 -0
- data/app/assets/javascripts/lists.js.coffee +37 -0
- data/app/assets/javascripts/search.js.coffee +40 -0
- data/app/assets/stylesheets/admin/field_groups.css.scss +3 -0
- data/app/assets/stylesheets/application.css.erb +37 -0
- data/app/assets/stylesheets/base.scss +90 -0
- data/app/assets/stylesheets/common.scss +688 -0
- data/app/assets/stylesheets/ffcrm_chosen.scss +64 -0
- data/app/assets/stylesheets/fields.scss +8 -0
- data/app/assets/stylesheets/header.scss +129 -0
- data/app/assets/stylesheets/lists.css.scss +3 -0
- data/app/assets/stylesheets/print.css.scss +80 -0
- data/app/assets/stylesheets/rails.scss +136 -0
- data/app/assets/stylesheets/safari.scss +23 -0
- data/app/controllers/accounts_controller.rb +207 -0
- data/app/controllers/admin/application_controller.rb +42 -0
- data/app/controllers/admin/field_groups_controller.rb +128 -0
- data/app/controllers/admin/fields_controller.rb +148 -0
- data/app/controllers/admin/plugins_controller.rb +33 -0
- data/app/controllers/admin/settings_controller.rb +31 -0
- data/app/controllers/admin/tags_controller.rb +131 -0
- data/app/controllers/admin/users_controller.rb +200 -0
- data/app/controllers/application_controller.rb +219 -0
- data/app/controllers/authentications_controller.rb +66 -0
- data/app/controllers/base_controller.rb +155 -0
- data/app/controllers/campaigns_controller.rb +205 -0
- data/app/controllers/comments_controller.rb +145 -0
- data/app/controllers/contacts_controller.rb +214 -0
- data/app/controllers/emails_controller.rb +64 -0
- data/app/controllers/home_controller.rb +170 -0
- data/app/controllers/leads_controller.rb +286 -0
- data/app/controllers/lists_controller.rb +27 -0
- data/app/controllers/opportunities_controller.rb +256 -0
- data/app/controllers/passwords_controller.rb +78 -0
- data/app/controllers/tasks_controller.rb +213 -0
- data/app/controllers/users_controller.rb +163 -0
- data/app/helpers/accounts_helper.rb +54 -0
- data/app/helpers/addresses_helper.rb +28 -0
- data/app/helpers/admin/application_helper.rb +29 -0
- data/app/helpers/admin/field_groups_helper.rb +36 -0
- data/app/helpers/admin/fields_helper.rb +32 -0
- data/app/helpers/admin/plugins_helper.rb +20 -0
- data/app/helpers/admin/settings_helper.rb +20 -0
- data/app/helpers/admin/tags_helper.rb +22 -0
- data/app/helpers/admin/users_helper.rb +65 -0
- data/app/helpers/application_helper.rb +421 -0
- data/app/helpers/authentications_helper.rb +20 -0
- data/app/helpers/campaigns_helper.rb +55 -0
- data/app/helpers/comments_helper.rb +20 -0
- data/app/helpers/contacts_helper.rb +34 -0
- data/app/helpers/crm_tags_helper.rb +50 -0
- data/app/helpers/emails_helper.rb +19 -0
- data/app/helpers/fields_helper.rb +20 -0
- data/app/helpers/home_helper.rb +70 -0
- data/app/helpers/leads_helper.rb +116 -0
- data/app/helpers/lists_helper.rb +2 -0
- data/app/helpers/opportunities_helper.rb +53 -0
- data/app/helpers/passwords_helper.rb +20 -0
- data/app/helpers/tasks_helper.rb +176 -0
- data/app/helpers/users_helper.rb +40 -0
- data/app/inputs/date_time_input.rb +39 -0
- data/app/inputs/text_input.rb +6 -0
- data/app/models/base/account.rb +138 -0
- data/app/models/base/account_contact.rb +37 -0
- data/app/models/base/account_opportunity.rb +37 -0
- data/app/models/base/campaign.rb +123 -0
- data/app/models/base/contact.rb +191 -0
- data/app/models/base/contact_opportunity.rb +38 -0
- data/app/models/base/lead.rb +188 -0
- data/app/models/base/opportunity.rb +188 -0
- data/app/models/base/task.rb +241 -0
- data/app/models/fields/core_field.rb +48 -0
- data/app/models/fields/custom_field.rb +138 -0
- data/app/models/fields/field.rb +124 -0
- data/app/models/fields/field_group.rb +81 -0
- data/app/models/list.rb +8 -0
- data/app/models/mailers/notifier.rb +44 -0
- data/app/models/observers/activity_observer.rb +84 -0
- data/app/models/polymorphic/activity.rb +106 -0
- data/app/models/polymorphic/address.rb +58 -0
- data/app/models/polymorphic/avatar.rb +58 -0
- data/app/models/polymorphic/comment.rb +55 -0
- data/app/models/polymorphic/email.rb +69 -0
- data/app/models/polymorphic/tag.rb +14 -0
- data/app/models/polymorphic/tagging.rb +2 -0
- data/app/models/setting.rb +142 -0
- data/app/models/users/authentication.rb +64 -0
- data/app/models/users/permission.rb +36 -0
- data/app/models/users/preference.rb +62 -0
- data/app/models/users/user.rb +171 -0
- data/app/views/accounts/_account.html.haml +35 -0
- data/app/views/accounts/_contact_info.html.haml +37 -0
- data/app/views/accounts/_edit.html.haml +19 -0
- data/app/views/accounts/_new.html.haml +19 -0
- data/app/views/accounts/_options.html.haml +20 -0
- data/app/views/accounts/_permissions.html.haml +24 -0
- data/app/views/accounts/_sidebar_index.html.haml +21 -0
- data/app/views/accounts/_sidebar_show.html.haml +57 -0
- data/app/views/accounts/_top_section.html.haml +29 -0
- data/app/views/accounts/contacts.js.rjs +3 -0
- data/app/views/accounts/create.js.rjs +15 -0
- data/app/views/accounts/destroy.js.rjs +3 -0
- data/app/views/accounts/edit.js.rjs +35 -0
- data/app/views/accounts/index.html.haml +25 -0
- data/app/views/accounts/index.js.rjs +6 -0
- data/app/views/accounts/new.js.rjs +11 -0
- data/app/views/accounts/opportunities.js.rjs +3 -0
- data/app/views/accounts/options.js.rjs +10 -0
- data/app/views/accounts/show.html.haml +42 -0
- data/app/views/accounts/update.js.rjs +17 -0
- data/app/views/admin/field_groups/_confirm.html.haml +5 -0
- data/app/views/admin/field_groups/_edit.html.haml +8 -0
- data/app/views/admin/field_groups/_field_group.html.haml +27 -0
- data/app/views/admin/field_groups/_new.html.haml +10 -0
- data/app/views/admin/field_groups/_top_section.html.haml +13 -0
- data/app/views/admin/field_groups/confirm.js.rjs +6 -0
- data/app/views/admin/field_groups/create.js.rjs +21 -0
- data/app/views/admin/field_groups/destroy.js.rjs +11 -0
- data/app/views/admin/field_groups/edit.js.rjs +14 -0
- data/app/views/admin/field_groups/new.js.rjs +9 -0
- data/app/views/admin/field_groups/update.js.rjs +9 -0
- data/app/views/admin/fields/_edit.html.haml +9 -0
- data/app/views/admin/fields/_field.html.haml +15 -0
- data/app/views/admin/fields/_new.html.haml +10 -0
- data/app/views/admin/fields/_options.html.haml +12 -0
- data/app/views/admin/fields/_sidebar_index.html.haml +1 -0
- data/app/views/admin/fields/_sidebar_show.html.haml +1 -0
- data/app/views/admin/fields/_sort_by.html.haml +10 -0
- data/app/views/admin/fields/_top_section.html.haml +54 -0
- data/app/views/admin/fields/create.js.rjs +16 -0
- data/app/views/admin/fields/destroy.js.rjs +11 -0
- data/app/views/admin/fields/edit.js.rjs +35 -0
- data/app/views/admin/fields/index.html.haml +36 -0
- data/app/views/admin/fields/index.js.rjs +6 -0
- data/app/views/admin/fields/new.js.rjs +8 -0
- data/app/views/admin/fields/options.js.rjs +10 -0
- data/app/views/admin/fields/show.html.haml +41 -0
- data/app/views/admin/fields/update.js.rjs +17 -0
- data/app/views/admin/plugins/_plugin.html.haml +13 -0
- data/app/views/admin/plugins/index.html.haml +9 -0
- data/app/views/admin/settings/index.html.haml +3 -0
- data/app/views/admin/tags/_confirm.html.haml +5 -0
- data/app/views/admin/tags/_edit.html.haml +9 -0
- data/app/views/admin/tags/_new.html.haml +10 -0
- data/app/views/admin/tags/_tag.html.haml +29 -0
- data/app/views/admin/tags/_top_section.html.haml +6 -0
- data/app/views/admin/tags/confirm.js.rjs +6 -0
- data/app/views/admin/tags/create.js.rjs +12 -0
- data/app/views/admin/tags/destroy.js.rjs +11 -0
- data/app/views/admin/tags/edit.js.rjs +21 -0
- data/app/views/admin/tags/index.html.haml +17 -0
- data/app/views/admin/tags/new.js.rjs +8 -0
- data/app/views/admin/tags/update.js.rjs +10 -0
- data/app/views/admin/users/_confirm.html.haml +5 -0
- data/app/views/admin/users/_edit.html.haml +11 -0
- data/app/views/admin/users/_new.html.haml +11 -0
- data/app/views/admin/users/_profile.html.haml +43 -0
- data/app/views/admin/users/_sidebar_index.html.haml +2 -0
- data/app/views/admin/users/_user.html.haml +56 -0
- data/app/views/admin/users/confirm.js.rjs +6 -0
- data/app/views/admin/users/create.js.rjs +11 -0
- data/app/views/admin/users/destroy.js.rjs +11 -0
- data/app/views/admin/users/edit.js.rjs +21 -0
- data/app/views/admin/users/index.html.haml +13 -0
- data/app/views/admin/users/index.js.rjs +2 -0
- data/app/views/admin/users/new.js.rjs +8 -0
- data/app/views/admin/users/reactivate.js.rjs +3 -0
- data/app/views/admin/users/show.html.haml +5 -0
- data/app/views/admin/users/suspend.js.rjs +3 -0
- data/app/views/admin/users/update.js.rjs +10 -0
- data/app/views/authentications/new.html.haml +31 -0
- data/app/views/base/_advanced_search.html.haml +12 -0
- data/app/views/base/_condition_fields.html.haml +14 -0
- data/app/views/base/_grouping_fields.html.haml +12 -0
- data/app/views/base/_sort_fields.html.haml +3 -0
- data/app/views/base/advanced_search.js.rjs +9 -0
- data/app/views/campaigns/_campaign.html.haml +17 -0
- data/app/views/campaigns/_edit.html.haml +16 -0
- data/app/views/campaigns/_metrics.html.haml +16 -0
- data/app/views/campaigns/_new.html.haml +15 -0
- data/app/views/campaigns/_objectives.html.haml +30 -0
- data/app/views/campaigns/_options.html.haml +20 -0
- data/app/views/campaigns/_permissions.html.haml +24 -0
- data/app/views/campaigns/_sidebar_index.html.haml +20 -0
- data/app/views/campaigns/_sidebar_show.html.haml +91 -0
- data/app/views/campaigns/_status.html.haml +24 -0
- data/app/views/campaigns/_top_section.html.haml +29 -0
- data/app/views/campaigns/create.js.rjs +21 -0
- data/app/views/campaigns/destroy.js.rjs +3 -0
- data/app/views/campaigns/edit.js.rjs +38 -0
- data/app/views/campaigns/index.html.haml +25 -0
- data/app/views/campaigns/index.js.rjs +6 -0
- data/app/views/campaigns/leads.js.rjs +3 -0
- data/app/views/campaigns/new.js.rjs +13 -0
- data/app/views/campaigns/opportunities.js.rjs +3 -0
- data/app/views/campaigns/options.js.rjs +10 -0
- data/app/views/campaigns/show.html.haml +44 -0
- data/app/views/campaigns/update.js.rjs +23 -0
- data/app/views/comments/_comment.html.haml +25 -0
- data/app/views/comments/_edit.html.haml +12 -0
- data/app/views/comments/_new.html.haml +27 -0
- data/app/views/comments/create.js.rjs +11 -0
- data/app/views/comments/destroy.js.rjs +6 -0
- data/app/views/comments/edit.js.rjs +11 -0
- data/app/views/comments/new.js.rjs +12 -0
- data/app/views/comments/update.js.rjs +11 -0
- data/app/views/contacts/_contact.html.haml +34 -0
- data/app/views/contacts/_edit.html.haml +17 -0
- data/app/views/contacts/_extra.html.haml +36 -0
- data/app/views/contacts/_new.html.haml +17 -0
- data/app/views/contacts/_options.html.haml +21 -0
- data/app/views/contacts/_permissions.html.haml +24 -0
- data/app/views/contacts/_sidebar_index.html.haml +3 -0
- data/app/views/contacts/_sidebar_show.html.haml +41 -0
- data/app/views/contacts/_top_section.html.haml +54 -0
- data/app/views/contacts/_web.html.haml +31 -0
- data/app/views/contacts/create.js.rjs +20 -0
- data/app/views/contacts/destroy.js.rjs +7 -0
- data/app/views/contacts/edit.js.rjs +38 -0
- data/app/views/contacts/index.html.haml +26 -0
- data/app/views/contacts/index.js.rjs +6 -0
- data/app/views/contacts/new.js.rjs +13 -0
- data/app/views/contacts/opportunities.js.rjs +3 -0
- data/app/views/contacts/options.js.rjs +10 -0
- data/app/views/contacts/show.html.haml +38 -0
- data/app/views/contacts/update.js.rjs +22 -0
- data/app/views/emails/_email.html.haml +27 -0
- data/app/views/emails/destroy.js.rjs +6 -0
- data/app/views/fields/_group.html.haml +20 -0
- data/app/views/fields/_groups.html.haml +11 -0
- data/app/views/fields/_sidebar_show.html.haml +8 -0
- data/app/views/fields/group.js.rjs +7 -0
- data/app/views/home/_actions_menu.html.haml +8 -0
- data/app/views/home/_activity.html.haml +22 -0
- data/app/views/home/_assets_menu.html.haml +7 -0
- data/app/views/home/_duration_menu.html.haml +8 -0
- data/app/views/home/_options.html.haml +14 -0
- data/app/views/home/_users_menu.html.haml +8 -0
- data/app/views/home/index.atom.builder +24 -0
- data/app/views/home/index.html.haml +19 -0
- data/app/views/home/index.js.rjs +6 -0
- data/app/views/home/index.rss.builder +20 -0
- data/app/views/home/options.js.rjs +8 -0
- data/app/views/layouts/500.html.haml +29 -0
- data/app/views/layouts/_about.html.haml +17 -0
- data/app/views/layouts/_footer.html.haml +13 -0
- data/app/views/layouts/_header.html.haml +20 -0
- data/app/views/layouts/_jumpbox.html.haml +32 -0
- data/app/views/layouts/_sidebar.html.haml +14 -0
- data/app/views/layouts/_tabbed.html.haml +19 -0
- data/app/views/layouts/_tabless.html.haml +3 -0
- data/app/views/layouts/admin/_header.html.haml +14 -0
- data/app/views/layouts/admin/application.html.haml +25 -0
- data/app/views/layouts/application.html.haml +43 -0
- data/app/views/leads/_contact.html.haml +38 -0
- data/app/views/leads/_convert.html.haml +36 -0
- data/app/views/leads/_convert_permissions.html.haml +26 -0
- data/app/views/leads/_edit.html.haml +21 -0
- data/app/views/leads/_lead.html.haml +43 -0
- data/app/views/leads/_new.html.haml +21 -0
- data/app/views/leads/_opportunity.html.haml +37 -0
- data/app/views/leads/_options.html.haml +21 -0
- data/app/views/leads/_permissions.html.haml +28 -0
- data/app/views/leads/_sidebar_index.html.haml +20 -0
- data/app/views/leads/_sidebar_show.html.haml +58 -0
- data/app/views/leads/_status.html.haml +36 -0
- data/app/views/leads/_top_section.html.haml +29 -0
- data/app/views/leads/_web.html.haml +31 -0
- data/app/views/leads/convert.js.rjs +38 -0
- data/app/views/leads/create.js.rjs +20 -0
- data/app/views/leads/destroy.js.rjs +7 -0
- data/app/views/leads/edit.js.rjs +38 -0
- data/app/views/leads/index.html.haml +25 -0
- data/app/views/leads/index.js.rjs +6 -0
- data/app/views/leads/new.js.rjs +11 -0
- data/app/views/leads/options.js.rjs +10 -0
- data/app/views/leads/promote.js.rjs +28 -0
- data/app/views/leads/reject.js.rjs +10 -0
- data/app/views/leads/show.html.haml +35 -0
- data/app/views/leads/update.js.rjs +27 -0
- data/app/views/lists/create.js.rjs +9 -0
- data/app/views/lists/destroy.js.rjs +1 -0
- data/app/views/notifier/dropbox_ack_notification.html.haml +9 -0
- data/app/views/notifier/password_reset_instructions.html.haml +6 -0
- data/app/views/opportunities/_edit.html.haml +16 -0
- data/app/views/opportunities/_new.html.haml +16 -0
- data/app/views/opportunities/_opportunity.html.haml +45 -0
- data/app/views/opportunities/_options.html.haml +20 -0
- data/app/views/opportunities/_permissions.html.haml +24 -0
- data/app/views/opportunities/_sidebar_index.html.haml +20 -0
- data/app/views/opportunities/_sidebar_show.html.haml +61 -0
- data/app/views/opportunities/_top_section.html.haml +65 -0
- data/app/views/opportunities/contacts.js.rjs +3 -0
- data/app/views/opportunities/create.js.rjs +31 -0
- data/app/views/opportunities/destroy.js.rjs +11 -0
- data/app/views/opportunities/edit.js.rjs +39 -0
- data/app/views/opportunities/index.html.haml +28 -0
- data/app/views/opportunities/index.js.rjs +6 -0
- data/app/views/opportunities/new.js.rjs +16 -0
- data/app/views/opportunities/options.js.rjs +10 -0
- data/app/views/opportunities/show.html.haml +36 -0
- data/app/views/opportunities/update.js.rjs +27 -0
- data/app/views/passwords/edit.html.haml +15 -0
- data/app/views/passwords/new.html.haml +10 -0
- data/app/views/shared/_address.html.haml +44 -0
- data/app/views/shared/_address_show.html.haml +24 -0
- data/app/views/shared/_comment.html.haml +11 -0
- data/app/views/shared/_edit_comment.html.haml +13 -0
- data/app/views/shared/_empty.html.haml +8 -0
- data/app/views/shared/_export.html.haml +1 -0
- data/app/views/shared/_inline_styles.html.haml +31 -0
- data/app/views/shared/_lists.html.haml +25 -0
- data/app/views/shared/_naming.html.haml +9 -0
- data/app/views/shared/_outline.html.haml +9 -0
- data/app/views/shared/_paginate.haml +1 -0
- data/app/views/shared/_per_page.html.haml +10 -0
- data/app/views/shared/_recent.html.haml +4 -0
- data/app/views/shared/_recently.html.haml +7 -0
- data/app/views/shared/_search.html.haml +11 -0
- data/app/views/shared/_select_popup.html.haml +21 -0
- data/app/views/shared/_sort_by.html.haml +10 -0
- data/app/views/shared/_tags.html.haml +9 -0
- data/app/views/shared/_tasks.html.haml +10 -0
- data/app/views/shared/_timeline.html.haml +3 -0
- data/app/views/shared/_total.html.haml +4 -0
- data/app/views/shared/attach.js.rjs +24 -0
- data/app/views/shared/auto_complete.html.haml +10 -0
- data/app/views/shared/discard.rjs +7 -0
- data/app/views/shared/index.atom.builder +34 -0
- data/app/views/shared/index.rss.builder +31 -0
- data/app/views/tasks/_assigned.html.haml +47 -0
- data/app/views/tasks/_completed.html.haml +23 -0
- data/app/views/tasks/_edit.html.haml +19 -0
- data/app/views/tasks/_empty.html.haml +4 -0
- data/app/views/tasks/_new.html.haml +14 -0
- data/app/views/tasks/_pending.html.haml +52 -0
- data/app/views/tasks/_related.html.haml +33 -0
- data/app/views/tasks/_selector.html.haml +8 -0
- data/app/views/tasks/_sidebar_index.html.haml +18 -0
- data/app/views/tasks/_title.html.haml +8 -0
- data/app/views/tasks/_top_section.html.haml +32 -0
- data/app/views/tasks/complete.js.rjs +17 -0
- data/app/views/tasks/create.js.rjs +42 -0
- data/app/views/tasks/destroy.js.rjs +7 -0
- data/app/views/tasks/discard.rjs +1 -0
- data/app/views/tasks/edit.js.rjs +25 -0
- data/app/views/tasks/filter.js.rjs +1 -0
- data/app/views/tasks/index.html.haml +20 -0
- data/app/views/tasks/new.js.rjs +11 -0
- data/app/views/tasks/update.js.rjs +22 -0
- data/app/views/users/_avatar.html.haml +20 -0
- data/app/views/users/_languages.html.haml +9 -0
- data/app/views/users/_password.html.haml +27 -0
- data/app/views/users/_profile.html.haml +67 -0
- data/app/views/users/_user.html.haml +28 -0
- data/app/views/users/avatar.js.rjs +10 -0
- data/app/views/users/change_password.js.rjs +15 -0
- data/app/views/users/edit.js.rjs +10 -0
- data/app/views/users/index.html.haml +3 -0
- data/app/views/users/new.html.haml +19 -0
- data/app/views/users/password.js.rjs +11 -0
- data/app/views/users/show.html.haml +16 -0
- data/app/views/users/update.js.rjs +10 -0
- data/app/views/users/upload_avatar.js.rjs +8 -0
- data/app/views/versions/_version.html.haml +30 -0
- data/config.ru +4 -0
- data/config/application.rb +75 -0
- data/config/boot.rb +6 -0
- data/config/database.mysql.mac.yml +31 -0
- data/config/database.mysql.yml +32 -0
- data/config/database.postgres.yml +25 -0
- data/config/database.sqlite.yml +22 -0
- data/config/environment.rb +5 -0
- data/config/environments/development.rb +39 -0
- data/config/environments/production.rb +67 -0
- data/config/environments/staging.rb +14 -0
- data/config/environments/test.rb +48 -0
- data/config/initializers/action_mailer.rb +3 -0
- data/config/initializers/authlogic.rb +1 -0
- data/config/initializers/mime_types.rb +8 -0
- data/config/initializers/paginate_arrays.rb +7 -0
- data/config/initializers/paper_trail.rb +1 -0
- data/config/initializers/sass.rb +13 -0
- data/config/initializers/secret_token.rb +13 -0
- data/config/initializers/simple_form.rb +96 -0
- data/config/locales/cz.yml +213 -0
- data/config/locales/cz_fat_free_crm.yml +695 -0
- data/config/locales/de.yml +193 -0
- data/config/locales/de_fat_free_crm.yml +637 -0
- data/config/locales/en-GB.yml +180 -0
- data/config/locales/en-GB_fat_free_crm.yml +670 -0
- data/config/locales/en-US.yml +182 -0
- data/config/locales/en-US_fat_free_crm.yml +832 -0
- data/config/locales/es.yml +184 -0
- data/config/locales/es_fat_free_crm.yml +642 -0
- data/config/locales/fr-CA.yml +187 -0
- data/config/locales/fr-CA_fat_free_crm.yml +635 -0
- data/config/locales/fr.yml +182 -0
- data/config/locales/fr_fat_free_crm.yml +633 -0
- data/config/locales/it.yml +183 -0
- data/config/locales/it_fat_free_crm.yml +665 -0
- data/config/locales/ja.yml +188 -0
- data/config/locales/ja_fat_free_crm.yml +636 -0
- data/config/locales/pl.yml +194 -0
- data/config/locales/pl_fat_free_crm.yml +646 -0
- data/config/locales/pt-BR.yml +199 -0
- data/config/locales/pt-BR_fat_free_crm.yml +639 -0
- data/config/locales/ru.yml +303 -0
- data/config/locales/ru_fat_free_crm.yml +661 -0
- data/config/locales/simple_form.en.yml +24 -0
- data/config/locales/sv-SE.yml +232 -0
- data/config/locales/sv-SE_fat_free_crm.yml +638 -0
- data/config/locales/th.rb +200 -0
- data/config/locales/th_fat_free_crm.yml +643 -0
- data/config/locales/zh-CN.yml +210 -0
- data/config/locales/zh-CN_fat_free_crm.yml +631 -0
- data/config/routes.rb +172 -0
- data/config/settings.default.yml +325 -0
- data/db/demo/account_contacts.yml +24 -0
- data/db/demo/account_opportunities.yml +24 -0
- data/db/demo/accounts.yml +48 -0
- data/db/demo/activities.yml +16 -0
- data/db/demo/addresses.yml +46 -0
- data/db/demo/avatars.yml +16 -0
- data/db/demo/campaigns.yml +144 -0
- data/db/demo/comments.yml +30 -0
- data/db/demo/contact_opportunities.yml +25 -0
- data/db/demo/contacts.yml +70 -0
- data/db/demo/emails.yml +53 -0
- data/db/demo/leads.yml +71 -0
- data/db/demo/opportunities.yml +48 -0
- data/db/demo/permissions.yml +13 -0
- data/db/demo/preferences.yml +13 -0
- data/db/demo/settings.yml +12 -0
- data/db/demo/tasks.yml +64 -0
- data/db/demo/users.yml +249 -0
- data/db/migrate/20100928030598_create_sessions.rb +17 -0
- data/db/migrate/20100928030599_create_users.rb +46 -0
- data/db/migrate/20100928030600_create_openid_tables.rb +24 -0
- data/db/migrate/20100928030601_create_accounts.rb +27 -0
- data/db/migrate/20100928030602_create_permissions.rb +16 -0
- data/db/migrate/20100928030603_create_settings.rb +16 -0
- data/db/migrate/20100928030604_create_preferences.rb +16 -0
- data/db/migrate/20100928030605_create_campaigns.rb +35 -0
- data/db/migrate/20100928030606_create_leads.rb +39 -0
- data/db/migrate/20100928030607_create_contacts.rb +39 -0
- data/db/migrate/20100928030608_create_opportunities.rb +28 -0
- data/db/migrate/20100928030609_create_account_contacts.rb +15 -0
- data/db/migrate/20100928030610_create_account_opportunities.rb +15 -0
- data/db/migrate/20100928030611_create_contact_opportunities.rb +16 -0
- data/db/migrate/20100928030612_create_tasks.rb +27 -0
- data/db/migrate/20100928030613_create_comments.rb +17 -0
- data/db/migrate/20100928030614_create_activities.rb +20 -0
- data/db/migrate/20100928030615_create_avatars.rb +17 -0
- data/db/migrate/20100928030616_rename_remember_token.rb +12 -0
- data/db/migrate/20100928030617_drop_openid_tables.rb +23 -0
- data/db/migrate/20100928030618_add_admin_to_users.rb +12 -0
- data/db/migrate/20100928030619_add_suspended_to_users.rb +12 -0
- data/db/migrate/20100928030620_remove_uuid.rb +24 -0
- data/db/migrate/20100928030621_add_email_to_accounts.rb +10 -0
- data/db/migrate/20100928030622_add_background_info_to_models.rb +20 -0
- data/db/migrate/20100928030623_create_addresses.rb +51 -0
- data/db/migrate/20100928030624_add_index_on_permissions.rb +10 -0
- data/db/migrate/20100928030625_create_emails.rb +27 -0
- data/db/migrate/20100928030626_add_state_to_timeline_objects.rb +14 -0
- data/db/migrate/20100928030627_acts_as_taggable_on_migration.rb +30 -0
- data/db/migrate/20101221123456_add_single_access_token_to_users.rb +10 -0
- data/db/migrate/20101221345678_add_rating_and_category_to_accounts.rb +12 -0
- data/db/migrate/20110719082054_add_skype_to_contacts_and_leads.rb +12 -0
- data/db/migrate/20111101083437_create_fields.rb +28 -0
- data/db/migrate/20111101090312_create_field_groups.rb +16 -0
- data/db/migrate/20111116091952_add_field_groups_tag_id.rb +10 -0
- data/db/migrate/20111117041311_change_fields_collection_to_text.rb +10 -0
- data/db/migrate/20111201030535_add_field_groups_klass_name.rb +21 -0
- data/db/migrate/20120121054235_create_lists.rb +10 -0
- data/db/migrate/20120216031616_create_versions.rb +18 -0
- data/db/migrate/20120216042541_is_paranoid_to_paper_trail.rb +13 -0
- data/db/migrate/20120220233724_add_versions_object_changes.rb +9 -0
- data/db/migrate/20120224073107_remove_default_value_and_clear_settings.rb +16 -0
- data/db/schema.rb +415 -0
- data/db/seeds.rb +10 -0
- data/db/seeds/fields.rb +94 -0
- data/fat_free_crm.gemspec +45 -0
- data/lib/country_select/MIT-LICENSE +20 -0
- data/lib/country_select/README +14 -0
- data/lib/country_select/init.rb +1 -0
- data/lib/country_select/install.rb +2 -0
- data/lib/country_select/lib/country_select.rb +551 -0
- data/lib/country_select/uninstall.rb +2 -0
- data/lib/development_tasks/gem.rake +8 -0
- data/lib/development_tasks/license.rake +99 -0
- data/lib/development_tasks/rdoc.rake +15 -0
- data/lib/development_tasks/rspec.rake +23 -0
- data/lib/dynamic_form/MIT-LICENSE +20 -0
- data/lib/dynamic_form/README +13 -0
- data/lib/dynamic_form/Rakefile +10 -0
- data/lib/dynamic_form/dynamic_form.gemspec +12 -0
- data/lib/dynamic_form/init.rb +2 -0
- data/lib/dynamic_form/lib/action_view/helpers/dynamic_form.rb +301 -0
- data/lib/dynamic_form/lib/action_view/locale/en-US.yml +8 -0
- data/lib/dynamic_form/lib/dynamic_form.rb +6 -0
- data/lib/dynamic_form/test/dynamic_form_i18n_test.rb +42 -0
- data/lib/dynamic_form/test/dynamic_form_test.rb +370 -0
- data/lib/dynamic_form/test/test_helper.rb +10 -0
- data/lib/fat_free_crm.rb +52 -0
- data/lib/fat_free_crm/callback.rb +144 -0
- data/lib/fat_free_crm/core_ext.rb +18 -0
- data/lib/fat_free_crm/core_ext/array.rb +95 -0
- data/lib/fat_free_crm/core_ext/nil.rb +29 -0
- data/lib/fat_free_crm/core_ext/string.rb +74 -0
- data/lib/fat_free_crm/dropbox.rb +429 -0
- data/lib/fat_free_crm/engine.rb +9 -0
- data/lib/fat_free_crm/errors.rb +51 -0
- data/lib/fat_free_crm/exceptions.rb +34 -0
- data/lib/fat_free_crm/exportable.rb +63 -0
- data/lib/fat_free_crm/fields.rb +76 -0
- data/lib/fat_free_crm/gem_dependencies.rb +16 -0
- data/lib/fat_free_crm/gem_ext.rb +8 -0
- data/lib/fat_free_crm/gem_ext/action_controller/base.rb +28 -0
- data/lib/fat_free_crm/gem_ext/active_model/serializers/xml/serializer/attribute.rb +29 -0
- data/lib/fat_free_crm/gem_ext/active_record/schema_dumper.rb +22 -0
- data/lib/fat_free_crm/gem_ext/active_support/buffered_logger.rb +32 -0
- data/lib/fat_free_crm/gem_ext/authlogic/session/cookies.rb +11 -0
- data/lib/fat_free_crm/gem_ext/rails/engine.rb +17 -0
- data/lib/fat_free_crm/gem_ext/rails/text_helper.rb +125 -0
- data/lib/fat_free_crm/gem_ext/rake/task.rb +8 -0
- data/lib/fat_free_crm/gem_ext/simple_form/action_view_extensions/form_helper.rb +20 -0
- data/lib/fat_free_crm/i18n.rb +51 -0
- data/lib/fat_free_crm/permissions.rb +111 -0
- data/lib/fat_free_crm/plugin.rb +106 -0
- data/lib/fat_free_crm/plugin_dependencies.rb +6 -0
- data/lib/fat_free_crm/renderers.rb +21 -0
- data/lib/fat_free_crm/sortable.rb +59 -0
- data/lib/fat_free_crm/syck_yaml.rb +4 -0
- data/lib/fat_free_crm/tabs.rb +35 -0
- data/lib/fat_free_crm/version.rb +27 -0
- data/lib/gravatar_image_tag/Gemfile +8 -0
- data/lib/gravatar_image_tag/README.textile +108 -0
- data/lib/gravatar_image_tag/ROADMAP.textile +33 -0
- data/lib/gravatar_image_tag/Rakefile +50 -0
- data/lib/gravatar_image_tag/VERSION +1 -0
- data/lib/gravatar_image_tag/gravatar_image_tag.gemspec +45 -0
- data/lib/gravatar_image_tag/init.rb +2 -0
- data/lib/gravatar_image_tag/lib/gravatar_image_tag.rb +63 -0
- data/lib/gravatar_image_tag/spec/gravatar_image_tag_spec.rb +83 -0
- data/lib/gravatar_image_tag/spec/test_helper.rb +12 -0
- data/lib/responds_to_parent/MIT-LICENSE +20 -0
- data/lib/responds_to_parent/README +47 -0
- data/lib/responds_to_parent/Rakefile +22 -0
- data/lib/responds_to_parent/init.rb +2 -0
- data/lib/responds_to_parent/install.rb +2 -0
- data/lib/responds_to_parent/lib/responds_to_parent.rb +70 -0
- data/lib/responds_to_parent/test/responds_to_parent_test.rb +11 -0
- data/lib/responds_to_parent/test/test_helper.rb +7 -0
- data/lib/responds_to_parent/uninstall.rb +2 -0
- data/lib/tasks/.gitkeep +0 -0
- data/lib/tasks/.gitkeep~master +0 -0
- data/lib/tasks/demo.rake +72 -0
- data/lib/tasks/dropbox.rake +32 -0
- data/lib/tasks/fat_free_crm.rake +130 -0
- data/lib/tasks/plugins.rake +77 -0
- data/lib/tasks/schema_upgrade.rake +31 -0
- data/lib/templates/erb/scaffold/_form.html.erb +13 -0
- data/public/404.html +26 -0
- data/public/422.html +26 -0
- data/public/500.html +26 -0
- data/public/blank_iframe.html +2 -0
- data/public/favicon.ico +0 -0
- data/public/robots.txt +5 -0
- data/script/rails +6 -0
- data/spec/controllers/accounts_controller_spec.rb +626 -0
- data/spec/controllers/admin/users_controller_spec.rb +309 -0
- data/spec/controllers/authentications_controller_spec.rb +147 -0
- data/spec/controllers/campaigns_controller_spec.rb +666 -0
- data/spec/controllers/comments_controller_spec.rb +274 -0
- data/spec/controllers/contacts_controller_spec.rb +699 -0
- data/spec/controllers/emails_controller_spec.rb +32 -0
- data/spec/controllers/home_controller_spec.rb +99 -0
- data/spec/controllers/leads_controller_spec.rb +1047 -0
- data/spec/controllers/lists_controller_spec.rb +5 -0
- data/spec/controllers/opportunities_controller_spec.rb +932 -0
- data/spec/controllers/passwords_controller_spec.rb +11 -0
- data/spec/controllers/tasks_controller_spec.rb +508 -0
- data/spec/controllers/users_controller_spec.rb +344 -0
- data/spec/factories/account_factories.rb +35 -0
- data/spec/factories/campaign_factories.rb +23 -0
- data/spec/factories/contact_factories.rb +39 -0
- data/spec/factories/field_factories.rb +34 -0
- data/spec/factories/lead_factories.rb +29 -0
- data/spec/factories/list_factories.rb +6 -0
- data/spec/factories/opportunity_factories.rb +20 -0
- data/spec/factories/sequences.rb +26 -0
- data/spec/factories/setting_factories.rb +8 -0
- data/spec/factories/shared_factories.rb +70 -0
- data/spec/factories/tag_factories.rb +5 -0
- data/spec/factories/task_factories.rb +18 -0
- data/spec/factories/user_factories.rb +57 -0
- data/spec/fixtures/rails.png +0 -0
- data/spec/helpers/accounts_helper_spec.rb +12 -0
- data/spec/helpers/admin/field_groups_helper_spec.rb +13 -0
- data/spec/helpers/admin/plugins_helper_spec.rb +5 -0
- data/spec/helpers/admin/settings_helper_spec.rb +5 -0
- data/spec/helpers/admin/users_helper_spec.rb +5 -0
- data/spec/helpers/application_helper_spec.rb +67 -0
- data/spec/helpers/authentications_helper_spec.rb +12 -0
- data/spec/helpers/campaigns_helper_spec.rb +12 -0
- data/spec/helpers/comments_helper_spec.rb +12 -0
- data/spec/helpers/contacts_helper_spec.rb +12 -0
- data/spec/helpers/emails_helper_spec.rb +5 -0
- data/spec/helpers/fields_helper_spec.rb +6 -0
- data/spec/helpers/home_helper_spec.rb +12 -0
- data/spec/helpers/leads_helper_spec.rb +12 -0
- data/spec/helpers/lists_helper_spec.rb +15 -0
- data/spec/helpers/opportunities_helper_spec.rb +12 -0
- data/spec/helpers/passwords_helper_spec.rb +12 -0
- data/spec/helpers/tasks_helper_spec.rb +12 -0
- data/spec/helpers/users_helper_spec.rb +12 -0
- data/spec/lib/core_ext/string.rb +17 -0
- data/spec/lib/dropbox/email_samples.rb +77 -0
- data/spec/lib/dropbox_spec.rb +410 -0
- data/spec/lib/errors_spec.rb +25 -0
- data/spec/models/base/account_contact_spec.rb +27 -0
- data/spec/models/base/account_opportunity_spec.rb +27 -0
- data/spec/models/base/account_spec.rb +136 -0
- data/spec/models/base/campaign_spec.rb +135 -0
- data/spec/models/base/contact_opportunity_spec.rb +28 -0
- data/spec/models/base/contact_spec.rb +160 -0
- data/spec/models/base/lead_spec.rb +101 -0
- data/spec/models/base/opportunity_spec.rb +173 -0
- data/spec/models/base/task_spec.rb +263 -0
- data/spec/models/fields/custom_field_spec.rb +106 -0
- data/spec/models/fields/field_group_spec.rb +23 -0
- data/spec/models/fields/field_spec.rb +64 -0
- data/spec/models/list_spec.rb +12 -0
- data/spec/models/polymorphic/activity_spec.rb +303 -0
- data/spec/models/polymorphic/address_spec.rb +33 -0
- data/spec/models/polymorphic/avatar_spec.rb +41 -0
- data/spec/models/polymorphic/comment_spec.rb +29 -0
- data/spec/models/polymorphic/email_spec.rb +36 -0
- data/spec/models/setting_spec.rb +51 -0
- data/spec/models/users/authentication_spec.rb +13 -0
- data/spec/models/users/permission_spec.rb +27 -0
- data/spec/models/users/preference_spec.rb +60 -0
- data/spec/models/users/user_spec.rb +169 -0
- data/spec/routing/accounts_routing_spec.rb +55 -0
- data/spec/routing/admin/users_routing_spec.rb +35 -0
- data/spec/routing/campaigns_routing_spec.rb +58 -0
- data/spec/routing/comments_routing_spec.rb +35 -0
- data/spec/routing/contacts_routing_spec.rb +55 -0
- data/spec/routing/emails_routing_spec.rb +35 -0
- data/spec/routing/leads_routing_spec.rb +83 -0
- data/spec/routing/opportunities_routing_spec.rb +59 -0
- data/spec/routing/tasks_routing_spec.rb +62 -0
- data/spec/routing/users_routing_spec.rb +79 -0
- data/spec/shared/controllers.rb +102 -0
- data/spec/shared/models.rb +37 -0
- data/spec/spec_helper.rb +110 -0
- data/spec/support/assert_select.rb +158 -0
- data/spec/support/auth_macros.rb +44 -0
- data/spec/support/macros.rb +40 -0
- data/spec/support/rjs_support.rb +9 -0
- data/spec/views/accounts/_edit.haml_spec.rb +38 -0
- data/spec/views/accounts/_new.haml_spec.rb +37 -0
- data/spec/views/accounts/create.rjs_spec.rb +54 -0
- data/spec/views/accounts/destroy.rjs_spec.rb +30 -0
- data/spec/views/accounts/edit.rjs_spec.rb +69 -0
- data/spec/views/accounts/index.haml_spec.rb +33 -0
- data/spec/views/accounts/index.rjs_spec.rb +32 -0
- data/spec/views/accounts/new.rjs_spec.rb +47 -0
- data/spec/views/accounts/options.rjs_spec.rb +59 -0
- data/spec/views/accounts/show.haml_spec.rb +30 -0
- data/spec/views/accounts/update.rjs_spec.rb +99 -0
- data/spec/views/admin/users/_create.haml_spec.rb +17 -0
- data/spec/views/admin/users/create.rjs_spec.rb +42 -0
- data/spec/views/admin/users/destroy.rjs_spec.rb +47 -0
- data/spec/views/admin/users/edit.rjs_spec.rb +45 -0
- data/spec/views/admin/users/index.haml_spec.rb +16 -0
- data/spec/views/admin/users/index.rjs_spec.rb +23 -0
- data/spec/views/admin/users/new.rjs_spec.rb +31 -0
- data/spec/views/admin/users/reactivate.rjs_spec.rb +17 -0
- data/spec/views/admin/users/show.haml_spec.rb +12 -0
- data/spec/views/admin/users/suspend.rjs_spec.rb +17 -0
- data/spec/views/admin/users/update.rjs_spec.rb +36 -0
- data/spec/views/authentications/new.haml_spec.rb +25 -0
- data/spec/views/campaigns/_edit.haml_spec.rb +37 -0
- data/spec/views/campaigns/_new.haml_spec.rb +35 -0
- data/spec/views/campaigns/create.rjs_spec.rb +52 -0
- data/spec/views/campaigns/destroy.rjs_spec.rb +28 -0
- data/spec/views/campaigns/edit.rjs_spec.rb +78 -0
- data/spec/views/campaigns/index.haml_spec.rb +28 -0
- data/spec/views/campaigns/index.rjs_spec.rb +32 -0
- data/spec/views/campaigns/new.rjs_spec.rb +57 -0
- data/spec/views/campaigns/options.rjs_spec.rb +60 -0
- data/spec/views/campaigns/show.haml_spec.rb +31 -0
- data/spec/views/campaigns/update.rjs_spec.rb +87 -0
- data/spec/views/comments/new.rjs_spec.rb +21 -0
- data/spec/views/common/auto_complete.haml_spec.rb +43 -0
- data/spec/views/contacts/_edit.haml_spec.rb +67 -0
- data/spec/views/contacts/_new.haml_spec.rb +47 -0
- data/spec/views/contacts/create.rjs_spec.rb +69 -0
- data/spec/views/contacts/destroy.rjs_spec.rb +41 -0
- data/spec/views/contacts/edit.rjs_spec.rb +77 -0
- data/spec/views/contacts/index.haml_spec.rb +28 -0
- data/spec/views/contacts/index.rjs_spec.rb +32 -0
- data/spec/views/contacts/new.rjs_spec.rb +51 -0
- data/spec/views/contacts/options.rjs_spec.rb +61 -0
- data/spec/views/contacts/show.haml_spec.rb +27 -0
- data/spec/views/contacts/update.rjs_spec.rb +141 -0
- data/spec/views/home/index.haml_spec.rb +26 -0
- data/spec/views/home/index.rjs_spec.rb +30 -0
- data/spec/views/home/options.rjs_spec.rb +52 -0
- data/spec/views/leads/_convert.haml_spec.rb +25 -0
- data/spec/views/leads/_edit.haml_spec.rb +41 -0
- data/spec/views/leads/_new.haml_spec.rb +39 -0
- data/spec/views/leads/_sidebar_show.haml_spec.rb +25 -0
- data/spec/views/leads/convert.rjs_spec.rb +83 -0
- data/spec/views/leads/create.rjs_spec.rb +70 -0
- data/spec/views/leads/destroy.rjs_spec.rb +46 -0
- data/spec/views/leads/edit.rjs_spec.rb +79 -0
- data/spec/views/leads/index.haml_spec.rb +28 -0
- data/spec/views/leads/index.rjs_spec.rb +32 -0
- data/spec/views/leads/new.rjs_spec.rb +52 -0
- data/spec/views/leads/options.rjs_spec.rb +61 -0
- data/spec/views/leads/promote.rjs_spec.rb +154 -0
- data/spec/views/leads/reject.rjs_spec.rb +49 -0
- data/spec/views/leads/show.haml_spec.rb +24 -0
- data/spec/views/leads/update.rjs_spec.rb +134 -0
- data/spec/views/opportunities/_edit.haml_spec.rb +64 -0
- data/spec/views/opportunities/_new.haml_spec.rb +46 -0
- data/spec/views/opportunities/create.rjs_spec.rb +94 -0
- data/spec/views/opportunities/destroy.rjs_spec.rb +64 -0
- data/spec/views/opportunities/edit.rjs_spec.rb +79 -0
- data/spec/views/opportunities/index.haml_spec.rb +29 -0
- data/spec/views/opportunities/index.rjs_spec.rb +34 -0
- data/spec/views/opportunities/new.rjs_spec.rb +60 -0
- data/spec/views/opportunities/options.rjs_spec.rb +60 -0
- data/spec/views/opportunities/show.haml_spec.rb +27 -0
- data/spec/views/opportunities/update.rjs_spec.rb +162 -0
- data/spec/views/tasks/_edit.haml_spec.rb +45 -0
- data/spec/views/tasks/complete.rjs_spec.rb +68 -0
- data/spec/views/tasks/create.rjs_spec.rb +124 -0
- data/spec/views/tasks/destroy.rjs_spec.rb +53 -0
- data/spec/views/tasks/edit.rjs_spec.rb +78 -0
- data/spec/views/tasks/index.haml_spec.rb +40 -0
- data/spec/views/tasks/new.rjs_spec.rb +62 -0
- data/spec/views/tasks/update.rjs_spec.rb +152 -0
- data/spec/views/users/avatar.rjs_spec.rb +32 -0
- data/spec/views/users/change_password.rjs_spec.rb +49 -0
- data/spec/views/users/edit.rjs_spec.rb +32 -0
- data/spec/views/users/password.rjs_spec.rb +32 -0
- data/spec/views/users/update.rjs_spec.rb +50 -0
- data/spec/views/users/upload_avatar.rjs_spec.rb +42 -0
- data/vendor/assets/images/calendar_date_select/calendar.gif +0 -0
- data/vendor/assets/images/delete.png +0 -0
- data/vendor/assets/images/tab_icons/accounts.png +0 -0
- data/vendor/assets/images/tab_icons/accounts_active.png +0 -0
- data/vendor/assets/images/tab_icons/campaigns.png +0 -0
- data/vendor/assets/images/tab_icons/campaigns_active.png +0 -0
- data/vendor/assets/images/tab_icons/contacts.png +0 -0
- data/vendor/assets/images/tab_icons/contacts_active.png +0 -0
- data/vendor/assets/images/tab_icons/dashboard.png +0 -0
- data/vendor/assets/images/tab_icons/dashboard_active.png +0 -0
- data/vendor/assets/images/tab_icons/leads.png +0 -0
- data/vendor/assets/images/tab_icons/leads_active.png +0 -0
- data/vendor/assets/images/tab_icons/opportunities.png +0 -0
- data/vendor/assets/images/tab_icons/opportunities_active.png +0 -0
- data/vendor/assets/images/tab_icons/tasks.png +0 -0
- data/vendor/assets/images/tab_icons/tasks_active.png +0 -0
- data/vendor/assets/javascripts/calendar_date_select/calendar_date_select.js +446 -0
- data/vendor/assets/javascripts/calendar_date_select/format_american.js +35 -0
- data/vendor/assets/javascripts/calendar_date_select/format_danish.js +31 -0
- data/vendor/assets/javascripts/calendar_date_select/format_db.js +27 -0
- data/vendor/assets/javascripts/calendar_date_select/format_euro_24hr.js +7 -0
- data/vendor/assets/javascripts/calendar_date_select/format_euro_24hr_ymd.js +7 -0
- data/vendor/assets/javascripts/calendar_date_select/format_finnish.js +32 -0
- data/vendor/assets/javascripts/calendar_date_select/format_hyphen_ampm.js +37 -0
- data/vendor/assets/javascripts/calendar_date_select/format_iso_date.js +29 -0
- data/vendor/assets/javascripts/calendar_date_select/format_italian.js +24 -0
- data/vendor/assets/javascripts/calendar_date_select/locale/ar.js +10 -0
- data/vendor/assets/javascripts/calendar_date_select/locale/da.js +11 -0
- data/vendor/assets/javascripts/calendar_date_select/locale/de.js +11 -0
- data/vendor/assets/javascripts/calendar_date_select/locale/es.js +11 -0
- data/vendor/assets/javascripts/calendar_date_select/locale/fi.js +10 -0
- data/vendor/assets/javascripts/calendar_date_select/locale/fr.js +11 -0
- data/vendor/assets/javascripts/calendar_date_select/locale/it.js +9 -0
- data/vendor/assets/javascripts/calendar_date_select/locale/ja.js +11 -0
- data/vendor/assets/javascripts/calendar_date_select/locale/nl.js +11 -0
- data/vendor/assets/javascripts/calendar_date_select/locale/pl.js +11 -0
- data/vendor/assets/javascripts/calendar_date_select/locale/pt.js +11 -0
- data/vendor/assets/javascripts/calendar_date_select/locale/ru.js +10 -0
- data/vendor/assets/javascripts/calendar_date_select/locale/sl.js +11 -0
- data/vendor/assets/javascripts/calendar_date_select/locale/sv.js +9 -0
- data/vendor/assets/javascripts/event.simulate.js +64 -0
- data/vendor/assets/javascripts/facebooklist.js +548 -0
- data/vendor/assets/javascripts/facebooklist.simulate.js +28 -0
- data/vendor/assets/javascripts/modalbox.js +506 -0
- data/vendor/assets/javascripts/rating.js +162 -0
- data/vendor/assets/stylesheets/calendar_date_select/blue.css +130 -0
- data/vendor/assets/stylesheets/calendar_date_select/default.css +135 -0
- data/vendor/assets/stylesheets/calendar_date_select/green.css +142 -0
- data/vendor/assets/stylesheets/calendar_date_select/plain.css +128 -0
- data/vendor/assets/stylesheets/calendar_date_select/red.css +135 -0
- data/vendor/assets/stylesheets/calendar_date_select/silver.css +133 -0
- data/vendor/assets/stylesheets/facebooklist.css +47 -0
- data/vendor/assets/stylesheets/modalbox.css +107 -0
- data/vendor/plugins/.gitkeep +0 -0
- data/vendor/plugins/.gitkeep~master +0 -0
- metadata +1196 -0
data/db/seeds.rb
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
# This file should contain all the record creation needed to seed the database with its default values.
|
2
|
+
# The data can then be loaded with the rake db:seed (or created alongside the db with db:setup).
|
3
|
+
#
|
4
|
+
# Examples:
|
5
|
+
#
|
6
|
+
# cities = City.create([{ :name => 'Chicago' }, { :name => 'Copenhagen' }])
|
7
|
+
# Mayor.create(:name => 'Daley', :city => cities.first)
|
8
|
+
|
9
|
+
#~ require Rails.root.join('db/seeds/fields')
|
10
|
+
|
data/db/seeds/fields.rb
ADDED
@@ -0,0 +1,94 @@
|
|
1
|
+
{
|
2
|
+
'Account' => [
|
3
|
+
{
|
4
|
+
:params => {:label => 'General Information', :tooltip => ''},
|
5
|
+
:fields => [
|
6
|
+
{:field_type => '', :name => '', :label => '', :required => ''},
|
7
|
+
{:field_type => '', :name => '', :label => '', :required => ''},
|
8
|
+
{:field_type => '', :name => '', :label => '', :required => ''}
|
9
|
+
]
|
10
|
+
},
|
11
|
+
{
|
12
|
+
:params => {:label => 'Contact Information', :tooltip => ''},
|
13
|
+
:fields => [
|
14
|
+
|
15
|
+
]
|
16
|
+
}
|
17
|
+
],
|
18
|
+
'Campaign' => [
|
19
|
+
{
|
20
|
+
:params => {:label => 'General Information', :tooltip => ''},
|
21
|
+
:fields => [
|
22
|
+
{:field_type => '', :name => '', :label => '', :required => ''},
|
23
|
+
{:field_type => '', :name => '', :label => '', :required => ''},
|
24
|
+
{:field_type => '', :name => '', :label => '', :required => ''}
|
25
|
+
]
|
26
|
+
},
|
27
|
+
{
|
28
|
+
:params => {:label => 'Contact Information', :tooltip => ''},
|
29
|
+
:fields => [
|
30
|
+
|
31
|
+
]
|
32
|
+
}
|
33
|
+
],
|
34
|
+
'Contact' => [
|
35
|
+
{
|
36
|
+
:params => {:label => 'General Information', :tooltip => ''},
|
37
|
+
:fields => [
|
38
|
+
|
39
|
+
]
|
40
|
+
},
|
41
|
+
{
|
42
|
+
:params => {:label => 'Extra Information', :tooltip => ''},
|
43
|
+
:fields => [
|
44
|
+
|
45
|
+
]
|
46
|
+
},
|
47
|
+
{
|
48
|
+
:params => {:label => 'Web presence', :tooltip => ''},
|
49
|
+
:fields => [
|
50
|
+
|
51
|
+
]
|
52
|
+
}
|
53
|
+
],
|
54
|
+
'Lead' => [
|
55
|
+
{
|
56
|
+
:params => {:label => 'General Information', :tooltip => ''},
|
57
|
+
:fields => [
|
58
|
+
{:field_type => '', :name => '', :label => '', :required => ''},
|
59
|
+
{:field_type => '', :name => '', :label => '', :required => ''},
|
60
|
+
{:field_type => '', :name => '', :label => '', :required => ''}
|
61
|
+
]
|
62
|
+
},
|
63
|
+
{
|
64
|
+
:params => {:label => 'Contact Information', :tooltip => ''},
|
65
|
+
:fields => [
|
66
|
+
|
67
|
+
]
|
68
|
+
}
|
69
|
+
],
|
70
|
+
'Opportunity' => [
|
71
|
+
{
|
72
|
+
:params => {:label => 'General Information', :tooltip => ''},
|
73
|
+
:fields => [
|
74
|
+
{:field_type => '', :name => '', :label => '', :required => ''},
|
75
|
+
{:field_type => '', :name => '', :label => '', :required => ''},
|
76
|
+
{:field_type => '', :name => '', :label => '', :required => ''}
|
77
|
+
]
|
78
|
+
},
|
79
|
+
{
|
80
|
+
:params => {:label => 'Contact Information', :tooltip => ''},
|
81
|
+
:fields => [
|
82
|
+
|
83
|
+
]
|
84
|
+
}
|
85
|
+
]
|
86
|
+
}.each_with_index do |(klass_name, groups), group_position|
|
87
|
+
groups.each do |group|
|
88
|
+
field_group = FieldGroup.create group[:params].merge(:klass_name => klass_name, :position => group_position)
|
89
|
+
group[:fields].each_with_index do |params, field_position|
|
90
|
+
Field.create params.merge(:field_group => field_group, :position => field_position)
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path('../lib', __FILE__)
|
3
|
+
require 'fat_free_crm/version'
|
4
|
+
|
5
|
+
Gem::Specification.new do |gem|
|
6
|
+
gem.name = 'fat_free_crm'
|
7
|
+
gem.authors = ['Michael Dvorkin', 'Nathan Broadbent', 'Ben Tillman', 'Stephen Kenworthy']
|
8
|
+
gem.summary = 'Fat Free CRM'
|
9
|
+
gem.description = 'An open source, Ruby on Rails customer relationship management platform'
|
10
|
+
gem.homepage = 'http://fatfreecrm.com'
|
11
|
+
gem.email = ['mike@fatfreecrm.com', 'nathan@fatfreecrm.com']
|
12
|
+
gem.files = `git ls-files`.split("\n")
|
13
|
+
gem.version = FatFreeCRM::VERSION::STRING
|
14
|
+
|
15
|
+
gem.add_dependency 'rails', '~> 3.2.2'
|
16
|
+
gem.add_dependency 'prototype-rails'
|
17
|
+
gem.add_dependency 'jquery-rails'
|
18
|
+
gem.add_dependency 'simple_form', '~> 1.5.2'
|
19
|
+
gem.add_dependency 'will_paginate', '~> 3.0.2'
|
20
|
+
gem.add_dependency 'paperclip', '~> 2.5.2'
|
21
|
+
gem.add_dependency 'paper_trail'
|
22
|
+
gem.add_dependency 'authlogic', '~> 3.1.0'
|
23
|
+
gem.add_dependency 'acts_as_commentable', '~> 3.0.1'
|
24
|
+
gem.add_dependency 'acts-as-taggable-on', '~> 2.2.1'
|
25
|
+
gem.add_dependency 'haml', '~> 3.1.3'
|
26
|
+
gem.add_dependency 'sass', '~> 3.1.15'
|
27
|
+
gem.add_dependency 'acts_as_list', '~> 0.1.4'
|
28
|
+
gem.add_dependency 'ffaker', '>= 1.12.0'
|
29
|
+
gem.add_dependency 'uglifier'
|
30
|
+
gem.add_dependency 'chosen-rails'
|
31
|
+
gem.add_dependency 'ajax-chosen-rails', '>= 0.1.5'
|
32
|
+
gem.add_dependency 'ransack'
|
33
|
+
|
34
|
+
gem.add_development_dependency 'rspec-rails', '~> 2.8.1'
|
35
|
+
gem.add_development_dependency 'capybara'
|
36
|
+
gem.add_development_dependency 'sass-rails'
|
37
|
+
gem.add_development_dependency 'coffee-rails'
|
38
|
+
gem.add_development_dependency 'therubyracer'
|
39
|
+
gem.add_development_dependency 'spork'
|
40
|
+
gem.add_development_dependency 'database_cleaner'
|
41
|
+
gem.add_development_dependency 'fuubar'
|
42
|
+
gem.add_development_dependency 'factory_girl', '~> 2.6.1'
|
43
|
+
end
|
44
|
+
|
45
|
+
|
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2008 Michael Koziarski
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
@@ -0,0 +1,14 @@
|
|
1
|
+
CountrySelect
|
2
|
+
=============
|
3
|
+
|
4
|
+
Provides a simple helper to get an HTML select list of countries. The list of countries comes from the ISO 3166 standard. While it is a relatively neutral source of country names, it will still offend some users.
|
5
|
+
|
6
|
+
Users are strongly advised to evaluate the suitability of this list given their user base.
|
7
|
+
|
8
|
+
Example
|
9
|
+
=======
|
10
|
+
|
11
|
+
country_select("user", "country_name")
|
12
|
+
|
13
|
+
|
14
|
+
Copyright (c) 2008 Michael Koziarski, released under the MIT license
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'country_select'
|
@@ -0,0 +1,551 @@
|
|
1
|
+
# CountrySelect
|
2
|
+
module ActionView
|
3
|
+
module Helpers
|
4
|
+
module FormOptionsHelper
|
5
|
+
# Return select and option tags for the given object and method, using country_options_for_select to generate the list of option tags.
|
6
|
+
def country_select(object, method, priority_countries = nil, options = {}, html_options = {})
|
7
|
+
InstanceTag.new(object, method, self, options.delete(:object)).to_country_select_tag(priority_countries, options, html_options)
|
8
|
+
end
|
9
|
+
# Returns a string of option tags for pretty much any country in the world. Supply a country name as +selected+ to
|
10
|
+
# have it marked as the selected option tag. You can also supply an array of countries as +priority_countries+, so
|
11
|
+
# that they will be listed above the rest of the (long) list.
|
12
|
+
#
|
13
|
+
# NOTE: Only the option tags are returned, you have to wrap this call in a regular HTML select tag.
|
14
|
+
def country_options_for_select(selected = nil, priority_countries = nil)
|
15
|
+
country_options = ""
|
16
|
+
|
17
|
+
if priority_countries.blank?
|
18
|
+
priority_countries = ["United States", "Argentina", "Australia", "Brasil", "Canada", "Finland", "France", "Germany", "Italy", "Japan", "Mexico", "Norway", "Poland", "Portugal", "Spain", "Sweden", "Russia", "United Kingdom"]
|
19
|
+
end
|
20
|
+
|
21
|
+
country_options += options_for_select(priority_countries, selected)
|
22
|
+
country_options += "<option value=\"\" disabled=\"disabled\">-------------</option>\n"
|
23
|
+
|
24
|
+
other_countries = COUNTRIES.select{|c| !priority_countries.include?(c[0]) }
|
25
|
+
return country_options + options_for_select(other_countries, selected)
|
26
|
+
end
|
27
|
+
# All the countries included in the country_options output.
|
28
|
+
|
29
|
+
COUNTRIES = [
|
30
|
+
['Andorra', 'AN'],
|
31
|
+
['United Arab Emirates', 'AE'],
|
32
|
+
['Afghanistan', 'AF'],
|
33
|
+
['Antigua and Barbuda', 'AC'],
|
34
|
+
['Anguilla', 'AV'],
|
35
|
+
['Albania', 'AL'],
|
36
|
+
['Armenia', 'AM'],
|
37
|
+
['Netherlands Antilles', 'NT'],
|
38
|
+
['Angola', 'AO'],
|
39
|
+
['Antarctica', 'AY'],
|
40
|
+
['Argentina', 'AR'],
|
41
|
+
['American Samoa', 'AQ'],
|
42
|
+
['Austria', 'AU'],
|
43
|
+
['Australia', 'AS'],
|
44
|
+
['Aruba', 'AA'],
|
45
|
+
['Aland Islands', 'FI'],
|
46
|
+
['Azerbaijan', 'AJ'],
|
47
|
+
['Bosnia and Herzegovina', 'BK'],
|
48
|
+
['Barbados', 'BB'],
|
49
|
+
['Bangladesh', 'BG'],
|
50
|
+
['Belgium', 'BE'],
|
51
|
+
['Burkina Faso', 'UV'],
|
52
|
+
['Bulgaria', 'BU'],
|
53
|
+
['Bahrain', 'BA'],
|
54
|
+
['Burundi', 'BY'],
|
55
|
+
['Benin', 'BN'],
|
56
|
+
['Bermuda', 'BD'],
|
57
|
+
['Brunei', 'BX'],
|
58
|
+
['Bolivia', 'BL'],
|
59
|
+
['Brazil', 'BR'],
|
60
|
+
['Bahamas', 'BF'],
|
61
|
+
['Bhutan', 'BT'],
|
62
|
+
['Bouvet Island', 'BV'],
|
63
|
+
['Botswana', 'BC'],
|
64
|
+
['Belarus', 'BO'],
|
65
|
+
['Belize', 'BH'],
|
66
|
+
['Canada', 'CA'],
|
67
|
+
['Cocos (Keeling) Islands', 'CK'],
|
68
|
+
['Congo (Kinshasa)', 'CG'],
|
69
|
+
['Central African Republic', 'CT'],
|
70
|
+
['Congo (Brazzaville)', 'CF'],
|
71
|
+
['Switzerland', 'SZ'],
|
72
|
+
['Ivory Coast', 'IV'],
|
73
|
+
['Cook Islands', 'CW'],
|
74
|
+
['Chile', 'CI'],
|
75
|
+
['Cameroon', 'CM'],
|
76
|
+
['China', 'CH'],
|
77
|
+
['Colombia', 'CO'],
|
78
|
+
['Costa Rica', 'CS'],
|
79
|
+
['Serbia And Montenegro', 'YI'],
|
80
|
+
['Cuba', 'CU'],
|
81
|
+
['Cape Verde', 'CV'],
|
82
|
+
['Christmas Island', 'KT'],
|
83
|
+
['Cyprus', 'CY'],
|
84
|
+
['Czech Republic', 'EZ'],
|
85
|
+
['Germany', 'GM'],
|
86
|
+
['Djibouti', 'DJ'],
|
87
|
+
['Denmark', 'DA'],
|
88
|
+
['Dominica', 'DO'],
|
89
|
+
['Dominican Republic', 'DR'],
|
90
|
+
['Algeria', 'AG'],
|
91
|
+
['Ecuador', 'EC'],
|
92
|
+
['Estonia', 'EN'],
|
93
|
+
['Egypt', 'EG'],
|
94
|
+
['Western Sahara', 'WI'],
|
95
|
+
['Eritrea', 'ER'],
|
96
|
+
['Spain', 'SP'],
|
97
|
+
['Ethiopia', 'ET'],
|
98
|
+
['Finland', 'FI'],
|
99
|
+
['Fiji', 'FJ'],
|
100
|
+
['Falkland Islands', 'FK'],
|
101
|
+
['Micronesia', 'FM'],
|
102
|
+
['Faroe Islands', 'FO'],
|
103
|
+
['France', 'FR'],
|
104
|
+
['Gabon', 'GB'],
|
105
|
+
['United Kingdom', 'UK'],
|
106
|
+
['Grenada', 'GJ'],
|
107
|
+
['Georgia', 'GG'],
|
108
|
+
['French Guiana', 'FG'],
|
109
|
+
['Guernsey', 'GK'],
|
110
|
+
['Ghana', 'GH'],
|
111
|
+
['Gibraltar', 'GI'],
|
112
|
+
['Greenland', 'GL'],
|
113
|
+
['Gambia', 'GA'],
|
114
|
+
['Guinea', 'GV'],
|
115
|
+
['Guadeloupe', 'GP'],
|
116
|
+
['Equatorial Guinea', 'EK'],
|
117
|
+
['Greece', 'GR'],
|
118
|
+
['South Georgia and the South Sandwich Islands', 'SX'],
|
119
|
+
['Guatemala', 'GT'],
|
120
|
+
['Guam', 'GQ'],
|
121
|
+
['Guinea-Bissau', 'PU'],
|
122
|
+
['Guyana', 'GY'],
|
123
|
+
['Hong Kong S.A.R., China', 'HK'],
|
124
|
+
['Heard Island and McDonald Islands', 'HM'],
|
125
|
+
['Honduras', 'HO'],
|
126
|
+
['Croatia', 'HR'],
|
127
|
+
['Haiti', 'HA'],
|
128
|
+
['Hungary', 'HU'],
|
129
|
+
['Indonesia', 'ID'],
|
130
|
+
['Ireland', 'EI'],
|
131
|
+
['Israel', 'IS'],
|
132
|
+
['Isle of Man', 'IM'],
|
133
|
+
['India', 'IN'],
|
134
|
+
['British Indian Ocean Territory', 'IO'],
|
135
|
+
['Iraq', 'IZ'],
|
136
|
+
['Iran', 'IR'],
|
137
|
+
['Iceland', 'IC'],
|
138
|
+
['Italy', 'IT'],
|
139
|
+
['Jersey', 'JE'],
|
140
|
+
['Jamaica', 'JM'],
|
141
|
+
['Jordan', 'JO'],
|
142
|
+
['Japan', 'JA'],
|
143
|
+
['Kenya', 'KE'],
|
144
|
+
['Kyrgyzstan', 'KG'],
|
145
|
+
['Cambodia', 'CB'],
|
146
|
+
['Kiribati', 'KR'],
|
147
|
+
['Comoros', 'CN'],
|
148
|
+
['Saint Kitts and Nevis', 'SC'],
|
149
|
+
['North Korea', 'KN'],
|
150
|
+
['South Korea', 'KS'],
|
151
|
+
['Kuwait', 'KU'],
|
152
|
+
['Cayman Islands', 'CJ'],
|
153
|
+
['Kazakhstan', 'KZ'],
|
154
|
+
['Laos', 'LA'],
|
155
|
+
['Lebanon', 'LE'],
|
156
|
+
['Saint Lucia', 'ST'],
|
157
|
+
['Liechtenstein', 'LS'],
|
158
|
+
['Sri Lanka', 'CE'],
|
159
|
+
['Liberia', 'LI'],
|
160
|
+
['Lesotho', 'LT'],
|
161
|
+
['Lithuania', 'LH'],
|
162
|
+
['Luxembourg', 'LU'],
|
163
|
+
['Latvia', 'LG'],
|
164
|
+
['Libya', 'LY'],
|
165
|
+
['Morocco', 'MO'],
|
166
|
+
['Monaco', 'MN'],
|
167
|
+
['Moldova', 'MD'],
|
168
|
+
['Montenegro', 'MJ'],
|
169
|
+
['Madagascar', 'MA'],
|
170
|
+
['Marshall Islands', 'RM'],
|
171
|
+
['Macedonia', 'MK'],
|
172
|
+
['Mali', 'ML'],
|
173
|
+
['Myanmar', 'BM'],
|
174
|
+
['Mongolia', 'MG'],
|
175
|
+
['Macao S.A.R., China', 'MC'],
|
176
|
+
['Northern Mariana Islands', 'CQ'],
|
177
|
+
['Martinique', 'MB'],
|
178
|
+
['Mauritania', 'MR'],
|
179
|
+
['Montserrat', 'MH'],
|
180
|
+
['Malta', 'MT'],
|
181
|
+
['Mauritius', 'MP'],
|
182
|
+
['Maldives', 'MV'],
|
183
|
+
['Malawi', 'MI'],
|
184
|
+
['Mexico', 'MX'],
|
185
|
+
['Malaysia', 'MY'],
|
186
|
+
['Mozambique', 'MZ'],
|
187
|
+
['Namibia', 'WA'],
|
188
|
+
['New Caledonia', 'NC'],
|
189
|
+
['Niger', 'NG'],
|
190
|
+
['Norfolk Island', 'NF'],
|
191
|
+
['Nigeria', 'NI'],
|
192
|
+
['Nicaragua', 'NU'],
|
193
|
+
['Netherlands', 'NL'],
|
194
|
+
['Norway', 'NO'],
|
195
|
+
['Nepal', 'NP'],
|
196
|
+
['Nauru', 'NR'],
|
197
|
+
['Niue', 'NE'],
|
198
|
+
['New Zealand', 'NZ'],
|
199
|
+
['Oman', 'MU'],
|
200
|
+
['Panama', 'PM'],
|
201
|
+
['Peru', 'PE'],
|
202
|
+
['French Polynesia', 'FP'],
|
203
|
+
['Papua New Guinea', 'PP'],
|
204
|
+
['Philippines', 'RP'],
|
205
|
+
['Pakistan', 'PK'],
|
206
|
+
['Poland', 'PL'],
|
207
|
+
['Saint Pierre and Miquelon', 'SB'],
|
208
|
+
['Pitcairn', 'PC'],
|
209
|
+
['Puerto Rico', 'RQ'],
|
210
|
+
['Palestinian Territory', 'WE'],
|
211
|
+
['Portugal', 'PO'],
|
212
|
+
['Palau', 'PS'],
|
213
|
+
['Paraguay', 'PA'],
|
214
|
+
['Qatar', 'QA'],
|
215
|
+
['Reunion', 'RE'],
|
216
|
+
['Romania', 'RO'],
|
217
|
+
['Serbia', 'RB'],
|
218
|
+
['Russia', 'RS'],
|
219
|
+
['Rwanda', 'RW'],
|
220
|
+
['Saudi Arabia', 'SA'],
|
221
|
+
['Solomon Islands', 'BP'],
|
222
|
+
['Seychelles', 'SE'],
|
223
|
+
['Sudan', 'SU'],
|
224
|
+
['Sweden', 'SW'],
|
225
|
+
['Singapore', 'SN'],
|
226
|
+
['Saint Helena', 'SH'],
|
227
|
+
['Slovenia', 'SI'],
|
228
|
+
['Svalbard and Jan Mayen', 'SV'],
|
229
|
+
['Slovakia', 'LO'],
|
230
|
+
['Sierra Leone', 'SL'],
|
231
|
+
['San Marino', 'SM'],
|
232
|
+
['Senegal', 'SG'],
|
233
|
+
['Somalia', 'SO'],
|
234
|
+
['Suriname', 'NS'],
|
235
|
+
['Sao Tome and Principe', 'TP'],
|
236
|
+
['El Salvador', 'ES'],
|
237
|
+
['Syria', 'SY'],
|
238
|
+
['Swaziland', 'WZ'],
|
239
|
+
['Turks and Caicos Islands', 'TK'],
|
240
|
+
['Chad', 'CD'],
|
241
|
+
['French Southern Territories', 'FS'],
|
242
|
+
['Togo', 'TO'],
|
243
|
+
['Thailand', 'TH'],
|
244
|
+
['Tajikistan', 'TI'],
|
245
|
+
['Tokelau', 'TL'],
|
246
|
+
['East Timor', 'TT'],
|
247
|
+
['Turkmenistan', 'TX'],
|
248
|
+
['Tunisia', 'TS'],
|
249
|
+
['Tonga', 'TN'],
|
250
|
+
['Turkey', 'TU'],
|
251
|
+
['Trinidad and Tobago', 'TD'],
|
252
|
+
['Tuvalu', 'TV'],
|
253
|
+
['Taiwan', 'TW'],
|
254
|
+
['Tanzania', 'TZ'],
|
255
|
+
['Ukraine', 'UP'],
|
256
|
+
['Uganda', 'UG'],
|
257
|
+
['United States', 'US'],
|
258
|
+
['Uruguay', 'UY'],
|
259
|
+
['Uzbekistan', 'UZ'],
|
260
|
+
['Vatican', 'VT'],
|
261
|
+
['Saint Vincent and the Grenadines', 'VC'],
|
262
|
+
['Venezuela', 'VE'],
|
263
|
+
['British Virgin Islands', 'VI'],
|
264
|
+
['U.S. Virgin Islands', 'VQ'],
|
265
|
+
['Vietnam', 'VM'],
|
266
|
+
['Vanuatu', 'NH'],
|
267
|
+
['Wallis and Futuna', 'WF'],
|
268
|
+
['Samoa', 'WS'],
|
269
|
+
['Yemen', 'YM'],
|
270
|
+
['Mayotte', 'MF'],
|
271
|
+
['South Africa', 'SF'],
|
272
|
+
['Zambia', 'ZA'],
|
273
|
+
['Zimbabwe', 'ZI']
|
274
|
+
].sort unless const_defined?("COUNTRIES")
|
275
|
+
|
276
|
+
COUNTRIES_HASH = {
|
277
|
+
:AN => 'Andorra',
|
278
|
+
:AE => 'United Arab Emirates',
|
279
|
+
:AF => 'Afghanistan',
|
280
|
+
:AC => 'Antigua and Barbuda',
|
281
|
+
:AV => 'Anguilla',
|
282
|
+
:AL => 'Albania',
|
283
|
+
:AM => 'Armenia',
|
284
|
+
:NT => 'Netherlands Antilles',
|
285
|
+
:AO => 'Angola',
|
286
|
+
:AY => 'Antarctica',
|
287
|
+
:AR => 'Argentina',
|
288
|
+
:AQ => 'American Samoa',
|
289
|
+
:AU => 'Austria',
|
290
|
+
:AS => 'Australia',
|
291
|
+
:AA => 'Aruba',
|
292
|
+
:FI => 'Aland Islands',
|
293
|
+
:AJ => 'Azerbaijan',
|
294
|
+
:BK => 'Bosnia and Herzegovina',
|
295
|
+
:BB => 'Barbados',
|
296
|
+
:BG => 'Bangladesh',
|
297
|
+
:BE => 'Belgium',
|
298
|
+
:UV => 'Burkina Faso',
|
299
|
+
:BU => 'Bulgaria',
|
300
|
+
:BA => 'Bahrain',
|
301
|
+
:BY => 'Burundi',
|
302
|
+
:BN => 'Benin',
|
303
|
+
:BD => 'Bermuda',
|
304
|
+
:BX => 'Brunei',
|
305
|
+
:BL => 'Bolivia',
|
306
|
+
:BR => 'Brazil',
|
307
|
+
:BF => 'Bahamas',
|
308
|
+
:BT => 'Bhutan',
|
309
|
+
:BV => 'Bouvet Island',
|
310
|
+
:BC => 'Botswana',
|
311
|
+
:BO => 'Belarus',
|
312
|
+
:BH => 'Belize',
|
313
|
+
:CA => 'Canada',
|
314
|
+
:CK => 'Cocos (Keeling) Islands',
|
315
|
+
:CG => 'Congo (Kinshasa)',
|
316
|
+
:CT => 'Central African Republic',
|
317
|
+
:CF => 'Congo (Brazzaville)',
|
318
|
+
:SZ => 'Switzerland',
|
319
|
+
:IV => 'Ivory Coast',
|
320
|
+
:CW => 'Cook Islands',
|
321
|
+
:CI => 'Chile',
|
322
|
+
:CM => 'Cameroon',
|
323
|
+
:CH => 'China',
|
324
|
+
:CO => 'Colombia',
|
325
|
+
:CS => 'Costa Rica',
|
326
|
+
:YI => 'Serbia And Montenegro',
|
327
|
+
:CU => 'Cuba',
|
328
|
+
:CV => 'Cape Verde',
|
329
|
+
:KT => 'Christmas Island',
|
330
|
+
:CY => 'Cyprus',
|
331
|
+
:EZ => 'Czech Republic',
|
332
|
+
:GM => 'Germany',
|
333
|
+
:DJ => 'Djibouti',
|
334
|
+
:DA => 'Denmark',
|
335
|
+
:DO => 'Dominica',
|
336
|
+
:DR => 'Dominican Republic',
|
337
|
+
:AG => 'Algeria',
|
338
|
+
:EC => 'Ecuador',
|
339
|
+
:EN => 'Estonia',
|
340
|
+
:EG => 'Egypt',
|
341
|
+
:WI => 'Western Sahara',
|
342
|
+
:ER => 'Eritrea',
|
343
|
+
:SP => 'Spain',
|
344
|
+
:ET => 'Ethiopia',
|
345
|
+
:FI => 'Finland',
|
346
|
+
:FJ => 'Fiji',
|
347
|
+
:FK => 'Falkland Islands',
|
348
|
+
:FM => 'Micronesia',
|
349
|
+
:FO => 'Faroe Islands',
|
350
|
+
:FR => 'France',
|
351
|
+
:GB => 'Gabon',
|
352
|
+
:UK => 'United Kingdom',
|
353
|
+
:GJ => 'Grenada',
|
354
|
+
:GG => 'Georgia',
|
355
|
+
:FG => 'French Guiana',
|
356
|
+
:GK => 'Guernsey',
|
357
|
+
:GH => 'Ghana',
|
358
|
+
:GI => 'Gibraltar',
|
359
|
+
:GL => 'Greenland',
|
360
|
+
:GA => 'Gambia',
|
361
|
+
:GV => 'Guinea',
|
362
|
+
:GP => 'Guadeloupe',
|
363
|
+
:EK => 'Equatorial Guinea',
|
364
|
+
:GR => 'Greece',
|
365
|
+
:SX => 'South Georgia and the South Sandwich Islands',
|
366
|
+
:GT => 'Guatemala',
|
367
|
+
:GQ => 'Guam',
|
368
|
+
:PU => 'Guinea-Bissau',
|
369
|
+
:GY => 'Guyana',
|
370
|
+
:HK => 'Hong Kong S.A.R., China',
|
371
|
+
:HM => 'Heard Island and McDonald Islands',
|
372
|
+
:HO => 'Honduras',
|
373
|
+
:HR => 'Croatia',
|
374
|
+
:HA => 'Haiti',
|
375
|
+
:HU => 'Hungary',
|
376
|
+
:ID => 'Indonesia',
|
377
|
+
:EI => 'Ireland',
|
378
|
+
:IS => 'Israel',
|
379
|
+
:IM => 'Isle of Man',
|
380
|
+
:IN => 'India',
|
381
|
+
:IO => 'British Indian Ocean Territory',
|
382
|
+
:IZ => 'Iraq',
|
383
|
+
:IR => 'Iran',
|
384
|
+
:IC => 'Iceland',
|
385
|
+
:IT => 'Italy',
|
386
|
+
:JE => 'Jersey',
|
387
|
+
:JM => 'Jamaica',
|
388
|
+
:JO => 'Jordan',
|
389
|
+
:JA => 'Japan',
|
390
|
+
:KE => 'Kenya',
|
391
|
+
:KG => 'Kyrgyzstan',
|
392
|
+
:CB => 'Cambodia',
|
393
|
+
:KR => 'Kiribati',
|
394
|
+
:CN => 'Comoros',
|
395
|
+
:SC => 'Saint Kitts and Nevis',
|
396
|
+
:KN => 'North Korea',
|
397
|
+
:KS => 'South Korea',
|
398
|
+
:KU => 'Kuwait',
|
399
|
+
:CJ => 'Cayman Islands',
|
400
|
+
:KZ => 'Kazakhstan',
|
401
|
+
:LA => 'Laos',
|
402
|
+
:LE => 'Lebanon',
|
403
|
+
:ST => 'Saint Lucia',
|
404
|
+
:LS => 'Liechtenstein',
|
405
|
+
:CE => 'Sri Lanka',
|
406
|
+
:LI => 'Liberia',
|
407
|
+
:LT => 'Lesotho',
|
408
|
+
:LH => 'Lithuania',
|
409
|
+
:LU => 'Luxembourg',
|
410
|
+
:LG => 'Latvia',
|
411
|
+
:LY => 'Libya',
|
412
|
+
:MO => 'Morocco',
|
413
|
+
:MN => 'Monaco',
|
414
|
+
:MD => 'Moldova',
|
415
|
+
:MJ => 'Montenegro',
|
416
|
+
:MA => 'Madagascar',
|
417
|
+
:RM => 'Marshall Islands',
|
418
|
+
:MK => 'Macedonia',
|
419
|
+
:ML => 'Mali',
|
420
|
+
:BM => 'Myanmar',
|
421
|
+
:MG => 'Mongolia',
|
422
|
+
:MC => 'Macao S.A.R., China',
|
423
|
+
:CQ => 'Northern Mariana Islands',
|
424
|
+
:MB => 'Martinique',
|
425
|
+
:MR => 'Mauritania',
|
426
|
+
:MH => 'Montserrat',
|
427
|
+
:MT => 'Malta',
|
428
|
+
:MP => 'Mauritius',
|
429
|
+
:MV => 'Maldives',
|
430
|
+
:MI => 'Malawi',
|
431
|
+
:MX => 'Mexico',
|
432
|
+
:MY => 'Malaysia',
|
433
|
+
:MZ => 'Mozambique',
|
434
|
+
:WA => 'Namibia',
|
435
|
+
:NC => 'New Caledonia',
|
436
|
+
:NG => 'Niger',
|
437
|
+
:NF => 'Norfolk Island',
|
438
|
+
:NI => 'Nigeria',
|
439
|
+
:NU => 'Nicaragua',
|
440
|
+
:NL => 'Netherlands',
|
441
|
+
:NO => 'Norway',
|
442
|
+
:NP => 'Nepal',
|
443
|
+
:NR => 'Nauru',
|
444
|
+
:NE => 'Niue',
|
445
|
+
:NZ => 'New Zealand',
|
446
|
+
:MU => 'Oman',
|
447
|
+
:PM => 'Panama',
|
448
|
+
:PE => 'Peru',
|
449
|
+
:FP => 'French Polynesia',
|
450
|
+
:PP => 'Papua New Guinea',
|
451
|
+
:RP => 'Philippines',
|
452
|
+
:PK => 'Pakistan',
|
453
|
+
:PL => 'Poland',
|
454
|
+
:SB => 'Saint Pierre and Miquelon',
|
455
|
+
:PC => 'Pitcairn',
|
456
|
+
:RQ => 'Puerto Rico',
|
457
|
+
:WE => 'Palestinian Territory',
|
458
|
+
:PO => 'Portugal',
|
459
|
+
:PS => 'Palau',
|
460
|
+
:PA => 'Paraguay',
|
461
|
+
:QA => 'Qatar',
|
462
|
+
:RE => 'Reunion',
|
463
|
+
:RO => 'Romania',
|
464
|
+
:RB => 'Serbia',
|
465
|
+
:RS => 'Russia',
|
466
|
+
:RW => 'Rwanda',
|
467
|
+
:SA => 'Saudi Arabia',
|
468
|
+
:BP => 'Solomon Islands',
|
469
|
+
:SE => 'Seychelles',
|
470
|
+
:SU => 'Sudan',
|
471
|
+
:SW => 'Sweden',
|
472
|
+
:SN => 'Singapore',
|
473
|
+
:SH => 'Saint Helena',
|
474
|
+
:SI => 'Slovenia',
|
475
|
+
:SV => 'Svalbard and Jan Mayen',
|
476
|
+
:LO => 'Slovakia',
|
477
|
+
:SL => 'Sierra Leone',
|
478
|
+
:SM => 'San Marino',
|
479
|
+
:SG => 'Senegal',
|
480
|
+
:SO => 'Somalia',
|
481
|
+
:NS => 'Suriname',
|
482
|
+
:TP => 'Sao Tome and Principe',
|
483
|
+
:ES => 'El Salvador',
|
484
|
+
:SY => 'Syria',
|
485
|
+
:WZ => 'Swaziland',
|
486
|
+
:TK => 'Turks and Caicos Islands',
|
487
|
+
:CD => 'Chad',
|
488
|
+
:FS => 'French Southern Territories',
|
489
|
+
:TO => 'Togo',
|
490
|
+
:TH => 'Thailand',
|
491
|
+
:TI => 'Tajikistan',
|
492
|
+
:TL => 'Tokelau',
|
493
|
+
:TT => 'East Timor',
|
494
|
+
:TX => 'Turkmenistan',
|
495
|
+
:TS => 'Tunisia',
|
496
|
+
:TN => 'Tonga',
|
497
|
+
:TU => 'Turkey',
|
498
|
+
:TD => 'Trinidad and Tobago',
|
499
|
+
:TV => 'Tuvalu',
|
500
|
+
:TW => 'Taiwan',
|
501
|
+
:TZ => 'Tanzania',
|
502
|
+
:UP => 'Ukraine',
|
503
|
+
:UG => 'Uganda',
|
504
|
+
:US => 'United States',
|
505
|
+
:UY => 'Uruguay',
|
506
|
+
:UZ => 'Uzbekistan',
|
507
|
+
:VT => 'Vatican',
|
508
|
+
:VC => 'Saint Vincent and the Grenadines',
|
509
|
+
:VE => 'Venezuela',
|
510
|
+
:VI => 'British Virgin Islands',
|
511
|
+
:VQ => 'U.S. Virgin Islands',
|
512
|
+
:VM => 'Vietnam',
|
513
|
+
:NH => 'Vanuatu',
|
514
|
+
:WF => 'Wallis and Futuna',
|
515
|
+
:WS => 'Samoa',
|
516
|
+
:YM => 'Yemen',
|
517
|
+
:MF => 'Mayotte',
|
518
|
+
:SF => 'South Africa',
|
519
|
+
:ZA => 'Zambia',
|
520
|
+
:ZI => 'Zimbabwe',
|
521
|
+
:WW => 'Worldwide'
|
522
|
+
}
|
523
|
+
end
|
524
|
+
|
525
|
+
def country_name(code)
|
526
|
+
return "" if code.blank?
|
527
|
+
return COUNTRIES_HASH[code.to_sym] || code
|
528
|
+
end
|
529
|
+
|
530
|
+
class InstanceTag
|
531
|
+
def to_country_select_tag(priority_countries, options, html_options)
|
532
|
+
html_options = html_options.stringify_keys
|
533
|
+
add_default_name_and_id(html_options)
|
534
|
+
value = value(object)
|
535
|
+
content_tag("select",
|
536
|
+
add_options(
|
537
|
+
country_options_for_select(value, priority_countries),
|
538
|
+
options, value
|
539
|
+
), html_options
|
540
|
+
)
|
541
|
+
end
|
542
|
+
end
|
543
|
+
|
544
|
+
class FormBuilder
|
545
|
+
def country_select(method, priority_countries = nil, options = {}, html_options = {})
|
546
|
+
@template.country_select(@object_name, method, priority_countries, options.merge(:object => @object), html_options)
|
547
|
+
end
|
548
|
+
end
|
549
|
+
end
|
550
|
+
end
|
551
|
+
|