scrivito_crm_form_widget 0.7.2 → 0.8.0.beta2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2df69e5892b774095bf4e3f3c0a67469b5f6e011
4
- data.tar.gz: 72304fda911f065c2b36cd26d9ef72912a57ddc0
3
+ metadata.gz: 165d85e828c452d6827e8465161f568447c285d3
4
+ data.tar.gz: 7902487559b63f09494ebaa79078729fdbec789c
5
5
  SHA512:
6
- metadata.gz: b3527be2dca5e6c7fcbdaf0c006209df65ed97b294ae50083fa7db58019ce5b99ce4ab39e90cd1bffd548784592a245b0364ca9cf5bc5f35a8d999a8970c5e57
7
- data.tar.gz: dc64359312e566645a60093da7fa3b040fd45afb93eabd714cd9432b2d4ff461dd8f3892bc4b348c650581a170fef367716ec75dc892785c751689d4c0dddbac
6
+ metadata.gz: 1280f07793e61e4b6773f81f12515d9f5c3812982211d6a97b84b6c12cf72081337a089942e2159395ab20e43b73ee1e9b12b69e05af3afa9d802bf9c01f7a6e
7
+ data.tar.gz: f95246027994f68484ee8259528d2a726b27f64e3b749368ab8ee9828ac72e6f9e87afdd14d963ffec234fa564a403f8289662c322b64f13c287c3dcb02ef8d1
data/Rakefile CHANGED
@@ -4,16 +4,6 @@ rescue LoadError
4
4
  puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
5
5
  end
6
6
 
7
- require 'rdoc/task'
8
-
9
- RDoc::Task.new(:rdoc) do |rdoc|
10
- rdoc.rdoc_dir = 'rdoc'
11
- rdoc.title = 'ScrivitoJrFormWidget'
12
- rdoc.options << '--line-numbers'
13
- rdoc.rdoc_files.include('README.rdoc')
14
- rdoc.rdoc_files.include('lib/**/*.rb')
15
- end
16
-
17
7
 
18
8
 
19
9
 
@@ -0,0 +1,30 @@
1
+ form .form-group.last {
2
+ display: none;
3
+ }
4
+
5
+ form.form-horizontal.label-position-top {
6
+ label {
7
+ float: none;
8
+ width: 100%;
9
+ text-align: left;
10
+ }
11
+ .col-sm-9 {
12
+ width: 100%;
13
+ float: none;
14
+ }
15
+ }
16
+
17
+ form.form-horizontal.two-column-layout {
18
+ margin: 0 -15px;
19
+ .form-group {
20
+ width: 50%;
21
+ float: left;
22
+ margin: 0;
23
+ }
24
+
25
+ .btn {
26
+ clear: both;
27
+ margin-right: 15px;
28
+ }
29
+ }
30
+
@@ -8,6 +8,8 @@ class CrmFormWidget < Widget
8
8
  attribute :redirect_to, :reference
9
9
  attribute :submit_button_text, :string
10
10
  attribute :dynamic_attributes, :widgetlist
11
+ attribute :label_position, :enum, values: ['left','top'], default: 'left'
12
+ attribute :columns, :enum, values: ['one','two'], default: 'one'
11
13
 
12
14
  def valid_widget_classes_for(field_name)
13
15
  [DynamicAttributeWidget]
@@ -52,4 +54,8 @@ class CrmFormWidget < Widget
52
54
  def self.activity_ids
53
55
  CrmFormWidget.activities.map {|a| a.id}
54
56
  end
57
+
58
+ def field_as_select?(options)
59
+ columns == 'two' || options['valid_values'].count > 5
60
+ end
55
61
  end
@@ -10,8 +10,12 @@ class CrmFormPresenter
10
10
  @activity = widget.activity
11
11
  @page = widget.obj
12
12
  @params = request.params["crm_form_presenter"]
13
+ @dynamic_params = set_dynamic_params
14
+ errors = validate_params
13
15
 
14
- if request.post? && widget.id == @params[:widget_id]
16
+ if errors.present?
17
+ return {status: "error", message: errors}
18
+ elsif request.post? && widget.id == @params[:widget_id]
15
19
  redirect_after_submit(controller, widget, self.submit)
16
20
  end
17
21
  end
@@ -32,8 +36,7 @@ class CrmFormPresenter
32
36
 
33
37
  private
34
38
  def prepare_activity_params
35
- dynamic_params = set_dynamic_params
36
- @params[:comment_notes] = dynamic_params if dynamic_params.present?
39
+ @params[:comment_notes] = @dynamic_params if @dynamic_params.present?
37
40
 
38
41
  @params.delete("widget_id")
39
42
  @params["title"] = @params[:title].empty? ? @activity.id : @params[:title]
@@ -43,7 +46,7 @@ class CrmFormPresenter
43
46
 
44
47
  def set_dynamic_params
45
48
  dynamic_params = {};
46
- @params.each do |key, value|
49
+ (@params || []).each do |key, value|
47
50
  if key.starts_with? 'dynamic_'
48
51
  dynamic_params[key] = value
49
52
  @params.delete(key)
@@ -118,4 +121,15 @@ class CrmFormPresenter
118
121
  controller.redirect_to("/#{@page.id}", alert: submit_message[:message])
119
122
  end
120
123
  end
124
+
125
+ def validate_params
126
+ return false if @params.nil?
127
+ email = validate_email(@params['custom_email'])
128
+ hook = Obj.respond_to?('crm_form_validation') ? Obj.crm_form_validation(@params) : false
129
+ email || hook
130
+ end
131
+
132
+ def validate_email(email)
133
+ email.present ? /.+@.+\..+/i.match(email).present? : false
134
+ end
121
135
  end
@@ -1,13 +1,17 @@
1
- <div class="form-group">
1
+ <div class="form-group form-field-<%= name %>">
2
2
  <%= form.label name.to_sym, label, class: "control-label col-sm-3 #{options[:mandatory] ? 'mandatory' : ''}" %>
3
3
  <div class="col-sm-9">
4
- <% options['valid_values'].each do |value| %>
5
- <div class="radio">
6
- <%= form.label "#{name}_#{value.downcase}" do %>
7
- <%= form.radio_button name.to_sym, value %>
8
- <%= t("helpers.label.crm_form_presenter.#{name}_option.#{value.downcase}") %>
9
- <% end %>
10
- </div>
4
+ <% if widget.field_as_select?(options) %>
5
+ <%= form.select(name.to_sym, options_for_select(options['valid_values'].map { |u| [u, u.downcase] })) %>
6
+ <% else %>
7
+ <% options['valid_values'].each do |value| %>
8
+ <div class="radio">
9
+ <%= form.label "#{name}_#{value.downcase}" do %>
10
+ <%= form.radio_button name.to_sym, value %>
11
+ <%= t("helpers.label.crm_form_presenter.#{name}_option.#{value.downcase}") %>
12
+ <% end %>
13
+ </div>
14
+ <% end %>
11
15
  <% end %>
12
16
  </div>
13
17
  </div>
@@ -1,4 +1,4 @@
1
- <div class="form-group">
1
+ <div class="form-group form-field-<%= name %>">
2
2
  <%= form.label name.to_sym, label, class: "control-label col-sm-3 #{options[:mandatory] ? 'mandatory' : ''}" %>
3
3
  <div class="col-sm-9">
4
4
  <% options['valid_values'].each do |value| %>
@@ -1,4 +1,4 @@
1
- <div class="form-group">
1
+ <div class="form-group form-field-<%= name %>">
2
2
  <%= form.label name.to_sym, label, class: "control-label col-sm-3 #{options[:mandatory] ? 'mandatory' : ''}" %>
3
3
  <div class="col-sm-9">
4
4
  <%= form.text_field name.to_sym, class: "form-control", maxlength: options[:maxlength] %>
@@ -1,4 +1,4 @@
1
- <div class="form-group">
1
+ <div class="form-group form-field-<%= name %>">
2
2
  <%= form.label name.to_sym, label, class: "control-label col-sm-3 #{options[:mandatory] ? 'mandatory' : ''}" %>
3
3
  <div class="col-sm-9">
4
4
  <%= form.text_area name.to_sym, class: "form-control", maxlength: options[:maxlength] %>
@@ -1,4 +1,4 @@
1
- <%= form_for CrmFormPresenter.new(widget, request, controller), url: scrivito_path(widget.obj), html: { class: "form-horizontal"} do |form| %>
1
+ <%= form_for CrmFormPresenter.new(widget, request, controller), url: scrivito_path(widget.obj), html: { class: "form-horizontal clearfix label-position-#{widget.label_position} #{widget.columns}-column-layout"} do |form| %>
2
2
  <% if widget.subject %>
3
3
  <%= form.hidden_field(:title, value: widget.subject) %>
4
4
  <% end %>
@@ -7,12 +7,12 @@
7
7
 
8
8
  <% widget.attributes.each do |name, options| %>
9
9
  <% CrmFormPresenter.send(:attr_accessor, name.to_sym) %>
10
- <%= render "crm_form_widget/crm_#{options["attribute_type"]}", form: form, name: name, options: options, label: nil %>
10
+ <%= render "crm_form_widget/crm_#{options["attribute_type"]}", form: form, name: name, options: options, label: nil, widget: widget %>
11
11
  <% end %>
12
12
 
13
13
  <% widget.dynamic_attributes.each do |attribute| %>
14
14
  <% CrmFormPresenter.send(:attr_accessor, attribute.field_name.to_sym) %>
15
- <%= render "crm_form_widget/crm_#{attribute.type}", form: form, name: attribute.field_name, options: attribute.options || {}, label: attribute.label %>
15
+ <%= render "crm_form_widget/crm_#{attribute.type}", form: form, name: attribute.field_name, options: attribute.options || {}, label: attribute.label, widget: widget %>
16
16
  <% end %>
17
17
 
18
18
  <div class="form-group last">
@@ -19,6 +19,14 @@
19
19
  <%= scrivito_details_for t('scrivito_crm_form_widget.details.submit_button_text', default: 'Text on submit button') do %>
20
20
  <%= scrivito_tag :div, widget, :submit_button_text %>
21
21
  <% end %>
22
+
23
+ <%= scrivito_details_for t('scrivito_crm_form_widget.details.label_position', default: 'Label Position') do %>
24
+ <%= scrivito_tag :div, widget, :label_position %>
25
+ <% end %>
26
+
27
+ <%= scrivito_details_for t('scrivito_crm_form_widget.details.columns', default: 'Columns') do %>
28
+ <%= scrivito_tag :div, widget, :columns %>
29
+ <% end %>
22
30
  </div>
23
31
 
24
32
  <div class="tab-panel" id="edit-tags">
@@ -1,3 +1,3 @@
1
1
  module ScrivitoCrmFormWidget
2
- VERSION = "0.7.2"
2
+ VERSION = "0.8.0.beta2"
3
3
  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: 0.7.2
4
+ version: 0.8.0.beta2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scrivito
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-30 00:00:00.000000000 Z
11
+ date: 2017-05-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: scrivito
@@ -77,7 +77,7 @@ files:
77
77
  - Rakefile
78
78
  - app/assets/images/widgets/scrivito_crm_form_widget.png
79
79
  - app/assets/scripts/scrivito_crm_form_widget.js
80
- - app/assets/styles/scrivito_crm_form_widget.css
80
+ - app/assets/styles/scrivito_crm_form_widget.scss
81
81
  - app/controllers/scrivito_crm_form_widget/application_controller.rb
82
82
  - app/models/crm_form_widget.rb
83
83
  - app/models/dynamic_attribute_widget.rb
@@ -112,12 +112,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
112
112
  version: '0'
113
113
  required_rubygems_version: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ">="
115
+ - - ">"
116
116
  - !ruby/object:Gem::Version
117
- version: '0'
117
+ version: 1.3.1
118
118
  requirements: []
119
119
  rubyforge_project:
120
- rubygems_version: 2.4.5
120
+ rubygems_version: 2.5.1
121
121
  signing_key:
122
122
  specification_version: 4
123
123
  summary: A widget for Scrivito to show a form using Infopark CRM api v2.0.
@@ -1,3 +0,0 @@
1
- form .form-group.last {
2
- display: none;
3
- }