fat_free_crm 0.11.0 → 0.11.1
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 +1 -0
- data/.travis.yml +2 -2
- data/Gemfile +15 -2
- data/Gemfile.lock +34 -14
- data/README.md +37 -124
- data/app/assets/javascripts/application.js.erb +1 -1
- data/app/assets/javascripts/crm.js +22 -1
- data/app/assets/javascripts/crm_fields.js +2 -3
- data/app/assets/javascripts/jquery-noconflict.js +17 -0
- data/app/assets/stylesheets/application.css.erb +1 -0
- data/app/assets/stylesheets/common.scss +26 -0
- data/app/assets/stylesheets/ffcrm_chosen.scss +1 -1
- data/app/controllers/admin/application_controller.rb +1 -1
- data/app/controllers/application_controller.rb +0 -8
- data/app/controllers/{accounts_controller.rb → entities/accounts_controller.rb} +1 -13
- data/app/controllers/{campaigns_controller.rb → entities/campaigns_controller.rb} +1 -13
- data/app/controllers/{contacts_controller.rb → entities/contacts_controller.rb} +1 -7
- data/app/controllers/{leads_controller.rb → entities/leads_controller.rb} +1 -1
- data/app/controllers/{opportunities_controller.rb → entities/opportunities_controller.rb} +1 -7
- data/app/controllers/{tasks_controller.rb → entities/tasks_controller.rb} +1 -1
- data/app/controllers/{base_controller.rb → entities_controller.rb} +32 -1
- data/app/controllers/home_controller.rb +9 -9
- data/app/controllers/lists_controller.rb +17 -0
- data/app/helpers/admin/tags_helper.rb +1 -1
- data/app/helpers/application_helper.rb +14 -14
- data/app/helpers/crm_tags_helper.rb +1 -1
- data/app/helpers/home_helper.rb +13 -15
- data/app/helpers/lists_helper.rb +17 -0
- data/app/inputs/date_time_input.rb +17 -0
- data/app/inputs/text_input.rb +17 -1
- data/app/models/{base → entities}/account.rb +0 -1
- data/app/models/{base → entities}/account_contact.rb +0 -0
- data/app/models/{base → entities}/account_opportunity.rb +0 -0
- data/app/models/{base → entities}/campaign.rb +0 -1
- data/app/models/{base → entities}/contact.rb +0 -1
- data/app/models/{base → entities}/contact_opportunity.rb +0 -0
- data/app/models/{base → entities}/lead.rb +0 -1
- data/app/models/{base → entities}/opportunity.rb +0 -1
- data/app/models/{base → entities}/task.rb +5 -6
- data/app/models/list.rb +17 -0
- data/app/models/observers/lead_observer.rb +39 -0
- data/app/models/observers/opportunity_observer.rb +54 -0
- data/app/models/observers/task_observer.rb +41 -0
- data/app/models/polymorphic/address.rb +1 -3
- data/app/models/polymorphic/avatar.rb +0 -5
- data/app/models/polymorphic/comment.rb +2 -11
- data/app/models/polymorphic/email.rb +2 -9
- data/app/models/polymorphic/tag.rb +17 -0
- data/app/models/polymorphic/tagging.rb +17 -0
- data/app/models/users/ability.rb +13 -0
- data/app/models/users/user.rb +1 -4
- data/app/views/accounts/_account.html.haml +10 -6
- data/app/views/accounts/index.html.haml +1 -1
- data/app/views/accounts/show.html.haml +6 -24
- data/app/views/admin/fields/_field.html.haml +6 -6
- data/app/views/admin/tags/_tag.html.haml +2 -2
- data/app/views/admin/tags/index.html.haml +1 -1
- data/app/views/admin/users/_user.html.haml +3 -3
- data/app/views/admin/users/index.html.haml +1 -1
- data/app/views/campaigns/_campaign.html.haml +9 -5
- data/app/views/campaigns/index.html.haml +1 -1
- data/app/views/campaigns/show.html.haml +4 -24
- data/app/views/comments/_comment.html.haml +17 -14
- data/app/views/comments/_edit.html.haml +1 -1
- data/app/views/comments/_new.html.haml +3 -3
- data/app/views/contacts/_contact.html.haml +33 -15
- data/app/views/contacts/_contacts.html.haml +6 -0
- data/app/views/contacts/_sidebar_show.html.haml +1 -1
- data/app/views/contacts/index.html.haml +1 -1
- data/app/views/contacts/show.html.haml +3 -19
- data/app/views/emails/_email.html.haml +24 -21
- data/app/views/{base → entities}/_advanced_search.html.haml +0 -0
- data/app/views/{base → entities}/_condition_fields.html.haml +0 -0
- data/app/views/{base → entities}/_grouping_fields.html.haml +0 -0
- data/app/views/{base → entities}/_sort_fields.html.haml +0 -0
- data/app/views/{base → entities}/advanced_search.js.rjs +0 -0
- data/app/views/entities/contacts.js.rjs +3 -0
- data/app/views/entities/leads.js.rjs +3 -0
- data/app/views/entities/opportunities.js.rjs +3 -0
- data/app/views/entities/versions.js.rjs +3 -0
- data/app/views/home/_activity.html.haml +19 -18
- data/app/views/home/_events_menu.html.haml +8 -0
- data/app/views/home/_options.html.haml +2 -3
- data/app/views/home/index.html.haml +1 -1
- data/app/views/leads/_lead.html.haml +42 -23
- data/app/views/leads/_leads.html.haml +6 -0
- data/app/views/leads/_sidebar_show.html.haml +1 -1
- data/app/views/leads/index.html.haml +1 -1
- data/app/views/leads/show.html.haml +3 -13
- data/app/views/opportunities/_opportunities.html.haml +6 -0
- data/app/views/opportunities/_opportunity.html.haml +23 -11
- data/app/views/opportunities/index.html.haml +1 -1
- data/app/views/opportunities/show.html.haml +4 -18
- data/app/views/shared/_comment.html.haml +3 -3
- data/app/views/shared/_edit_comment.html.haml +1 -1
- data/app/views/shared/_recent.html.haml +4 -4
- data/app/views/shared/_recently.html.haml +3 -3
- data/app/views/shared/_timeline.html.haml +2 -3
- data/app/views/tasks/_assigned.html.haml +4 -4
- data/app/views/tasks/_completed.html.haml +2 -2
- data/app/views/tasks/_pending.html.haml +2 -2
- data/app/views/tasks/_related.html.haml +4 -5
- data/app/views/tasks/_tasks.html.haml +3 -0
- data/app/views/tasks/_title.html.haml +1 -1
- data/app/views/tasks/index.html.haml +1 -1
- data/app/views/users/_avatar.html.haml +2 -2
- data/app/views/versions/_version.html.haml +9 -12
- data/app/views/versions/_versions.html.haml +11 -0
- data/config/application.rb +3 -2
- data/config/environments/development.rb +2 -2
- data/config/environments/production.rb +0 -4
- data/config/environments/staging.rb +1 -1
- data/config/initializers/action_mailer.rb +9 -0
- data/config/initializers/paper_trail.rb +80 -0
- data/config/initializers/relative_url_root.rb +23 -0
- data/config/locales/cz_fat_free_crm.yml +1 -1
- data/config/locales/en-US_fat_free_crm.yml +22 -17
- data/config/locales/fr_fat_free_crm.yml +349 -134
- data/config/routes.rb +144 -140
- data/config/settings.default.yml +14 -2
- data/db/demo/addresses.yml +2 -2
- data/db/demo/emails.yml +2 -2
- data/db/migrate/20120216042541_is_paranoid_to_paper_trail.rb +1 -2
- data/db/migrate/20120309070209_add_versions_related.rb +6 -0
- data/db/migrate/20120316045804_activities_to_versions.rb +35 -0
- data/db/schema.rb +79 -53
- data/fat_free_crm.gemspec +8 -4
- data/lib/development_tasks/gem.rake +18 -1
- data/lib/development_tasks/license.rake +2 -4
- data/lib/development_tasks/rdoc.rake +17 -0
- data/lib/development_tasks/rspec.rake +17 -0
- data/lib/fat_free_crm.rb +20 -14
- data/lib/fat_free_crm/core_ext/array.rb +0 -27
- data/lib/fat_free_crm/dropbox.rb +11 -1
- data/lib/fat_free_crm/engine.rb +21 -3
- data/lib/fat_free_crm/gem_dependencies.rb +26 -0
- data/lib/fat_free_crm/gem_ext.rb +18 -1
- data/lib/fat_free_crm/gem_ext/active_record/schema_dumper.rb +18 -1
- data/lib/fat_free_crm/gem_ext/authlogic/session/cookies.rb +17 -0
- data/lib/fat_free_crm/gem_ext/rails/engine.rb +17 -0
- data/lib/fat_free_crm/gem_ext/rails/text_helper.rb +17 -0
- data/lib/fat_free_crm/gem_ext/rake/task.rb +17 -0
- data/lib/fat_free_crm/gem_ext/simple_form/action_view_extensions/form_helper.rb +18 -1
- data/lib/fat_free_crm/plugin_dependencies.rb +23 -5
- data/lib/fat_free_crm/renderers.rb +17 -0
- data/lib/fat_free_crm/syck_yaml.rb +17 -0
- data/lib/fat_free_crm/version.rb +1 -1
- data/lib/{country_select → plugins/country_select}/MIT-LICENSE +0 -0
- data/lib/{country_select → plugins/country_select}/README +0 -0
- data/lib/{country_select → plugins/country_select}/init.rb +0 -0
- data/lib/{country_select → plugins/country_select}/install.rb +0 -0
- data/lib/{country_select → plugins/country_select}/lib/country_select.rb +0 -0
- data/lib/{country_select → plugins/country_select}/uninstall.rb +0 -0
- data/lib/{gravatar_image_tag → plugins/gravatar_image_tag}/Gemfile +0 -0
- data/lib/{gravatar_image_tag → plugins/gravatar_image_tag}/README.textile +0 -0
- data/lib/{gravatar_image_tag → plugins/gravatar_image_tag}/ROADMAP.textile +0 -0
- data/lib/{gravatar_image_tag → plugins/gravatar_image_tag}/Rakefile +0 -0
- data/lib/{gravatar_image_tag → plugins/gravatar_image_tag}/VERSION +0 -0
- data/lib/{gravatar_image_tag → plugins/gravatar_image_tag}/gravatar_image_tag.gemspec +0 -0
- data/lib/{gravatar_image_tag → plugins/gravatar_image_tag}/init.rb +0 -0
- data/lib/{gravatar_image_tag → plugins/gravatar_image_tag}/lib/gravatar_image_tag.rb +0 -0
- data/lib/{gravatar_image_tag → plugins/gravatar_image_tag}/spec/gravatar_image_tag_spec.rb +0 -0
- data/lib/{gravatar_image_tag → plugins/gravatar_image_tag}/spec/test_helper.rb +0 -0
- data/lib/tasks/demo.rake +32 -29
- data/lib/tasks/dropbox.rake +1 -1
- data/lib/tasks/fat_free_crm.rake +3 -2
- data/lib/tasks/plugins.rake +1 -0
- data/spec/controllers/accounts_controller_spec.rb +7 -5
- data/spec/controllers/campaigns_controller_spec.rb +11 -9
- data/spec/controllers/contacts_controller_spec.rb +7 -5
- data/spec/controllers/home_controller_spec.rb +2 -2
- data/spec/controllers/leads_controller_spec.rb +7 -5
- data/spec/controllers/opportunities_controller_spec.rb +7 -5
- data/spec/factories/shared_factories.rb +8 -11
- data/spec/lib/dropbox_spec.rb +1 -0
- data/spec/models/polymorphic/version_spec.rb +247 -0
- data/spec/models/users/user_spec.rb +0 -9
- data/spec/spec_helper.rb +4 -0
- data/spec/views/home/index.haml_spec.rb +1 -1
- data/spec/views/home/index.rjs_spec.rb +4 -4
- data/spec/views/tasks/new.rjs_spec.rb +2 -2
- data/vendor/assets/javascripts/calendar_date_select/format_french.js +24 -0
- metadata +167 -126
- data/app/models/observers/activity_observer.rb +0 -84
- data/app/models/polymorphic/activity.rb +0 -106
- data/app/views/accounts/contacts.js.rjs +0 -3
- data/app/views/accounts/opportunities.js.rjs +0 -3
- data/app/views/campaigns/leads.js.rjs +0 -3
- data/app/views/campaigns/opportunities.js.rjs +0 -3
- data/app/views/contacts/opportunities.js.rjs +0 -3
- data/app/views/home/_actions_menu.html.haml +0 -8
- data/lib/dynamic_form/MIT-LICENSE +0 -20
- data/lib/dynamic_form/README +0 -13
- data/lib/dynamic_form/Rakefile +0 -10
- data/lib/dynamic_form/dynamic_form.gemspec +0 -12
- data/lib/dynamic_form/init.rb +0 -2
- data/lib/dynamic_form/lib/action_view/helpers/dynamic_form.rb +0 -301
- data/lib/dynamic_form/lib/action_view/locale/en-US.yml +0 -8
- data/lib/dynamic_form/lib/dynamic_form.rb +0 -6
- data/lib/dynamic_form/test/dynamic_form_i18n_test.rb +0 -42
- data/lib/dynamic_form/test/dynamic_form_test.rb +0 -370
- data/lib/dynamic_form/test/test_helper.rb +0 -10
- data/lib/responds_to_parent/MIT-LICENSE +0 -20
- data/lib/responds_to_parent/README +0 -47
- data/lib/responds_to_parent/Rakefile +0 -22
- data/lib/responds_to_parent/init.rb +0 -2
- data/lib/responds_to_parent/install.rb +0 -2
- data/lib/responds_to_parent/lib/responds_to_parent.rb +0 -70
- data/lib/responds_to_parent/test/responds_to_parent_test.rb +0 -11
- data/lib/responds_to_parent/test/test_helper.rb +0 -7
- data/lib/responds_to_parent/uninstall.rb +0 -2
- data/spec/models/polymorphic/activity_spec.rb +0 -303
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -18,7 +18,7 @@ matrix:
|
|
18
18
|
env: DB=postgres
|
19
19
|
gemfile: Gemfile.ci
|
20
20
|
- rvm: 1.8.7
|
21
|
-
env: DB=
|
21
|
+
env: DB=sqlite
|
22
22
|
gemfile: Gemfile.ci
|
23
23
|
- rvm: 1.9.2
|
24
24
|
env: DB=sqlite
|
@@ -29,7 +29,7 @@ matrix:
|
|
29
29
|
- rvm: 1.9.3
|
30
30
|
env: DB=mysql
|
31
31
|
gemfile: Gemfile.ci
|
32
|
-
|
32
|
+
|
33
33
|
bundler_args: --path=vendor/bundle --without heroku
|
34
34
|
|
35
35
|
before_script:
|
data/Gemfile
CHANGED
@@ -22,12 +22,14 @@ spec.runtime_dependencies.each do |dep|
|
|
22
22
|
gem dep.name, *(dep.requirement.as_list)
|
23
23
|
end
|
24
24
|
|
25
|
-
gem 'ransack',
|
25
|
+
gem 'ransack', :git => "https://github.com/fatfreecrm/ransack.git"
|
26
|
+
gem 'chosen-rails', :git => "https://github.com/fatfreecrm/chosen-rails.git"
|
27
|
+
gem 'responds_to_parent', :git => "https://github.com/LessonPlanet/responds_to_parent.git"
|
26
28
|
|
27
29
|
# Remove fat_free_crm from dependencies, to stop it from being auto-required.
|
28
30
|
remove 'fat_free_crm'
|
29
31
|
|
30
|
-
gem 'pg', '~> 0.
|
32
|
+
gem 'pg', '~> 0.13.2'
|
31
33
|
|
32
34
|
group :development, :test do
|
33
35
|
gem 'rspec-rails'
|
@@ -38,3 +40,14 @@ group :development, :test do
|
|
38
40
|
gem 'ruby-debug19', :platform => :mri_19
|
39
41
|
end
|
40
42
|
end
|
43
|
+
|
44
|
+
|
45
|
+
# Gems used only for assets and not required
|
46
|
+
# in production environments by default.
|
47
|
+
group :assets do
|
48
|
+
gem 'sass-rails', '~> 3.2.3'
|
49
|
+
gem 'coffee-rails', '~> 3.2.1'
|
50
|
+
gem 'therubyracer', :platform => :ruby # C Ruby (MRI) or Rubinius, but NOT Windows
|
51
|
+
gem 'uglifier', '>= 1.0.3'
|
52
|
+
end
|
53
|
+
|
data/Gemfile.lock
CHANGED
@@ -1,5 +1,19 @@
|
|
1
1
|
GIT
|
2
|
-
remote:
|
2
|
+
remote: https://github.com/LessonPlanet/responds_to_parent.git
|
3
|
+
revision: 1f0c6d82eda5e7f331a30fc029e7ead2a7dbdebf
|
4
|
+
specs:
|
5
|
+
responds_to_parent (1.0.20091013)
|
6
|
+
|
7
|
+
GIT
|
8
|
+
remote: https://github.com/fatfreecrm/chosen-rails.git
|
9
|
+
revision: 33c92a8554ee14d11b7293eb531371a05c0a0b67
|
10
|
+
specs:
|
11
|
+
chosen-rails (0.9.5)
|
12
|
+
railties (~> 3.0)
|
13
|
+
thor (~> 0.14)
|
14
|
+
|
15
|
+
GIT
|
16
|
+
remote: https://github.com/fatfreecrm/ransack.git
|
3
17
|
revision: 92f5812d4320e5f1959f844d19d0386bb5654a08
|
4
18
|
specs:
|
5
19
|
ransack (0.6.0)
|
@@ -56,6 +70,7 @@ GEM
|
|
56
70
|
activerecord (>= 3.0.7)
|
57
71
|
activerecord (>= 3.0.7)
|
58
72
|
builder (3.0.0)
|
73
|
+
cancan (1.6.7)
|
59
74
|
capybara (1.1.2)
|
60
75
|
mime-types (>= 1.16)
|
61
76
|
nokogiri (>= 1.3.3)
|
@@ -65,9 +80,6 @@ GEM
|
|
65
80
|
xpath (~> 0.1.4)
|
66
81
|
childprocess (0.3.1)
|
67
82
|
ffi (~> 1.0.6)
|
68
|
-
chosen-rails (0.9.7.1)
|
69
|
-
railties (~> 3.0)
|
70
|
-
thor (~> 0.14)
|
71
83
|
chronic (0.6.7)
|
72
84
|
cocaine (0.2.1)
|
73
85
|
coffee-rails (3.2.2)
|
@@ -80,11 +92,15 @@ GEM
|
|
80
92
|
columnize (0.3.6)
|
81
93
|
database_cleaner (0.7.1)
|
82
94
|
diff-lcs (1.1.3)
|
95
|
+
dynamic_form (1.1.4)
|
83
96
|
erubis (2.7.0)
|
84
97
|
execjs (1.3.0)
|
85
98
|
multi_json (~> 1.0)
|
86
99
|
factory_girl (2.6.1)
|
87
100
|
activesupport (>= 2.3.9)
|
101
|
+
factory_girl_rails (1.7.0)
|
102
|
+
factory_girl (~> 2.6.0)
|
103
|
+
railties (>= 3.0.0)
|
88
104
|
ffaker (1.13.0)
|
89
105
|
ffi (1.0.11)
|
90
106
|
fuubar (1.0.0)
|
@@ -114,12 +130,12 @@ GEM
|
|
114
130
|
nokogiri (1.5.0)
|
115
131
|
paper_trail (2.6.0)
|
116
132
|
rails (~> 3)
|
117
|
-
paperclip (2.
|
133
|
+
paperclip (2.7.0)
|
118
134
|
activerecord (>= 2.3.0)
|
119
135
|
activesupport (>= 2.3.2)
|
120
136
|
cocaine (>= 0.0.2)
|
121
137
|
mime-types
|
122
|
-
pg (0.
|
138
|
+
pg (0.13.2)
|
123
139
|
polyamorous (0.5.0)
|
124
140
|
activerecord (~> 3.0)
|
125
141
|
polyglot (0.3.3)
|
@@ -192,7 +208,7 @@ GEM
|
|
192
208
|
ffi (~> 1.0)
|
193
209
|
multi_json (~> 1.0)
|
194
210
|
rubyzip
|
195
|
-
simple_form (
|
211
|
+
simple_form (2.0.1)
|
196
212
|
actionpack (~> 3.0)
|
197
213
|
activemodel (~> 3.0)
|
198
214
|
spork (0.9.0)
|
@@ -227,30 +243,34 @@ DEPENDENCIES
|
|
227
243
|
acts_as_list (~> 0.1.4)
|
228
244
|
ajax-chosen-rails (>= 0.1.5)
|
229
245
|
authlogic (~> 3.1.0)
|
246
|
+
cancan
|
230
247
|
capybara
|
231
|
-
chosen-rails
|
232
|
-
coffee-rails
|
248
|
+
chosen-rails!
|
249
|
+
coffee-rails (~> 3.2.1)
|
233
250
|
database_cleaner
|
251
|
+
dynamic_form
|
234
252
|
factory_girl (~> 2.6.1)
|
253
|
+
factory_girl_rails (~> 1.7.0)
|
235
254
|
ffaker (>= 1.12.0)
|
236
255
|
fuubar
|
237
256
|
haml (~> 3.1.3)
|
238
257
|
headless
|
239
258
|
jquery-rails
|
240
259
|
paper_trail
|
241
|
-
paperclip (~> 2.
|
242
|
-
pg (~> 0.
|
260
|
+
paperclip (~> 2.7.0)
|
261
|
+
pg (~> 0.13.2)
|
243
262
|
prototype-rails
|
244
263
|
rails (~> 3.2.2)
|
245
264
|
ransack!
|
265
|
+
responds_to_parent!
|
246
266
|
rspec-rails
|
247
267
|
ruby-debug
|
248
268
|
ruby-debug19
|
249
269
|
sass (~> 3.1.15)
|
250
|
-
sass-rails
|
251
|
-
simple_form (~>
|
270
|
+
sass-rails (~> 3.2.3)
|
271
|
+
simple_form (~> 2.0.1)
|
252
272
|
spork
|
253
273
|
steak
|
254
274
|
therubyracer
|
255
|
-
uglifier
|
275
|
+
uglifier (>= 1.0.3)
|
256
276
|
will_paginate (~> 3.0.2)
|
data/README.md
CHANGED
@@ -58,159 +58,72 @@ Pull requests and bug reports are always welcome!
|
|
58
58
|
* MySQL v4.1.1 or later (v5+ is recommended), SQLite v3.4 or later, or Postgres 8.4.8 or later.
|
59
59
|
* ImageMagick (optional, only needed if you would like to use avatars)
|
60
60
|
|
61
|
-
(Ruby on Rails
|
61
|
+
(Ruby on Rails and other gem dependencies will be installed automatically by Bundler.)
|
62
62
|
|
63
63
|
|
64
64
|
### Downloads
|
65
65
|
|
66
|
-
* Git source code repository: git://github.com/fatfreecrm/fat_free_crm.git
|
67
|
-
*
|
66
|
+
* Git source code repository: `git clone git://github.com/fatfreecrm/fat_free_crm.git`
|
67
|
+
* **.zip** or **.tgz** archives: http://github.com/fatfreecrm/fat_free_crm/downloads
|
68
68
|
|
69
69
|
|
70
|
-
|
70
|
+
## Installation
|
71
71
|
|
72
|
-
|
73
|
-
needs to be updated.
|
74
|
-
|
75
|
-
Please run the following commands in this order:
|
76
|
-
|
77
|
-
```bash
|
78
|
-
bundle install --without heroku # Installs gem dependencies
|
79
|
-
rake ffcrm:upgrade:schema # Updates your schema to use the new timestamped migrations
|
80
|
-
rake db:migrate # Runs any new database migrations.
|
81
|
-
```
|
72
|
+
Please view one of the following installation guides:
|
82
73
|
|
83
|
-
|
74
|
+
### [Setup Linux or Mac OS](http://guides.fatfreecrm.com/Setup-Linux-or-Mac-OS.html)
|
84
75
|
|
85
|
-
|
76
|
+
Installing Fat Free CRM on Linux or Mac OS X
|
86
77
|
|
87
|
-
|
88
|
-
gem install heroku
|
89
|
-
```
|
78
|
+
### [Setup Heroku](http://guides.fatfreecrm.com/Setup-Heroku.html)
|
90
79
|
|
91
|
-
|
80
|
+
Setting up a Heroku instance for Fat Free CRM
|
92
81
|
|
93
|
-
|
94
|
-
app_name="{{organization-crm}}" # <- Replace with your desired application name
|
95
|
-
cp config/settings.yml.example config/settings.yml
|
96
|
-
git add -f config/settings.yml
|
97
|
-
git commit -m "Added default settings.yml"
|
98
|
-
heroku create $app_name --stack cedar
|
99
|
-
git push heroku master
|
100
|
-
heroku run rake ffcrm:setup USERNAME=admin PASSWORD=admin EMAIL=admin@example.com
|
101
|
-
heroku config:add HEROKU=true
|
102
|
-
```
|
82
|
+
### [Setup Microsoft Windows](http://guides.fatfreecrm.com/Setup-Microsoft-Windows.html)
|
103
83
|
|
104
|
-
|
84
|
+
Installing Fat Free CRM on Microsoft Windows
|
105
85
|
|
106
|
-
|
86
|
+
### [Ubuntu Server Setup Script](http://guides.fatfreecrm.com/Ubuntu-Server-Setup-Script.html)
|
107
87
|
|
108
|
-
|
109
|
-
sample database configuration files, such as: <tt>config/database.mysql.yml</tt>
|
110
|
-
for MySQL and <tt>config/database.sqlite.yml</tt> for SQLite.
|
88
|
+
Run this bash script to quickly setup a Ubuntu server
|
111
89
|
|
112
|
-
|
90
|
+
### [Running Fat Free CRM as a Rails Engine](http://guides.fatfreecrm.com/Running-as-a-Rails-Engine.html)
|
113
91
|
|
114
|
-
|
115
|
-
|
116
|
-
```
|
92
|
+
Run the Fat Free CRM gem within a separate Rails application.
|
93
|
+
This is the best way to deploy Fat Free CRM if you need to add plugins or make any customizations.
|
117
94
|
|
118
|
-
* Edit <tt>config/database.yml</tt> and specify database names and authentication details.
|
119
95
|
|
120
|
-
|
96
|
+
## Upgrading from previous versions of Fat Free CRM
|
121
97
|
|
98
|
+
If you are upgrading from version 0.10.1 or below to the latest Rails 3.x version, your database schema
|
99
|
+
needs to be updated.
|
122
100
|
|
123
|
-
|
124
|
-
|
125
|
-
After you have uncommented the right database adapter in your <tt>Gemfile</tt>,
|
126
|
-
run the following command from the application's root directory:
|
127
|
-
|
128
|
-
```bash
|
129
|
-
bundle install --without heroku
|
130
|
-
```
|
131
|
-
|
132
|
-
#### Create Database
|
133
|
-
|
134
|
-
Now you are ready to create the database:
|
135
|
-
|
136
|
-
```bash
|
137
|
-
rake db:create
|
138
|
-
```
|
139
|
-
|
140
|
-
#### Set Up Application
|
141
|
-
|
142
|
-
The next step is to load default Fat Free CRM settings, such as menu structures,
|
143
|
-
default colors, etc. and create the Admin user.
|
144
|
-
|
145
|
-
Using the provided sample, create your <tt>config/settings.yml</tt>:
|
146
|
-
|
147
|
-
```bash
|
148
|
-
cp config/settings.yml.example config/settings.yml
|
149
|
-
```
|
150
|
-
|
151
|
-
* Edit <tt>config/settings.yml</tt> and configure any required settings, such as your host, base URL and language (locale).
|
152
|
-
|
153
|
-
|
154
|
-
Next, run the following rake task:
|
155
|
-
|
156
|
-
```bash
|
157
|
-
rake ffcrm:setup
|
158
|
-
```
|
159
|
-
|
160
|
-
The previous command will prompt you for an admin user, password and email.
|
161
|
-
If you want to run this task without any user input, you can set the following variables:
|
162
|
-
|
163
|
-
```bash
|
164
|
-
rake ffcrm:setup USERNAME=admin PASSWORD=password EMAIL=admin@example.com
|
165
|
-
```
|
166
|
-
|
167
|
-
#### Load Demo Data (Optional)
|
168
|
-
|
169
|
-
You can test drive Fat Free CRM by loading sample records that are generated
|
170
|
-
on the fly mimic the actual use.
|
171
|
-
|
172
|
-
**IMPORTANT**: Loading demo will delete all existing data from your database.
|
173
|
-
|
174
|
-
```bash
|
175
|
-
rake ffcrm:demo:load
|
176
|
-
```
|
177
|
-
|
178
|
-
Among other things the demo generator creates 8 sample user records with the
|
179
|
-
following usernames: <tt>aaron</tt>, <tt>ben</tt>, <tt>cindy</tt>, <tt>dan</tt>,
|
180
|
-
<tt>elizabeth</tt>, <tt>frank</tt>, <tt>george</tt>, and <tt>heather</tt>.
|
181
|
-
You can log in with any of these names using the name as password.
|
182
|
-
The demo site at http://demo.fatfreecrm.com provides access as a sample user as well.
|
183
|
-
|
184
|
-
You can reset the database and reload demo data at any time by using:
|
101
|
+
Please run the following commands in this order:
|
185
102
|
|
186
103
|
```bash
|
187
|
-
|
104
|
+
bundle install --without heroku # Installs gem dependencies
|
105
|
+
rake ffcrm:upgrade:schema # Updates your schema to use the new timestamped migrations
|
106
|
+
rake db:migrate # Runs any new database migrations.
|
188
107
|
```
|
189
108
|
|
190
|
-
#### Run the App
|
191
|
-
|
192
|
-
Now you should be able to launch the Rails server and point your web browser
|
193
|
-
to http://localhost:3000
|
194
109
|
|
195
|
-
|
196
|
-
rails server
|
197
|
-
```
|
198
|
-
|
199
|
-
# Resources
|
110
|
+
## Resources
|
200
111
|
|
201
112
|
|||
|
202
113
|
|-----------------------------------:|:--------------------------|
|
203
|
-
| **Home
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
212
|
-
|
213
|
-
|
114
|
+
| **Home Page**: | http://www.fatfreecrm.com |
|
115
|
+
| **Guides**: | http://guides.fatfreecrm.com |
|
116
|
+
| **Online Demo**: | http://demo.fatfreecrm.com |
|
117
|
+
| **Github Project Page**: | http://github.com/fatfreecrm/fat_free_crm |
|
118
|
+
| **Feature Requests and Bugs**: | http://support.fatfreecrm.com/ |
|
119
|
+
| **RDoc API**: | http://api.fatfreecrm.com |
|
120
|
+
| **Twitter Commit Updates**: | http://twitter.com/fatfreecrm |
|
121
|
+
| **User's Google Group**: | http://groups.google.com/group/fat-free-crm-users |
|
122
|
+
| **Developer's Google Group**: | http://groups.google.com/group/fat-free-crm-dev |
|
123
|
+
| **IRC Channel**: | [#fatfreecrm](http://webchat.freenode.net/) on irc.freenode.net |
|
124
|
+
|
125
|
+
|
126
|
+
## For Developers
|
214
127
|
|
215
128
|
Fat Free CRM can be customized by implementing callback hooks and extended by
|
216
129
|
creating Rails Engines plugins. Check out these sample repositories demonstrating
|
@@ -1,3 +1,20 @@
|
|
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
|
+
|
1
18
|
var crm = {
|
2
19
|
|
3
20
|
EXPANDED : "▼",
|
@@ -152,8 +169,12 @@ var crm = {
|
|
152
169
|
$("account_disabled_title").show();
|
153
170
|
$("account_name").hide();
|
154
171
|
$("account_name").disable();
|
172
|
+
// Disable chosen account select
|
155
173
|
$("account_id").disable();
|
174
|
+
Event.fire($("account_id"), "liszt:updated");
|
156
175
|
$("account_id_chzn").show();
|
176
|
+
// Enable hidden account id select so that value is POSTed
|
177
|
+
$("account_id").enable();
|
157
178
|
},
|
158
179
|
|
159
180
|
//----------------------------------------------------------------------------
|
@@ -450,7 +471,7 @@ document.observe("dom:loaded", function() {
|
|
450
471
|
|
451
472
|
if (container) {
|
452
473
|
var img = new Image;
|
453
|
-
img.src = '/assets/loading.gif';
|
474
|
+
img.src = crm.base_url + '/assets/loading.gif';
|
454
475
|
|
455
476
|
function createSpinner() {
|
456
477
|
return new Element('img', { src: img.src, 'class': 'spinner' })
|
@@ -15,11 +15,10 @@
|
|
15
15
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
16
16
|
//------------------------------------------------------------------------------
|
17
17
|
|
18
|
-
|
19
18
|
//----------------------------------------------------------------------------
|
20
19
|
// AJAX loads the form fields for each field group
|
21
20
|
crm.load_field_group = function(controller, tag, asset_id) {
|
22
|
-
new Ajax.Request('/'+ controller +'/field_group', {
|
21
|
+
new Ajax.Request(crm.base_url + '/' + controller +'/field_group', {
|
23
22
|
asynchronous: true,
|
24
23
|
evalScripts: true,
|
25
24
|
method: 'get',
|
@@ -44,4 +43,4 @@ crm.close_all_forms = function() {
|
|
44
43
|
$$('.close').each(function(el){
|
45
44
|
new Ajax.Request(el.href, {asynchronous: true, method: "get"})
|
46
45
|
});
|
47
|
-
};
|
46
|
+
};
|
@@ -1 +1,18 @@
|
|
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
|
+
|
1
18
|
jQuery.noConflict();
|