fat_free_crm 0.11.4 → 0.12.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.
Potentially problematic release.
This version of fat_free_crm might be problematic. Click here for more details.
- checksums.yaml +15 -0
- data/.gitignore +2 -1
- data/.travis.yml +10 -17
- data/CHANGELOG +57 -4
- data/CONTRIBUTORS +6 -4
- data/Gemfile +24 -21
- data/Gemfile.lock +142 -111
- data/Guardfile +11 -31
- data/MIT-LICENSE +21 -0
- data/README.md +30 -39
- data/app/assets/javascripts/admin/fields.js.coffee +5 -18
- data/app/assets/javascripts/application.js.erb +3 -14
- data/app/assets/javascripts/crm.js +3 -15
- data/app/assets/javascripts/crm_chosen.js.coffee +21 -4
- data/app/assets/javascripts/crm_classes.js +3 -15
- data/app/assets/javascripts/crm_fields.js +3 -15
- data/app/assets/javascripts/crm_loginout.js +3 -15
- data/app/assets/javascripts/crm_textarea_autocomplete.js +3 -15
- data/app/assets/javascripts/datepicker.js.coffee +5 -0
- data/app/assets/javascripts/format_buttons.js.coffee +5 -0
- data/app/assets/javascripts/groups.js.coffee +5 -0
- data/app/assets/javascripts/jquery-noconflict.js +3 -15
- data/app/assets/javascripts/lists.js.coffee +6 -0
- data/app/assets/javascripts/search.js.coffee +5 -0
- data/app/assets/stylesheets/admin/fields.css.scss +10 -0
- data/app/assets/stylesheets/advanced_search.css.scss +5 -0
- data/app/assets/stylesheets/application.css.erb +3 -14
- data/app/assets/stylesheets/base.scss +3 -15
- data/app/assets/stylesheets/common.scss +3 -15
- data/app/assets/stylesheets/ffcrm_chosen.scss +5 -0
- data/app/assets/stylesheets/fields.scss +5 -0
- data/app/assets/stylesheets/format_buttons.css.scss +5 -0
- data/app/assets/stylesheets/groups.css.scss +5 -0
- data/app/assets/stylesheets/header.scss +3 -15
- data/app/assets/stylesheets/index_headers.css.scss +5 -0
- data/app/assets/stylesheets/lists.css.scss +5 -0
- data/app/assets/stylesheets/print.css.scss +3 -15
- data/app/assets/stylesheets/rails.scss +4 -16
- data/app/assets/stylesheets/safari.scss +3 -15
- data/app/assets/stylesheets/textarea_autocomplete.scss +5 -0
- data/app/controllers/admin/application_controller.rb +3 -15
- data/app/controllers/admin/field_groups_controller.rb +3 -15
- data/app/controllers/admin/fields_controller.rb +3 -15
- data/app/controllers/admin/groups_controller.rb +3 -15
- data/app/controllers/admin/plugins_controller.rb +3 -15
- data/app/controllers/admin/settings_controller.rb +3 -15
- data/app/controllers/admin/tags_controller.rb +3 -15
- data/app/controllers/admin/users_controller.rb +3 -15
- data/app/controllers/application_controller.rb +3 -15
- data/app/controllers/authentications_controller.rb +3 -15
- data/app/controllers/comments_controller.rb +6 -16
- data/app/controllers/emails_controller.rb +3 -15
- data/app/controllers/entities/accounts_controller.rb +4 -15
- data/app/controllers/entities/campaigns_controller.rb +4 -15
- data/app/controllers/entities/contacts_controller.rb +4 -15
- data/app/controllers/entities/leads_controller.rb +4 -15
- data/app/controllers/entities/opportunities_controller.rb +6 -16
- data/app/controllers/entities_controller.rb +3 -15
- data/app/controllers/home_controller.rb +3 -15
- data/app/controllers/lists_controller.rb +3 -15
- data/app/controllers/passwords_controller.rb +3 -15
- data/app/controllers/tasks_controller.rb +5 -16
- data/app/controllers/users_controller.rb +3 -15
- data/app/helpers/accounts_helper.rb +7 -17
- data/app/helpers/addresses_helper.rb +3 -15
- data/app/helpers/admin/application_helper.rb +3 -15
- data/app/helpers/admin/field_groups_helper.rb +3 -15
- data/app/helpers/admin/fields_helper.rb +3 -15
- data/app/helpers/admin/plugins_helper.rb +3 -15
- data/app/helpers/admin/settings_helper.rb +3 -15
- data/app/helpers/admin/tags_helper.rb +3 -15
- data/app/helpers/admin/users_helper.rb +3 -15
- data/app/helpers/application_helper.rb +12 -18
- data/app/helpers/authentications_helper.rb +3 -15
- data/app/helpers/campaigns_helper.rb +3 -15
- data/app/helpers/comments_helper.rb +3 -15
- data/app/helpers/contacts_helper.rb +3 -15
- data/app/helpers/emails_helper.rb +3 -15
- data/app/helpers/fields_helper.rb +3 -15
- data/app/helpers/groups_helper.rb +5 -0
- data/app/helpers/home_helper.rb +3 -15
- data/app/helpers/leads_helper.rb +3 -15
- data/app/helpers/lists_helper.rb +3 -15
- data/app/helpers/opportunities_helper.rb +3 -15
- data/app/helpers/passwords_helper.rb +3 -15
- data/app/helpers/tags_helper.rb +3 -15
- data/app/helpers/tasks_helper.rb +3 -15
- data/app/helpers/users_helper.rb +3 -15
- data/app/helpers/versions_helper.rb +3 -15
- data/app/inputs/{datepair_input.rb → date_pair_input.rb} +10 -21
- data/app/inputs/date_time_input.rb +13 -15
- data/app/inputs/datetime_pair_input.rb +26 -0
- data/app/inputs/text_input.rb +5 -15
- data/app/mailers/dropbox_mailer.rb +3 -15
- data/app/mailers/subscription_mailer.rb +9 -16
- data/app/mailers/user_mailer.rb +3 -15
- data/app/models/entities/account.rb +7 -17
- data/app/models/entities/account_contact.rb +6 -17
- data/app/models/entities/account_opportunity.rb +5 -15
- data/app/models/entities/campaign.rb +5 -15
- data/app/models/entities/contact.rb +15 -25
- data/app/models/entities/contact_opportunity.rb +5 -15
- data/app/models/entities/lead.rb +6 -16
- data/app/models/entities/opportunity.rb +6 -16
- data/app/models/fields/core_field.rb +5 -16
- data/app/models/fields/custom_field.rb +6 -16
- data/app/models/fields/custom_field_date_pair.rb +6 -21
- data/app/models/fields/custom_field_datetime_pair.rb +5 -19
- data/app/models/fields/custom_field_pair.rb +6 -16
- data/app/models/fields/field.rb +6 -17
- data/app/models/fields/field_group.rb +7 -17
- data/app/models/list.rb +4 -15
- data/app/models/observers/entity_observer.rb +5 -0
- data/app/models/observers/lead_observer.rb +3 -15
- data/app/models/observers/opportunity_observer.rb +3 -15
- data/app/models/observers/task_observer.rb +3 -15
- data/app/models/polymorphic/address.rb +5 -16
- data/app/models/polymorphic/avatar.rb +5 -16
- data/app/models/polymorphic/comment.rb +5 -15
- data/app/models/polymorphic/email.rb +5 -15
- data/app/models/polymorphic/tag.rb +6 -16
- data/app/models/polymorphic/tagging.rb +4 -15
- data/app/models/polymorphic/task.rb +6 -16
- data/app/models/setting.rb +5 -23
- data/app/models/users/ability.rb +9 -2
- data/app/models/users/authentication.rb +5 -16
- data/app/models/users/group.rb +7 -0
- data/app/models/users/permission.rb +5 -16
- data/app/models/users/preference.rb +4 -15
- data/app/models/users/user.rb +10 -19
- data/app/views/admin/fields/index.html.haml +2 -0
- data/app/views/comments/_edit.html.haml +0 -1
- data/app/views/comments/_new.html.haml +0 -1
- data/app/views/contacts/_contacts.html.haml +1 -1
- data/app/views/contacts/_sidebar_show.html.haml +19 -0
- data/app/views/contacts/_top_section.html.haml +3 -2
- data/app/views/entities/_search.html.haml +4 -3
- data/app/views/entities/contacts.js.rjs +1 -1
- data/app/views/entities/leads.js.rjs +1 -1
- data/app/views/entities/opportunities.js.rjs +1 -1
- data/app/views/fields/_edit_custom_field_group.html.haml +1 -1
- data/app/views/home/_task.html.haml +3 -1
- data/app/views/layouts/_footer.html.haml +1 -1
- data/app/views/leads/_leads.html.haml +1 -1
- data/app/views/leads/_sidebar_show.html.haml +7 -0
- data/app/views/leads/_top_section.html.haml +3 -2
- data/app/views/lists/_sidebar.html.haml +5 -5
- data/app/views/opportunities/_opportunities.html.haml +1 -1
- data/app/views/versions/_versions.html.haml +1 -1
- data/config/application.rb +11 -3
- data/config/boot.rb +5 -1
- data/config/deploy.example.rb +5 -0
- data/config/environment.rb +5 -0
- data/config/environments/development.rb +5 -0
- data/config/environments/production.rb +5 -0
- data/config/environments/staging.rb +5 -0
- data/config/environments/test.rb +6 -1
- data/config/initializers/action_mailer.rb +5 -0
- data/config/initializers/authlogic.rb +5 -0
- data/config/initializers/constants.rb +5 -0
- data/config/initializers/gravatar.rb +5 -0
- data/config/initializers/locale.rb +3 -15
- data/config/initializers/mime_types.rb +5 -0
- data/config/initializers/paginate_arrays.rb +5 -0
- data/config/initializers/paper_trail.rb +5 -0
- data/config/initializers/ransack.rb +6 -1
- data/config/initializers/relative_url_root.rb +3 -15
- data/config/initializers/sass.rb +5 -0
- data/config/initializers/secret_token.rb +6 -1
- data/config/initializers/simple_form.rb +5 -0
- data/config/initializers/views.rb +5 -0
- data/config/locales/de_fat_free_crm.yml +125 -7
- data/config/locales/en-US_fat_free_crm.yml +7 -2
- data/config/locales/th.rb +5 -0
- data/config/routes.rb +5 -0
- data/config/settings.default.yml +10 -18
- data/config/unicorn.rb +5 -0
- data/fat_free_crm.gemspec +6 -4
- data/lib/development_tasks/gem.rake +3 -15
- data/lib/development_tasks/license.rake +12 -32
- data/lib/development_tasks/rdoc.rake +3 -15
- data/lib/development_tasks/rspec.rake +3 -15
- data/lib/fat_free_crm.rb +6 -16
- data/lib/fat_free_crm/callback.rb +3 -15
- data/lib/fat_free_crm/comment_extensions.rb +5 -0
- data/lib/fat_free_crm/core_ext.rb +3 -15
- data/lib/fat_free_crm/core_ext/nil.rb +3 -15
- data/lib/fat_free_crm/core_ext/string.rb +3 -15
- data/lib/fat_free_crm/custom_fields.rb +12 -0
- data/lib/fat_free_crm/engine.rb +3 -15
- data/lib/fat_free_crm/errors.rb +3 -15
- data/lib/fat_free_crm/exceptions.rb +3 -15
- data/lib/fat_free_crm/export_csv.rb +35 -0
- data/lib/fat_free_crm/exportable.rb +3 -15
- data/lib/fat_free_crm/fields.rb +5 -17
- data/lib/fat_free_crm/gem_dependencies.rb +3 -15
- data/lib/fat_free_crm/gem_ext.rb +3 -15
- data/lib/fat_free_crm/gem_ext/action_controller/base.rb +3 -15
- data/lib/fat_free_crm/gem_ext/active_model/serializers/xml/serializer/attribute.rb +3 -15
- data/lib/fat_free_crm/gem_ext/active_record/schema_dumper.rb +3 -15
- data/lib/fat_free_crm/gem_ext/active_support/buffered_logger.rb +3 -15
- data/lib/fat_free_crm/gem_ext/authlogic/session/cookies.rb +3 -15
- data/lib/fat_free_crm/gem_ext/rails/engine.rb +3 -15
- data/lib/fat_free_crm/gem_ext/rails/text_helper.rb +3 -15
- data/lib/fat_free_crm/gem_ext/rake/task.rb +3 -15
- data/lib/fat_free_crm/gem_ext/simple_form/action_view_extensions/form_helper.rb +3 -15
- data/lib/fat_free_crm/i18n.rb +3 -15
- data/lib/fat_free_crm/load_settings.rb +20 -0
- data/lib/fat_free_crm/mail_processor/base.rb +20 -18
- data/lib/fat_free_crm/mail_processor/comment_replies.rb +3 -15
- data/lib/fat_free_crm/mail_processor/dropbox.rb +4 -16
- data/lib/fat_free_crm/permissions.rb +3 -15
- data/lib/fat_free_crm/plugin.rb +3 -15
- data/lib/fat_free_crm/plugin_dependencies.rb +3 -15
- data/lib/fat_free_crm/renderers.rb +6 -25
- data/lib/fat_free_crm/sortable.rb +3 -15
- data/lib/fat_free_crm/tabs.rb +3 -15
- data/lib/fat_free_crm/version.rb +5 -17
- data/lib/fat_free_crm/view_factory.rb +3 -15
- data/lib/missing_translation_detector.rb +50 -0
- data/lib/tasks/db/migrate.rake +3 -15
- data/lib/tasks/db/schema.rake +3 -15
- data/lib/tasks/ffcrm/comment_replies.rake +3 -15
- data/lib/tasks/ffcrm/config.rake +28 -16
- data/lib/tasks/ffcrm/demo.rake +3 -15
- data/lib/tasks/ffcrm/dropbox.rake +3 -15
- data/lib/tasks/ffcrm/missing_translations.rake +33 -0
- data/lib/tasks/ffcrm/settings.rake +3 -15
- data/lib/tasks/ffcrm/setup.rake +15 -24
- data/lib/tasks/ffcrm/update_data.rake +3 -15
- data/spec/controllers/admin/groups_controller_spec.rb +5 -0
- data/spec/controllers/admin/users_controller_spec.rb +5 -0
- data/spec/controllers/applications_controller_spec.rb +5 -0
- data/spec/controllers/authentications_controller_spec.rb +5 -0
- data/spec/controllers/comments_controller_spec.rb +5 -0
- data/spec/controllers/emails_controller_spec.rb +5 -0
- data/spec/controllers/entities/accounts_controller_spec.rb +5 -0
- data/spec/controllers/entities/campaigns_controller_spec.rb +5 -0
- data/spec/controllers/entities/contacts_controller_spec.rb +5 -0
- data/spec/controllers/entities/leads_controller_spec.rb +5 -0
- data/spec/controllers/entities/opportunities_controller_spec.rb +5 -0
- data/spec/controllers/entities_controller_spec.rb +5 -0
- data/spec/controllers/home_controller_spec.rb +5 -0
- data/spec/controllers/lists_controller_spec.rb +5 -0
- data/spec/controllers/passwords_controller_spec.rb +5 -0
- data/spec/controllers/tasks_controller_spec.rb +7 -6
- data/spec/controllers/users_controller_spec.rb +5 -0
- data/spec/factories/account_factories.rb +5 -0
- data/spec/factories/campaign_factories.rb +6 -1
- data/spec/factories/contact_factories.rb +6 -1
- data/spec/factories/field_factories.rb +6 -1
- data/spec/factories/lead_factories.rb +6 -1
- data/spec/factories/list_factories.rb +6 -1
- data/spec/factories/opportunity_factories.rb +16 -5
- data/spec/factories/sequences.rb +7 -1
- data/spec/factories/setting_factories.rb +6 -1
- data/spec/factories/shared_factories.rb +5 -0
- data/spec/factories/subscription_factories.rb +5 -0
- data/spec/factories/tag_factories.rb +6 -1
- data/spec/factories/task_factories.rb +6 -1
- data/spec/factories/user_factories.rb +5 -0
- data/spec/features/acceptance_helper.rb +9 -0
- data/spec/{acceptance → features}/accounts_spec.rb +14 -9
- data/spec/{acceptance → features}/admin/groups_spec.rb +5 -0
- data/spec/{acceptance → features}/admin/users_spec.rb +9 -4
- data/spec/{acceptance → features}/campaigns_spec.rb +14 -16
- data/spec/{acceptance → features}/contacts_spec.rb +13 -16
- data/spec/{acceptance → features}/dashboard_spec.rb +5 -0
- data/spec/{acceptance → features}/leads_spec.rb +11 -12
- data/spec/{acceptance → features}/opportunities_overview_spec.rb +5 -0
- data/spec/{acceptance → features}/opportunities_spec.rb +14 -16
- data/spec/features/support/browser.rb +18 -0
- data/spec/{acceptance → features}/support/headless.rb +5 -3
- data/spec/{acceptance → features}/support/helpers.rb +6 -1
- data/spec/features/support/maintain_sessions.rb +10 -0
- data/spec/{acceptance → features}/support/paths.rb +9 -4
- data/spec/{acceptance → features}/support/selector_helpers.rb +6 -1
- data/spec/{acceptance → features}/tasks_spec.rb +7 -5
- data/spec/helpers/accounts_helper_spec.rb +5 -0
- data/spec/helpers/admin/field_groups_helper_spec.rb +5 -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 +5 -0
- data/spec/helpers/authentications_helper_spec.rb +5 -0
- data/spec/helpers/campaigns_helper_spec.rb +5 -0
- data/spec/helpers/comments_helper_spec.rb +5 -0
- data/spec/helpers/contacts_helper_spec.rb +5 -0
- data/spec/helpers/emails_helper_spec.rb +5 -0
- data/spec/helpers/fields_helper_spec.rb +5 -0
- data/spec/helpers/groups_helper_spec.rb +6 -1
- data/spec/helpers/home_helper_spec.rb +5 -0
- data/spec/helpers/leads_helper_spec.rb +5 -0
- data/spec/helpers/lists_helper_spec.rb +6 -1
- data/spec/helpers/opportunities_helper_spec.rb +5 -0
- data/spec/helpers/passwords_helper_spec.rb +5 -0
- data/spec/helpers/tasks_helper_spec.rb +5 -0
- data/spec/helpers/users_helper_spec.rb +5 -0
- data/spec/lib/comment_extensions_spec.rb +5 -0
- data/spec/lib/core_ext/string_spec.rb +5 -0
- data/spec/lib/errors_spec.rb +5 -0
- data/spec/lib/fields_spec.rb +5 -0
- data/spec/lib/mail_processor/base_spec.rb +5 -0
- data/spec/lib/mail_processor/comment_replies_spec.rb +5 -0
- data/spec/lib/mail_processor/dropbox_spec.rb +5 -0
- data/spec/lib/mail_processor/sample_emails/dropbox.rb +5 -0
- data/spec/lib/permissions_spec.rb +5 -0
- data/spec/lib/view_factory_spec.rb +5 -0
- data/spec/mailers/subscription_mailer_spec.rb +19 -1
- data/spec/mailers/user_mailer_spec.rb +6 -1
- data/spec/models/entities/account_contact_spec.rb +5 -0
- data/spec/models/entities/account_opportunity_spec.rb +5 -0
- data/spec/models/entities/account_spec.rb +6 -1
- data/spec/models/entities/campaign_spec.rb +5 -0
- data/spec/models/entities/contact_opportunity_spec.rb +5 -0
- data/spec/models/entities/contact_spec.rb +5 -0
- data/spec/models/entities/lead_spec.rb +5 -0
- data/spec/models/entities/opportunity_spec.rb +15 -2
- data/spec/models/fields/custom_field_date_pair_spec.rb +3 -15
- data/spec/models/fields/custom_field_pair_spec.rb +3 -15
- data/spec/models/fields/custom_field_spec.rb +5 -0
- data/spec/models/fields/field_group_spec.rb +5 -0
- data/spec/models/fields/field_spec.rb +5 -0
- data/spec/models/list_spec.rb +5 -0
- data/spec/models/observers/entity_observer_spec.rb +5 -0
- data/spec/models/polymorphic/address_spec.rb +5 -0
- data/spec/models/polymorphic/avatar_spec.rb +5 -0
- data/spec/models/polymorphic/comment_spec.rb +5 -0
- data/spec/models/polymorphic/email_spec.rb +5 -0
- data/spec/models/polymorphic/task_spec.rb +5 -0
- data/spec/models/polymorphic/version_spec.rb +26 -22
- data/spec/models/setting_spec.rb +5 -0
- data/spec/models/users/authentication_spec.rb +5 -0
- data/spec/models/users/group_spec.rb +6 -1
- data/spec/models/users/permission_spec.rb +5 -0
- data/spec/models/users/preference_spec.rb +5 -0
- data/spec/models/users/user_spec.rb +6 -1
- data/spec/routing/accounts_routing_spec.rb +5 -0
- data/spec/routing/admin/users_routing_spec.rb +5 -0
- data/spec/routing/campaigns_routing_spec.rb +5 -0
- data/spec/routing/comments_routing_spec.rb +5 -0
- data/spec/routing/contacts_routing_spec.rb +5 -0
- data/spec/routing/emails_routing_spec.rb +5 -0
- data/spec/routing/leads_routing_spec.rb +5 -0
- data/spec/routing/opportunities_routing_spec.rb +5 -0
- data/spec/routing/tasks_routing_spec.rb +5 -0
- data/spec/routing/users_routing_spec.rb +5 -0
- data/spec/shared/controllers.rb +8 -3
- data/spec/shared/models.rb +110 -105
- data/spec/spec_helper.rb +40 -22
- data/spec/support/assert_select.rb +5 -0
- data/spec/support/auth_macros.rb +5 -0
- data/spec/support/macros.rb +5 -0
- data/spec/support/mail_processor_mocks.rb +5 -0
- data/spec/support/rjs_support.rb +6 -1
- data/spec/support/uploaded_file.rb +5 -0
- data/spec/views/accounts/_edit.haml_spec.rb +5 -0
- data/spec/views/accounts/_new.haml_spec.rb +5 -0
- data/spec/views/accounts/create.rjs_spec.rb +5 -0
- data/spec/views/accounts/destroy.rjs_spec.rb +5 -0
- data/spec/views/accounts/edit.rjs_spec.rb +5 -0
- data/spec/views/accounts/index.haml_spec.rb +5 -0
- data/spec/views/accounts/index.rjs_spec.rb +5 -0
- data/spec/views/accounts/new.rjs_spec.rb +5 -0
- data/spec/views/accounts/show.haml_spec.rb +5 -0
- data/spec/views/accounts/update.rjs_spec.rb +5 -0
- data/spec/views/admin/users/_create.haml_spec.rb +5 -0
- data/spec/views/admin/users/create.rjs_spec.rb +5 -0
- data/spec/views/admin/users/destroy.rjs_spec.rb +5 -0
- data/spec/views/admin/users/edit.rjs_spec.rb +5 -0
- data/spec/views/admin/users/index.haml_spec.rb +5 -0
- data/spec/views/admin/users/index.rjs_spec.rb +5 -0
- data/spec/views/admin/users/new.rjs_spec.rb +5 -0
- data/spec/views/admin/users/reactivate.rjs_spec.rb +5 -0
- data/spec/views/admin/users/show.haml_spec.rb +5 -0
- data/spec/views/admin/users/suspend.rjs_spec.rb +5 -0
- data/spec/views/admin/users/update.rjs_spec.rb +5 -0
- data/spec/views/application/auto_complete.haml_spec.rb +5 -0
- data/spec/views/authentications/new.haml_spec.rb +5 -0
- data/spec/views/campaigns/_edit.haml_spec.rb +8 -2
- data/spec/views/campaigns/_new.haml_spec.rb +5 -0
- data/spec/views/campaigns/create.rjs_spec.rb +5 -0
- data/spec/views/campaigns/destroy.rjs_spec.rb +5 -0
- data/spec/views/campaigns/edit.rjs_spec.rb +5 -0
- data/spec/views/campaigns/index.haml_spec.rb +5 -0
- data/spec/views/campaigns/index.rjs_spec.rb +5 -0
- data/spec/views/campaigns/new.rjs_spec.rb +5 -0
- data/spec/views/campaigns/show.haml_spec.rb +5 -0
- data/spec/views/campaigns/update.rjs_spec.rb +5 -0
- data/spec/views/comments/new.rjs_spec.rb +5 -0
- data/spec/views/contacts/_edit.haml_spec.rb +5 -0
- data/spec/views/contacts/_new.haml_spec.rb +5 -0
- data/spec/views/contacts/create.rjs_spec.rb +5 -0
- data/spec/views/contacts/destroy.rjs_spec.rb +5 -0
- data/spec/views/contacts/edit.rjs_spec.rb +5 -0
- data/spec/views/contacts/index.haml_spec.rb +5 -0
- data/spec/views/contacts/index.rjs_spec.rb +5 -0
- data/spec/views/contacts/new.rjs_spec.rb +5 -0
- data/spec/views/contacts/show.haml_spec.rb +5 -0
- data/spec/views/contacts/update.rjs_spec.rb +5 -0
- data/spec/views/home/index.haml_spec.rb +5 -0
- data/spec/views/home/index.rjs_spec.rb +5 -0
- data/spec/views/home/options.rjs_spec.rb +5 -0
- data/spec/views/leads/_convert.haml_spec.rb +5 -0
- data/spec/views/leads/_edit.haml_spec.rb +5 -0
- data/spec/views/leads/_new.haml_spec.rb +5 -0
- data/spec/views/leads/_sidebar_show.haml_spec.rb +5 -0
- data/spec/views/leads/convert.rjs_spec.rb +5 -0
- data/spec/views/leads/create.rjs_spec.rb +5 -0
- data/spec/views/leads/destroy.rjs_spec.rb +5 -0
- data/spec/views/leads/edit.rjs_spec.rb +5 -0
- data/spec/views/leads/index.haml_spec.rb +5 -0
- data/spec/views/leads/index.rjs_spec.rb +5 -0
- data/spec/views/leads/new.rjs_spec.rb +5 -0
- data/spec/views/leads/promote.rjs_spec.rb +5 -0
- data/spec/views/leads/reject.rjs_spec.rb +5 -0
- data/spec/views/leads/show.haml_spec.rb +5 -0
- data/spec/views/leads/update.rjs_spec.rb +5 -0
- data/spec/views/opportunities/_edit.haml_spec.rb +5 -0
- data/spec/views/opportunities/_new.haml_spec.rb +5 -0
- data/spec/views/opportunities/create.rjs_spec.rb +5 -0
- data/spec/views/opportunities/destroy.rjs_spec.rb +5 -0
- data/spec/views/opportunities/edit.rjs_spec.rb +5 -0
- data/spec/views/opportunities/index.haml_spec.rb +5 -0
- data/spec/views/opportunities/index.rjs_spec.rb +5 -0
- data/spec/views/opportunities/new.rjs_spec.rb +5 -0
- data/spec/views/opportunities/show.haml_spec.rb +5 -0
- data/spec/views/opportunities/update.rjs_spec.rb +5 -0
- data/spec/views/tasks/_edit.haml_spec.rb +5 -0
- data/spec/views/tasks/complete.rjs_spec.rb +5 -0
- data/spec/views/tasks/create.rjs_spec.rb +5 -0
- data/spec/views/tasks/destroy.rjs_spec.rb +5 -0
- data/spec/views/tasks/edit.rjs_spec.rb +5 -0
- data/spec/views/tasks/index.haml_spec.rb +5 -0
- data/spec/views/tasks/new.rjs_spec.rb +5 -0
- data/spec/views/tasks/update.rjs_spec.rb +5 -0
- data/spec/views/users/avatar.rjs_spec.rb +5 -0
- data/spec/views/users/change_password.rjs_spec.rb +5 -0
- data/spec/views/users/edit.rjs_spec.rb +5 -0
- data/spec/views/users/password.rjs_spec.rb +5 -0
- data/spec/views/users/update.rjs_spec.rb +5 -0
- data/spec/views/users/upload_avatar.rjs_spec.rb +5 -0
- metadata +45 -101
- data/LICENSE +0 -620
- data/app/inputs/datetimepair_input.rb +0 -37
- data/config/initializers/custom_fields.rb +0 -21
- data/lib/fat_free_crm/core_ext/array.rb +0 -75
- data/lib/fat_free_crm/syck_yaml.rb +0 -21
- data/spec/acceptance/acceptance_helper.rb +0 -8
- data/spec/acceptance/support/browser.rb +0 -13
- data/spec/acceptance/support/maintain_sessions.rb +0 -5
@@ -1,3 +1,8 @@
|
|
1
|
+
# Copyright (c) 2008-2013 Michael Dvorkin and contributors.
|
2
|
+
#
|
3
|
+
# Fat Free CRM is freely distributable under the terms of MIT license.
|
4
|
+
# See MIT-LICENSE file or http://www.opensource.org/licenses/mit-license.php
|
5
|
+
#------------------------------------------------------------------------------
|
1
6
|
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
7
|
|
3
8
|
describe TasksController do
|
@@ -74,9 +79,7 @@ describe TasksController do
|
|
74
79
|
|
75
80
|
it "should render all tasks as JSON for #{view} view" do
|
76
81
|
@tasks = produce_tasks(current_user, view)
|
77
|
-
|
78
|
-
request.env["HTTP_ACCEPT"] = "application/json"
|
79
|
-
get :index, :view => view
|
82
|
+
get :index, :view => view, :format => :json
|
80
83
|
|
81
84
|
(assigns[:tasks].keys.map(&:to_sym) - @tasks.keys).should == []
|
82
85
|
(assigns[:tasks].values.flatten - @tasks.values.flatten).should == []
|
@@ -93,9 +96,7 @@ describe TasksController do
|
|
93
96
|
|
94
97
|
it "should render all tasks as xml for #{view} view" do
|
95
98
|
@tasks = produce_tasks(current_user, view)
|
96
|
-
|
97
|
-
request.env["HTTP_ACCEPT"] = "application/xml"
|
98
|
-
get :index, :view => view
|
99
|
+
get :index, :view => view, :format => :xml
|
99
100
|
|
100
101
|
(assigns[:tasks].keys.map(&:to_sym) - @tasks.keys).should == []
|
101
102
|
(assigns[:tasks].values.flatten - @tasks.values.flatten).should == []
|
@@ -1,3 +1,8 @@
|
|
1
|
+
# Copyright (c) 2008-2013 Michael Dvorkin and contributors.
|
2
|
+
#
|
3
|
+
# Fat Free CRM is freely distributable under the terms of MIT license.
|
4
|
+
# See MIT-LICENSE file or http://www.opensource.org/licenses/mit-license.php
|
5
|
+
#------------------------------------------------------------------------------
|
1
6
|
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
7
|
|
3
8
|
describe UsersController do
|
@@ -1,3 +1,8 @@
|
|
1
|
+
# Copyright (c) 2008-2013 Michael Dvorkin and contributors.
|
2
|
+
#
|
3
|
+
# Fat Free CRM is freely distributable under the terms of MIT license.
|
4
|
+
# See MIT-LICENSE file or http://www.opensource.org/licenses/mit-license.php
|
5
|
+
#------------------------------------------------------------------------------
|
1
6
|
FactoryGirl.define do
|
2
7
|
factory :account do
|
3
8
|
user
|
@@ -1,3 +1,8 @@
|
|
1
|
+
# Copyright (c) 2008-2013 Michael Dvorkin and contributors.
|
2
|
+
#
|
3
|
+
# Fat Free CRM is freely distributable under the terms of MIT license.
|
4
|
+
# See MIT-LICENSE file or http://www.opensource.org/licenses/mit-license.php
|
5
|
+
#------------------------------------------------------------------------------
|
1
6
|
FactoryGirl.define do
|
2
7
|
factory :campaign do
|
3
8
|
user
|
@@ -20,4 +25,4 @@ FactoryGirl.define do
|
|
20
25
|
updated_at { FactoryGirl.generate(:time) }
|
21
26
|
created_at { FactoryGirl.generate(:time) }
|
22
27
|
end
|
23
|
-
end
|
28
|
+
end
|
@@ -1,3 +1,8 @@
|
|
1
|
+
# Copyright (c) 2008-2013 Michael Dvorkin and contributors.
|
2
|
+
#
|
3
|
+
# Fat Free CRM is freely distributable under the terms of MIT license.
|
4
|
+
# See MIT-LICENSE file or http://www.opensource.org/licenses/mit-license.php
|
5
|
+
#------------------------------------------------------------------------------
|
1
6
|
FactoryGirl.define do
|
2
7
|
factory :contact do
|
3
8
|
user
|
@@ -36,4 +41,4 @@ FactoryGirl.define do
|
|
36
41
|
updated_at { FactoryGirl.generate(:time) }
|
37
42
|
created_at { FactoryGirl.generate(:time) }
|
38
43
|
end
|
39
|
-
end
|
44
|
+
end
|
@@ -1,3 +1,8 @@
|
|
1
|
+
# Copyright (c) 2008-2013 Michael Dvorkin and contributors.
|
2
|
+
#
|
3
|
+
# Fat Free CRM is freely distributable under the terms of MIT license.
|
4
|
+
# See MIT-LICENSE file or http://www.opensource.org/licenses/mit-license.php
|
5
|
+
#------------------------------------------------------------------------------
|
1
6
|
FactoryGirl.define do
|
2
7
|
sequence :klass_name do |x|
|
3
8
|
["Contact", "Account", "Opportunity", "Lead", "Campaign"].sample
|
@@ -31,4 +36,4 @@ FactoryGirl.define do
|
|
31
36
|
factory :custom_field do
|
32
37
|
type "CustomField"
|
33
38
|
end
|
34
|
-
end
|
39
|
+
end
|
@@ -1,3 +1,8 @@
|
|
1
|
+
# Copyright (c) 2008-2013 Michael Dvorkin and contributors.
|
2
|
+
#
|
3
|
+
# Fat Free CRM is freely distributable under the terms of MIT license.
|
4
|
+
# See MIT-LICENSE file or http://www.opensource.org/licenses/mit-license.php
|
5
|
+
#------------------------------------------------------------------------------
|
1
6
|
FactoryGirl.define do
|
2
7
|
factory :lead do
|
3
8
|
user
|
@@ -26,4 +31,4 @@ FactoryGirl.define do
|
|
26
31
|
updated_at { FactoryGirl.generate(:time) }
|
27
32
|
created_at { FactoryGirl.generate(:time) }
|
28
33
|
end
|
29
|
-
end
|
34
|
+
end
|
@@ -1,6 +1,11 @@
|
|
1
|
+
# Copyright (c) 2008-2013 Michael Dvorkin and contributors.
|
2
|
+
#
|
3
|
+
# Fat Free CRM is freely distributable under the terms of MIT license.
|
4
|
+
# See MIT-LICENSE file or http://www.opensource.org/licenses/mit-license.php
|
5
|
+
#------------------------------------------------------------------------------
|
1
6
|
FactoryGirl.define do
|
2
7
|
factory :list do
|
3
8
|
name "Foo List"
|
4
9
|
url "/controller/action"
|
5
10
|
end
|
6
|
-
end
|
11
|
+
end
|
@@ -1,4 +1,18 @@
|
|
1
|
+
# Copyright (c) 2008-2013 Michael Dvorkin and contributors.
|
2
|
+
#
|
3
|
+
# Fat Free CRM is freely distributable under the terms of MIT license.
|
4
|
+
# See MIT-LICENSE file or http://www.opensource.org/licenses/mit-license.php
|
5
|
+
#------------------------------------------------------------------------------
|
1
6
|
FactoryGirl.define do
|
7
|
+
|
8
|
+
sequence :opportunity_status do |s|
|
9
|
+
%w(prospecting analysis presentation proposal negotiation final_review won lost).sample
|
10
|
+
end
|
11
|
+
|
12
|
+
sequence :opportunity_open_status do |s|
|
13
|
+
%w(prospecting analysis presentation proposal negotiation final_review).sample
|
14
|
+
end
|
15
|
+
|
2
16
|
factory :opportunity do
|
3
17
|
user
|
4
18
|
campaign
|
@@ -7,7 +21,7 @@ FactoryGirl.define do
|
|
7
21
|
name { Faker::Lorem.sentence[0,64] }
|
8
22
|
access "Public"
|
9
23
|
source { %w(campaign cold_call conference online referral self web word_of_mouth other).sample }
|
10
|
-
stage {
|
24
|
+
stage { FactoryGirl.generate(:opportunity_status) }
|
11
25
|
probability { rand(50) }
|
12
26
|
amount { rand(1000) }
|
13
27
|
discount { rand(100) }
|
@@ -19,10 +33,7 @@ FactoryGirl.define do
|
|
19
33
|
end
|
20
34
|
|
21
35
|
factory :opportunity_in_pipeline, :parent => :opportunity do
|
22
|
-
stage
|
36
|
+
stage { FactoryGirl.generate(:opportunity_open_status) }
|
23
37
|
end
|
24
38
|
|
25
|
-
factory :open_opportunity, :parent => :opportunity do
|
26
|
-
stage { OPPORTUNITY_STATUSES.sample }
|
27
|
-
end
|
28
39
|
end
|
data/spec/factories/sequences.rb
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
# Copyright (c) 2008-2013 Michael Dvorkin and contributors.
|
2
|
+
#
|
3
|
+
# Fat Free CRM is freely distributable under the terms of MIT license.
|
4
|
+
# See MIT-LICENSE file or http://www.opensource.org/licenses/mit-license.php
|
5
|
+
#------------------------------------------------------------------------------
|
1
6
|
FactoryGirl.define do
|
2
7
|
sequence :address do |n|
|
3
8
|
Faker::Address.street_address + " " + Faker::Address.secondary_address + "\n"
|
@@ -23,4 +28,5 @@ FactoryGirl.define do
|
|
23
28
|
sequence :date do |n|
|
24
29
|
Date.today - n.days
|
25
30
|
end
|
26
|
-
|
31
|
+
|
32
|
+
end
|
@@ -1,3 +1,8 @@
|
|
1
|
+
# Copyright (c) 2008-2013 Michael Dvorkin and contributors.
|
2
|
+
#
|
3
|
+
# Fat Free CRM is freely distributable under the terms of MIT license.
|
4
|
+
# See MIT-LICENSE file or http://www.opensource.org/licenses/mit-license.php
|
5
|
+
#------------------------------------------------------------------------------
|
1
6
|
FactoryGirl.define do
|
2
7
|
factory :setting do
|
3
8
|
name "foo"
|
@@ -5,4 +10,4 @@ FactoryGirl.define do
|
|
5
10
|
updated_at { FactoryGirl.generate(:time) }
|
6
11
|
created_at { FactoryGirl.generate(:time) }
|
7
12
|
end
|
8
|
-
end
|
13
|
+
end
|
@@ -1,3 +1,8 @@
|
|
1
|
+
# Copyright (c) 2008-2013 Michael Dvorkin and contributors.
|
2
|
+
#
|
3
|
+
# Fat Free CRM is freely distributable under the terms of MIT license.
|
4
|
+
# See MIT-LICENSE file or http://www.opensource.org/licenses/mit-license.php
|
5
|
+
#------------------------------------------------------------------------------
|
1
6
|
FactoryGirl.define do
|
2
7
|
factory :version do
|
3
8
|
whodunnit ""
|
@@ -1,3 +1,8 @@
|
|
1
|
+
# Copyright (c) 2008-2013 Michael Dvorkin and contributors.
|
2
|
+
#
|
3
|
+
# Fat Free CRM is freely distributable under the terms of MIT license.
|
4
|
+
# See MIT-LICENSE file or http://www.opensource.org/licenses/mit-license.php
|
5
|
+
#------------------------------------------------------------------------------
|
1
6
|
# Read about factories at https://github.com/thoughtbot/factory_girl
|
2
7
|
|
3
8
|
FactoryGirl.define do
|
@@ -1,5 +1,10 @@
|
|
1
|
+
# Copyright (c) 2008-2013 Michael Dvorkin and contributors.
|
2
|
+
#
|
3
|
+
# Fat Free CRM is freely distributable under the terms of MIT license.
|
4
|
+
# See MIT-LICENSE file or http://www.opensource.org/licenses/mit-license.php
|
5
|
+
#------------------------------------------------------------------------------
|
1
6
|
FactoryGirl.define do
|
2
7
|
factory :tag do
|
3
8
|
name { Faker::Internet.user_name }
|
4
9
|
end
|
5
|
-
end
|
10
|
+
end
|
@@ -1,3 +1,8 @@
|
|
1
|
+
# Copyright (c) 2008-2013 Michael Dvorkin and contributors.
|
2
|
+
#
|
3
|
+
# Fat Free CRM is freely distributable under the terms of MIT license.
|
4
|
+
# See MIT-LICENSE file or http://www.opensource.org/licenses/mit-license.php
|
5
|
+
#------------------------------------------------------------------------------
|
1
6
|
FactoryGirl.define do
|
2
7
|
factory :task do
|
3
8
|
user
|
@@ -19,4 +24,4 @@ FactoryGirl.define do
|
|
19
24
|
factory :completed_task, :parent => :task do
|
20
25
|
completed_at { Date.yesterday }
|
21
26
|
end
|
22
|
-
end
|
27
|
+
end
|
@@ -1,3 +1,8 @@
|
|
1
|
+
# Copyright (c) 2008-2013 Michael Dvorkin and contributors.
|
2
|
+
#
|
3
|
+
# Fat Free CRM is freely distributable under the terms of MIT license.
|
4
|
+
# See MIT-LICENSE file or http://www.opensource.org/licenses/mit-license.php
|
5
|
+
#------------------------------------------------------------------------------
|
1
6
|
FactoryGirl.define do
|
2
7
|
factory :user do
|
3
8
|
username { FactoryGirl.generate(:username) }
|
@@ -0,0 +1,9 @@
|
|
1
|
+
# Copyright (c) 2008-2013 Michael Dvorkin and contributors.
|
2
|
+
#
|
3
|
+
# Fat Free CRM is freely distributable under the terms of MIT license.
|
4
|
+
# See MIT-LICENSE file or http://www.opensource.org/licenses/mit-license.php
|
5
|
+
#------------------------------------------------------------------------------
|
6
|
+
require 'spec_helper'
|
7
|
+
|
8
|
+
# Put your acceptance spec helpers inside /spec/features/support
|
9
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
@@ -1,4 +1,9 @@
|
|
1
|
-
|
1
|
+
# Copyright (c) 2008-2013 Michael Dvorkin and contributors.
|
2
|
+
#
|
3
|
+
# Fat Free CRM is freely distributable under the terms of MIT license.
|
4
|
+
# See MIT-LICENSE file or http://www.opensource.org/licenses/mit-license.php
|
5
|
+
#------------------------------------------------------------------------------
|
6
|
+
require 'features/acceptance_helper'
|
2
7
|
|
3
8
|
feature 'Accounts', %q{
|
4
9
|
In order to increase customer satisfaction
|
@@ -31,8 +36,8 @@ feature 'Accounts', %q{
|
|
31
36
|
fill_in 'comment_body', :with => 'This account is very important'
|
32
37
|
click_button 'Create Account'
|
33
38
|
|
34
|
-
|
35
|
-
click_link
|
39
|
+
find('div#accounts').should have_content('My new account')
|
40
|
+
find('div#accounts').click_link('My new account') # avoid recent items link
|
36
41
|
page.should have_content('+1 2345 6789')
|
37
42
|
page.should have_content('http://www.example.com')
|
38
43
|
page.should have_content('This account is very important')
|
@@ -58,10 +63,10 @@ feature 'Accounts', %q{
|
|
58
63
|
page.should have_field("comment_body", :with => 'This account is very important')
|
59
64
|
end
|
60
65
|
|
61
|
-
scenario 'should view and edit an account', :js => true do
|
66
|
+
scenario 'should view and edit an account', :js => true, :versioning => true do
|
62
67
|
FactoryGirl.create(:account, :name => "A new account")
|
63
68
|
visit accounts_page
|
64
|
-
click_link
|
69
|
+
find('div#accounts').click_link('A new account')
|
65
70
|
page.should have_content('A new account')
|
66
71
|
click_link 'Edit'
|
67
72
|
fill_in 'account_name', :with => 'A new account *editted*'
|
@@ -75,7 +80,7 @@ feature 'Accounts', %q{
|
|
75
80
|
scenario 'should delete an account', :js => true do
|
76
81
|
FactoryGirl.create(:account, :name => "My new account")
|
77
82
|
visit accounts_page
|
78
|
-
click_link
|
83
|
+
find('div#accounts').click_link('My new account')
|
79
84
|
click_link 'Delete?'
|
80
85
|
page.should have_content('Are you sure you want to delete this account?')
|
81
86
|
click_link 'Yes'
|
@@ -89,12 +94,12 @@ feature 'Accounts', %q{
|
|
89
94
|
find('#accounts').should have_content("Account 1")
|
90
95
|
fill_in 'query', :with => "Account 0"
|
91
96
|
find('#accounts').should have_content("Account 0")
|
92
|
-
find('#accounts').
|
97
|
+
find('#accounts').should_not have_content("Account 1")
|
93
98
|
fill_in 'query', :with => "Account"
|
94
99
|
find('#accounts').should have_content("Account 0")
|
95
100
|
find('#accounts').should have_content("Account 1")
|
96
|
-
find('#accounts').has_selector?('li', :count => 2)
|
97
101
|
fill_in 'query', :with => "Contact"
|
98
|
-
find('#accounts').
|
102
|
+
find('#accounts').should_not have_content("Account 0")
|
103
|
+
find('#accounts').should_not have_content("Account 1")
|
99
104
|
end
|
100
105
|
end
|
@@ -1,3 +1,8 @@
|
|
1
|
+
# Copyright (c) 2008-2013 Michael Dvorkin and contributors.
|
2
|
+
#
|
3
|
+
# Fat Free CRM is freely distributable under the terms of MIT license.
|
4
|
+
# See MIT-LICENSE file or http://www.opensource.org/licenses/mit-license.php
|
5
|
+
#------------------------------------------------------------------------------
|
1
6
|
require File.expand_path("../../acceptance_helper.rb", __FILE__)
|
2
7
|
|
3
8
|
feature 'Groups tab', %q{
|
@@ -1,3 +1,8 @@
|
|
1
|
+
# Copyright (c) 2008-2013 Michael Dvorkin and contributors.
|
2
|
+
#
|
3
|
+
# Fat Free CRM is freely distributable under the terms of MIT license.
|
4
|
+
# See MIT-LICENSE file or http://www.opensource.org/licenses/mit-license.php
|
5
|
+
#------------------------------------------------------------------------------
|
1
6
|
require File.expand_path("../../acceptance_helper.rb", __FILE__)
|
2
7
|
|
3
8
|
feature 'Users tab', %q{
|
@@ -24,10 +29,10 @@ feature 'Users tab', %q{
|
|
24
29
|
chosen_select('Superheroes', :from => 'user_group_ids')
|
25
30
|
|
26
31
|
click_button 'Create User'
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
32
|
+
find('#users').should have_content('Captain Thunder')
|
33
|
+
find('#users').should have_content('Weather Inc.')
|
34
|
+
find('#users').should have_content('Superheroes')
|
35
|
+
find('#users').should have_content('lightning@example.com')
|
31
36
|
|
32
37
|
end
|
33
38
|
|
@@ -1,3 +1,8 @@
|
|
1
|
+
# Copyright (c) 2008-2013 Michael Dvorkin and contributors.
|
2
|
+
#
|
3
|
+
# Fat Free CRM is freely distributable under the terms of MIT license.
|
4
|
+
# See MIT-LICENSE file or http://www.opensource.org/licenses/mit-license.php
|
5
|
+
#------------------------------------------------------------------------------
|
1
6
|
require File.expand_path("../acceptance_helper.rb", __FILE__)
|
2
7
|
|
3
8
|
feature 'Campaigns', %q{
|
@@ -32,7 +37,7 @@ feature 'Campaigns', %q{
|
|
32
37
|
page.should have_content('Cool Campaign')
|
33
38
|
page.should have_content('On Hold')
|
34
39
|
|
35
|
-
click_link 'Cool Campaign'
|
40
|
+
find('div#campaigns').click_link 'Cool Campaign'
|
36
41
|
page.should have_content('This campaign is very important')
|
37
42
|
|
38
43
|
click_link "Dashboard"
|
@@ -48,7 +53,7 @@ feature 'Campaigns', %q{
|
|
48
53
|
fill_in 'comment_body', :with => 'This campaign is very important'
|
49
54
|
click_button 'Create Campaign'
|
50
55
|
|
51
|
-
|
56
|
+
find('#comment_body').should have_content('This campaign is very important')
|
52
57
|
end
|
53
58
|
|
54
59
|
scenario 'should view and edit a campaign', :js => true do
|
@@ -60,9 +65,7 @@ feature 'Campaigns', %q{
|
|
60
65
|
select 'Started', :from => 'campaign_status'
|
61
66
|
click_button 'Save Campaign'
|
62
67
|
page.should have_content('My Even Cooler Campaign')
|
63
|
-
|
64
|
-
page.should have_content('My Even Cooler Campaign')
|
65
|
-
|
68
|
+
page.should have_content('My Even Cooler Campaign')
|
66
69
|
click_link 'Dashboard'
|
67
70
|
page.should have_content("Bill Murray updated campaign My Even Cooler Campaign")
|
68
71
|
end
|
@@ -75,27 +78,22 @@ feature 'Campaigns', %q{
|
|
75
78
|
page.should have_content('Are you sure you want to delete this campaign?')
|
76
79
|
click_link 'Yes'
|
77
80
|
page.should have_content('Old Campaign has been deleted.')
|
78
|
-
|
79
|
-
page.should_not have_content('Old Campaign')
|
81
|
+
find('div#campaigns').should_not have_content('Old Campaign')
|
80
82
|
end
|
81
83
|
|
82
84
|
scenario 'should search for a campaign', :js => true do
|
83
|
-
|
85
|
+
2.times { |i| FactoryGirl.create(:campaign, :name => "Campaign #{i}") }
|
84
86
|
visit campaigns_page
|
85
87
|
find('#campaigns').should have_content("Campaign 0")
|
86
88
|
find('#campaigns').should have_content("Campaign 1")
|
87
|
-
find('#campaigns').should have_content("Campaign 2")
|
88
|
-
find('#campaigns').should have_content("Campaign 3")
|
89
89
|
fill_in 'query', :with => "Campaign 0"
|
90
90
|
find('#campaigns').should have_content("Campaign 0")
|
91
|
-
find('#campaigns').
|
91
|
+
find('#campaigns').should_not have_content("Campaign 1")
|
92
92
|
fill_in 'query', :with => "Campaign"
|
93
93
|
find('#campaigns').should have_content("Campaign 0")
|
94
94
|
find('#campaigns').should have_content("Campaign 1")
|
95
|
-
|
96
|
-
find('#campaigns').
|
97
|
-
find('#campaigns').
|
98
|
-
fill_in 'query', :with => "False campaign"
|
99
|
-
find('#campaigns').has_selector?('li', :count => 0)
|
95
|
+
fill_in 'query', :with => "False"
|
96
|
+
find('#campaigns').should_not have_content("Campaign 0")
|
97
|
+
find('#campaigns').should_not have_content("Campaign 1")
|
100
98
|
end
|
101
99
|
end
|
@@ -1,3 +1,8 @@
|
|
1
|
+
# Copyright (c) 2008-2013 Michael Dvorkin and contributors.
|
2
|
+
#
|
3
|
+
# Fat Free CRM is freely distributable under the terms of MIT license.
|
4
|
+
# See MIT-LICENSE file or http://www.opensource.org/licenses/mit-license.php
|
5
|
+
#------------------------------------------------------------------------------
|
1
6
|
require File.expand_path("../acceptance_helper.rb", __FILE__)
|
2
7
|
|
3
8
|
feature 'Contacts', %q{
|
@@ -31,11 +36,9 @@ feature 'Contacts', %q{
|
|
31
36
|
click_link 'Comment'
|
32
37
|
fill_in 'comment_body', :with => 'This is a very important person.'
|
33
38
|
click_button 'Create Contact'
|
34
|
-
|
35
|
-
|
36
|
-
click_link 'Testy McTest'
|
39
|
+
find('div#contacts').should have_content('Testy McTest')
|
40
|
+
find('div#contacts').click_link 'Testy McTest'
|
37
41
|
page.should have_content('This is a very important person.')
|
38
|
-
|
39
42
|
click_link "Dashboard"
|
40
43
|
page.should have_content('Bill Murray created contact Testy McTest')
|
41
44
|
page.should have_content('Bill Murray created comment on Testy McTest')
|
@@ -62,9 +65,6 @@ feature 'Contacts', %q{
|
|
62
65
|
fill_in 'contact_email', :with => "test.subject@example.com"
|
63
66
|
click_button 'Save Contact'
|
64
67
|
page.should have_content('Test Subject')
|
65
|
-
click_link 'Contacts'
|
66
|
-
page.should have_content('Test Subject')
|
67
|
-
|
68
68
|
click_link 'Dashboard'
|
69
69
|
page.should have_content("Bill Murray updated contact Test Subject")
|
70
70
|
end
|
@@ -77,25 +77,22 @@ feature 'Contacts', %q{
|
|
77
77
|
page.should have_content('Are you sure you want to delete this contact?')
|
78
78
|
click_link 'Yes'
|
79
79
|
page.should have_content('Test Subject has been deleted.')
|
80
|
-
click_link('Contacts')
|
81
80
|
page.should_not have_content('Test Subject')
|
82
81
|
end
|
83
82
|
|
84
83
|
scenario 'should search for a contact', :js => true do
|
85
|
-
|
84
|
+
2.times { |i| FactoryGirl.create(:contact, :first_name => "Test", :last_name => "Subject \##{i}") }
|
86
85
|
visit contacts_page
|
87
86
|
find('#contacts').should have_content('Test Subject #0')
|
88
87
|
find('#contacts').should have_content('Test Subject #1')
|
89
|
-
|
90
|
-
|
91
|
-
find('#contacts').
|
92
|
-
find('#contacts').has_selector?('li', :count => 1)
|
88
|
+
fill_in 'query', :with => 'Test Subject #1'
|
89
|
+
find('#contacts').should have_content('Test Subject #1')
|
90
|
+
find('#contacts').should_not have_content('Test Subject #0')
|
93
91
|
fill_in 'query', :with => 'Test Subject'
|
94
92
|
find('#contacts').should have_content('Test Subject #0')
|
95
93
|
find('#contacts').should have_content('Test Subject #1')
|
96
|
-
find('#contacts').should have_content('Test Subject #2')
|
97
|
-
find('#contacts').has_selector?('li', :count => 3)
|
98
94
|
fill_in 'query', :with => "Fake contact"
|
99
|
-
find('#contacts').
|
95
|
+
find('#contacts').should_not have_content('Test Subject #0')
|
96
|
+
find('#contacts').should_not have_content('Test Subject #1')
|
100
97
|
end
|
101
98
|
end
|