activeadmin-selleo-cms 0.0.52 → 0.0.54
Sign up to get free protection for your applications and to get access to all the features.
- data/app/assets/images/admin/question_4.png +0 -0
- data/app/assets/javascripts/activeadmin-selleo-cms/forms.storage.js +4 -2
- data/app/controllers/form_answers_controller.rb +5 -0
- data/app/mailers/activeadmin_selleo_cms/form_mailer.rb +4 -1
- data/app/models/activeadmin_selleo_cms/form.rb +9 -0
- data/app/models/activeadmin_selleo_cms/form_answer.rb +8 -9
- data/app/models/activeadmin_selleo_cms/form_answer_attachment.rb +11 -0
- data/app/models/activeadmin_selleo_cms/form_question.rb +7 -3
- data/app/views/admin/form_questions/_form.html.haml +1 -1
- data/app/views/admin/forms/_form.html.haml +1 -0
- data/app/views/form_answers/_attachments.html.haml +3 -0
- data/app/views/form_answers/_form.html.haml +5 -3
- data/app/views/form_answers/update.js.erb +2 -2
- data/app/views/forms/_download.erb +9 -4
- data/app/views/forms/_form.html.erb +2 -2
- data/config/locales/cms.en.yml +6 -2
- data/config/routes.rb +1 -0
- data/db/migrate/20130814151821_add_email_to_forms.rb +5 -0
- data/db/migrate/20130814184227_create_activeadmin_selleo_cms_form_answer_attachments.rb +9 -0
- data/lib/activeadmin-selleo-cms/version.rb +1 -1
- metadata +6 -1
Binary file
|
@@ -50,8 +50,6 @@ function setupCmsForm(form_id) {
|
|
50
50
|
if (this["value"] == "true") {
|
51
51
|
$(form_elem).attr('checked', true);
|
52
52
|
}
|
53
|
-
} else if ($(form_elem).attr('type') == 'file') {
|
54
|
-
// do nothing
|
55
53
|
} else {
|
56
54
|
$(form_elem).val(this["value"]);
|
57
55
|
}
|
@@ -67,4 +65,8 @@ function setupCmsForm(form_id) {
|
|
67
65
|
} else {
|
68
66
|
submitAnswer(form_id, this, $(this).val())
|
69
67
|
}});
|
68
|
+
|
69
|
+
$.each($('.file_upload'), function(){
|
70
|
+
$(this).find('.files').load('/form_answers/attachments?form_uuid='+localStorage[form_id]+'&form_question_id='+$(this).data('question-id'));
|
71
|
+
});
|
70
72
|
}
|
@@ -30,4 +30,9 @@ class FormAnswersController < ApplicationController
|
|
30
30
|
render action: :edit
|
31
31
|
end
|
32
32
|
|
33
|
+
def attachments
|
34
|
+
@form_answer = ActiveadminSelleoCms::FormAnswer.where(form_uuid: params[:form_uuid], form_question_id: params[:form_question_id]).first
|
35
|
+
render partial: 'attachments'
|
36
|
+
end
|
37
|
+
|
33
38
|
end
|
@@ -3,7 +3,10 @@ module ActiveadminSelleoCms
|
|
3
3
|
def form_submission(form, form_uuid)
|
4
4
|
@form = form
|
5
5
|
@form_uuid = form_uuid
|
6
|
-
mail(
|
6
|
+
mail(
|
7
|
+
to: @form.delivery_emails(@form_uuid),
|
8
|
+
subject: I18n.t("active_admin.cms.forms.email_subject")
|
9
|
+
)
|
7
10
|
end
|
8
11
|
end
|
9
12
|
end
|
@@ -3,9 +3,18 @@ module ActiveadminSelleoCms
|
|
3
3
|
PDF_PATH = Rails.root.join('public','system','pdf')
|
4
4
|
|
5
5
|
has_many :questions, class_name: "FormQuestion", :order => "position"
|
6
|
+
has_many :answers, through: :questions
|
6
7
|
|
7
8
|
validates :title, presence: true
|
9
|
+
validates :email, presence: true
|
8
10
|
|
9
11
|
attr_protected :id
|
12
|
+
|
13
|
+
def delivery_emails(form_uuid)
|
14
|
+
[(email || ActionMailer::Base.default[:to])] +
|
15
|
+
answers.joins(:form_question).
|
16
|
+
where(:activeadmin_selleo_cms_form_questions => {:question_type => FormQuestion::TYPE_EMAIL}).
|
17
|
+
where("value IS NOT NULL AND value <> ''").where(:form_uuid => form_uuid).map(&:value)
|
18
|
+
end
|
10
19
|
end
|
11
20
|
end
|
@@ -1,14 +1,13 @@
|
|
1
1
|
module ActiveadminSelleoCms
|
2
2
|
class FormAnswer < ActiveRecord::Base
|
3
|
-
attr_accessible :form_uuid, :dom_id, :form_id, :form_question_id, :value, :
|
3
|
+
attr_accessible :form_uuid, :dom_id, :form_id, :form_question_id, :value, :form_answer_attachments_attributes
|
4
4
|
validates_presence_of :form_uuid, :dom_id
|
5
5
|
|
6
|
-
has_attached_file :data,
|
7
|
-
:url => "/system/cms/form_answers/:id/:style_:basename.:extension",
|
8
|
-
:path => ":rails_root/public/system/cms/form_answers/:id/:style_:basename.:extension"
|
9
|
-
|
10
6
|
belongs_to :form
|
11
7
|
belongs_to :form_question
|
8
|
+
has_many :form_answer_attachments
|
9
|
+
|
10
|
+
accepts_nested_attributes_for :form_answer_attachments
|
12
11
|
|
13
12
|
after_save do
|
14
13
|
if form_question.input_type == :radio_button_tag and !dom_id.match(/_other/)
|
@@ -24,11 +23,11 @@ module ActiveadminSelleoCms
|
|
24
23
|
end
|
25
24
|
end
|
26
25
|
|
27
|
-
def self.
|
28
|
-
if answer = self.where(form_uuid: form_uuid, dom_id: dom_id).first
|
29
|
-
answer
|
26
|
+
def self.files_for(form_uuid, dom_id)
|
27
|
+
if answer = self.where(form_uuid: form_uuid, dom_id: dom_id).first
|
28
|
+
answer.form_answer_attachments
|
30
29
|
else
|
31
|
-
|
30
|
+
[]
|
32
31
|
end
|
33
32
|
end
|
34
33
|
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module ActiveadminSelleoCms
|
2
|
+
class ActiveadminSelleoCms::FormAnswerAttachment < ActiveRecord::Base
|
3
|
+
attr_accessible :form_answer_id, :data
|
4
|
+
|
5
|
+
has_attached_file :data,
|
6
|
+
:url => "/system/cms/form_answer_attachments/:id/:style_:basename.:extension",
|
7
|
+
:path => ":rails_root/public/system/cms/form_answer_attachments/:id/:style_:basename.:extension"
|
8
|
+
|
9
|
+
belongs_to :form_answer
|
10
|
+
end
|
11
|
+
end
|
@@ -5,11 +5,13 @@ module ActiveadminSelleoCms
|
|
5
5
|
TYPE_SELECT = 1
|
6
6
|
TYPE_FILE = 2
|
7
7
|
TYPE_LABEL = 3
|
8
|
-
|
9
|
-
|
8
|
+
TYPE_EMAIL = 4
|
9
|
+
TYPES = [TYPE_TEXT, TYPE_SELECT, TYPE_FILE, TYPE_LABEL, TYPE_EMAIL]
|
10
|
+
TYPE_NAMES = ["text question", "select question", "file upload", "label", "email"]
|
10
11
|
|
11
12
|
belongs_to :form
|
12
13
|
has_many :options, class_name: "FormQuestionOption", :order => "position"
|
14
|
+
has_many :answers, class_name: "FormAnswer"
|
13
15
|
|
14
16
|
acts_as_list :scope => :form_id
|
15
17
|
|
@@ -26,7 +28,7 @@ module ActiveadminSelleoCms
|
|
26
28
|
end
|
27
29
|
|
28
30
|
def question_type_dictionary(int)
|
29
|
-
[
|
31
|
+
TYPE_NAMES[int]
|
30
32
|
end
|
31
33
|
|
32
34
|
end
|
@@ -60,6 +62,8 @@ module ActiveadminSelleoCms
|
|
60
62
|
:file_field_tag
|
61
63
|
elsif question_type == TYPE_LABEL
|
62
64
|
:legend
|
65
|
+
elsif question_type == TYPE_EMAIL
|
66
|
+
:email_field_tag
|
63
67
|
end
|
64
68
|
end
|
65
69
|
|
@@ -5,7 +5,7 @@
|
|
5
5
|
- unless @form_question.is_type?('label')
|
6
6
|
= form.input :hint
|
7
7
|
= form.input :is_required
|
8
|
-
- unless @form_question.is_type?('file')
|
8
|
+
- unless @form_question.is_type?('file') or @form_question.is_type?('email')
|
9
9
|
= form.input :is_multi
|
10
10
|
- if @form_question.is_type?('select')
|
11
11
|
= form.input :has_other_option
|
@@ -1,6 +1,7 @@
|
|
1
1
|
= semantic_form_for [:admin, @form], url: admin_form_path(@form) do |form|
|
2
2
|
= form.inputs "General options" do
|
3
3
|
= form.input :title
|
4
|
+
= form.input :email, label: t("active_admin.cms.forms.email")
|
4
5
|
|
5
6
|
%ol.draggable_questions_container
|
6
7
|
- ActiveadminSelleoCms::FormQuestion::TYPES.each do |qtype|
|
@@ -1,5 +1,7 @@
|
|
1
|
+
%legend= t("active_admin.cms.forms.upload_new_file")
|
1
2
|
= semantic_form_for @form_answer, remote: true, html: { multipart: true } do |form|
|
2
3
|
|
3
|
-
= form.
|
4
|
-
=
|
5
|
-
|
4
|
+
= form.semantic_fields_for :form_answer_attachments, form.object.form_answer_attachments.build do |attachment_form|
|
5
|
+
= attachment_form.input :data, hint: @form_answer.data_file_name
|
6
|
+
|
7
|
+
= form.action :submit, label: t("active_admin.cms.forms.upload_file"), as: :button
|
@@ -1,2 +1,2 @@
|
|
1
|
-
$('#popup').
|
2
|
-
$('
|
1
|
+
$('#popup').dialog('close');
|
2
|
+
$('[data-question-id="<%= @form_answer.form_question.id %>"] .files').html('<%= j render partial: 'attachments' %>');
|
@@ -34,10 +34,15 @@
|
|
34
34
|
<%= text_field_tag "#{dom_id(question)}_other", ActiveadminSelleoCms::FormAnswer.value_for(params[:form_uuid], "#{dom_id(question)}_other"), data: {form_question_id: question.id} if question.has_other_option %>
|
35
35
|
</div>
|
36
36
|
<% elsif [:file_field_tag].include? question.input_type %>
|
37
|
-
|
38
|
-
<
|
39
|
-
|
40
|
-
|
37
|
+
<div class="file_upload">
|
38
|
+
<ol>
|
39
|
+
<% ActiveadminSelleoCms::FormAnswer.files_for(params[:form_uuid], dom_id(question)).each do |file| %>
|
40
|
+
<li><%= file.data_file_name %></li>
|
41
|
+
<% end %>
|
42
|
+
</ol>
|
43
|
+
</div>
|
44
|
+
<% elsif question.input_type == :legend %>
|
45
|
+
<legend><%= question.label %></legend>
|
41
46
|
<% else %>
|
42
47
|
<%= send(question.input_type, dom_id(question), ActiveadminSelleoCms::FormAnswer.value_for(params[:form_uuid], dom_id(question)), required: question.is_required, data: {form_question_id: question.id}) %>
|
43
48
|
<% end %>
|
@@ -33,8 +33,8 @@
|
|
33
33
|
</div>
|
34
34
|
<% elsif [:file_field_tag].include? question.input_type %>
|
35
35
|
<div class="file_upload" data-question-id="<%= question.id %>">
|
36
|
-
|
37
|
-
|
36
|
+
<div class="files"></div>
|
37
|
+
<%= button_to_function t("active_admin.cms.forms.upload_new_file"), "fileUpload('#{dom_id(form)}', '#{dom_id(question)}', #{question.id})", style: "padding: 5px;" %>
|
38
38
|
</div>
|
39
39
|
<% elsif question.input_type == :legend %>
|
40
40
|
<legend><%= question.label %></legend>
|
data/config/locales/cms.en.yml
CHANGED
@@ -39,6 +39,10 @@ en:
|
|
39
39
|
submit: "Submit form"
|
40
40
|
print: "Print"
|
41
41
|
pdf: "Download PDF"
|
42
|
-
select_file: "Select file"
|
43
42
|
other: "Other"
|
44
|
-
required: " (required)"
|
43
|
+
required: " (required)"
|
44
|
+
email: "Delivery email"
|
45
|
+
email_subject: "New form has been submitted"
|
46
|
+
upload: "Upload"
|
47
|
+
upload_new_file: "Upload new file"
|
48
|
+
uploaded_files: "Uploaded files"
|
data/config/routes.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activeadmin-selleo-cms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.54
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -447,6 +447,7 @@ files:
|
|
447
447
|
- app/assets/images/admin/remove.png
|
448
448
|
- app/assets/images/admin/question_3.png
|
449
449
|
- app/assets/images/admin/question_1.png
|
450
|
+
- app/assets/images/admin/question_4.png
|
450
451
|
- app/assets/images/activeadmin-selleo-cms/Jcrop.gif
|
451
452
|
- app/assets/javascripts/active_admin.js
|
452
453
|
- app/assets/javascripts/ckeditor/config.js
|
@@ -525,6 +526,7 @@ files:
|
|
525
526
|
- app/views/form_answers/_form.html.haml
|
526
527
|
- app/views/form_answers/update.js.erb
|
527
528
|
- app/views/form_answers/edit.html.haml
|
529
|
+
- app/views/form_answers/_attachments.html.haml
|
528
530
|
- app/views/activeadmin_selleo_cms/form_mailer/form_submission.html.erb
|
529
531
|
- app/modules/activeadmin_selleo_cms/content_translation.rb
|
530
532
|
- app/models/translation.rb
|
@@ -543,6 +545,7 @@ files:
|
|
543
545
|
- app/models/activeadmin_selleo_cms/form_question.rb
|
544
546
|
- app/models/activeadmin_selleo_cms/form_question_option.rb
|
545
547
|
- app/models/activeadmin_selleo_cms/image.rb
|
548
|
+
- app/models/activeadmin_selleo_cms/form_answer_attachment.rb
|
546
549
|
- app/models/activeadmin_selleo_cms/related_item.rb
|
547
550
|
- config/routes.rb
|
548
551
|
- config/locales/cms.pl.yml
|
@@ -558,6 +561,7 @@ files:
|
|
558
561
|
- db/migrate/20130207213528_change_activeadmin_selleo_cms_assets.rb
|
559
562
|
- db/migrate/20130625104333_create_activeadmin_selleo_cms_forms.rb
|
560
563
|
- db/migrate/20121204112326_create_ckeditor_assets.rb
|
564
|
+
- db/migrate/20130814151821_add_email_to_forms.rb
|
561
565
|
- db/migrate/20130102113712_create_activeadmin_selleo_cms_assets.rb
|
562
566
|
- db/migrate/20130206173233_change_activeadmin_selleo_cms_searches.rb
|
563
567
|
- db/migrate/20121129160200_create_activeadmin_selleo_cms_locales.rb
|
@@ -568,6 +572,7 @@ files:
|
|
568
572
|
- db/migrate/20130211151210_create_activeadmin_selleo_cms_related_items.rb
|
569
573
|
- db/migrate/20121221164723_create_activeadmin_selleo_cms_searches.rb
|
570
574
|
- db/migrate/20130108153415_add_redirect_to_first_sub_page.rb
|
575
|
+
- db/migrate/20130814184227_create_activeadmin_selleo_cms_form_answer_attachments.rb
|
571
576
|
- db/migrate/20121206231053_create_activeadmin_selleo_cms_sections.rb
|
572
577
|
- db/migrate/20130625104459_create_activeadmin_selleo_cms_form_question_options.rb
|
573
578
|
- db/migrate/20121227222912_create_translations.rb
|