Skip to content
This repository has been archived by the owner on Mar 27, 2023. It is now read-only.

Commit

Permalink
make survey editing interface dramatically less broken
Browse files Browse the repository at this point in the history
  • Loading branch information
NealJMD committed Sep 2, 2016
1 parent 20f4430 commit 846ab7f
Show file tree
Hide file tree
Showing 9 changed files with 27 additions and 30 deletions.
5 changes: 3 additions & 2 deletions app/assets/javascripts/plugins/admin/form_preview.js
Expand Up @@ -41,18 +41,19 @@ $(function(){
};
$('.plugin.petition').each(updater('petition'));
$('.plugin.fundraiser').each(updater('fundraiser'));
$('.plugin.survey').each(updater('survey'));
};

if ($('.plugin-form-preview .content').length > 0) {
$.subscribe('plugin:form:preview:update', updatePreview);
$.subscribe('page:saved', updatePreview);
}

$('.plugin.petition, .plugin.fundraiser').on( 'ajax:success', function(){
$('.plugin.petition, .plugin.fundraiser, .plugin.survey').on( 'ajax:success', function(){
$.publish('plugin:form:preview:update');
});

$('.plugin.petition, .plugin.fundraiser').on('ajax:error', function(e, xhr,resp){
$('.plugin.petition, .plugin.fundraiser, .plugin.survey').on('ajax:error', function(e, xhr,resp){
//for debugging
console.log(xhr, resp);
});
Expand Down
5 changes: 3 additions & 2 deletions app/controllers/plugins/forms_controller.rb
Expand Up @@ -15,7 +15,8 @@ def create

def show
plugin = Plugins.find_for permitted_params[:plugin_type], permitted_params[:plugin_id]
render partial: 'plugins/shared/preview', locals: { plugin: plugin }
partial_dir = (plugin.name == 'Survey') ? 'surveys' : 'shared'
render partial: "plugins/#{partial_dir}/preview", locals: { plugin: plugin }
end

private
Expand All @@ -27,6 +28,6 @@ def attach_duplicate_form(form, plugin)
end

def permitted_params
params.permit(:plugin_id, :plugin_type, :master_id)
params.permit(:plugin_id, :plugin_type, :master_id, :form_id)
end
end
1 change: 0 additions & 1 deletion app/controllers/plugins/surveys_controller.rb
Expand Up @@ -7,7 +7,6 @@ def add_form

respond_to do |format|
if @form.save
puts "\n\nwhyyyy\n\n",@form
format.js { render :add_form }
else
format.js { render json: { errors: @form.errors }, status: :unprocessable_entity }
Expand Down
4 changes: 2 additions & 2 deletions app/models/plugins/survey.rb
Expand Up @@ -6,7 +6,7 @@ class Plugins::Survey < ActiveRecord::Base
DEFAULTS = {}

def liquid_data(supplemental_data = {})
attributes.merge(forms: forms.map { |form| form_liquid_data(form) } )
attributes.merge(forms: forms.includes(:form_elements).map { |form| form_liquid_data(form) } )
end

def name
Expand All @@ -17,7 +17,7 @@ def form_liquid_data(form)
{
form_id: form.try(:id),
fields: form.form_elements.map(&:attributes),
outstanding_fields: outstanding_fields({}).map(&:to_s)
outstanding_fields: form.form_elements.map(&:name)
}
end
end
5 changes: 3 additions & 2 deletions app/views/plugins/shared/_customize_form.slim
@@ -1,7 +1,8 @@
h4 data-toggle="collapse" data-target=".form-customization" aria-expanded="false"
- klass = "form-customization-#{form.id}"
h4 data-toggle="collapse" data-target=".#{klass}" aria-expanded="false"
i.fa.fa-caret-right
= t('plugins.petition.customise_form')
.form-customization.collapse
.collapse class=klass
.forms-edit
= render partial: 'forms/edit', locals: { form: form }

Expand Down
21 changes: 13 additions & 8 deletions app/views/plugins/surveys/_form.slim
@@ -1,17 +1,22 @@
.row.plugin.petition.collection-editor data-plugin-id=plugin.id
.row.plugin.survey.collection-editor data-plugin-id=plugin.id

= render partial: 'plugins/shared/toggle_form', locals: { plugin: plugin, path: plugins_survey_path(plugin) }

.survey-forms
.survey-forms.col-md-7
- plugin.forms.each do |form|
= render partial: 'plugins/surveys/form_form', locals: { form: form }

= form_for plugin, remote: true, url: plugins_add_survey_form_path(plugin), html: { method: 'post', class: 'form-element' } do |f|
= f.hidden_field :id
.form-group
= f.submit 'Create form', class: 'btn btn-default xhr-feedback'
.well
= render partial: 'plugins/shared/customize_form', locals: { form: form }

.plugin-form-preview.col-md-5
h4 Preview
.content
= render partial: 'plugins/surveys/preview', locals: { plugin: plugin }

.col-md-12
= form_for plugin, remote: true, url: plugins_add_survey_form_path(plugin), html: { method: 'post', class: 'form-element' } do |f|
= f.hidden_field :id
.form-group
= f.submit 'Create form', class: 'btn btn-default xhr-feedback'

javascript:
$.publish("collection:edit:loaded");
Expand Down
10 changes: 0 additions & 10 deletions app/views/plugins/surveys/_form_form.slim

This file was deleted.

2 changes: 2 additions & 0 deletions app/views/plugins/surveys/_preview.slim
@@ -0,0 +1,2 @@
- plugin.forms.each do |form|
= render partial: 'forms/preview', locals: { form: form }
4 changes: 1 addition & 3 deletions app/views/plugins/surveys/add_form.js.erb
@@ -1,4 +1,2 @@
var html = "<%= j(render(partial: 'form_form', locals: {form: @form})) %>";
var html = "<div class='well'><%= j(render(partial: 'plugins/shared/customize_form', locals: {form: @form})) %></div>";
$(".survey-forms").append(html);
console.log('eff off!');
console.log(html);

0 comments on commit 846ab7f

Please sign in to comment.