scrivito_crm_form_widget 1.0.0.beta4 → 1.0.0.beta5
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.
- checksums.yaml +4 -4
- data/app/assets/styles/scrivito_crm_form_widget.scss +6 -2
- data/app/models/crm_form_widget.rb +10 -2
- data/app/presenter/crm_form_presenter.rb +13 -9
- data/app/views/crm_form_widget/_error_messages.html.erb +12 -0
- data/app/views/crm_form_widget/show.html.erb +9 -1
- data/lib/scrivito_crm_form_widget/configuration.rb +2 -0
- data/lib/scrivito_crm_form_widget/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2e9119d84829ac864fb0e9331e35adea866aa494
|
4
|
+
data.tar.gz: 3793bae1eb8586dcb894424677918245801425d1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6f69d0e62578a3db7e78733f58b6bb10e13dec47800e965bb0314f380515eb6bbbd0b07a76965e37740b4285ad22ffc4e88f7cb1478781d0a50a0926b1b0a1ab
|
7
|
+
data.tar.gz: f10fc0046f257339970c36d03cbf3d3a5cda8fb2e52b990bf7ae42e14416596492e34a7851938193738f8e657452021acc240a6b8a93d9ec7d22f34372986390
|
@@ -1,3 +1,6 @@
|
|
1
|
+
//= require scrivito_advanced_editors
|
2
|
+
//= require_self
|
3
|
+
|
1
4
|
form .form-group.last {
|
2
5
|
display: none;
|
3
6
|
}
|
@@ -19,7 +22,8 @@ form.form-horizontal.label-position-top {
|
|
19
22
|
.form-group {
|
20
23
|
width: 50%;
|
21
24
|
float: left;
|
22
|
-
margin: 0;
|
25
|
+
margin-left: 0;
|
26
|
+
margin-right: 0;
|
23
27
|
}
|
24
28
|
|
25
29
|
.form-submit-button-container {
|
@@ -28,7 +32,7 @@ form.form-horizontal.label-position-top {
|
|
28
32
|
|
29
33
|
.btn {
|
30
34
|
margin-right: 15px;
|
31
|
-
margin-top:
|
35
|
+
margin-top: 0;
|
32
36
|
}
|
33
37
|
}
|
34
38
|
}
|
@@ -37,11 +37,19 @@ class CrmFormWidget < Widget
|
|
37
37
|
end
|
38
38
|
|
39
39
|
def attributes
|
40
|
-
activity.attribute_definitions
|
40
|
+
@attributes ||= activity.attribute_definitions
|
41
41
|
end
|
42
42
|
|
43
43
|
def activity
|
44
|
-
Crm::Type.find(activity_id)
|
44
|
+
@activity ||= Crm::Type.find(activity_id)
|
45
|
+
end
|
46
|
+
|
47
|
+
def validate(params)
|
48
|
+
errors = []
|
49
|
+
attributes.each do |name, options|
|
50
|
+
errors << {attribute: name, message: "Attribute #{name} can not be blank.", code: 'blank'} if options[:mandatory] && !params[name].present?
|
51
|
+
end
|
52
|
+
errors
|
45
53
|
end
|
46
54
|
|
47
55
|
def activity_id?
|
@@ -12,10 +12,10 @@ class CrmFormPresenter
|
|
12
12
|
@params = request.params["crm_form_presenter"]
|
13
13
|
@dynamic_params = set_dynamic_params
|
14
14
|
@access_code = generate_random_string(12)
|
15
|
-
errors = validate_params
|
15
|
+
errors = (request.post? || !@params.nil?) ? validate_params : nil
|
16
16
|
|
17
17
|
if errors.present?
|
18
|
-
|
18
|
+
controller.redirect_to("/#{@page.id}", alert: { status: "error", message: errors, widget_id: @widget.id })
|
19
19
|
elsif request.post? && widget.id == @params[:widget_id]
|
20
20
|
request.session['access_via_form'] = @access_code
|
21
21
|
redirect_after_submit(controller, widget, self.submit)
|
@@ -28,10 +28,12 @@ class CrmFormPresenter
|
|
28
28
|
else
|
29
29
|
@params.delete('email')
|
30
30
|
end
|
31
|
-
@params.delete('access_via_form')
|
32
31
|
|
33
32
|
prepare_contact(@params['custom_email'], @params['custom_last_name'])
|
34
33
|
prepare_activity_params
|
34
|
+
|
35
|
+
Obj.crm_form_before_send_hook(@params, @activity) if Obj.respond_to?('before_send_hook')
|
36
|
+
|
35
37
|
Crm::Activity.create(@params)
|
36
38
|
return {status: "success", message: "Your form was send successfully"}
|
37
39
|
rescue Crm::Errors::InvalidValues => e
|
@@ -47,6 +49,7 @@ class CrmFormPresenter
|
|
47
49
|
@params.delete(:custom_file)
|
48
50
|
end
|
49
51
|
|
52
|
+
@params.delete('access_via_form')
|
50
53
|
@params.delete("widget_id")
|
51
54
|
@params["title"] = @params[:title].empty? ? @activity.id : @params[:title]
|
52
55
|
@params["type_id"] = @activity.id
|
@@ -125,17 +128,18 @@ class CrmFormPresenter
|
|
125
128
|
|
126
129
|
def redirect_after_submit(controller, widget, submit_message)
|
127
130
|
if submit_message[:status] == "success"
|
128
|
-
controller.redirect_to(redirect_path(@page, widget), notice: submit_message[:message])
|
131
|
+
controller.redirect_to(redirect_path(@page, widget), notice: [submit_message[:message]])
|
129
132
|
elsif submit_message[:status] == "error"
|
130
|
-
controller.redirect_to("/#{@page.id}", alert: submit_message[:message])
|
133
|
+
controller.redirect_to("/#{@page.id}", alert: [submit_message[:message]])
|
131
134
|
end
|
132
135
|
end
|
133
136
|
|
134
137
|
def validate_params
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
138
|
+
email = valid_email?(@params['custom_email']) ? [] : [{attribute: 'custom_email', message: 'The email is not a valid email address.', code: 'email'}]
|
139
|
+
hook = Obj.respond_to?('crm_form_validation_hook') ? Obj.crm_form_validation_hook(@params, @widget) : []
|
140
|
+
crm = @widget.validate(@params)
|
141
|
+
|
142
|
+
email + hook + crm
|
139
143
|
end
|
140
144
|
|
141
145
|
def valid_email?(email)
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<div class="alert-danger crm-form-message alert">
|
2
|
+
<ul>
|
3
|
+
<% flash['alert']['message'].each do |msg| %>
|
4
|
+
<li>
|
5
|
+
<%= t("helpers.messages.crm_form_presenter.#{msg['code']}",
|
6
|
+
field: t("helpers.label.crm_form_presenter.#{msg['attribute']}", default: msg['attribute']),
|
7
|
+
default: msg['message']).html_safe
|
8
|
+
%>
|
9
|
+
</li>
|
10
|
+
<% end %>
|
11
|
+
</ul>
|
12
|
+
</div>
|
@@ -1,8 +1,16 @@
|
|
1
1
|
<% if widget.activity_id? %>
|
2
|
+
<% if(flash[:alert] && ScrivitoCrmFormWidget.configuration.show_error_message && (flash[:alert]['widget_id'] == widget.id)) %>
|
3
|
+
<%= render 'crm_form_widget/error_messages' %>
|
4
|
+
<% end %>
|
5
|
+
<% if flash[:notice] && ScrivitoCrmFormWidget.configuration.show_error_message %>
|
6
|
+
<div class="alert-success crm-form-message alert">
|
7
|
+
<%= t('helpers.messages.crm_form_presenter.success', default: 'Thank you for your message.').html_safe %>
|
8
|
+
</div>
|
9
|
+
<% end %>
|
2
10
|
<%= render 'crm_form_widget/form', widget: widget %>
|
3
11
|
<% else %>
|
4
12
|
<div class="alert alert-warning">
|
5
13
|
<p><strong>Select an activty</strong></p>
|
6
14
|
<%= scrivito_tag(:div, widget, :activity_id, data: {toggle_button_list: CrmFormWidget.activity_ids, scrivito_editors_reload: true }) %>
|
7
15
|
</div>
|
8
|
-
<% end %>
|
16
|
+
<% end %>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: scrivito_crm_form_widget
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.
|
4
|
+
version: 1.0.0.beta5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Scrivito
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-06-
|
11
|
+
date: 2017-06-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: scrivito
|
@@ -90,6 +90,7 @@ files:
|
|
90
90
|
- app/views/crm_form_widget/_crm_string.html.erb
|
91
91
|
- app/views/crm_form_widget/_crm_text.html.erb
|
92
92
|
- app/views/crm_form_widget/_dynamic_attributes.html.erb
|
93
|
+
- app/views/crm_form_widget/_error_messages.html.erb
|
93
94
|
- app/views/crm_form_widget/_file_upload.html.erb
|
94
95
|
- app/views/crm_form_widget/_form.html.erb
|
95
96
|
- app/views/crm_form_widget/details.html.erb
|