fat_free_crm 0.24.3 → 0.25.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.

Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +345 -7
  3. data/README.md +22 -19
  4. data/app/assets/stylesheets/advanced_search.css.scss +1 -1
  5. data/app/assets/stylesheets/base.scss +11 -7
  6. data/app/assets/stylesheets/common.scss +20 -17
  7. data/app/assets/stylesheets/header.scss +2 -2
  8. data/app/assets/stylesheets/rails.scss +2 -2
  9. data/app/controllers/comments_controller.rb +1 -1
  10. data/app/controllers/entities/contacts_controller.rb +3 -1
  11. data/app/controllers/entities/leads_controller.rb +3 -1
  12. data/app/controllers/home_controller.rb +1 -1
  13. data/app/controllers/users_controller.rb +1 -1
  14. data/app/helpers/application_helper.rb +42 -4
  15. data/app/helpers/contacts_helper.rb +28 -0
  16. data/app/mailers/subscription_mailer.rb +1 -1
  17. data/app/models/entities/account.rb +2 -0
  18. data/app/models/observers/opportunity_observer.rb +1 -1
  19. data/app/views/accounts/_contact_info.html.haml +14 -6
  20. data/app/views/accounts/_index_long.html.haml +1 -1
  21. data/app/views/accounts/_sidebar_show.html.haml +23 -5
  22. data/app/views/admin/users/_user.html.haml +6 -4
  23. data/app/views/comments/_comment.html.haml +3 -3
  24. data/app/views/contacts/_extra.html.haml +3 -3
  25. data/app/views/contacts/_index_full.html.haml +2 -2
  26. data/app/views/contacts/_index_long.html.haml +2 -2
  27. data/app/views/contacts/_section_general.html.haml +1 -1
  28. data/app/views/contacts/_sidebar_show.html.haml +3 -3
  29. data/app/views/contacts/_top_section.html.haml +2 -2
  30. data/app/views/contacts/_web.html.haml +1 -1
  31. data/app/views/home/_account.html.haml +1 -1
  32. data/app/views/layouts/application.html.haml +4 -0
  33. data/app/views/leads/_contact.html.haml +3 -3
  34. data/app/views/leads/_index_long.html.haml +2 -2
  35. data/app/views/leads/_opportunity.html.haml +2 -2
  36. data/app/views/leads/_sidebar_show.html.haml +2 -2
  37. data/app/views/leads/_status.html.haml +1 -1
  38. data/app/views/leads/_top_section.html.haml +1 -1
  39. data/app/views/opportunities/_top_section.html.haml +2 -2
  40. data/app/views/tasks/create.js.haml +1 -1
  41. data/app/views/users/_profile.html.haml +2 -2
  42. data/app/views/users/_user.html.haml +6 -5
  43. data/config/initializers/simple_form.rb +1 -1
  44. data/config/locales/fat_free_crm.cs.yml +3 -3
  45. data/config/locales/fat_free_crm.de.yml +3 -3
  46. data/config/locales/fat_free_crm.en-GB.yml +3 -3
  47. data/config/locales/fat_free_crm.en-US.yml +3 -3
  48. data/config/locales/fat_free_crm.es-CL.yml +3 -3
  49. data/config/locales/fat_free_crm.es.yml +3 -3
  50. data/config/locales/fat_free_crm.et.yml +3 -3
  51. data/config/locales/fat_free_crm.fr-CA.yml +3 -3
  52. data/config/locales/fat_free_crm.fr.yml +3 -3
  53. data/config/locales/fat_free_crm.it.yml +3 -3
  54. data/config/locales/fat_free_crm.ja.yml +3 -3
  55. data/config/locales/fat_free_crm.nl.yml +3 -3
  56. data/config/locales/fat_free_crm.pl.yml +3 -3
  57. data/config/locales/fat_free_crm.pt-BR.yml +3 -3
  58. data/config/locales/fat_free_crm.ru.yml +3 -3
  59. data/config/locales/fat_free_crm.sv-SE.yml +3 -3
  60. data/config/locales/fat_free_crm.th.yml +3 -3
  61. data/config/locales/fat_free_crm.zh-CN.yml +3 -3
  62. data/config/settings.default.yml +10 -2
  63. data/db/demo/accounts.yml +2 -0
  64. data/db/fat_free_crm_development.sqlite3 +0 -0
  65. data/db/{fat_free_crm_test.sqlite3-shm → fat_free_crm_development.sqlite3-shm} +0 -0
  66. data/db/fat_free_crm_development.sqlite3-wal +0 -0
  67. data/db/fat_free_crm_test.sqlite3 +0 -0
  68. data/db/migrate/20100928030623_create_addresses.rb +1 -1
  69. data/db/migrate/20250805093408_add_latitude_and_longitude_to_accounts.rb +8 -0
  70. data/db/schema.rb +12 -1
  71. data/lib/fat_free_crm/fields.rb +3 -0
  72. data/lib/fat_free_crm/mail_processor/dropbox.rb +1 -1
  73. data/lib/fat_free_crm/version.rb +2 -2
  74. metadata +10 -9
  75. data/db/fat_free_crm_test.sqlite3-wal +0 -0
@@ -47,11 +47,11 @@
47
47
  |
48
48
  - if lead.phone.present?
49
49
  == #{t :phone_small}:
50
- %b= lead.phone
50
+ %b= link_to_phone(lead.phone)
51
51
  |
52
52
  - if lead.mobile.present?
53
53
  == #{t :mobile_small}:
54
- %b= lead.mobile
54
+ %b= link_to_phone(lead.mobile)
55
55
  |
56
56
  = t(:added_ago, value: timeago(lead.created_at)).html_safe
57
57
 
@@ -29,9 +29,9 @@
29
29
  = o.text_field :probability, style: "width:110px; text-align:right;"
30
30
  %td= spacer
31
31
  %td
32
- .label #{t :amount} #{t :currency}:
32
+ .label #{t :amount} (#{t :currency}):
33
33
  = o.text_field :amount, style: "width:110px; text-align:right;"
34
34
  %td= spacer
35
35
  %td
36
- .label #{t :discount} #{t :currency}:
36
+ .label #{t :discount} (#{t :currency}):
37
37
  = o.text_field :discount, style: "width:110px; text-align:right;"
@@ -11,9 +11,9 @@
11
11
 
12
12
  %div
13
13
  - if @lead.phone.present?
14
- == #{t :phone}: <b>#{@lead.do_not_call ? content_tag(:strike, @lead.phone) : @lead.phone}</b><br />
14
+ == #{t :phone}: <b>#{@lead.do_not_call ? content_tag(:strike, @lead.phone) : link_to_phone(@lead.phone)}</b><br />
15
15
  - if @lead.mobile.present?
16
- == #{t :mobile}: <b>#{@lead.do_not_call ? content_tag(:strike, @lead.mobile) : @lead.mobile}</b><br />
16
+ == #{t :mobile}: <b>#{@lead.do_not_call ? content_tag(:strike, @lead.mobile) : link_to_phone(@lead.mobile)}</b><br />
17
17
  - if @lead.email.present?
18
18
  == #{t :email}: <b>#{link_to_email(@lead.email)}</b><br />
19
19
  - if @lead.alt_email.present?
@@ -1,5 +1,5 @@
1
1
  - edit ||= false
2
- - collapsed = session[:lead_status].nil? # && @lead.errors.empty?
2
+ - collapsed = false
3
3
  = subtitle :lead_status, collapsed, t(:status)
4
4
 
5
5
  .section
@@ -17,7 +17,7 @@
17
17
  %td= spacer
18
18
  %td
19
19
  .label #{t :phone}:
20
- = f.text_field :phone
20
+ = phone_field_with_pattern(f, :phone)
21
21
 
22
22
  - if Setting.background_info && Setting.background_info.include?(:lead)
23
23
  %tr
@@ -21,11 +21,11 @@
21
21
  = f.text_field :probability, style: "width:110px; text-align:right;"
22
22
  %td= spacer
23
23
  %td
24
- .label #{t :amount} #{t :currency}:
24
+ .label #{t :amount} (#{t :currency}):
25
25
  = f.text_field :amount, style: "width:110px; text-align:right;"
26
26
  %td= spacer
27
27
  %td
28
- .label #{t :discount} #{t :currency}:
28
+ .label #{t :discount} (#{t :currency}):
29
29
  = f.text_field :discount, style: "width:110px; text-align:right;"
30
30
 
31
31
  = fields_for(@account) do |a|
@@ -26,7 +26,7 @@
26
26
 
27
27
  crm.flick('empty', 'remove');
28
28
 
29
- - else # Inline [Create Task] form reqested from any of the core asset landing pages.
29
+ - else # Inline [Create Task] form requested from any of the core asset landing pages.
30
30
  $('#create_task_title').html('#{ j t(:tasks) }');
31
31
  - partial = (@task.assigned_to && @task.assigned_to != current_user.id) ? "assigned" : "pending"
32
32
  $('#tasks').prepend('#{ j render(partial: "tasks/#{partial}", collection: [@task], locals: { bucket: nil }) }');
@@ -36,11 +36,11 @@
36
36
  %tr
37
37
  %td{ colspan: 3 }
38
38
  .label #{t :phone}:
39
- = f.text_field :phone
39
+ = phone_field_with_pattern(f, :phone)
40
40
  %td= spacer
41
41
  %td{ colspan: 3 }
42
42
  .label #{t :mobile}:
43
- = f.text_field :mobile
43
+ = phone_field_with_pattern(f, :mobile)
44
44
  %tr
45
45
  %td
46
46
  .label #{t :aim}:
@@ -20,14 +20,15 @@
20
20
  - unless @user.alt_email.blank?
21
21
  #{t :or} #{auto_link(@user.alt_email)}
22
22
  - if !@user.phone.blank? && !@user.mobile.blank?
23
- %div #{t :phone}: <b>#{@user.phone}</b>, #{t :mobile}: <b>#{@user.mobile}</b>
23
+ %div
24
+ == #{t :phone}: <b>#{link_to_phone(@user.phone)}</b>, #{t :mobile}: <b>#{link_to_phone(@user.mobile)}</b>
24
25
  - else
25
26
  - if @user.phone.present?
26
- = t(:phone) + ":"
27
- = content_tag(:b, @user.phone)
27
+ %div
28
+ == #{t :phone}: <b>#{link_to_phone(@user.phone)}</b>
28
29
  - if @user.mobile.present?
29
- = t(:mobile) + ":"
30
- = content_tag(:b, @user.mobile)
30
+ %div
31
+ == #{t :mobile}: <b>#{link_to_phone(@user.mobile)}</b>
31
32
 
32
33
  - if Setting.per_user_locale
33
34
  %script= render "languages"
@@ -118,7 +118,7 @@ SimpleForm.setup do |config|
118
118
  # You can define the class to use on all labels. Default is nil.
119
119
  # config.label_class = nil
120
120
 
121
- # You can define the default class to be used on forms. Can be overriden
121
+ # You can define the default class to be used on forms. Can be overridden
122
122
  # with `html: { :class }`. Defaulting to none.
123
123
  # config.default_form_class = nil
124
124
 
@@ -293,7 +293,7 @@ cs:
293
293
  actual: Aktuální
294
294
  actual_performance: Aktuální výkonnost
295
295
  budget: Rozpočet
296
- budget_label: Ropočet (CZK)
296
+ budget_label: Ropočet (%{currency})
297
297
  campaign: Kampaň
298
298
  campaign_and_leads: Kampaň a potenciální klienti
299
299
  campaign_small: kampaň
@@ -317,7 +317,7 @@ cs:
317
317
  pomohou určit výkonost kampaně.
318
318
  objectives_small: cíle kampaně
319
319
  revenue: tržba
320
- revenue_label: Tržba (CZK)
320
+ revenue_label: Tržba (%{currency})
321
321
  revenue_number: ! '%{value} tržba'
322
322
  save_campaign: Uložit kampaň
323
323
  start_date: Počáteční datum
@@ -396,7 +396,7 @@ cs:
396
396
  closes_today: Očekávané uzavření dnes!
397
397
  closing_date: datum uzavření je %{value}
398
398
  create_opportunity: Vytvořit příležitost
399
- currency: (CZK)
399
+ currency: "CZK"
400
400
  days_late: Spoždění
401
401
  days_left: Zbývá dnů
402
402
  discount: Rabat
@@ -128,8 +128,8 @@ de:
128
128
  keep_private: nur für mich sichtbar
129
129
  select_none: -- Kein(e) --
130
130
  about_ffc_version: Fat Free CRM version
131
- budget_label: Budget ()
132
- currency: ()
131
+ budget_label: Budget (%{currency})
132
+ currency: ""
133
133
  close_date: Abschlussdatum
134
134
  login_now_link: Login!
135
135
  user_signed_up_on: Angemeldet am %{value}
@@ -453,7 +453,7 @@ de:
453
453
  select_contact: Wähle einen Kontakt aus
454
454
  create_field_group: Erstelle Gruppe.
455
455
  create_opportunity: Erstelle Chance
456
- revenue_label: Umsatz ()
456
+ revenue_label: Umsatz (%{currency})
457
457
  about_project_page: Projekt-Page
458
458
  tab_dashboard: Dashboard
459
459
  weighted_amount: Gewichteter Betrag
@@ -347,7 +347,7 @@ en-GB:
347
347
  actual: Actual
348
348
  actual_performance: Actual Performance
349
349
  budget: Budget
350
- budget_label: Budget (£)
350
+ budget_label: Budget (%{currency})
351
351
  campaign: Campaign
352
352
  campaign_and_leads: campaign and its leads
353
353
  campaign_small: campaign
@@ -373,7 +373,7 @@ en-GB:
373
373
  you track actual campaign performance.
374
374
  objectives_small: campaign objectives
375
375
  revenue: Revenue
376
- revenue_label: Revenue (£)
376
+ revenue_label: Revenue (%{currency})
377
377
  revenue_number: ! '%{value} in revenue'
378
378
  save_campaign: Save Campaign
379
379
  start_date: Start date
@@ -477,7 +477,7 @@ en-GB:
477
477
  closes_today: expected to close today!
478
478
  closing_date: closing date is %{value}
479
479
  create_opportunity: Create Opportunity
480
- currency: (£)
480
+ currency: "£"
481
481
  days_late: Late by
482
482
  days_left: Days left
483
483
  discount: Discount
@@ -347,7 +347,7 @@ en-US:
347
347
  actual: Actual
348
348
  actual_performance: Actual Performance
349
349
  budget: Budget
350
- budget_label: Budget ($)
350
+ budget_label: Budget (%{currency})
351
351
  campaign: Campaign
352
352
  campaign_and_leads: campaign and its leads
353
353
  campaign_small: campaign
@@ -373,7 +373,7 @@ en-US:
373
373
  you track actual campaign performance.
374
374
  objectives_small: campaign objectives
375
375
  revenue: Revenue
376
- revenue_label: Revenue ($)
376
+ revenue_label: Revenue (%{currency})
377
377
  revenue_number: ! '%{value} in revenue'
378
378
  save_campaign: Save Campaign
379
379
  start_date: Start date
@@ -477,7 +477,7 @@ en-US:
477
477
  closes_today: expected to close today!
478
478
  closing_date: closing date is %{value}
479
479
  create_opportunity: Create Opportunity
480
- currency: ($)
480
+ currency: "$"
481
481
  days_late: Late by
482
482
  days_left: Days left
483
483
  discount: Discount
@@ -348,7 +348,7 @@ es-CL:
348
348
  actual: Real
349
349
  actual_performance: Rendimiento Real
350
350
  budget: Presupuesto
351
- budget_label: Presupuesto ($)
351
+ budget_label: Presupuesto (%{currency})
352
352
  campaign: Campaña
353
353
  campaign_and_leads: campaña y sus iniciativas
354
354
  campaign_small: campaña
@@ -373,7 +373,7 @@ es-CL:
373
373
  al tanto de los resultados reales de la campaña.
374
374
  objectives_small: objetivos de la campaña
375
375
  revenue: Ingresos
376
- revenue_label: Ingresos ($)
376
+ revenue_label: Ingresos (%{currency})
377
377
  revenue_number: ! '%{value} de ingresos'
378
378
  save_campaign: Guardar Campaña
379
379
  start_date: Fecha de inicio
@@ -475,7 +475,7 @@ es-CL:
475
475
  closes_today: ¡Cierre previsto hoy!
476
476
  closing_date: la fecha de cierre es el %{value}
477
477
  create_opportunity: Crear oportunidad
478
- currency: ($)
478
+ currency: "$"
479
479
  days_late: Retraso de
480
480
  days_left: Días restantes
481
481
  discount: Descuento
@@ -340,7 +340,7 @@ es:
340
340
  actual: Actual
341
341
  actual_performance: Rendimiento Actual
342
342
  budget: Presupuesto
343
- budget_label: Presupuesto ()
343
+ budget_label: Presupuesto (%{currency})
344
344
  campaign: Campaña
345
345
  campaign_and_leads: campaña y sus iniciativas
346
346
  campaign_small: campaña
@@ -366,7 +366,7 @@ es:
366
366
  real de la campaña.
367
367
  objectives_small: campañas esperadas
368
368
  revenue: Ingresos
369
- revenue_label: Ingresos ()
369
+ revenue_label: Ingresos (%{currency})
370
370
  revenue_number: ! '%{value} en ingresos'
371
371
  save_campaign: Guardar Campaña
372
372
  start_date: Fecha de inicio
@@ -463,7 +463,7 @@ es:
463
463
  closes_today: ¡Se espera que se cierre hoy!
464
464
  closing_date: la fecha de cierre es %{value}
465
465
  create_opportunity: Crear Oportunidad
466
- currency: ()
466
+ currency: ""
467
467
  days_late: Tarde por
468
468
  days_left: Días que quedan
469
469
  discount: Descuento
@@ -341,7 +341,7 @@ et:
341
341
  actual: Aktuaalne
342
342
  actual_performance: Aktuaalne jõudlus
343
343
  budget: Eelarve
344
- budget_label: Eelarve ()
344
+ budget_label: Eelarve (%{currency})
345
345
  campaign: Kampaania
346
346
  campaign_and_leads: kampaania ja selle juhtlõngad
347
347
  campaign_small: kampaania
@@ -366,7 +366,7 @@ et:
366
366
  Need numbrid aitavad Sul jälgida tegelikku kampaania jõudlust.
367
367
  objectives_small: kampaania eesmärgid
368
368
  revenue: Tulu
369
- revenue_label: Tulu ()
369
+ revenue_label: Tulu (%{currency})
370
370
  revenue_number: ! '%{value} tulu'
371
371
  save_campaign: Salvesta kampaania
372
372
  start_date: Alguskuupäev
@@ -468,7 +468,7 @@ et:
468
468
  closes_today: lõppeb täna!
469
469
  closing_date: lõppkuupäev on %{value}
470
470
  create_opportunity: Loo väljavaade
471
- currency: ()
471
+ currency: ""
472
472
  days_late: üle aja
473
473
  days_left: Päevi jäänud
474
474
  discount: Allahindlus
@@ -271,7 +271,7 @@ fr-CA:
271
271
  actual: Actuel
272
272
  actual_performance: Performance Actuelle
273
273
  budget: Budget
274
- budget_label: Budget ($)
274
+ budget_label: Budget (%{currency})
275
275
  campaign: Campagne
276
276
  campaign_and_leads: campagne et ses pistes
277
277
  campaign_small: campagne
@@ -295,7 +295,7 @@ fr-CA:
295
295
  de l'évaluation des performances de la campagne
296
296
  objectives_small: objectifs de la campagne
297
297
  revenue: Revenu
298
- revenue_label: Revenu ($)
298
+ revenue_label: Revenu (%{currency})
299
299
  revenue_number: ! '%{value} pour revenu'
300
300
  save_campaign: Enregistrer la campagne
301
301
  start_date: Date de début
@@ -377,7 +377,7 @@ fr-CA:
377
377
  closes_today: doit être clôturé aujourd'hui!
378
378
  closing_date: la date de clôture est %{value}
379
379
  create_opportunity: Créer une opportunité
380
- currency: ($)
380
+ currency: "$"
381
381
  days_late: En retard de
382
382
  days_left: Jours restant
383
383
  discount: Remise
@@ -346,7 +346,7 @@ fr:
346
346
  actual: Etat actuel
347
347
  actual_performance: Performance Actuelle
348
348
  budget: Budget
349
- budget_label: Budget ()
349
+ budget_label: Budget (%{currency})
350
350
  campaign: Campagne
351
351
  campaign_and_leads: campagne et ses pistes
352
352
  campaign_small: campagne
@@ -371,7 +371,7 @@ fr:
371
371
  de l'évaluation des performances de la campagne
372
372
  objectives_small: Objectifs de la campagne
373
373
  revenue: Revenu
374
- revenue_label: Revenu ()
374
+ revenue_label: Revenu (%{currency})
375
375
  revenue_number: ! '%{value} pour revenu'
376
376
  save_campaign: Enregistrer la campagne
377
377
  start_date: Date de début
@@ -475,7 +475,7 @@ fr:
475
475
  closes_today: doit être clôturé aujourd'hui!
476
476
  closing_date: la date de clôture est %{value}
477
477
  create_opportunity: Créer une opportunité
478
- currency: ()
478
+ currency: ""
479
479
  days_late: En retard de
480
480
  days_left: Jours restant
481
481
  discount: Remise
@@ -269,7 +269,7 @@ it:
269
269
  actual: Attuale
270
270
  actual_performance: Performance attuale
271
271
  budget: Budget
272
- budget_label: Budget ()
272
+ budget_label: Budget (%{currency})
273
273
  campaign: Campagna
274
274
  campaign_and_leads: campagna e suoi potenziali
275
275
  campaign_small: campagna
@@ -294,7 +294,7 @@ it:
294
294
  campagna.
295
295
  objectives_small: obiettivi campagna
296
296
  revenue: Gettito
297
- revenue_label: Gettito ()
297
+ revenue_label: Gettito (%{currency})
298
298
  revenue_number: ! '%{value} in gettito'
299
299
  save_campaign: Salva Campagna
300
300
  start_date: Data Iniziale
@@ -375,7 +375,7 @@ it:
375
375
  closes_today: conclusione prevista oggi!
376
376
  closing_date: data di chiusura e' %{value}
377
377
  create_opportunity: Crea Opportunita'
378
- currency: ($)
378
+ currency: "€"
379
379
  days_late: Ritardo di
380
380
  days_left: Giorni rimasti
381
381
  discount: Sconto
@@ -336,7 +336,7 @@ ja:
336
336
  actual: 実際
337
337
  actual_performance: 実際結果
338
338
  budget: 予算
339
- budget_label: 予算($)
339
+ budget_label: 予算(%{currency})
340
340
  campaign: キャンペーン
341
341
  campaign_and_leads: キャンペーンとリード
342
342
  campaign_small: キャンペーン
@@ -362,7 +362,7 @@ ja:
362
362
  これらの数字は、実際のキャンペーン結果をトラッキングします。
363
363
  objectives_small: キャンペーン目的
364
364
  revenue: 売上
365
- revenue_label: 売上($)
365
+ revenue_label: 売上(%{currency})
366
366
  revenue_number: ! '%{value}の売上'
367
367
  save_campaign: キャンペーンを保存
368
368
  start_date: 開始日
@@ -473,7 +473,7 @@ ja:
473
473
  closes_today: 本日終了の見込み
474
474
  closing_date: 終了日は%{value}
475
475
  create_opportunity: 商談を作成
476
- currency: ()
476
+ currency: ""
477
477
  days_late: 遅くて
478
478
  days_left: 残りの日
479
479
  discount: 値引き
@@ -341,7 +341,7 @@ nl:
341
341
  actual: Werkelijk
342
342
  actual_performance: Werkelijke prestaties
343
343
  budget: Budget
344
- budget_label: Budget ()
344
+ budget_label: Budget (%{currency})
345
345
  campaign: Campagne
346
346
  campaign_and_leads: campagne en zijn leads
347
347
  campaign_small: campagne
@@ -366,7 +366,7 @@ nl:
366
366
  conversie ratio, doel opbrengst, en het campagne budget. Deze getallen worden gebruikt om het succes van de campange te berekenen.
367
367
  objectives_small: campange doelen
368
368
  revenue: Opbrengst
369
- revenue_label: Opbrengst ()
369
+ revenue_label: Opbrengst (%{currency})
370
370
  revenue_number: ! '%{value} in opbrengst'
371
371
  save_campaign: Bewaar Campagne
372
372
  start_date: Start datum
@@ -465,7 +465,7 @@ nl:
465
465
  closes_today: zal naar verwachting vandaag afronden!
466
466
  closing_date: sluitdatum is %{value}
467
467
  create_opportunity: Maak Kans
468
- currency: ()
468
+ currency: ""
469
469
  days_late: Te laat met
470
470
  days_left: Dagen over
471
471
  discount: Korting
@@ -264,7 +264,7 @@ pl:
264
264
  actual: Bieżące
265
265
  actual_performance: Bieżący postęp
266
266
  budget: Budżet
267
- budget_label: Budżet ()
267
+ budget_label: Budżet (%{currency})
268
268
  campaign: Kampania
269
269
  campaign_and_leads: Kampania i jej leady
270
270
  campaign_small: kampania
@@ -288,7 +288,7 @@ pl:
288
288
  kampanii.
289
289
  objectives_small: cele kampanii
290
290
  revenue: Sprzedaż
291
- revenue_label: Sprzedaż ()
291
+ revenue_label: Sprzedaż (%{currency})
292
292
  revenue_number: ! '%{value} sprzedaży'
293
293
  save_campaign: Zapisz kampanię
294
294
  start_date: Data rozpoczęcia
@@ -367,7 +367,7 @@ pl:
367
367
  closes_today: planowane zamknięcie - dziś!
368
368
  closing_date: ! 'data zamknięcia: %{value}'
369
369
  create_opportunity: Dodaj szansę
370
- currency: ()
370
+ currency: ""
371
371
  days_late: Opóźniona o
372
372
  days_left: Pozostało dni
373
373
  discount: Rabat
@@ -348,7 +348,7 @@ pt-BR:
348
348
  actual: Atual
349
349
  actual_performance: Performance atual
350
350
  budget: Orçamento
351
- budget_label: Orçamento ($)
351
+ budget_label: Orçamento (%{currency})
352
352
  campaign: Campanha
353
353
  campaign_and_leads: campanha e seus leads
354
354
  campaign_small: campanha
@@ -372,7 +372,7 @@ pt-BR:
372
372
  you track actual campaign performance.
373
373
  objectives_small: objetivos da campanha
374
374
  revenue: Receita
375
- revenue_label: Receita ($)
375
+ revenue_label: Receita (%{currency})
376
376
  revenue_number: ! '%{value} em receita'
377
377
  save_campaign: Salvar campanha
378
378
  start_date: Data de início
@@ -451,7 +451,7 @@ pt-BR:
451
451
  closes_today: esperado de fechar hoje!
452
452
  closing_date: data de fechar é %{value}
453
453
  create_opportunity: Cria oportunidade
454
- currency: (R$)
454
+ currency: "R$"
455
455
  days_late: Atrasado
456
456
  days_left: Dias restante
457
457
  discount: Desconto
@@ -352,7 +352,7 @@ ru:
352
352
  actual: Фактически
353
353
  actual_performance: Фактический Результат
354
354
  budget: Бюджет
355
- budget_label: Бюджет (грн.)
355
+ budget_label: Бюджет (%{currency})
356
356
  campaign: Кампания
357
357
  campaign_and_leads: кампании и ее потенциальные клиенты
358
358
  campaign_small: кампании
@@ -379,7 +379,7 @@ ru:
379
379
  кампании.
380
380
  objectives_small: целях кампании
381
381
  revenue: Доход
382
- revenue_label: Доход (грн.)
382
+ revenue_label: Доход (%{currency})
383
383
  revenue_number: ! '%{value} дохода'
384
384
  save_campaign: Сохранить Изменения
385
385
  start_date: Дата начала
@@ -482,7 +482,7 @@ ru:
482
482
  closes_today: завершение ожидается сегодня!
483
483
  closing_date: дата завершения %{value}
484
484
  create_opportunity: Создать возможность
485
- currency: (грн.)
485
+ currency: "грн."
486
486
  days_late: Задержка
487
487
  days_left: Осталось дней
488
488
  discount: Скидка
@@ -255,7 +255,7 @@ sv-SE:
255
255
  actual: Faktisk
256
256
  actual_performance: Faktisk prestanda
257
257
  budget: Budget
258
- budget_label: Budget (kr)
258
+ budget_label: Budget (%{currency})
259
259
  campaign: Kampanj
260
260
  campaign_and_leads: kampanj och leads
261
261
  campaign_small: kampan
@@ -279,7 +279,7 @@ sv-SE:
279
279
  faktiska prestanda.
280
280
  objectives_small: campaign objectives
281
281
  revenue: Intäkter
282
- revenue_label: Intäkter (kr)
282
+ revenue_label: Intäkter (%{currency})
283
283
  revenue_number: ! '%{value} intäkter'
284
284
  save_campaign: Spara kampanj
285
285
  start_date: Startdatum
@@ -362,7 +362,7 @@ sv-SE:
362
362
  closes_today: förväntas bli avslutad idag!
363
363
  closing_date: avslutningsdatum är %{value}
364
364
  create_opportunity: Skapa affär
365
- currency: (kr)
365
+ currency: "kr"
366
366
  days_late: Försenad med
367
367
  days_left: Dagar kvar
368
368
  discount: Rabatt
@@ -259,7 +259,7 @@ th:
259
259
  actual: เกิดขึ้นจริง
260
260
  actual_performance: ประสิทธิที่เกิดขึ้นจริง
261
261
  budget: งบประมาณ
262
- budget_label: งบประมาณ (฿)
262
+ budget_label: งบประมาณ (%{currency})
263
263
  campaign: แคมเปญ
264
264
  campaign_and_leads: แคมเปณ และผู้สนใจในแคมเปณ
265
265
  campaign_small: แคมเปญ
@@ -283,7 +283,7 @@ th:
283
283
  ของโครงการ
284
284
  objectives_small: เป้าหมายของแคมเปญ
285
285
  revenue: รายได้
286
- revenue_label: รายได้ (฿)
286
+ revenue_label: รายได้ (%{currency})
287
287
  revenue_number: รายได้ %{value}
288
288
  save_campaign: บันทึกแคมเปญ
289
289
  start_date: วันเริ่มต้น
@@ -360,7 +360,7 @@ th:
360
360
  closes_today: คาดว่าจะปิดในวันนี้
361
361
  closing_date: วันที่ปิดคือ %{value}
362
362
  create_opportunity: สร้างโอกาสปิดการขาย
363
- currency: (฿)
363
+ currency: "฿"
364
364
  days_late: ล่าช้าไป
365
365
  days_left: จำนวนวันที่เหลือ
366
366
  discount: ส่วนลด
@@ -345,7 +345,7 @@ zh-CN:
345
345
  actual: 实际
346
346
  actual_performance: 实际效益
347
347
  budget: 预算
348
- budget_label: 预算()
348
+ budget_label: 预算(%{currency})
349
349
  campaign: 促销
350
350
  campaign_and_leads: 促销与领导
351
351
  campaign_small: 促销
@@ -371,7 +371,7 @@ zh-CN:
371
371
 
372
372
  objectives_small: 战役目标
373
373
  revenue: 收入
374
- revenue_label: 收入()
374
+ revenue_label: 收入(%{currency})
375
375
  revenue_number: 收入%{value}
376
376
  save_campaign: 保存促销
377
377
  start_date: 开始日期
@@ -475,7 +475,7 @@ zh-CN:
475
475
  closes_today: 预计今天结束!
476
476
  closing_date: 结束日期是 %{value}
477
477
  create_opportunity: 创建商机
478
- currency: ()
478
+ currency: ""
479
479
  days_late: 晚了
480
480
  days_left: 天剩余
481
481
  discount: 折扣
@@ -80,7 +80,7 @@
80
80
  :email_dropbox:
81
81
  :server : "" # IMAP server name.
82
82
  :port : "" # IMAP server port number.
83
- :ssl : "" # True for secure IMAP connection, false othewise.
83
+ :ssl : "" # True for secure IMAP connection, false otherwise.
84
84
  :address : "" # Dropbox email address.
85
85
  :user : "" # User to login to the IMAP server.
86
86
  :password : "" # Password to login to the IMAP server.
@@ -99,7 +99,7 @@
99
99
  :email_comment_replies:
100
100
  :server : "" # IMAP server name.
101
101
  :port : "" # IMAP server port number.
102
- :ssl : "" # True for secure IMAP connection, false othewise.
102
+ :ssl : "" # True for secure IMAP connection, false otherwise.
103
103
  :address : "" # Comment reply email address.
104
104
  :user : "" # User to login to the IMAP server.
105
105
  :password : "" # Password to login to the IMAP server.
@@ -358,3 +358,11 @@ task_completed:
358
358
  - :completed_last_week
359
359
  - :completed_this_month
360
360
  - :completed_last_month
361
+
362
+ # Phone Numbers
363
+ #------------------------------------------------------------------------------
364
+ # Enforce international phone number format (e.g. +1-555-555-5555)
365
+ # When set to true, a 'pattern' attribute will be added to all phone input fields
366
+ # to help guide users to enter phone numbers in international format.
367
+ #
368
+ :enforce_international_phone_format: false
data/db/demo/accounts.yml CHANGED
@@ -44,4 +44,6 @@ account<%= i %>:
44
44
  category : <%= category.sample %>
45
45
  created_at : <%= created_at = (rand(60) + 2).days.ago + rand(600).minutes; created_at.to_fs(:db) %>
46
46
  updated_at : <%= (created_at + rand(36_000).seconds).to_fs(:db) %>
47
+ latitude : <%= FFaker::Geolocation.lat %>
48
+ longitude : <%= FFaker::Geolocation.lng %>
47
49
  <% end %>
Binary file