fat_free_crm 0.11.1 → 0.11.2

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.

Files changed (179) hide show
  1. data/Gemfile +30 -12
  2. data/Gemfile.lock +131 -119
  3. data/Procfile +1 -1
  4. data/README.md +1 -1
  5. data/app/assets/images/notifications.png +0 -0
  6. data/app/assets/javascripts/application.js.erb +3 -0
  7. data/app/assets/javascripts/crm_textarea_autocomplete.js +44 -0
  8. data/app/assets/stylesheets/application.css.erb +2 -0
  9. data/app/assets/stylesheets/common.scss +7 -11
  10. data/app/assets/stylesheets/textarea_autocomplete.scss +42 -0
  11. data/app/controllers/admin/application_controller.rb +5 -5
  12. data/app/controllers/admin/field_groups_controller.rb +11 -51
  13. data/app/controllers/admin/fields_controller.rb +13 -59
  14. data/app/controllers/admin/plugins_controller.rb +1 -4
  15. data/app/controllers/admin/settings_controller.rb +0 -4
  16. data/app/controllers/admin/tags_controller.rb +11 -66
  17. data/app/controllers/admin/users_controller.rb +20 -83
  18. data/app/controllers/application_controller.rb +83 -69
  19. data/app/controllers/comments_controller.rb +12 -29
  20. data/app/controllers/emails_controller.rb +1 -5
  21. data/app/controllers/entities/accounts_controller.rb +13 -32
  22. data/app/controllers/entities/campaigns_controller.rb +17 -32
  23. data/app/controllers/entities/contacts_controller.rb +20 -38
  24. data/app/controllers/entities/leads_controller.rb +33 -55
  25. data/app/controllers/entities/opportunities_controller.rb +26 -42
  26. data/app/controllers/entities_controller.rb +92 -83
  27. data/app/controllers/home_controller.rb +1 -10
  28. data/app/controllers/lists_controller.rb +1 -4
  29. data/app/controllers/{entities/tasks_controller.rb → tasks_controller.rb} +21 -32
  30. data/app/controllers/users_controller.rb +6 -5
  31. data/app/helpers/accounts_helper.rb +32 -9
  32. data/app/helpers/application_helper.rb +15 -1
  33. data/app/helpers/campaigns_helper.rb +1 -1
  34. data/app/helpers/comments_helper.rb +11 -1
  35. data/app/helpers/leads_helper.rb +1 -1
  36. data/app/helpers/opportunities_helper.rb +1 -1
  37. data/app/{models/mailers/notifier.rb → mailers/dropbox_mailer.rb} +5 -16
  38. data/app/mailers/subscription_mailer.rb +37 -0
  39. data/{lib/tasks/dropbox.rake → app/mailers/user_mailer.rb} +11 -13
  40. data/app/models/entities/account.rb +3 -1
  41. data/app/models/entities/campaign.rb +3 -1
  42. data/app/models/entities/contact.rb +3 -1
  43. data/app/models/entities/lead.rb +6 -5
  44. data/app/models/entities/opportunity.rb +3 -1
  45. data/app/models/fields/field.rb +1 -1
  46. data/app/models/polymorphic/comment.rb +34 -0
  47. data/app/models/{entities → polymorphic}/task.rb +16 -3
  48. data/app/models/setting.rb +15 -15
  49. data/app/models/users/ability.rb +12 -5
  50. data/app/models/users/user.rb +7 -2
  51. data/app/views/accounts/index.html.haml +1 -1
  52. data/app/views/accounts/index.js.rjs +1 -1
  53. data/app/views/admin/plugins/index.html.haml +1 -7
  54. data/app/views/{shared/auto_complete.html.haml → application/_auto_complete.html.haml} +0 -0
  55. data/app/views/{shared → application}/index.atom.builder +1 -1
  56. data/app/views/{shared → application}/index.rss.builder +1 -1
  57. data/app/views/campaigns/index.html.haml +1 -1
  58. data/app/views/campaigns/index.js.rjs +1 -1
  59. data/app/views/comments/_new.html.haml +6 -0
  60. data/app/views/comments/_subscription_links.html.haml +13 -0
  61. data/app/views/comments/new.js.rjs +2 -0
  62. data/app/views/contacts/_top_section.html.haml +3 -13
  63. data/app/views/contacts/index.html.haml +1 -1
  64. data/app/views/contacts/index.js.rjs +1 -1
  65. data/app/views/{notifier/dropbox_ack_notification.html.haml → dropbox_mailer/dropbox_notification.html.haml} +2 -2
  66. data/app/views/{shared → entities}/attach.js.rjs +1 -1
  67. data/app/views/entities/contacts.js.rjs +1 -1
  68. data/app/views/{shared/discard.rjs → entities/discard.js.rjs} +0 -0
  69. data/app/views/entities/leads.js.rjs +1 -1
  70. data/app/views/entities/opportunities.js.rjs +1 -1
  71. data/app/views/entities/subscription_update.js.rjs +4 -0
  72. data/app/views/entities/versions.js.rjs +1 -1
  73. data/app/views/layouts/_footer.html.haml +1 -1
  74. data/app/views/layouts/application.html.haml +3 -0
  75. data/app/views/leads/_contact.html.haml +1 -0
  76. data/app/views/leads/index.html.haml +1 -1
  77. data/app/views/leads/index.js.rjs +1 -1
  78. data/app/views/opportunities/_top_section.html.haml +4 -14
  79. data/app/views/opportunities/index.html.haml +1 -1
  80. data/app/views/opportunities/index.js.rjs +1 -1
  81. data/app/views/subscription_mailer/comment_notification.text.erb +7 -0
  82. data/app/views/{notifier → user_mailer}/password_reset_instructions.html.haml +0 -0
  83. data/config/application.rb +3 -1
  84. data/config/environments/development.rb +1 -1
  85. data/config/environments/test.rb +3 -0
  86. data/config/initializers/action_mailer.rb +8 -5
  87. data/config/initializers/cancan.rb +151 -0
  88. data/config/initializers/constants.rb +1 -0
  89. data/config/initializers/locale.rb +20 -0
  90. data/config/initializers/paper_trail.rb +4 -5
  91. data/config/initializers/relative_url_root.rb +0 -1
  92. data/config/initializers/squeel.rb +5 -0
  93. data/config/locales/cz_fat_free_crm.yml +3 -3
  94. data/config/locales/de.yml +2 -2
  95. data/config/locales/de_fat_free_crm.yml +651 -596
  96. data/config/locales/en-GB_fat_free_crm.yml +3 -3
  97. data/config/locales/en-US_fat_free_crm.yml +13 -3
  98. data/config/locales/es_fat_free_crm.yml +3 -3
  99. data/config/locales/fr-CA_fat_free_crm.yml +3 -3
  100. data/config/locales/fr_fat_free_crm.yml +3 -3
  101. data/config/locales/it_fat_free_crm.yml +3 -3
  102. data/config/locales/pl_fat_free_crm.yml +3 -3
  103. data/config/locales/pt-BR_fat_free_crm.yml +3 -3
  104. data/config/locales/ru_fat_free_crm.yml +3 -3
  105. data/config/locales/sv-SE_fat_free_crm.yml +3 -3
  106. data/config/locales/th_fat_free_crm.yml +3 -3
  107. data/config/routes.rb +10 -0
  108. data/config/settings.default.yml +29 -10
  109. data/config/unicorn.rb +4 -0
  110. data/db/migrate/20111201030535_add_field_groups_klass_name.rb +3 -1
  111. data/db/migrate/20120314080441_add_subscribed_users_to_entities.rb +23 -0
  112. data/db/migrate/20120405080727_change_subscribed_users_to_set.rb +24 -0
  113. data/db/migrate/20120405080742_change_further_subscribed_users_to_set.rb +27 -0
  114. data/db/migrate/20120413034923_add_index_on_versions_item_type.rb +5 -0
  115. data/db/schema.rb +109 -126
  116. data/fat_free_crm.gemspec +12 -18
  117. data/lib/fat_free_crm.rb +0 -1
  118. data/lib/fat_free_crm/core_ext/array.rb +1 -0
  119. data/lib/fat_free_crm/gem_dependencies.rb +1 -0
  120. data/lib/fat_free_crm/mail_processor/base.rb +226 -0
  121. data/lib/fat_free_crm/mail_processor/comment_replies.rb +86 -0
  122. data/lib/fat_free_crm/mail_processor/dropbox.rb +288 -0
  123. data/lib/fat_free_crm/permissions.rb +6 -19
  124. data/lib/fat_free_crm/renderers.rb +0 -8
  125. data/lib/fat_free_crm/tabs.rb +1 -1
  126. data/lib/fat_free_crm/version.rb +1 -1
  127. data/lib/plugins/country_select/lib/country_select.rb +2 -2
  128. data/lib/tasks/mail_processing.rake +60 -0
  129. data/spec/controllers/admin/users_controller_spec.rb +0 -2
  130. data/spec/controllers/{accounts_controller_spec.rb → entities/accounts_controller_spec.rb} +7 -9
  131. data/spec/controllers/{campaigns_controller_spec.rb → entities/campaigns_controller_spec.rb} +7 -7
  132. data/spec/controllers/{contacts_controller_spec.rb → entities/contacts_controller_spec.rb} +5 -9
  133. data/spec/controllers/{leads_controller_spec.rb → entities/leads_controller_spec.rb} +7 -9
  134. data/spec/controllers/{opportunities_controller_spec.rb → entities/opportunities_controller_spec.rb} +8 -15
  135. data/spec/controllers/tasks_controller_spec.rb +1 -5
  136. data/spec/controllers/users_controller_spec.rb +5 -9
  137. data/spec/factories/subscription_factories.rb +6 -0
  138. data/spec/lib/mail_processor/base_spec.rb +164 -0
  139. data/spec/lib/mail_processor/comment_replies_spec.rb +63 -0
  140. data/spec/lib/{dropbox_spec.rb → mail_processor/dropbox_spec.rb} +73 -181
  141. data/spec/lib/mail_processor/sample_emails/dropbox.rb +167 -0
  142. data/spec/mailers/subscription_mailer_spec.rb +17 -0
  143. data/spec/models/{base → entities}/account_contact_spec.rb +0 -0
  144. data/spec/models/{base → entities}/account_opportunity_spec.rb +0 -0
  145. data/spec/models/{base → entities}/account_spec.rb +4 -0
  146. data/spec/models/{base → entities}/campaign_spec.rb +4 -0
  147. data/spec/models/{base → entities}/contact_opportunity_spec.rb +0 -0
  148. data/spec/models/{base → entities}/contact_spec.rb +4 -0
  149. data/spec/models/{base → entities}/lead_spec.rb +4 -0
  150. data/spec/models/{base → entities}/opportunity_spec.rb +4 -0
  151. data/spec/models/polymorphic/comment_spec.rb +15 -0
  152. data/spec/models/{base → polymorphic}/task_spec.rb +124 -30
  153. data/spec/models/polymorphic/version_spec.rb +1 -1
  154. data/spec/shared/controllers.rb +5 -7
  155. data/spec/shared/models.rb +46 -0
  156. data/spec/spec_helper.rb +3 -4
  157. data/spec/support/mail_processor_mocks.rb +30 -0
  158. data/spec/support/uploaded_file.rb +3 -0
  159. data/spec/views/{common → application}/auto_complete.haml_spec.rb +1 -1
  160. data/vendor/assets/images/jquery-ui/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  161. data/vendor/assets/images/jquery-ui/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  162. data/vendor/assets/images/jquery-ui/ui-bg_flat_10_000000_40x100.png +0 -0
  163. data/vendor/assets/images/jquery-ui/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  164. data/vendor/assets/images/jquery-ui/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  165. data/vendor/assets/images/jquery-ui/ui-bg_glass_65_ffffff_1x400.png +0 -0
  166. data/vendor/assets/images/jquery-ui/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  167. data/vendor/assets/images/jquery-ui/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  168. data/vendor/assets/images/jquery-ui/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  169. data/vendor/assets/images/jquery-ui/ui-icons_222222_256x240.png +0 -0
  170. data/vendor/assets/images/jquery-ui/ui-icons_228ef1_256x240.png +0 -0
  171. data/vendor/assets/images/jquery-ui/ui-icons_ef8c08_256x240.png +0 -0
  172. data/vendor/assets/images/jquery-ui/ui-icons_ffd27a_256x240.png +0 -0
  173. data/vendor/assets/images/jquery-ui/ui-icons_ffffff_256x240.png +0 -0
  174. data/vendor/assets/javascripts/textarea_autocomplete.js +605 -0
  175. data/vendor/assets/stylesheets/jquery-ui.custom.css.erb +565 -0
  176. metadata +234 -154
  177. data/config/locales/simple_form.en.yml +0 -24
  178. data/lib/fat_free_crm/dropbox.rb +0 -439
  179. data/spec/lib/dropbox/email_samples.rb +0 -77
@@ -32,26 +32,13 @@ module FatFreeCRM
32
32
  # to implement Recycle Bin/Restore and 2) to honor permissions when
33
33
  # displaying "object deleted..." in the activity log.
34
34
  #
35
- has_many :permissions, :as => :asset, :include => :user
36
- #
37
- # The :my named scope accepts an optional Hash. For example:
38
- # Account.my(:user => User.first, :order => "updated_at DESC", :limit => 20)
39
- #
40
- # The defaults are:
41
- # :user => currenly logged in user
42
- # :order => primary key descending
43
- # :limit => none
44
- #
45
- scope :my, lambda { |*args|
46
- options = args[0] || {}
47
- includes(:permissions).
48
- where("#{quoted_table_name}.user_id = :user OR " <<
49
- "#{quoted_table_name}.assigned_to = :user OR " <<
50
- "permissions.user_id = :user OR " <<
51
- "#{quoted_table_name}.access = 'Public'", :user => options[:user] || User.current_user).
52
- order(options[:order] || "#{quoted_table_name}.id DESC").
53
- limit(options[:limit]) # nil selects all records
35
+ has_many :permissions, :as => :asset
36
+
37
+ scope :my, lambda {
38
+ current_ability = Ability.new(User.current_user)
39
+ accessible_by(current_ability).readonly(false)
54
40
  }
41
+
55
42
  include FatFreeCRM::Permissions::InstanceMethods
56
43
  extend FatFreeCRM::Permissions::SingletonMethods
57
44
  end
@@ -28,11 +28,3 @@ ActionController::Renderers.add :xls do |obj, options|
28
28
  send_data str, :type => :xls,
29
29
  :disposition => "attachment; filename=#{filename}.xls"
30
30
  end
31
-
32
- ActionController::Renderers.add :atom do |obj, options|
33
- render 'shared/index.atom.builder'
34
- end
35
-
36
- ActionController::Renderers.add :rss do |obj, options|
37
- render 'shared/index.rss.builder'
38
- end
@@ -19,7 +19,7 @@ module FatFreeCRM
19
19
  class Tabs
20
20
  cattr_accessor :main
21
21
  cattr_accessor :admin
22
-
22
+
23
23
  # Class methods.
24
24
  #----------------------------------------------------------------------------
25
25
  class << self
@@ -19,7 +19,7 @@ module FatFreeCRM
19
19
  module VERSION #:nodoc:
20
20
  MAJOR = 0
21
21
  MINOR = 11
22
- TINY = 1
22
+ TINY = 2
23
23
  PRE = nil
24
24
 
25
25
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join('.')
@@ -21,8 +21,8 @@ module ActionView
21
21
  country_options += options_for_select(priority_countries, selected)
22
22
  country_options += "<option value=\"\" disabled=\"disabled\">-------------</option>\n"
23
23
 
24
- other_countries = COUNTRIES.select{|c| !priority_countries.include?(c[0]) }
25
- return country_options + options_for_select(other_countries, selected)
24
+ other_countries = COUNTRIES.select{|c| !priority_countries.include?(c[0]) }
25
+ return (country_options + options_for_select(other_countries, selected)).html_safe
26
26
  end
27
27
  # All the countries included in the country_options output.
28
28
 
@@ -0,0 +1,60 @@
1
+ # Fat Free CRM
2
+ # Copyright (C) 2008-2011 by Michael Dvorkin
3
+ #
4
+ # This program is free software: you can redistribute it and/or modify
5
+ # it under the terms of the GNU Affero General Public License as published by
6
+ # the Free Software Foundation, either version 3 of the License, or
7
+ # (at your option) any later version.
8
+ #
9
+ # This program is distributed in the hope that it will be useful,
10
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ # GNU Affero General Public License for more details.
13
+ #
14
+ # You should have received a copy of the GNU Affero General Public License
15
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
16
+ #------------------------------------------------------------------------------
17
+
18
+ namespace :ffcrm do
19
+ namespace :dropbox do
20
+ desc "Run dropbox crawler and process incoming emails"
21
+ task :run => :environment do
22
+ require "fat_free_crm/mail_processor/dropbox"
23
+ FatFreeCRM::MailProcessor::Dropbox.new.run(dry_run = false)
24
+ end
25
+ namespace :run do
26
+ desc "[Dry run] - Run dropbox crawler and process incoming emails"
27
+ task :dry => :environment do
28
+ require "fat_free_crm/mail_processor/dropbox"
29
+ FatFreeCRM::MailProcessor::Dropbox.new.run(dry_run = true)
30
+ end
31
+ end
32
+
33
+ desc "Set up email dropbox based on currently loaded settings"
34
+ task :setup => :environment do
35
+ require "fat_free_crm/mail_processor/dropbox"
36
+ FatFreeCRM::MailProcessor::Dropbox.new.setup
37
+ end
38
+ end
39
+
40
+ namespace :comment_replies do
41
+ desc "Run comment inbox crawler and process incoming emails"
42
+ task :run => :environment do
43
+ require "fat_free_crm/mail_processor/comment_replies"
44
+ FatFreeCRM::MailProcessor::CommentReplies.new.run(dry_run = false)
45
+ end
46
+ namespace :run do
47
+ desc "[Dry run] - Run comment inbox crawler and process incoming emails"
48
+ task :dry => :environment do
49
+ require "fat_free_crm/mail_processor/comment_replies"
50
+ FatFreeCRM::MailProcessor::CommentReplies.new.run(dry_run = true)
51
+ end
52
+ end
53
+
54
+ desc "Set up comment inbox based on currently loaded settings"
55
+ task :setup => :environment do
56
+ require "fat_free_crm/mail_processor/comment_replies"
57
+ FatFreeCRM::MailProcessor::CommentReplies.new.setup
58
+ end
59
+ end
60
+ end
@@ -142,7 +142,6 @@ describe Admin::UsersController do
142
142
  response.should render_template("admin/users/create")
143
143
  end
144
144
  end
145
-
146
145
  end
147
146
 
148
147
  # PUT /admin/users/1
@@ -196,7 +195,6 @@ describe Admin::UsersController do
196
195
  response.should render_template("admin/users/update")
197
196
  end
198
197
  end
199
-
200
198
  end
201
199
 
202
200
  # GET /admin/users/1/confirm AJAX
@@ -1,4 +1,4 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
2
 
3
3
  describe AccountsController do
4
4
  def get_data_for_sidebar
@@ -34,7 +34,7 @@ describe AccountsController do
34
34
 
35
35
  it "should filter out accounts by category" do
36
36
  categories = %w(customer vendor)
37
- controller.session[:filter_by_account_category] = categories.join(',')
37
+ controller.session[:accounts_filter] = categories.join(',')
38
38
  @accounts = [
39
39
  FactoryGirl.create(:account, :user => @current_user, :category => categories.first),
40
40
  FactoryGirl.create(:account, :user => @current_user, :category => categories.last)
@@ -80,7 +80,7 @@ describe AccountsController do
80
80
 
81
81
  describe "with mime type of JSON" do
82
82
  it "should render all accounts as json" do
83
- @controller.should_receive(:get_list_of_records).and_return(accounts = mock("Array of Accounts"))
83
+ @controller.should_receive(:get_accounts).and_return(accounts = mock("Array of Accounts"))
84
84
  accounts.should_receive(:to_json).and_return("generated JSON")
85
85
 
86
86
  request.env["HTTP_ACCEPT"] = "application/json"
@@ -91,7 +91,7 @@ describe AccountsController do
91
91
 
92
92
  describe "with mime type of XML" do
93
93
  it "should render all accounts as xml" do
94
- @controller.should_receive(:get_list_of_records).and_return(accounts = mock("Array of Accounts"))
94
+ @controller.should_receive(:get_accounts).and_return(accounts = mock("Array of Accounts"))
95
95
  accounts.should_receive(:to_xml).and_return("generated XML")
96
96
 
97
97
  request.env["HTTP_ACCEPT"] = "application/xml"
@@ -130,7 +130,7 @@ describe AccountsController do
130
130
  describe "with mime type of JSON" do
131
131
  it "should render the requested account as json" do
132
132
  @account = FactoryGirl.create(:account, :user => @current_user)
133
- Account.stub_chain(:my, :find).and_return(@account)
133
+ Account.should_receive(:find).and_return(@account)
134
134
  @account.should_receive(:to_json).and_return("generated JSON")
135
135
 
136
136
  request.env["HTTP_ACCEPT"] = "application/json"
@@ -142,7 +142,7 @@ describe AccountsController do
142
142
  describe "with mime type of XML" do
143
143
  it "should render the requested account as xml" do
144
144
  @account = FactoryGirl.create(:account, :user => @current_user)
145
- Account.stub_chain(:my, :find).and_return(@account)
145
+ Account.should_receive(:find).and_return(@account)
146
146
  @account.should_receive(:to_xml).and_return("generated XML")
147
147
 
148
148
  request.env["HTTP_ACCEPT"] = "application/xml"
@@ -281,7 +281,6 @@ describe AccountsController do
281
281
  response.should render_template("accounts/edit")
282
282
  end
283
283
  end
284
-
285
284
  end
286
285
 
287
286
  # POST /accounts
@@ -333,7 +332,6 @@ describe AccountsController do
333
332
  response.should render_template("accounts/create")
334
333
  end
335
334
  end
336
-
337
335
  end
338
336
 
339
337
  # PUT /accounts/1
@@ -609,7 +607,7 @@ describe AccountsController do
609
607
  #----------------------------------------------------------------------------
610
608
  describe "responding to POST filter" do
611
609
  it "should expose filtered accounts as @accounts and render [index] template" do
612
- session[:filter_by_account_category] = "customer,vendor"
610
+ session[:accounts_filter] = "customer,vendor"
613
611
  @accounts = [ FactoryGirl.create(:account, :category => "partner", :user => @current_user) ]
614
612
 
615
613
  xhr :post, :filter, :category => "partner"
@@ -1,4 +1,4 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
2
 
3
3
  describe CampaignsController do
4
4
 
@@ -36,7 +36,7 @@ describe CampaignsController do
36
36
  end
37
37
 
38
38
  it "should filter out campaigns by status" do
39
- controller.session[:filter_by_campaign_status] = "planned,started"
39
+ controller.session[:campaigns_filter] = "planned,started"
40
40
  @campaigns = [
41
41
  FactoryGirl.create(:campaign, :user => @current_user, :status => "started"),
42
42
  FactoryGirl.create(:campaign, :user => @current_user, :status => "planned")
@@ -85,7 +85,7 @@ describe CampaignsController do
85
85
 
86
86
  describe "with mime type of JSON" do
87
87
  it "should render all campaigns as JSON" do
88
- @controller.should_receive(:get_list_of_records).and_return(@campaigns = [])
88
+ @controller.should_receive(:get_campaigns).and_return(@campaigns = [])
89
89
  @campaigns.should_receive(:to_json).and_return("generated JSON")
90
90
 
91
91
  request.env["HTTP_ACCEPT"] = "application/json"
@@ -96,7 +96,7 @@ describe CampaignsController do
96
96
 
97
97
  describe "with mime type of XML" do
98
98
  it "should render all campaigns as xml" do
99
- @controller.should_receive(:get_list_of_records).and_return(@campaigns = [])
99
+ @controller.should_receive(:get_campaigns).and_return(@campaigns = [])
100
100
  @campaigns.should_receive(:to_xml).and_return("generated XML")
101
101
 
102
102
  request.env["HTTP_ACCEPT"] = "application/xml"
@@ -135,7 +135,7 @@ describe CampaignsController do
135
135
  describe "with mime type of JSON" do
136
136
  it "should render the requested campaign as JSON" do
137
137
  @campaign = FactoryGirl.create(:campaign, :id => 42, :user => @current_user)
138
- Campaign.stub_chain(:my, :find).and_return(@campaign)
138
+ Campaign.should_receive(:find).and_return(@campaign)
139
139
  @campaign.should_receive(:to_json).and_return("generated JSON")
140
140
 
141
141
  request.env["HTTP_ACCEPT"] = "application/json"
@@ -147,7 +147,7 @@ describe CampaignsController do
147
147
  describe "with mime type of XML" do
148
148
  it "should render the requested campaign as XML" do
149
149
  @campaign = FactoryGirl.create(:campaign, :id => 42, :user => @current_user)
150
- Campaign.stub_chain(:my, :find).and_return(@campaign)
150
+ Campaign.should_receive(:find).and_return(@campaign)
151
151
  @campaign.should_receive(:to_xml).and_return("generated XML")
152
152
 
153
153
  request.env["HTTP_ACCEPT"] = "application/xml"
@@ -647,7 +647,7 @@ describe CampaignsController do
647
647
  describe "responding to POST filter" do
648
648
 
649
649
  it "should expose filtered campaigns as @campaigns and render [index] template" do
650
- session[:filter_by_campaign_status] = "planned,started"
650
+ session[:campaigns_filter] = "planned,started"
651
651
  @campaigns = [ FactoryGirl.create(:campaign, :status => "completed", :user => @current_user) ]
652
652
 
653
653
  xhr :post, :filter, :status => "completed"
@@ -1,4 +1,4 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
2
 
3
3
  describe ContactsController do
4
4
 
@@ -53,7 +53,7 @@ describe ContactsController do
53
53
 
54
54
  describe "with mime type of JSON" do
55
55
  it "should render all contacts as JSON" do
56
- @controller.should_receive(:get_list_of_records).and_return(contacts = mock("Array of Contacts"))
56
+ @controller.should_receive(:get_contacts).and_return(contacts = mock("Array of Contacts"))
57
57
  contacts.should_receive(:to_json).and_return("generated JSON")
58
58
 
59
59
  request.env["HTTP_ACCEPT"] = "application/json"
@@ -64,7 +64,7 @@ describe ContactsController do
64
64
 
65
65
  describe "with mime type of XML" do
66
66
  it "should render all contacts as xml" do
67
- @controller.should_receive(:get_list_of_records).and_return(contacts = mock("Array of Contacts"))
67
+ @controller.should_receive(:get_contacts).and_return(contacts = mock("Array of Contacts"))
68
68
  contacts.should_receive(:to_xml).and_return("generated XML")
69
69
 
70
70
  request.env["HTTP_ACCEPT"] = "application/xml"
@@ -103,7 +103,7 @@ describe ContactsController do
103
103
  describe "with mime type of JSON" do
104
104
  it "should render the requested contact as JSON" do
105
105
  @contact = FactoryGirl.create(:contact, :id => 42)
106
- Contact.stub_chain(:my, :find).and_return(@contact)
106
+ Contact.should_receive(:find).and_return(@contact)
107
107
  @contact.should_receive(:to_json).and_return("generated JSON")
108
108
 
109
109
  request.env["HTTP_ACCEPT"] = "application/json"
@@ -115,7 +115,7 @@ describe ContactsController do
115
115
  describe "with mime type of XML" do
116
116
  it "should render the requested contact as xml" do
117
117
  @contact = FactoryGirl.create(:contact, :id => 42)
118
- Contact.stub_chain(:my, :find).and_return(@contact)
118
+ Contact.should_receive(:find).and_return(@contact)
119
119
  @contact.should_receive(:to_xml).and_return("generated XML")
120
120
 
121
121
  request.env["HTTP_ACCEPT"] = "application/xml"
@@ -151,7 +151,6 @@ describe ContactsController do
151
151
  response.code.should == "404" # :not_found
152
152
  end
153
153
  end
154
-
155
154
  end
156
155
 
157
156
  # GET /contacts/new
@@ -279,7 +278,6 @@ describe ContactsController do
279
278
  response.should render_template("contacts/edit")
280
279
  end
281
280
  end
282
-
283
281
  end
284
282
 
285
283
  # POST /contacts
@@ -372,9 +370,7 @@ describe ContactsController do
372
370
  assigns(:opportunity).should == @opportunity
373
371
  response.should render_template("contacts/create")
374
372
  end
375
-
376
373
  end
377
-
378
374
  end
379
375
 
380
376
  # PUT /contacts/1
@@ -1,4 +1,4 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
2
 
3
3
  describe LeadsController do
4
4
 
@@ -29,7 +29,7 @@ describe LeadsController do
29
29
  end
30
30
 
31
31
  it "should filter out leads by status" do
32
- controller.session[:filter_by_lead_status] = "new,contacted"
32
+ controller.session[:leads_filter] = "new,contacted"
33
33
  @leads = [
34
34
  FactoryGirl.create(:lead, :status => "new", :user => @current_user),
35
35
  FactoryGirl.create(:lead, :status => "contacted", :user => @current_user)
@@ -78,7 +78,7 @@ describe LeadsController do
78
78
 
79
79
  describe "with mime type of JSON" do
80
80
  it "should render all leads as JSON" do
81
- @controller.should_receive(:get_list_of_records).and_return(leads = mock("Array of Leads"))
81
+ @controller.should_receive(:get_leads).and_return(leads = mock("Array of Leads"))
82
82
  leads.should_receive(:to_json).and_return("generated JSON")
83
83
 
84
84
  request.env["HTTP_ACCEPT"] = "application/json"
@@ -89,7 +89,7 @@ describe LeadsController do
89
89
 
90
90
  describe "with mime type of XML" do
91
91
  it "should render all leads as xml" do
92
- @controller.should_receive(:get_list_of_records).and_return(leads = mock("Array of Leads"))
92
+ @controller.should_receive(:get_leads).and_return(leads = mock("Array of Leads"))
93
93
  leads.should_receive(:to_xml).and_return("generated XML")
94
94
 
95
95
  request.env["HTTP_ACCEPT"] = "application/xml"
@@ -126,7 +126,7 @@ describe LeadsController do
126
126
  describe "with mime type of JSON" do
127
127
  it "should render the requested lead as JSON" do
128
128
  @lead = FactoryGirl.create(:lead, :id => 42, :user => @current_user)
129
- Lead.stub_chain(:my, :find).and_return(@lead)
129
+ Lead.should_receive(:find).and_return(@lead)
130
130
  @lead.should_receive(:to_json).and_return("generated JSON")
131
131
 
132
132
  request.env["HTTP_ACCEPT"] = "application/json"
@@ -138,7 +138,7 @@ describe LeadsController do
138
138
  describe "with mime type of XML" do
139
139
  it "should render the requested lead as xml" do
140
140
  @lead = FactoryGirl.create(:lead, :id => 42, :user => @current_user)
141
- Lead.stub_chain(:my, :find).and_return(@lead)
141
+ Lead.should_receive(:find).and_return(@lead)
142
142
  @lead.should_receive(:to_xml).and_return("generated XML")
143
143
 
144
144
  request.env["HTTP_ACCEPT"] = "application/xml"
@@ -229,7 +229,6 @@ describe LeadsController do
229
229
  response.body.should == 'window.location.href = "/campaigns";'
230
230
  end
231
231
  end
232
-
233
232
  end
234
233
 
235
234
  # GET /leads/1/edit AJAX
@@ -299,7 +298,6 @@ describe LeadsController do
299
298
  response.should render_template("leads/edit")
300
299
  end
301
300
  end
302
-
303
301
  end
304
302
 
305
303
  # POST /leads
@@ -1027,7 +1025,7 @@ describe LeadsController do
1027
1025
  describe "responding to POST filter" do
1028
1026
 
1029
1027
  it "should filter out leads as @leads and render :index action" do
1030
- session[:filter_by_lead_status] = "contacted,rejected"
1028
+ session[:leads_filter] = "contacted,rejected"
1031
1029
 
1032
1030
  @leads = [ FactoryGirl.create(:lead, :user => @current_user, :status => "new") ]
1033
1031
  xhr :post, :filter, :status => "new"
@@ -1,4 +1,4 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
2
 
3
3
  describe OpportunitiesController do
4
4
 
@@ -35,7 +35,7 @@ describe OpportunitiesController do
35
35
  end
36
36
 
37
37
  it "should filter out opportunities by stage" do
38
- controller.session[:filter_by_opportunity_stage] = "prospecting,negotiation"
38
+ controller.session[:opportunities_filter] = "prospecting,negotiation"
39
39
  @opportunities = [
40
40
  FactoryGirl.create(:opportunity, :user => @current_user, :stage => "negotiation"),
41
41
  FactoryGirl.create(:opportunity, :user => @current_user, :stage => "prospecting")
@@ -83,7 +83,7 @@ describe OpportunitiesController do
83
83
 
84
84
  describe "with mime type of JSON" do
85
85
  it "should render all opportunities as JSON" do
86
- @controller.should_receive(:get_list_of_records).and_return(opportunities = mock("Array of Opportunities"))
86
+ @controller.should_receive(:get_opportunities).and_return(opportunities = mock("Array of Opportunities"))
87
87
  opportunities.should_receive(:to_json).and_return("generated JSON")
88
88
 
89
89
  request.env["HTTP_ACCEPT"] = "application/json"
@@ -94,7 +94,7 @@ describe OpportunitiesController do
94
94
 
95
95
  describe "with mime type of JSON" do
96
96
  it "should render all opportunities as JSON" do
97
- @controller.should_receive(:get_list_of_records).and_return(opportunities = mock("Array of Opportunities"))
97
+ @controller.should_receive(:get_opportunities).and_return(opportunities = mock("Array of Opportunities"))
98
98
  opportunities.should_receive(:to_json).and_return("generated JSON")
99
99
 
100
100
  request.env["HTTP_ACCEPT"] = "application/json"
@@ -105,7 +105,7 @@ describe OpportunitiesController do
105
105
 
106
106
  describe "with mime type of XML" do
107
107
  it "should render all opportunities as xml" do
108
- @controller.should_receive(:get_list_of_records).and_return(opportunities = mock("Array of Opportunities"))
108
+ @controller.should_receive(:get_opportunities).and_return(opportunities = mock("Array of Opportunities"))
109
109
  opportunities.should_receive(:to_xml).and_return("generated XML")
110
110
 
111
111
  request.env["HTTP_ACCEPT"] = "application/xml"
@@ -144,7 +144,7 @@ describe OpportunitiesController do
144
144
  describe "with mime type of JSON" do
145
145
  it "should render the requested opportunity as JSON" do
146
146
  @opportunity = FactoryGirl.create(:opportunity, :id => 42)
147
- Opportunity.stub_chain(:my, :find).and_return(@opportunity)
147
+ Opportunity.should_receive(:find).and_return(@opportunity)
148
148
  @opportunity.should_receive(:to_json).and_return("generated JSON")
149
149
 
150
150
  request.env["HTTP_ACCEPT"] = "application/json"
@@ -156,7 +156,7 @@ describe OpportunitiesController do
156
156
  describe "with mime type of XML" do
157
157
  it "should render the requested opportunity as xml" do
158
158
  @opportunity = FactoryGirl.create(:opportunity, :id => 42)
159
- Opportunity.stub_chain(:my, :find).and_return(@opportunity)
159
+ Opportunity.should_receive(:find).and_return(@opportunity)
160
160
  @opportunity.should_receive(:to_xml).and_return("generated XML")
161
161
 
162
162
  request.env["HTTP_ACCEPT"] = "application/xml"
@@ -201,7 +201,6 @@ describe OpportunitiesController do
201
201
  response.code.should == "404" # :not_found
202
202
  end
203
203
  end
204
-
205
204
  end
206
205
 
207
206
  # GET /opportunities/new
@@ -248,7 +247,6 @@ describe OpportunitiesController do
248
247
  response.body.should == 'window.location.href = "/accounts";'
249
248
  end
250
249
  end
251
-
252
250
  end
253
251
 
254
252
  # GET /opportunities/1/edit AJAX
@@ -678,9 +676,7 @@ describe OpportunitiesController do
678
676
  xhr :put, :update, :id => 42, :opportunity => { :name => nil }, :account => { :id => 99 }
679
677
  assigns(:account).should == @account
680
678
  end
681
-
682
679
  end
683
-
684
680
  end
685
681
 
686
682
  # DELETE /opportunities/1
@@ -910,7 +906,7 @@ describe OpportunitiesController do
910
906
  describe "responding to GET filter" do
911
907
 
912
908
  it "should expose filtered opportunities as @opportunity and render [filter] template" do
913
- session[:filter_by_opportunity_stage] = "negotiation,analysis"
909
+ session[:opportunities_filter] = "negotiation,analysis"
914
910
  @opportunities = [ FactoryGirl.create(:opportunity, :stage => "prospecting", :user => @current_user) ]
915
911
  @stage = Setting.unroll(:opportunity_stage)
916
912
 
@@ -927,8 +923,5 @@ describe OpportunitiesController do
927
923
 
928
924
  session[:opportunities_current_page].should == 1
929
925
  end
930
-
931
926
  end
932
-
933
927
  end
934
-