cama_contact_form 0.0.26 → 0.0.27

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5c62ff6a2ffa06fa0199bd98fc8470028e58e5e8
4
- data.tar.gz: 65920724d779cef458098431667654f0b3816a30
3
+ metadata.gz: 1e0943d6f462a7f834e435510534030ec25adebf
4
+ data.tar.gz: d37c4f408019f089f41ebc85a29b096f6439ca4e
5
5
  SHA512:
6
- metadata.gz: b18259cefbc6228ebd1a2923e0e51678d759e13d0486dca2aa95266e9833e059835e5121786c8fef4100ed125aee59cae623c16f1dbcdf90e7e9848f35c23958
7
- data.tar.gz: cafcf31e33d951b2f7f5e833afa673f5b418949e83129a4f64b3ae38fb528ef57409b5d6448a0c9ce275d81c90c955d0083348f16a7de5d19b4450006c36ad6d
6
+ metadata.gz: 735fa908aecfdc95ee55c788e09b58db50fc5f5c11af6690baa39571c6683fcb99768aaa6c6f3b940085ada2d334826900cc7d518132f9a7b99737de88bd1466
7
+ data.tar.gz: c2d6c3eb58a5d8f25a5e4b8abc23bf714c429683d8db7323ced018dccefb657c170c9da37ba0586daa05ea8addb1228798534d6826798efd834560fbbb378989
@@ -60,9 +60,16 @@ module Plugins::CamaContactForm::ContactFormControllerConcern
60
60
  end
61
61
  end
62
62
  when 'captcha'
63
- unless cama_captcha_verified?
63
+ error_message = ->{
64
64
  errors << "#{label.to_s.translate}: #{form.the_message('captcha_not_match', t('.captch_error_val', default: 'The entered code is incorrect'))}"
65
65
  validate = false
66
+ }
67
+
68
+ if form.recaptcha_enabled?
69
+ form.set_captcha_settings!
70
+ error_message.call unless verify_recaptcha
71
+ else
72
+ error_message.call unless cama_captcha_verified?
66
73
  end
67
74
  end
68
75
  end
@@ -16,7 +16,7 @@ class Plugins::CamaContactForm::AdminFormsController < CamaleonCms::Apps::Plugin
16
16
 
17
17
  def update
18
18
  if @form.update(params.require(:plugins_cama_contact_form_cama_contact_form).permit(:name, :slug))
19
- settings = {"railscf_mail" => params[:railscf_mail], "railscf_message" => params[:railscf_message], "railscf_form_button" => params[:railscf_form_button]}
19
+ settings = {"railscf_mail" => params[:railscf_mail], "railscf_message" => params[:railscf_message], "railscf_form_button" => params[:railscf_form_button], recaptcha_site_key: params[:recaptcha_site_key], recaptcha_secret_key: params[:recaptcha_secret_key]}
20
20
  fields = []
21
21
  (params[:fields] || {}).each{|k, v|
22
22
  v[:field_options][:options] = v[:field_options][:options].values if v[:field_options][:options].present?
@@ -1,4 +1,5 @@
1
1
  module Plugins::CamaContactForm::MainHelper
2
+ include Recaptcha::ClientHelper
2
3
  def self.included(klass)
3
4
  klass.helper_method [:cama_form_element_bootstrap_object, :cama_form_shortcode] rescue "" # here your methods accessible from views
4
5
  end
@@ -109,7 +110,11 @@ module Plugins::CamaContactForm::MainHelper
109
110
  class_type = "railscf-field-#{ob[:field_type]}" if ob[:field_type]=="email"
110
111
  temp2 = "<input #{ob[:custom_attrs].to_attr_format} type=\"#{ob[:field_type]}\" value=\"#{values[cid] || ob[:default_value].to_s.translate}\" name=\"#{f_name}\" class=\"#{ob[:custom_class].presence || 'form-control'} #{class_type}\">"
111
112
  when 'captcha'
112
- temp2 = cama_captcha_tag(5, {}, {class: "#{ob[:custom_class].presence || 'form-control'} field-captcha required"}.merge(ob[:custom_attrs]))
113
+ if form.recaptcha_enabled?
114
+ temp2 = recaptcha_tags
115
+ else
116
+ temp2 = cama_captcha_tag(5, {}, {class: "#{ob[:custom_class].presence || 'form-control'} field-captcha required"}.merge(ob[:custom_attrs]))
117
+ end
113
118
  when 'file'
114
119
  temp2 = "<input multiple=\"multiple\" type=\"file\" value=\"\" name=\"#{f_name}[]\" #{ob[:custom_attrs].to_attr_format} class=\"#{ob[:custom_class].presence || 'form-control'}\">"
115
120
  when 'dropdown'
@@ -32,6 +32,22 @@ class Plugins::CamaContactForm::CamaContactForm < ActiveRecord::Base
32
32
  def self.field_template
33
33
  "<div class='form-group'>\n\t <label>[label ci]</label>\n\t<p>[descr ci]</p>\n\t<div>[ci]</div> \n</div>"
34
34
  end
35
+
36
+ # define recaptcha settings
37
+ def set_captcha_settings!
38
+ if recaptcha_enabled?
39
+ Recaptcha.configure do |config|
40
+ config.site_key = the_settings[:recaptcha_site_key]
41
+ config.secret_key = the_settings[:recaptcha_secret_key]
42
+ end
43
+ end
44
+ end
45
+
46
+ # verify if recaptcha was enabled for this form
47
+ # this method can be overwritten if recaptcha was already defined on initializers to return true as default
48
+ def recaptcha_enabled?
49
+ the_settings[:recaptcha_site_key].present?
50
+ end
35
51
 
36
52
  private
37
53
  def before_validating
@@ -84,6 +84,29 @@
84
84
  </div>
85
85
  </div>
86
86
 
87
+ <div class="panel panel-default">
88
+ <div class="panel-heading">
89
+ <h3 class="panel-title"><%= t('.form_recaptcha_title', default: 'Recaptcha Settings') %></h3>
90
+ <ul class="panel-controls">
91
+ <li><a href="#" class="panel-collapse"><span class="fa fa-angle-down"></span></a></li>
92
+ </ul>
93
+ </div>
94
+ <div class="panel-body">
95
+ <div class="alert alert-info alert-xs" style="padding: 2px"><small><%= t('.recaptcha_info', default: 'If recaptcha settings is defined, will use recaptcha rather than classic captcha') %></small></div>
96
+ <div class="">
97
+ <div class="form-group">
98
+ <label><%= t('.recaptcha_site_key', default: 'Site Key') %>:</label><br>
99
+ <input class="form-control" type="text" name="recaptcha_site_key" value="<%= @form.the_settings[:recaptcha_site_key] rescue '' %>" />
100
+ </div>
101
+
102
+ <div class="form-group">
103
+ <label><%= t('.recaptcha_secret_key', default: 'Secret Key') %>:</label><br>
104
+ <input class="form-control" type="text" name="recaptcha_secret_key" value="<%= @form.the_settings[:recaptcha_secret_key] rescue '' %>" />
105
+ </div>
106
+ </div>
107
+ </div>
108
+ </div>
109
+
87
110
  <div class="panel panel-default">
88
111
  <div class="panel-heading">
89
112
  <h3 class="panel-title"><%= t('.confirmation_email_settings', default: 'Confirmation Email Settings') %></h3>
@@ -1,6 +1,7 @@
1
1
  <%
2
2
  @form = attributes['slug'] == '__first__' ? current_site.contact_forms.first : current_site.contact_forms.where({slug: attributes['slug']}).first
3
3
  if @form.present?
4
+ @form.set_captcha_settings!
4
5
  values_fields = (flash[:values].present?)? flash[:values].to_sym : {}
5
6
  values = JSON.parse(@form.value).to_sym
6
7
  r = {form: @form, form_class: "railscf-form railscf-form-group", before_form: @form.the_settings[:railscf_mail][:previous_html].to_s, after_form: @form.the_settings[:railscf_mail][:after_html].to_s, submit: "<div class='form-group'><button class='submit_btn btn btn-default pull-right' type='submit'>[submit_label]</button></div>"}
@@ -1,4 +1,5 @@
1
1
  require "cama_contact_form/engine"
2
-
2
+ require "recaptcha"
3
+ require "recaptcha/rails"
3
4
  module CamaContactForm
4
5
  end
@@ -1,3 +1,3 @@
1
1
  module CamaContactForm
2
- VERSION = "0.0.26"
2
+ VERSION = "0.0.27"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cama_contact_form
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.26
4
+ version: 0.0.27
5
5
  platform: ruby
6
6
  authors:
7
7
  - Owen Peredo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-05 00:00:00.000000000 Z
11
+ date: 2018-06-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: recaptcha
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'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: sqlite3
29
43
  requirement: !ruby/object:Gem::Requirement