ecm_contact2 4.0.2 → 5.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/MIT-LICENSE +1 -1
- data/README.md +28 -0
- data/Rakefile +13 -12
- data/app/assets/config/ecm_contact_manifest.js +2 -0
- data/app/assets/javascripts/ecm/contact/application/keep.js +0 -0
- data/app/assets/javascripts/ecm/contact/application.js +13 -0
- data/app/assets/stylesheets/ecm/contact/application/keep.css +0 -0
- data/app/assets/stylesheets/ecm/contact/application.css +15 -0
- data/app/controllers/ecm/contact/application_controller.rb +7 -0
- data/app/controllers/ecm/contact/contact_requests_controller.rb +51 -9
- data/app/helpers/ecm/contact/application_helper.rb +6 -0
- data/app/jobs/ecm/contact/application_job.rb +6 -0
- data/app/jobs/ecm/contact/notify_new_contact_request_job.rb +25 -0
- data/app/mailers/ecm/contact/application_mailer.rb +8 -0
- data/app/mailers/ecm/contact/contact_request_mailer.rb +31 -0
- data/app/models/ecm/contact/application_record.rb +7 -0
- data/app/models/ecm/contact/contact_request.rb +36 -0
- data/app/views/de.yml +47 -0
- data/app/views/ecm/contact/contact_request_mailer/notify.html.haml +7 -0
- data/app/views/ecm/contact/contact_request_mailer/notify.text.erb +5 -0
- data/app/views/ecm/contact/contact_requests/_form.haml +6 -0
- data/app/views/ecm/contact/contact_requests/_form_errors.haml +6 -0
- data/app/views/ecm/contact/contact_requests/new.haml +6 -0
- data/app/views/layouts/ecm/contact/application.html.erb +14 -0
- data/app/views/layouts/ecm/contact/mailer.html.erb +13 -0
- data/app/views/layouts/ecm/contact/mailer.text.erb +1 -0
- data/config/locales/de.yml +37 -35
- data/config/locales/en.yml +36 -34
- data/db/migrate/20170813142704_create_ecm_contact_contact_requests.rb +15 -0
- data/lib/ecm/contact/configuration.rb +1 -1
- data/lib/ecm/contact/engine.rb +7 -0
- data/lib/ecm/contact/version.rb +1 -1
- data/lib/ecm_contact2.rb +3 -4
- data/lib/generators/ecm/contact/install/templates/initializer.rb +7 -7
- metadata +45 -86
- data/README.rdoc +0 -37
- data/app/assets/stylesheets/ecm_contact.css +0 -19
- data/app/helpers/ecm/contact_helper.rb +0 -19
- data/app/mail_forms/ecm/contact/contact_request.rb +0 -29
- data/app/views/ecm/contact/contact_requests/_contact_request.erb +0 -40
- data/app/views/ecm/contact/contact_requests/_form.erb +0 -23
- data/app/views/ecm/contact/contact_requests/index.html.erb +0 -11
- data/app/views/mail_form/contact.erb +0 -1
- data/config/initializers/assets.rb +0 -1
- data/lib/generators/ecm/contact/locales/locales_generator.rb +0 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d7dc9e1f9ccc5505944a124cb9dd010f12f182fa
|
4
|
+
data.tar.gz: 1074f2dc531272031fb29549e5363f2fc69341fe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5d2493c48949ed18d74e7abef9f4247adf7d6059ad68e173452badcbc20d719a7b68ede2342ed0f6a4b82966d3ec3cede7bc92265d1ea1655b2e9f6f7c570494
|
7
|
+
data.tar.gz: 7af4b4ecea5f8b35a0f89d66f6b7de70b9a05e085fb765a1bb38764528475db2038c457bdc0e593687eb2eac9cc284ce45c74448491261abef6f2a883ee1fd4e
|
data/MIT-LICENSE
CHANGED
data/README.md
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
# Ecm::Contact
|
2
|
+
Short description and motivation.
|
3
|
+
|
4
|
+
## Usage
|
5
|
+
How to use my plugin.
|
6
|
+
|
7
|
+
## Installation
|
8
|
+
Add this line to your application's Gemfile:
|
9
|
+
|
10
|
+
```ruby
|
11
|
+
gem 'ecm_contact'
|
12
|
+
```
|
13
|
+
|
14
|
+
And then execute:
|
15
|
+
```bash
|
16
|
+
$ bundle
|
17
|
+
```
|
18
|
+
|
19
|
+
Or install it yourself as:
|
20
|
+
```bash
|
21
|
+
$ gem install ecm_contact
|
22
|
+
```
|
23
|
+
|
24
|
+
## Contributing
|
25
|
+
Contribution directions go here.
|
26
|
+
|
27
|
+
## License
|
28
|
+
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
data/Rakefile
CHANGED
@@ -1,25 +1,26 @@
|
|
1
|
-
#!/usr/bin/env rake
|
2
1
|
begin
|
3
2
|
require 'bundler/setup'
|
4
3
|
rescue LoadError
|
5
4
|
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
6
5
|
end
|
7
|
-
|
8
|
-
|
9
|
-
rescue LoadError
|
10
|
-
require 'rdoc/rdoc'
|
11
|
-
require 'rake/rdoctask'
|
12
|
-
RDoc::Task = Rake::RDocTask
|
13
|
-
end
|
6
|
+
|
7
|
+
require 'rdoc/task'
|
14
8
|
|
15
9
|
RDoc::Task.new(:rdoc) do |rdoc|
|
16
10
|
rdoc.rdoc_dir = 'rdoc'
|
17
|
-
rdoc.title = '
|
11
|
+
rdoc.title = 'Ecm::Contact'
|
18
12
|
rdoc.options << '--line-numbers'
|
19
|
-
rdoc.rdoc_files.include('README.
|
13
|
+
rdoc.rdoc_files.include('README.md')
|
20
14
|
rdoc.rdoc_files.include('lib/**/*.rb')
|
21
15
|
end
|
22
16
|
|
23
|
-
|
17
|
+
APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
|
18
|
+
load 'rails/tasks/engine.rake'
|
19
|
+
|
20
|
+
|
21
|
+
load 'rails/tasks/statistics.rake'
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
require 'bundler/gem_tasks'
|
24
26
|
|
25
|
-
require 'rails/dummy/tasks'
|
File without changes
|
@@ -0,0 +1,13 @@
|
|
1
|
+
// This is a manifest file that'll be compiled into application.js, which will include all the files
|
2
|
+
// listed below.
|
3
|
+
//
|
4
|
+
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
|
5
|
+
// or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
|
6
|
+
//
|
7
|
+
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
8
|
+
// compiled file. JavaScript code in this file should be added after the last require_* statement.
|
9
|
+
//
|
10
|
+
// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
|
11
|
+
// about supported directives.
|
12
|
+
//
|
13
|
+
//= require_tree ./application
|
File without changes
|
@@ -0,0 +1,15 @@
|
|
1
|
+
/*
|
2
|
+
* This is a manifest file that'll be compiled into application.css, which will include all the files
|
3
|
+
* listed below.
|
4
|
+
*
|
5
|
+
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
|
6
|
+
* or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
|
7
|
+
*
|
8
|
+
* You're free to add application-wide styles to this file and they'll appear at the bottom of the
|
9
|
+
* compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS
|
10
|
+
* files in this directory. Styles in this file should be added after the last require_* statement.
|
11
|
+
* It is generally better to create a new file per style scope.
|
12
|
+
*
|
13
|
+
*= require_tree ./application
|
14
|
+
*= require_self
|
15
|
+
*/
|
@@ -1,31 +1,73 @@
|
|
1
1
|
module Ecm
|
2
2
|
module Contact
|
3
3
|
class ContactRequestsController < Ecm::Contact::Configuration.base_controller.constantize
|
4
|
+
before_action :initialize_resource, only: [:index, :new]
|
5
|
+
before_action :initialize_resource_for_create, only: [:create]
|
6
|
+
|
7
|
+
respond_to :html
|
8
|
+
responders :flash
|
9
|
+
|
10
|
+
def self.resource_class
|
11
|
+
Ecm::Contact::ContactRequest
|
12
|
+
end
|
13
|
+
|
4
14
|
def index
|
5
|
-
|
6
|
-
|
15
|
+
new
|
16
|
+
render :new
|
7
17
|
end
|
8
18
|
|
9
|
-
def
|
10
|
-
@title = I18n.t('ecm.contact.request.index.title')
|
11
|
-
@contact_request = ContactRequest.new(permitted_params)
|
19
|
+
def new; end
|
12
20
|
|
13
|
-
|
14
|
-
|
21
|
+
def create
|
22
|
+
@resource.ip_address = request.remote_ip
|
23
|
+
if @resource.save
|
24
|
+
respond_with @resource, location: after_create_url
|
15
25
|
else
|
16
|
-
|
26
|
+
respond_with @resource
|
17
27
|
end
|
18
28
|
end
|
19
29
|
|
20
30
|
private
|
21
31
|
|
32
|
+
def initialize_resource_for_create
|
33
|
+
@resource = initialize_scope.new(permitted_params)
|
34
|
+
end
|
35
|
+
|
36
|
+
def initialize_resource
|
37
|
+
@resource = initialize_scope.new
|
38
|
+
end
|
39
|
+
|
40
|
+
def initialize_scope
|
41
|
+
resource_class
|
42
|
+
end
|
43
|
+
|
44
|
+
def resource_class
|
45
|
+
self.class.resource_class
|
46
|
+
end
|
47
|
+
|
22
48
|
def permitted_params
|
23
|
-
params.require(:contact_request).permit(:nickname, :name, :email, :phone, :message, :
|
49
|
+
params.require(:contact_request).permit(:nickname, :name, :email, :phone, :message, :accept_terms_of_service)
|
24
50
|
end
|
25
51
|
|
26
52
|
def after_create_url
|
27
53
|
Ecm::Contact::Configuration.after_create_url.call(self)
|
28
54
|
end
|
55
|
+
|
56
|
+
# def index
|
57
|
+
# @title = I18n.t('ecm.contact.request.index.title')
|
58
|
+
# @contact_request = ContactRequest.new
|
59
|
+
# end
|
60
|
+
|
61
|
+
# def create
|
62
|
+
# @title = I18n.t('ecm.contact.request.index.title')
|
63
|
+
# @contact_request = ContactRequest.new(permitted_params)
|
64
|
+
|
65
|
+
# if @contact_request.deliver
|
66
|
+
# redirect_to(after_create_url, notice: -> { I18n.t('ecm.contact.form.messages.delivered') }.call)
|
67
|
+
# else
|
68
|
+
# render :index
|
69
|
+
# end
|
70
|
+
# end
|
29
71
|
end
|
30
72
|
end
|
31
73
|
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Ecm::Contact
|
2
|
+
class NotifyNewContactRequestJob < ApplicationJob
|
3
|
+
queue_as :contact_requests
|
4
|
+
|
5
|
+
def perform(contact_request_id)
|
6
|
+
load_contact_request(contact_request_id)
|
7
|
+
deliver
|
8
|
+
mark_as_notified
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def load_contact_request(id)
|
14
|
+
@contact_request = ContactRequest.find(id)
|
15
|
+
end
|
16
|
+
|
17
|
+
def deliver
|
18
|
+
ContactRequestMailer.notify(@contact_request).deliver_now
|
19
|
+
end
|
20
|
+
|
21
|
+
def mark_as_notified
|
22
|
+
@contact_request.update(notified_at: Time.zone.now)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Ecm::Contact
|
2
|
+
class ContactRequestMailer < ApplicationMailer
|
3
|
+
|
4
|
+
# Subject can be set in your I18n file at config/locales/en.yml
|
5
|
+
# with the following lookup:
|
6
|
+
#
|
7
|
+
# en.contact_request_mailer.notify.subject
|
8
|
+
#
|
9
|
+
def notify(contact_request)
|
10
|
+
@contact_request = contact_request
|
11
|
+
|
12
|
+
mail to: notification_recipients,
|
13
|
+
from: notification_sender(contact_request),
|
14
|
+
subject: notification_subject
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def notification_subject
|
20
|
+
default_i18n_subject(application_name: Rails.application.class.to_s.split('::').first.underscore.humanize.titleize)
|
21
|
+
end
|
22
|
+
|
23
|
+
def notification_sender(contact_request)
|
24
|
+
"#{contact_request.name} <#{contact_request.email}>"
|
25
|
+
end
|
26
|
+
|
27
|
+
def notification_recipients
|
28
|
+
Ecm::Contact::Configuration.recipients[Rails.env]
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module Ecm::Contact
|
2
|
+
class ContactRequest < ApplicationRecord
|
3
|
+
validates :name, presence: true
|
4
|
+
validates :email, presence: true
|
5
|
+
validates :phone, presence: true
|
6
|
+
validates :ip_address, presence: true
|
7
|
+
validates :message, presence: true
|
8
|
+
validates :accept_terms_of_service, acceptance: true
|
9
|
+
|
10
|
+
module SpamProtection
|
11
|
+
attr_accessor :nickname
|
12
|
+
|
13
|
+
def save
|
14
|
+
if nickname.present?
|
15
|
+
valid?
|
16
|
+
return true
|
17
|
+
else
|
18
|
+
super
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
module Notification
|
24
|
+
def self.included(base)
|
25
|
+
base.after_save :notify, if: -> { notified_at.nil? }
|
26
|
+
end
|
27
|
+
|
28
|
+
def notify
|
29
|
+
NotifyNewContactRequestJob.perform_later(id)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
prepend SpamProtection
|
34
|
+
include Notification
|
35
|
+
end
|
36
|
+
end
|
data/app/views/de.yml
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
de:
|
2
|
+
ecm:
|
3
|
+
contact:
|
4
|
+
form:
|
5
|
+
messages:
|
6
|
+
delivered: "Ihre Kontaktanfrage wurde versandt."
|
7
|
+
contact_request:
|
8
|
+
index:
|
9
|
+
page_title: Kontaktanfrage
|
10
|
+
meta_description: Kontaktieren Sie uns über unser Kontaktformular
|
11
|
+
title: Kontaktanfrage
|
12
|
+
contact_requests:
|
13
|
+
form:
|
14
|
+
submit: Abschicken
|
15
|
+
request:
|
16
|
+
subject: "[%{application_name}] Neue Kontaktanfrage"
|
17
|
+
views:
|
18
|
+
actions:
|
19
|
+
back: 'Zurück'
|
20
|
+
routes:
|
21
|
+
ecm_contact_engine: kontakt
|
22
|
+
# ecm_contact: kontakt
|
23
|
+
contact_requests: anfrage
|
24
|
+
simple_form:
|
25
|
+
"yes": 'Ja'
|
26
|
+
"no": 'Nein'
|
27
|
+
required:
|
28
|
+
text: 'Pflichtfeld'
|
29
|
+
mark: '*'
|
30
|
+
placeholders:
|
31
|
+
contact_request:
|
32
|
+
name: "Max Mustermann"
|
33
|
+
email: "max.mustermann@example.com"
|
34
|
+
message: "Hi Dave..."
|
35
|
+
phone: "+49 69 12345678"
|
36
|
+
mail_form:
|
37
|
+
models:
|
38
|
+
ecm/contact/contact_request: Kontaktanfrage
|
39
|
+
attributes:
|
40
|
+
ecm/contact/contact_request:
|
41
|
+
email: E-Mail
|
42
|
+
name: Name
|
43
|
+
message: Nachricht
|
44
|
+
phone: Telefon
|
45
|
+
accept_terms_of_service: Hiermit erlaube ich dem Seitenbetreiber die Nutzung meiner Daten zwecks Beantwortung dieser Kontaktanfrage.
|
46
|
+
contact_request:
|
47
|
+
title: "Kontaktanfrage"
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>Ecm contact</title>
|
5
|
+
<%= stylesheet_link_tag "ecm/contact/application", media: "all" %>
|
6
|
+
<%= javascript_include_tag "ecm/contact/application" %>
|
7
|
+
<%= csrf_meta_tags %>
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
|
11
|
+
<%= yield %>
|
12
|
+
|
13
|
+
</body>
|
14
|
+
</html>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= yield %>
|
data/config/locales/de.yml
CHANGED
@@ -1,47 +1,49 @@
|
|
1
1
|
de:
|
2
|
+
classes:
|
3
|
+
ecm/contact/engine: Kontakt
|
4
|
+
activerecord:
|
5
|
+
models:
|
6
|
+
ecm/contact/contact_request:
|
7
|
+
one: Kontaktanfrage
|
8
|
+
other: Kontaktanfragen
|
9
|
+
attributes:
|
10
|
+
ecm/contact/contact_request:
|
11
|
+
accept_terms_of_service: 'Hiermit erlaube ich dem Seitenbetreiber die Nutzung meiner Daten zwecks Beantwortung dieser Kontaktanfrage.'
|
12
|
+
name: Name
|
13
|
+
email: E-Mail
|
14
|
+
phone: Telefonnummer
|
15
|
+
ip_address: IP Adresse
|
16
|
+
message: Nachricht
|
17
|
+
notified_at: Benachrichtigt am
|
18
|
+
created_at: Erstellt am
|
19
|
+
updated_at: Aktualisiert am
|
20
|
+
additional_actions: Zusatzliche Aktionen
|
2
21
|
ecm:
|
3
22
|
contact:
|
4
|
-
form:
|
5
|
-
messages:
|
6
|
-
delivered: "Ihre Kontaktanfrage wurde versandt."
|
7
|
-
contact_request:
|
8
|
-
index:
|
9
|
-
page_title: Kontaktanfrage
|
10
|
-
meta_description: Kontaktieren Sie uns über unser Kontaktformular
|
11
|
-
title: Kontaktanfrage
|
12
23
|
contact_requests:
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
24
|
+
new:
|
25
|
+
title: "Kontaktanfrage"
|
26
|
+
contact_request_mailer:
|
27
|
+
notify:
|
28
|
+
subject: "[%{application_name}] Neue Kontaktanfrage"
|
29
|
+
title: "Neue Kontaktanfrage"
|
30
|
+
flash:
|
31
|
+
ecm:
|
32
|
+
contact:
|
33
|
+
contact_requests:
|
34
|
+
create:
|
35
|
+
notice: "Ihre Kontaktanfrage wurde versandt."
|
36
|
+
helpers:
|
37
|
+
submit:
|
38
|
+
contact_request:
|
39
|
+
create: Absenden
|
20
40
|
routes:
|
21
41
|
ecm_contact_engine: kontakt
|
22
|
-
# ecm_contact: kontakt
|
23
42
|
contact_requests: anfrage
|
24
43
|
simple_form:
|
25
|
-
"yes": 'Ja'
|
26
|
-
"no": 'Nein'
|
27
|
-
required:
|
28
|
-
text: 'Pflichtfeld'
|
29
|
-
mark: '*'
|
30
44
|
placeholders:
|
31
45
|
contact_request:
|
32
46
|
name: "Max Mustermann"
|
33
47
|
email: "max.mustermann@example.com"
|
34
|
-
message: "
|
35
|
-
phone: "+49 69 12345678"
|
36
|
-
mail_form:
|
37
|
-
models:
|
38
|
-
ecm/contact/contact_request: Kontaktanfrage
|
39
|
-
attributes:
|
40
|
-
ecm/contact/contact_request:
|
41
|
-
email: E-Mail
|
42
|
-
name: Name
|
43
|
-
message: Nachricht
|
44
|
-
phone: Telefon
|
45
|
-
terms_of_service: Hiermit erlaube ich dem Seitenbetreiber die Nutzung meiner Daten zwecks Beantwortung dieser Kontaktanfrage.
|
46
|
-
contact_request:
|
47
|
-
title: "Kontaktanfrage"
|
48
|
+
message: "Meine Nachricht"
|
49
|
+
phone: "+49 69 12345678"
|
data/config/locales/en.yml
CHANGED
@@ -1,47 +1,49 @@
|
|
1
1
|
en:
|
2
|
+
classes:
|
3
|
+
ecm/contact/engine: Contact
|
4
|
+
activerecord:
|
5
|
+
models:
|
6
|
+
ecm/contact/contact_request:
|
7
|
+
one: Contact Request
|
8
|
+
other: Contact Requests
|
9
|
+
attributes:
|
10
|
+
ecm/contact/contact_request:
|
11
|
+
accept_terms_of_service: 'I hereby allow the site owner to use my personal data for the purpose of answering this request.'
|
12
|
+
name: Name
|
13
|
+
email: E-Mail
|
14
|
+
phone: Phone
|
15
|
+
ip_address: IP Address
|
16
|
+
message: Message
|
17
|
+
notified_at: Notified at
|
18
|
+
created_at: Created at
|
19
|
+
updated_at: Updated at
|
20
|
+
additional_actions: Additional Actions
|
2
21
|
ecm:
|
3
22
|
contact:
|
4
|
-
form:
|
5
|
-
messages:
|
6
|
-
delivered: "Your contact request has been delivered."
|
7
|
-
contact_request:
|
8
|
-
index:
|
9
|
-
page_title: Contact request
|
10
|
-
meta_description: Contact us
|
11
|
-
title: Contact request
|
12
23
|
contact_requests:
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
24
|
+
new:
|
25
|
+
title: "Contact Request"
|
26
|
+
contact_request_mailer:
|
27
|
+
notify:
|
28
|
+
subject: "[%{application_name}] New contact request"
|
29
|
+
title: "New contact request"
|
30
|
+
flash:
|
31
|
+
ecm:
|
32
|
+
contact:
|
33
|
+
contact_requests:
|
34
|
+
create:
|
35
|
+
notice: "Your contact request has been delivered."
|
36
|
+
helpers:
|
37
|
+
submit:
|
38
|
+
contact_request:
|
39
|
+
create: Submit
|
20
40
|
routes:
|
21
41
|
ecm_contact_engine: contact
|
22
|
-
# ecm_contact: contact
|
23
42
|
contact_requests: request
|
24
43
|
simple_form:
|
25
|
-
"yes": 'Yes'
|
26
|
-
"no": 'No'
|
27
|
-
required:
|
28
|
-
text: 'required'
|
29
|
-
mark: '*'
|
30
44
|
placeholders:
|
31
45
|
contact_request:
|
32
46
|
name: "John Doe"
|
33
47
|
email: "john.doe@example.com"
|
34
48
|
message: "Hi Dave..."
|
35
|
-
phone: "+1-541-754-3010"
|
36
|
-
mail_form:
|
37
|
-
models:
|
38
|
-
ecm/contact/contact_request: contact request
|
39
|
-
attributes:
|
40
|
-
ecm/contact/contact_request:
|
41
|
-
email: email
|
42
|
-
name: name
|
43
|
-
message: message
|
44
|
-
phone: phone
|
45
|
-
terms_of_service: I hereby allow the site owner to use my personal data for the purpose of answering this request.
|
46
|
-
contact_request:
|
47
|
-
title: contact request
|
49
|
+
phone: "+1-541-754-3010"
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class CreateEcmContactContactRequests < ActiveRecord::Migration[5.1]
|
2
|
+
def change
|
3
|
+
create_table :ecm_contact_contact_requests do |t|
|
4
|
+
t.string :name
|
5
|
+
t.string :email
|
6
|
+
t.string :phone
|
7
|
+
t.string :ip_address
|
8
|
+
t.text :message
|
9
|
+
t.boolean :accept_terms_of_service
|
10
|
+
t.timestamp :notified_at
|
11
|
+
|
12
|
+
t.timestamps
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -1,6 +1,5 @@
|
|
1
1
|
require 'active_support/core_ext/module/delegation'
|
2
2
|
require 'active_support/core_ext/module/attribute_accessors'
|
3
|
-
require 'active_support/hash_with_indifferent_access'
|
4
3
|
|
5
4
|
module Ecm
|
6
5
|
module Contact
|
@@ -8,6 +7,7 @@ module Ecm
|
|
8
7
|
def configure
|
9
8
|
yield self
|
10
9
|
end
|
10
|
+
|
11
11
|
mattr_accessor :input_name_css_classes do
|
12
12
|
'form-control'
|
13
13
|
end
|
data/lib/ecm/contact/engine.rb
CHANGED
@@ -2,6 +2,13 @@ module Ecm
|
|
2
2
|
module Contact
|
3
3
|
class Engine < ::Rails::Engine
|
4
4
|
isolate_namespace Ecm::Contact
|
5
|
+
|
6
|
+
config.generators do |g|
|
7
|
+
g.test_framework :rspec, fixture: true
|
8
|
+
g.fixture_replacement :factory_girl, dir: 'spec/factories'
|
9
|
+
# g.form_builder :simple_form
|
10
|
+
# g.template_engine :haml
|
11
|
+
end
|
5
12
|
end
|
6
13
|
end
|
7
14
|
end
|
data/lib/ecm/contact/version.rb
CHANGED
data/lib/ecm_contact2.rb
CHANGED
@@ -6,15 +6,15 @@ Ecm::Contact.configure do |config|
|
|
6
6
|
# Default:
|
7
7
|
#
|
8
8
|
# config.recipients = {
|
9
|
-
# :
|
10
|
-
# :
|
11
|
-
# :
|
9
|
+
# development: %w( info@development.example.com ),
|
10
|
+
# test: %w( info@test.example.com ),
|
11
|
+
# production: %w( info@production.example.com )
|
12
12
|
# }
|
13
13
|
#
|
14
14
|
config.recipients = {
|
15
15
|
development: %w( info@development.example.com ),
|
16
|
-
test:
|
17
|
-
production:
|
16
|
+
test: %w( info@test.example.com ),
|
17
|
+
production: %w( info@production.example.com )
|
18
18
|
}
|
19
19
|
|
20
20
|
# Configure your input field css classes here.
|
@@ -71,9 +71,9 @@ Ecm::Contact.configure do |config|
|
|
71
71
|
|
72
72
|
# url to redirect to after successful contact request.
|
73
73
|
#
|
74
|
-
# default: config.after_create_url = ->(controller) { controller.url_for(action: index) }
|
74
|
+
# default: config.after_create_url = ->(controller) { controller.url_for(action: :index) }
|
75
75
|
#
|
76
|
-
config.after_create_url = ->(controller) { controller.url_for(action: index) }
|
76
|
+
config.after_create_url = ->(controller) { controller.url_for(action: :index) }
|
77
77
|
|
78
78
|
# Set the sender address.
|
79
79
|
#
|
metadata
CHANGED
@@ -1,57 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ecm_contact2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 5.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Roberto Vasquez Angel
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-10-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '4.0'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '4.0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: mail_form
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
34
|
-
type: :runtime
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: simple_form
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
17
|
+
- - "~>"
|
46
18
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
19
|
+
version: 5.1.1
|
48
20
|
type: :runtime
|
49
21
|
prerelease: false
|
50
22
|
version_requirements: !ruby/object:Gem::Requirement
|
51
23
|
requirements:
|
52
|
-
- - "
|
24
|
+
- - "~>"
|
53
25
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
26
|
+
version: 5.1.1
|
55
27
|
- !ruby/object:Gem::Dependency
|
56
28
|
name: route_translator
|
57
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -59,7 +31,7 @@ dependencies:
|
|
59
31
|
- - ">="
|
60
32
|
- !ruby/object:Gem::Version
|
61
33
|
version: '0'
|
62
|
-
type: :
|
34
|
+
type: :runtime
|
63
35
|
prerelease: false
|
64
36
|
version_requirements: !ruby/object:Gem::Requirement
|
65
37
|
requirements:
|
@@ -67,7 +39,7 @@ dependencies:
|
|
67
39
|
- !ruby/object:Gem::Version
|
68
40
|
version: '0'
|
69
41
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
42
|
+
name: sqlite3
|
71
43
|
requirement: !ruby/object:Gem::Requirement
|
72
44
|
requirements:
|
73
45
|
- - ">="
|
@@ -81,7 +53,7 @@ dependencies:
|
|
81
53
|
- !ruby/object:Gem::Version
|
82
54
|
version: '0'
|
83
55
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
56
|
+
name: capybara
|
85
57
|
requirement: !ruby/object:Gem::Requirement
|
86
58
|
requirements:
|
87
59
|
- - ">="
|
@@ -95,7 +67,7 @@ dependencies:
|
|
95
67
|
- !ruby/object:Gem::Version
|
96
68
|
version: '0'
|
97
69
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
70
|
+
name: factory_girl_rails
|
99
71
|
requirement: !ruby/object:Gem::Requirement
|
100
72
|
requirements:
|
101
73
|
- - ">="
|
@@ -109,7 +81,7 @@ dependencies:
|
|
109
81
|
- !ruby/object:Gem::Version
|
110
82
|
version: '0'
|
111
83
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
84
|
+
name: guard-bundler
|
113
85
|
requirement: !ruby/object:Gem::Requirement
|
114
86
|
requirements:
|
115
87
|
- - ">="
|
@@ -123,7 +95,7 @@ dependencies:
|
|
123
95
|
- !ruby/object:Gem::Version
|
124
96
|
version: '0'
|
125
97
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
98
|
+
name: guard-rspec
|
127
99
|
requirement: !ruby/object:Gem::Requirement
|
128
100
|
requirements:
|
129
101
|
- - ">="
|
@@ -137,7 +109,7 @@ dependencies:
|
|
137
109
|
- !ruby/object:Gem::Version
|
138
110
|
version: '0'
|
139
111
|
- !ruby/object:Gem::Dependency
|
140
|
-
name:
|
112
|
+
name: i18n-debug
|
141
113
|
requirement: !ruby/object:Gem::Requirement
|
142
114
|
requirements:
|
143
115
|
- - ">="
|
@@ -151,7 +123,7 @@ dependencies:
|
|
151
123
|
- !ruby/object:Gem::Version
|
152
124
|
version: '0'
|
153
125
|
- !ruby/object:Gem::Dependency
|
154
|
-
name:
|
126
|
+
name: launchy
|
155
127
|
requirement: !ruby/object:Gem::Requirement
|
156
128
|
requirements:
|
157
129
|
- - ">="
|
@@ -165,7 +137,7 @@ dependencies:
|
|
165
137
|
- !ruby/object:Gem::Version
|
166
138
|
version: '0'
|
167
139
|
- !ruby/object:Gem::Dependency
|
168
|
-
name:
|
140
|
+
name: pry-rails
|
169
141
|
requirement: !ruby/object:Gem::Requirement
|
170
142
|
requirements:
|
171
143
|
- - ">="
|
@@ -193,21 +165,7 @@ dependencies:
|
|
193
165
|
- !ruby/object:Gem::Version
|
194
166
|
version: '0'
|
195
167
|
- !ruby/object:Gem::Dependency
|
196
|
-
name:
|
197
|
-
requirement: !ruby/object:Gem::Requirement
|
198
|
-
requirements:
|
199
|
-
- - "~>"
|
200
|
-
- !ruby/object:Gem::Version
|
201
|
-
version: 2.8.0
|
202
|
-
type: :development
|
203
|
-
prerelease: false
|
204
|
-
version_requirements: !ruby/object:Gem::Requirement
|
205
|
-
requirements:
|
206
|
-
- - "~>"
|
207
|
-
- !ruby/object:Gem::Version
|
208
|
-
version: 2.8.0
|
209
|
-
- !ruby/object:Gem::Dependency
|
210
|
-
name: guard-rails
|
168
|
+
name: rubocop
|
211
169
|
requirement: !ruby/object:Gem::Requirement
|
212
170
|
requirements:
|
213
171
|
- - ">="
|
@@ -221,21 +179,7 @@ dependencies:
|
|
221
179
|
- !ruby/object:Gem::Version
|
222
180
|
version: '0'
|
223
181
|
- !ruby/object:Gem::Dependency
|
224
|
-
name:
|
225
|
-
requirement: !ruby/object:Gem::Requirement
|
226
|
-
requirements:
|
227
|
-
- - ">="
|
228
|
-
- !ruby/object:Gem::Version
|
229
|
-
version: '0'
|
230
|
-
type: :development
|
231
|
-
prerelease: false
|
232
|
-
version_requirements: !ruby/object:Gem::Requirement
|
233
|
-
requirements:
|
234
|
-
- - ">="
|
235
|
-
- !ruby/object:Gem::Version
|
236
|
-
version: '0'
|
237
|
-
- !ruby/object:Gem::Dependency
|
238
|
-
name: guard-bundler
|
182
|
+
name: shoulda-matchers
|
239
183
|
requirement: !ruby/object:Gem::Requirement
|
240
184
|
requirements:
|
241
185
|
- - ">="
|
@@ -248,7 +192,7 @@ dependencies:
|
|
248
192
|
- - ">="
|
249
193
|
- !ruby/object:Gem::Version
|
250
194
|
version: '0'
|
251
|
-
description:
|
195
|
+
description:
|
252
196
|
email:
|
253
197
|
- roberto@vasquez-angel.de
|
254
198
|
executables: []
|
@@ -256,20 +200,35 @@ extensions: []
|
|
256
200
|
extra_rdoc_files: []
|
257
201
|
files:
|
258
202
|
- MIT-LICENSE
|
259
|
-
- README.
|
203
|
+
- README.md
|
260
204
|
- Rakefile
|
261
|
-
- app/assets/
|
205
|
+
- app/assets/config/ecm_contact_manifest.js
|
206
|
+
- app/assets/javascripts/ecm/contact/application.js
|
207
|
+
- app/assets/javascripts/ecm/contact/application/keep.js
|
208
|
+
- app/assets/stylesheets/ecm/contact/application.css
|
209
|
+
- app/assets/stylesheets/ecm/contact/application/keep.css
|
210
|
+
- app/controllers/ecm/contact/application_controller.rb
|
262
211
|
- app/controllers/ecm/contact/contact_requests_controller.rb
|
263
|
-
- app/helpers/ecm/
|
264
|
-
- app/
|
265
|
-
- app/
|
266
|
-
- app/
|
267
|
-
- app/
|
268
|
-
- app/
|
269
|
-
-
|
212
|
+
- app/helpers/ecm/contact/application_helper.rb
|
213
|
+
- app/jobs/ecm/contact/application_job.rb
|
214
|
+
- app/jobs/ecm/contact/notify_new_contact_request_job.rb
|
215
|
+
- app/mailers/ecm/contact/application_mailer.rb
|
216
|
+
- app/mailers/ecm/contact/contact_request_mailer.rb
|
217
|
+
- app/models/ecm/contact/application_record.rb
|
218
|
+
- app/models/ecm/contact/contact_request.rb
|
219
|
+
- app/views/de.yml
|
220
|
+
- app/views/ecm/contact/contact_request_mailer/notify.html.haml
|
221
|
+
- app/views/ecm/contact/contact_request_mailer/notify.text.erb
|
222
|
+
- app/views/ecm/contact/contact_requests/_form.haml
|
223
|
+
- app/views/ecm/contact/contact_requests/_form_errors.haml
|
224
|
+
- app/views/ecm/contact/contact_requests/new.haml
|
225
|
+
- app/views/layouts/ecm/contact/application.html.erb
|
226
|
+
- app/views/layouts/ecm/contact/mailer.html.erb
|
227
|
+
- app/views/layouts/ecm/contact/mailer.text.erb
|
270
228
|
- config/locales/de.yml
|
271
229
|
- config/locales/en.yml
|
272
230
|
- config/routes.rb
|
231
|
+
- db/migrate/20170813142704_create_ecm_contact_contact_requests.rb
|
273
232
|
- lib/ecm/contact/configuration.rb
|
274
233
|
- lib/ecm/contact/engine.rb
|
275
234
|
- lib/ecm/contact/version.rb
|
@@ -277,10 +236,10 @@ files:
|
|
277
236
|
- lib/generators/ecm/contact/install/install_generator.rb
|
278
237
|
- lib/generators/ecm/contact/install/templates/initializer.rb
|
279
238
|
- lib/generators/ecm/contact/install/templates/routes.source
|
280
|
-
- lib/generators/ecm/contact/locales/locales_generator.rb
|
281
239
|
- lib/tasks/ecm_contact_tasks.rake
|
282
240
|
homepage: https://github.com/robotex82/ecm_contact2
|
283
|
-
licenses:
|
241
|
+
licenses:
|
242
|
+
- MIT
|
284
243
|
metadata: {}
|
285
244
|
post_install_message:
|
286
245
|
rdoc_options: []
|
@@ -301,5 +260,5 @@ rubyforge_project:
|
|
301
260
|
rubygems_version: 2.6.11
|
302
261
|
signing_key:
|
303
262
|
specification_version: 4
|
304
|
-
summary:
|
263
|
+
summary: Ecm Contact Module.
|
305
264
|
test_files: []
|
data/README.rdoc
DELETED
@@ -1,37 +0,0 @@
|
|
1
|
-
= ECM Contact 2
|
2
|
-
|
3
|
-
Easy contact form for rails 4.x.
|
4
|
-
|
5
|
-
= Installation
|
6
|
-
|
7
|
-
Add the gem to your bundle:
|
8
|
-
|
9
|
-
# Gemfile
|
10
|
-
gem 'ecm_contact2'
|
11
|
-
|
12
|
-
Install your bundle:
|
13
|
-
|
14
|
-
> bundle install
|
15
|
-
|
16
|
-
Run the generator:
|
17
|
-
|
18
|
-
> rails g ecm:contact:install
|
19
|
-
|
20
|
-
This will create an initializer file in config/initializers. You should configure
|
21
|
-
your recipients there.
|
22
|
-
|
23
|
-
Add the routes:
|
24
|
-
|
25
|
-
# config/routes.rb
|
26
|
-
Ecm::Contact::Routing.routes(self)
|
27
|
-
|
28
|
-
Add the locale files
|
29
|
-
|
30
|
-
> rails g ecm:contact:locales
|
31
|
-
|
32
|
-
= Usage
|
33
|
-
|
34
|
-
= License
|
35
|
-
|
36
|
-
This project rocks and uses MIT-LICENSE.
|
37
|
-
|
@@ -1,19 +0,0 @@
|
|
1
|
-
#new_ecm_contact_request abbr {
|
2
|
-
border-bottom: 0px;
|
3
|
-
}
|
4
|
-
|
5
|
-
#new_ecm_contact_request #ecm_contact_request_submit span.glyphicon {
|
6
|
-
margin-right: 5px;
|
7
|
-
}
|
8
|
-
|
9
|
-
#new_ecm_contact_request .boolean span.error {
|
10
|
-
margin-left: -20px;
|
11
|
-
}
|
12
|
-
|
13
|
-
#new_ecm_contact_request label {
|
14
|
-
font-weight: normal;
|
15
|
-
}
|
16
|
-
|
17
|
-
#new_ecm_contact_request span.error {
|
18
|
-
color: red;
|
19
|
-
}
|
@@ -1,19 +0,0 @@
|
|
1
|
-
module Ecm
|
2
|
-
module ContactHelper
|
3
|
-
def contact_form(options = {})
|
4
|
-
options.reverse_merge(form_target_url: nil)
|
5
|
-
form_target_url = options[:form_target_url]
|
6
|
-
|
7
|
-
form_tag_options = {}
|
8
|
-
form_tag_options[:url] = form_target_url if form_target_url.present?
|
9
|
-
|
10
|
-
@contact_request = Ecm::Contact::Request.new(params[:ecm_contact_request])
|
11
|
-
|
12
|
-
if params[:ecm_contact_request].present? && @contact_request.deliver
|
13
|
-
render 'ecm/contact/requests/form', form_tag_options: form_tag_options, notice: I18n.t('ecm.contact.form.messages.delivered')
|
14
|
-
else
|
15
|
-
render 'ecm/contact/requests/form', form_tag_options: form_tag_options
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
@@ -1,29 +0,0 @@
|
|
1
|
-
module Ecm
|
2
|
-
module Contact
|
3
|
-
class ContactRequest < MailForm::Base
|
4
|
-
attribute :name
|
5
|
-
attribute :email
|
6
|
-
attribute :phone
|
7
|
-
attribute :message
|
8
|
-
attribute :terms_of_service
|
9
|
-
attribute :nickname, captcha: true
|
10
|
-
|
11
|
-
validates :email, format: { with: /\A([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})\z/i }, presence: true # , :message => Proc.new { I18n.t("activerecord.errors.messages.invalid") }.call }
|
12
|
-
validates :message, presence: true # { :message => Proc.new { I18n.t("activerecord.errors.messages.empty") }.call }
|
13
|
-
validates :name, presence: true # { :message => Proc.new { I18n.t("activerecord.errors.messages.empty") }.call }
|
14
|
-
validates :terms_of_service, acceptance: true # { :message => Proc.new { I18n.t("activerecord.errors.messages.accepted") }.call }
|
15
|
-
|
16
|
-
# Declare the e-mail headers. It accepts anything the mail method
|
17
|
-
# in ActionMailer accepts.
|
18
|
-
def headers
|
19
|
-
{
|
20
|
-
subject: proc { I18n.t('ecm.contact.request.subject', application_name: Rails.application.class.to_s.split('::').first) }.call,
|
21
|
-
# :to => I18n.t('ecm.contact.request.recipients'),
|
22
|
-
to: Ecm::Contact::Configuration.recipients[Rails.env],
|
23
|
-
# from: %("#{name}" <#{email}>)
|
24
|
-
from: Ecm::Contact::Configuration.sender.call(self)
|
25
|
-
}
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
@@ -1,40 +0,0 @@
|
|
1
|
-
<h4 style="text-decoration:underline"><%= message.subject %></h4>
|
2
|
-
|
3
|
-
<% @resource.mail_attributes.each do |attribute| %>
|
4
|
-
<% value = @resource.send(attribute) %>
|
5
|
-
<% next if value.blank? %>
|
6
|
-
|
7
|
-
<p><b><%= @resource.class.human_attribute_name(attribute) %>:</b>
|
8
|
-
<%= case value
|
9
|
-
when /\n/
|
10
|
-
raw(simple_format(h(value)))
|
11
|
-
when Time, DateTime, Date
|
12
|
-
I18n.l(value)
|
13
|
-
else
|
14
|
-
value
|
15
|
-
end
|
16
|
-
%></p>
|
17
|
-
<% end %>
|
18
|
-
|
19
|
-
<% unless @resource.class.mail_appendable.blank? %>
|
20
|
-
<br /><h4 style="text-decoration:underline"><%= I18n.t :title, :scope => [ :mail_form, :request ], :default => 'Request information' %></h4>
|
21
|
-
|
22
|
-
<% @resource.class.mail_appendable.each do |attribute|
|
23
|
-
value = @resource.request.send(attribute)
|
24
|
-
|
25
|
-
value = if value.is_a?(Hash) && !value.empty?
|
26
|
-
list = value.to_a.map{ |k,v| content_tag(:li, h("#{k}: #{v.inspect}")) }.join("\n")
|
27
|
-
content_tag(:ul, raw(list), :style => "list-style:none;")
|
28
|
-
elsif value.is_a?(String)
|
29
|
-
value
|
30
|
-
else
|
31
|
-
value.inspect
|
32
|
-
end
|
33
|
-
%>
|
34
|
-
|
35
|
-
<p><b><%= I18n.t attribute, :scope => [ :mail_form, :request ], :default => attribute.to_s.humanize %>:</b>
|
36
|
-
<%= value.include?("\n") ? simple_format(value) : value %></p>
|
37
|
-
<% end %>
|
38
|
-
<br />
|
39
|
-
<% end %>
|
40
|
-
|
@@ -1,23 +0,0 @@
|
|
1
|
-
<% if notice %>
|
2
|
-
<div class="alert alert-success alert-dismissible">
|
3
|
-
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
|
4
|
-
<span aria-hidden="true">×</span>
|
5
|
-
</button>
|
6
|
-
<%= notice %>
|
7
|
-
</div>
|
8
|
-
<% end %>
|
9
|
-
<%= simple_form_for(@contact_request) do |f| %>
|
10
|
-
<%= f.input :nickname, :input_html => { :style => 'display:none' }, :label_html => { :style => 'display:none' } %>
|
11
|
-
<%= f.input :name, :input_html => { :class => Ecm::Contact::Configuration.input_name_css_classes } %>
|
12
|
-
<%= f.input :email, :input_html => { :class => Ecm::Contact::Configuration.input_email_css_classes } %>
|
13
|
-
<%= f.input :phone, :input_html => { :class => Ecm::Contact::Configuration.input_phone_css_classes } %>
|
14
|
-
<%= f.input :message, :as => :text, :input_html => { :class => Ecm::Contact::Configuration.input_message_css_classes } %>
|
15
|
-
<%= f.input :terms_of_service, :as => :boolean, :required => true, :input_html => { :class => Ecm::Contact::Configuration.input_terms_of_service_css_classes } %>
|
16
|
-
|
17
|
-
<div class="<%= Ecm::Contact::Configuration.form_actions_wrapper_css_classes %>">
|
18
|
-
<%= button_tag(:type => 'submit', :class => 'input btn btn-primary', :id => 'ecm_contact_request_submit') do %>
|
19
|
-
<span class="glyphicon glyphicon-ok" aria-hidden="true"></span>
|
20
|
-
<%= t('.submit', :model => f.object.class.model_name.human) %>
|
21
|
-
<% end %>
|
22
|
-
</div>
|
23
|
-
<% end %>
|
@@ -1,11 +0,0 @@
|
|
1
|
-
<% content_for :title do %><%= I18n.t('ecm.contact.request.index.page_title') %><% end %>
|
2
|
-
<% content_for :meta_description do %><%= I18n.t('ecm.contact.request.index.meta_description') %><% end %>
|
3
|
-
<h1><%= Ecm::Contact::ContactRequest.model_name.human %></h1>
|
4
|
-
|
5
|
-
<%= Ecm::Contact::Configuration.additional_contact_information.call(self) if Ecm::Contact::Configuration.additional_contact_information.respond_to?(:call) %>
|
6
|
-
|
7
|
-
<%= render 'form' %>
|
8
|
-
|
9
|
-
<div class="well page-actions">
|
10
|
-
<%= link_to t('ecm.contact.views.actions.back'), main_app.root_path, class: 'btn btn-default' %>
|
11
|
-
</div>
|
@@ -1 +0,0 @@
|
|
1
|
-
<%= render @resource %>
|
@@ -1 +0,0 @@
|
|
1
|
-
Rails.application.config.assets.precompile += %w(ecm_contact.css)
|
@@ -1,19 +0,0 @@
|
|
1
|
-
module Ecm
|
2
|
-
module Contact
|
3
|
-
module Generators
|
4
|
-
class LocalesGenerator < Rails::Generators::Base
|
5
|
-
desc 'Generates the locales'
|
6
|
-
|
7
|
-
source_root File.expand_path('../../../../../../config/locales', __FILE__)
|
8
|
-
|
9
|
-
def generate_intializer
|
10
|
-
copy_file 'ecm.contact.de.yml', 'config/locales/ecm.contact.de.yml'
|
11
|
-
copy_file 'ecm.contact.en.yml', 'config/locales/ecm.contact.en.yml'
|
12
|
-
|
13
|
-
copy_file 'ecm.contact.request.de.yml', 'config/locales/ecm.contact.request.de.yml'
|
14
|
-
copy_file 'ecm.contact.request.en.yml', 'config/locales/ecm.contact.request.en.yml'
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|