refinerycms-contacts 0.1.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.
Files changed (72) hide show
  1. data/Gemfile +73 -0
  2. data/Guardfile +27 -0
  3. data/LICENSE.md +8 -0
  4. data/Rakefile +20 -0
  5. data/app/assets/javascripts/refinery/contacts/admin/contacts.js +17 -0
  6. data/app/assets/javascripts/refinery/contacts/admin/jquery.chosen.min.js +10 -0
  7. data/app/assets/javascripts/refinery/contacts/contacts.js +23 -0
  8. data/app/assets/stylesheets/refinery/contacts/admin/chosen.css.scss +396 -0
  9. data/app/assets/stylesheets/refinery/contacts/contacts.css.scss +79 -0
  10. data/app/controllers/refinery/contacts/admin/contacts_controller.rb +14 -0
  11. data/app/controllers/refinery/contacts/mail_messages_controller.rb +26 -0
  12. data/app/helpers/refinery/contacts/admin/contacts_helper.rb +18 -0
  13. data/app/mailers/refinery/contacts/contact_mailer.rb +15 -0
  14. data/app/models/refinery/contact_page.rb +11 -0
  15. data/app/models/refinery/contacts/contact.rb +18 -0
  16. data/app/models/refinery/contacts/mail.rb +13 -0
  17. data/app/models/refinery/contacts/mail_message.rb +15 -0
  18. data/app/models/refinery/contacts/table_less_model.rb +23 -0
  19. data/app/sweepers/refinery/contacts/admin/contact_sweeper.rb +22 -0
  20. data/app/views/refinery/admin/pages/tabs/contacts/_contacts.html.erb +12 -0
  21. data/app/views/refinery/admin/pages/tabs/contacts/_contacts_bar.html.erb +4 -0
  22. data/app/views/refinery/admin/pages/tabs/contacts/_form.html.erb +24 -0
  23. data/app/views/refinery/contacts/admin/contacts/_actions.html.erb +25 -0
  24. data/app/views/refinery/contacts/admin/contacts/_contact.html.erb +17 -0
  25. data/app/views/refinery/contacts/admin/contacts/_contacts.html.erb +2 -0
  26. data/app/views/refinery/contacts/admin/contacts/_form.html.erb +93 -0
  27. data/app/views/refinery/contacts/admin/contacts/_mail_fields.html.erb +7 -0
  28. data/app/views/refinery/contacts/admin/contacts/_records.html.erb +18 -0
  29. data/app/views/refinery/contacts/admin/contacts/_sortable_list.html.erb +5 -0
  30. data/app/views/refinery/contacts/admin/contacts/edit.html.erb +1 -0
  31. data/app/views/refinery/contacts/admin/contacts/index.html.erb +7 -0
  32. data/app/views/refinery/contacts/admin/contacts/new.html.erb +1 -0
  33. data/app/views/refinery/contacts/contact_mailer/contact_form.html.erb +1 -0
  34. data/app/views/refinery/contacts/contact_mailer/contact_form.text.erb +1 -0
  35. data/app/views/refinery/contacts/contacts/_error_info.html.erb +15 -0
  36. data/app/views/refinery/contacts/contacts/_form.html.erb +47 -0
  37. data/app/views/refinery/contacts/contacts/_show.html.erb +50 -0
  38. data/app/views/refinery/contacts/contacts/_success_info.html.erb +8 -0
  39. data/changelog.md +2 -0
  40. data/config/initializers/recaptcha.rb +5 -0
  41. data/config/initializers/refinery/core.rb +4 -0
  42. data/config/locales/en.yml +80 -0
  43. data/config/locales/sk.yml +80 -0
  44. data/config/routes.rb +23 -0
  45. data/db/migrate/1_create_contacts_contacts.rb +36 -0
  46. data/db/migrate/2_create_contacts_mails.rb +17 -0
  47. data/db/migrate/3_create_contact_pages.rb +20 -0
  48. data/db/migrate/4_add_homepage_to_contacts.rb +11 -0
  49. data/db/seeds.rb +13 -0
  50. data/lib/generators/refinery/contacts_generator.rb +28 -0
  51. data/lib/generators/refinery/templates/config/initializers/recaptcha.rb.erb +7 -0
  52. data/lib/generators/refinery/templates/config/initializers/refinery/contacts.rb.erb +4 -0
  53. data/lib/refinery/contacts.rb +23 -0
  54. data/lib/refinery/contacts/configuration.rb +10 -0
  55. data/lib/refinery/contacts/engine.rb +44 -0
  56. data/lib/refinery/contacts/extensions/pages_extension.rb +40 -0
  57. data/lib/refinery/contacts/version.rb +17 -0
  58. data/lib/refinerycms-contacts.rb +1 -0
  59. data/lib/tasks/refinery/contacts.rake +13 -0
  60. data/readme.md +170 -0
  61. data/refinerycms-contacts.gemspec +27 -0
  62. data/script/rails +10 -0
  63. data/spec/models/refinery/contacts/contact_spec.rb +18 -0
  64. data/spec/models/refinery/contacts/mail_spec.rb +18 -0
  65. data/spec/requests/refinery/contacts/admin/contacts_spec.rb +101 -0
  66. data/spec/requests/refinery/contacts/admin/mails_spec.rb +101 -0
  67. data/spec/spec_helper.rb +55 -0
  68. data/spec/support/factories/refinery/contacts.rb +7 -0
  69. data/spec/support/factories/refinery/mails.rb +7 -0
  70. data/tasks/rspec.rake +6 -0
  71. data/tasks/testing.rake +8 -0
  72. metadata +147 -0
@@ -0,0 +1,7 @@
1
+ <div class='field'>
2
+ <%= f.label :mail %>
3
+ <%= f.text_field :mail %>
4
+
5
+ <%= f.hidden_field :_destroy %>
6
+ <%= link_to t('.remove'), '#', :class=>"remove_fields" %>
7
+ </div>
@@ -0,0 +1,18 @@
1
+ <% if searching? %>
2
+ <h2><%= t('results_for', :scope => 'refinery.admin.search', :query => params[:search]) %></h2>
3
+ <% end %>
4
+ <div class='pagination_container'>
5
+ <% if @contacts.any? %>
6
+ <%= render 'contacts' %>
7
+ <% else %>
8
+ <p>
9
+ <% unless searching? %>
10
+ <strong>
11
+ <%= t('.no_items_yet') %>
12
+ </strong>
13
+ <% else %>
14
+ <%= t('no_results', :scope => 'refinery.admin.search') %>
15
+ <% end %>
16
+ </p>
17
+ <% end %>
18
+ </div>
@@ -0,0 +1,5 @@
1
+ <ul id='sortable_list'>
2
+ <%= render :partial => 'contact', :collection => @contacts %>
3
+ </ul>
4
+ <%= render '/refinery/admin/sortable_list',
5
+ :continue_reordering => (local_assigns.keys.include?(:continue_reordering)) ? continue_reordering : true %>
@@ -0,0 +1 @@
1
+ <%= render 'form' %>
@@ -0,0 +1,7 @@
1
+ <section id='records'>
2
+ <%= render 'records' %>
3
+ </section>
4
+ <aside id='actions'>
5
+ <%= render 'actions' %>
6
+ </aside>
7
+ <%= render '/refinery/admin/make_sortable', :tree => false if !searching? and ::Refinery::Contacts::Admin::ContactsController.sortable? and ::Refinery::Contacts::Contact.count > 1 %>
@@ -0,0 +1 @@
1
+ <%= render 'form' %>
@@ -0,0 +1 @@
1
+ <%= @mail_message.text %>
@@ -0,0 +1 @@
1
+ <%= @mail_message.text %>
@@ -0,0 +1,15 @@
1
+ <% if flash[:mail_message] # Rendering errors %>
2
+ <div class="errorExplanation" id="errorExplanation">
3
+ <p><%= t('.problems_in_following_fields') %>:</p>
4
+ <ul>
5
+ <% unless Refinery::Contacts.client_side_validations %>
6
+ <% flash[:mail_message].errors.full_messages.each do |value| %>
7
+ <li><%= value %></li>
8
+ <% end %>
9
+ <% end %>
10
+ <% if flash[:recaptcha_error].present? %>
11
+ <li><%= t("recaptcha.errors.#{flash[:recaptcha_error]}") %></li>
12
+ <% end %>
13
+ </ul>
14
+ </div>
15
+ <% end %>
@@ -0,0 +1,47 @@
1
+ <% if @page.mails.present? %>
2
+ <%= form_for (flash[:mail_message].present?) ? flash[:mail_message] : Refinery::Contacts::MailMessage.new ,
3
+ :url=> deliver_contacts_mail_messages_path,
4
+ :validate => true do |f| %>
5
+
6
+ <%= render 'refinery/contacts/contacts/success_info' %>
7
+ <%= render 'refinery/contacts/contacts/error_info' %>
8
+
9
+
10
+ <div class="field ">
11
+ <%= f.label :recipient_id %>
12
+ <%= f.collection_select :recipient_id, @page.mails, :id, :mail, {:prompt=> true} %>
13
+ </div>
14
+
15
+
16
+ <div class="field ">
17
+ <%= f.label :name %>
18
+ <%= f.text_field :name %>
19
+ </div>
20
+
21
+ <div class="field ">
22
+ <%= f.label :sender_mail %>
23
+ <%= f.text_field :sender_mail %>
24
+ </div>
25
+
26
+ <div class="field ">
27
+ <%= f.label :subject %>
28
+ <%= f.text_field :subject%>
29
+ </div>
30
+
31
+ <div class="field ">
32
+ <%= f.label :text %>
33
+ <%= f.text_area :text, :rows=>"7", :cols=>"55" %>
34
+ </div>
35
+
36
+ <div class="field ">
37
+ <%= f.label t('.antispam') %>
38
+ <%= recaptcha_tags %>
39
+ </div>
40
+
41
+ <div class="field">
42
+ <%= f.label " " %>
43
+ <%= f.submit t('.submit') %>
44
+ </div>
45
+ <% end %>
46
+
47
+ <% end %>
@@ -0,0 +1,50 @@
1
+ <%# cache "refinery/contacts/contact/#{@page.contact.id}" do # Because of flash error rendering, caching is now commented %>
2
+ <% if @page.contact.present? %>
3
+ <% if @page.contact_page.contact_info %>
4
+ <% if @page.contact.company.present? %>
5
+ <strong><%= @page.contact.company %></strong><br/>
6
+ <% end %>
7
+
8
+ <% if @page.contact.street.present? %>
9
+ <%= @page.contact.street %><br/>
10
+ <% end %>
11
+
12
+ <% if @page.contact.city.present? %>
13
+ <%= @page.contact.city %> <%= @page.contact.zip_code %><br>
14
+ <% end %>
15
+
16
+ <% if @page.contact.province.present? %>
17
+ <%= @page.contact.province %><br/>
18
+ <% end %>
19
+
20
+ <% if @page.contact.country.present? %>
21
+ <%= @page.contact.country %><br/>
22
+ <% end %>
23
+
24
+ <br/>
25
+ <% if @page.contact.homepage.present? %>
26
+ <strong><%= t('.web') %></strong>
27
+ <%= link_to @page.contact.homepage, @page.contact.homepage, :target=>"_blank" %><br/>
28
+ <% end %>
29
+
30
+ <% if @page.contact.tel1.present? || @page.contact.tel2.present? || @page.contact.tel3.present? %>
31
+ <strong><%= t('.tel') %></strong>
32
+ <%= [@page.contact.tel1 , @page.contact.tel2, @page.contact.tel3 ].reject{|c| c.empty?}.join(' , ') %><br>
33
+ <% end %>
34
+
35
+ <% if @page.contact.fax.present? %>
36
+ <strong><%= t('.fax') %></strong>
37
+ <%= @page.contact.fax %><br/>
38
+ <% end %>
39
+ <% end %>
40
+
41
+ <%= render :partial=> 'refinery/contacts/contacts/form' %>
42
+ <% end %>
43
+
44
+
45
+
46
+
47
+
48
+ <%# end %>
49
+
50
+
@@ -0,0 +1,8 @@
1
+ <% if flash[:notice] # Success %>
2
+ <div id="flash_container">
3
+ <div id="flash" class="flash flash_notice" style='visibility: hidden;' >
4
+ <%= flash[:notice] %>
5
+ <%= link_to t("refinery.message.close_this_message"), "", :id => "flash_close" %>
6
+ </div>
7
+ </div>
8
+ <% end %>
data/changelog.md ADDED
@@ -0,0 +1,2 @@
1
+ ## 0.1.0 [21 December 2012]
2
+ * initial commit
@@ -0,0 +1,5 @@
1
+ Recaptcha.configure do |config|
2
+ config.public_key = ''
3
+ config.private_key = ''
4
+ config.proxy = ''
5
+ end
@@ -0,0 +1,4 @@
1
+ Refinery::Core.configure do |config|
2
+ # Register extra javascript for backend
3
+ config.register_javascript "refinery/contacts/admin/contacts.js"
4
+ end
@@ -0,0 +1,80 @@
1
+ en:
2
+ refinery:
3
+ plugins:
4
+ contacts:
5
+ title: Contacts
6
+ tab_name: Contact form
7
+ admin:
8
+ pages:
9
+ tabs:
10
+ contacts:
11
+ form:
12
+ show_contact_info: Show contact informations
13
+ contact_info_help: Show contact informations like company title, adress, telephone number ...
14
+ show_contact_form_for: Show contact form for
15
+ choose_contact: Click to choose contact
16
+ contacts:
17
+ admin:
18
+ contacts:
19
+ mail_fields:
20
+ remove: remove
21
+ form:
22
+ add_mail: Add e-mail
23
+ actions:
24
+ create_new: Add New Contact
25
+ reorder: Reorder Contacts
26
+ reorder_done: Done Reordering Contacts
27
+ records:
28
+ title: Contacts
29
+ sorry_no_results: Sorry! There are no results found.
30
+ no_items_yet: There are no Contacts yet. Click "Add New Contact" to add your first contact.
31
+ contact:
32
+ view_live_html: View this contact live <br/><em>(opens in a new window)</em>
33
+ edit: Edit this contact
34
+ delete: Remove this contact forever
35
+ contacts:
36
+ flash:
37
+ successfull_delivery: E-mail was send successfully.
38
+ show:
39
+ web: 'Web:'
40
+ tel: 'Tel.:'
41
+ fax: 'Fax:'
42
+ form:
43
+ submit: Send
44
+ antispam: Antispam
45
+ error_info:
46
+ problems_in_following_fields: Problems in following fields
47
+ activerecord:
48
+ attributes:
49
+ refinery/contact_page:
50
+ contact_info: Contact information
51
+ refinery/contacts/mail:
52
+ mail: E-mail
53
+ refinery/contacts/contact:
54
+ title: Title
55
+ street: Street
56
+ city: City
57
+ zip_code: Zip Code
58
+ province: Province
59
+ country: Country
60
+ tel1: Tel1
61
+ tel2: Tel2
62
+ tel3: Tel3
63
+ fax: Fax
64
+ company: Company
65
+ homepage: Homepage (starts with http://)
66
+
67
+ activemodel:
68
+ attributes:
69
+ refinery/contacts/mail_message:
70
+ recipient_id: Recipient
71
+ name: Name
72
+ subject: Subject
73
+ text: Text
74
+ sender_mail: Your e-mail
75
+ recaptcha:
76
+ errors:
77
+ incorrect-captcha-sol: Captcha code is incorrect
78
+ verification_failed: Captcha code is incorrect
79
+ recaptcha_unavailable: Captcha verification failed. Please try again.
80
+ recaptcha-not-reachable: Captcha verification failed. Please try again.
@@ -0,0 +1,80 @@
1
+ sk:
2
+ refinery:
3
+ plugins:
4
+ contacts:
5
+ title: Kontakty
6
+ tab_name: Kontaktný formulár
7
+ admin:
8
+ pages:
9
+ tabs:
10
+ contacts:
11
+ form:
12
+ show_contact_info: Zobraziť kontaktné informácie
13
+ contact_info_help: Zobrazí na stránke informácie ako názov spoločnosti, telefónny kontakt, adresa a pod.
14
+ show_contact_form_for: Zobraziť kontaktný formulár pre
15
+ choose_contact: Kliknite pre výber kontaktu
16
+ contacts:
17
+ admin:
18
+ contacts:
19
+ mail_fields:
20
+ remove: odstrániť
21
+ form:
22
+ add_mail: Pridať e-mail
23
+ actions:
24
+ create_new: Pridať kontakt
25
+ reorder: Preusporiadať kontakty
26
+ reorder_done: Uložiť usporiadanie kontaktov
27
+ records:
28
+ title: Kontakty
29
+ sorry_no_results: Ľutujeme, ale neboli nájdené žiadne výsledky.
30
+ no_items_yet: Nie sú vytvorené žiadne kontakty. Kliknite na "Pridať kontakt" pre pridanie prvého kontaktu.
31
+ contact:
32
+ view_live_html: Zobraziť náhľad kontaktu<br/><em>(otvorí sa v novom okne)</em>
33
+ edit: Upraviť kontakt
34
+ delete: Zmazať kontakt
35
+ contacts:
36
+ flash:
37
+ successfull_delivery: E-mail bol úspešne odoslaný.
38
+ show:
39
+ web: 'Web:'
40
+ tel: 'Tel.:'
41
+ fax: 'Fax:'
42
+ form:
43
+ submit: Odoslať
44
+ antispam: Antispam
45
+ error_info:
46
+ problems_in_following_fields: Vyskytli sa nasledovné problémy
47
+ activerecord:
48
+ attributes:
49
+ refinery/contact_page:
50
+ contact_info: Kontaktné informácie
51
+ refinery/contacts/mail:
52
+ mail: E-mail
53
+ refinery/contacts/contact:
54
+ title: Názov
55
+ street: Ulica
56
+ city: Mesto
57
+ zip_code: PSČ
58
+ province: Provincia
59
+ country: Štát
60
+ tel1: Tel. č1
61
+ tel2: Tel. č2
62
+ tel3: Tel. č3
63
+ fax: Fax
64
+ company: Spoločnosť
65
+ homepage: Webová stránka (začína http://)
66
+
67
+ activemodel:
68
+ attributes:
69
+ refinery/contacts/mail_message:
70
+ recipient_id: Adresát
71
+ name: Meno
72
+ subject: Predmet
73
+ text: Text
74
+ sender_mail: Váš e-mail
75
+ recaptcha:
76
+ errors:
77
+ incorrect-captcha-sol: Captcha kód je zadaný nesprávne
78
+ verification_failed: Captcha kód je zadaný nesprávne
79
+ recaptcha_unavailable: Nepodarilo sa verifikovať captchu. Skúste odoslať formulár opäť.
80
+ recaptcha-not-reachable: Nepodarilo sa verifikovať captchu. Skúste odoslať formulár opäť.
data/config/routes.rb ADDED
@@ -0,0 +1,23 @@
1
+ Refinery::Core::Engine.routes.append do
2
+
3
+ # Frontend routes
4
+ namespace :contacts, :path => '' do
5
+ resources :mail_messages, :only => :deliver do
6
+ collection do
7
+ post :deliver, :as => :deliver
8
+ end
9
+ end
10
+ end
11
+
12
+ # Admin routes
13
+ namespace :contacts, :path => '' do
14
+ namespace :admin, :path => 'refinery' do
15
+ resources :contacts, :except => :show do
16
+ collection do
17
+ post :update_positions
18
+ end
19
+ end
20
+ end
21
+ end
22
+
23
+ end
@@ -0,0 +1,36 @@
1
+ class CreateContactsContacts < ActiveRecord::Migration
2
+
3
+ def up
4
+ create_table :refinery_contacts do |t|
5
+ t.string :title
6
+ t.string :company
7
+ t.string :street
8
+ t.string :city
9
+ t.string :zip_code
10
+ t.string :province
11
+ t.string :country
12
+ t.string :tel1
13
+ t.string :tel2
14
+ t.string :tel3
15
+ t.string :fax
16
+ t.integer :position
17
+
18
+ t.timestamps
19
+ end
20
+
21
+ end
22
+
23
+ def down
24
+ if defined?(::Refinery::UserPlugin)
25
+ ::Refinery::UserPlugin.destroy_all({:name => "refinerycms-contacts"})
26
+ end
27
+
28
+ if defined?(::Refinery::Page)
29
+ ::Refinery::Page.delete_all({:link_url => "/contacts/contacts"})
30
+ end
31
+
32
+ drop_table :refinery_contacts
33
+
34
+ end
35
+
36
+ end
@@ -0,0 +1,17 @@
1
+ class CreateContactsMails < ActiveRecord::Migration
2
+
3
+ def up
4
+ create_table :refinery_contacts_mails do |t|
5
+ t.integer :contact_id
6
+ t.string :mail
7
+ end
8
+ add_index :refinery_contacts_mails, :contact_id
9
+
10
+ end
11
+
12
+ def down
13
+ remove_index :refinery_contacts_mails , :contact_id
14
+ drop_table :refinery_contacts_mails
15
+
16
+ end
17
+ end