diff --git a/DB specs.txt b/DB specs.txt index 1cf838e..aa82ac6 100644 --- a/DB specs.txt +++ b/DB specs.txt @@ -22,7 +22,7 @@ - slug : string - info : text -event +*event - title : string - slug : string - conference : [conference] @@ -66,18 +66,12 @@ event - other_option : *boolean - retired : boolean -request - - comment : text - - object : Nto1[object] - - is_invite : boolean - - state : list(string) - *user_organization_relationship - user : [user] - organization : [organization] - relationship : string -workshop +*workshop - title : string - slug : string - info : text @@ -106,7 +100,3 @@ workshop - slug : string - info : text -rails g scaffold workshop title:string slug:string info:text conference_id:integer workshop_stream_id:integer workshop_presentation_style:integer min_facilitators:integer location_id:integer start_time:datetime end_time:datetime - - - requested_resources : NtoN[workshop_resource] - - facilitators : NtoN[user] \ No newline at end of file diff --git a/Gemfile b/Gemfile index a978330..6bd5e90 100644 --- a/Gemfile +++ b/Gemfile @@ -48,7 +48,6 @@ gem "compass-rails", "~> 1.1.3" gem 'foundation-rails' gem 'turbolinks' gem 'uglifier', '>= 1.3.0' -#gem 'bcrypt-ruby', git: 'https://github.com/codahale/bcrypt-ruby.git' gem 'sorcery', '>= 0.8.1' gem 'oauth2', '~> 0.8.0' gem 'ruby-drupal-hash' diff --git a/app/assets/javascripts/application.js.coffee b/app/assets/javascripts/application.js.coffee index d420b72..1313f97 100644 --- a/app/assets/javascripts/application.js.coffee +++ b/app/assets/javascripts/application.js.coffee @@ -113,7 +113,6 @@ updateFormFieldList = () -> (json) -> $('#conference-form').html(json.form) $('#registration-form-field-list').html(json.list) - #console.log json updateFormFieldList() return $('#conference-form .remove-form-field').click () -> diff --git a/app/controllers/registration_form_fields_controller.rb b/app/controllers/registration_form_fields_controller.rb index 335d65d..b6493c2 100644 --- a/app/controllers/registration_form_fields_controller.rb +++ b/app/controllers/registration_form_fields_controller.rb @@ -38,7 +38,10 @@ class RegistrationFormFieldsController < ApplicationController private def ajax_return(success) - @registration_form_fields = RegistrationFormField.all + if params[:conference_id] + @conference = Conference.find(params[:conference_id]) + @registration_form_fields = RegistrationFormField.where(["id NOT IN (?)", @conference.registration_form_fields.map(&:id)]) + end if success @registration_form_field = RegistrationFormField.new end @@ -54,13 +57,11 @@ class RegistrationFormFieldsController < ApplicationController # Only allow a trusted parameter "white list" through. def registration_form_field_params - #type = params[:type] - #allowed = RegistrationFormField::Types[type] - #allowed << 'field_type' rff_params = params.require(:registration_form_field) allowed = RegistrationFormField::GetNonOptionKeys(rff_params[:field_type], rff_params) p = rff_params.send('permit', *allowed)#permit(:title, :help, :required, :field_type, :options, :is_retired) p[:options] = RegistrationFormField::GetOptions(rff_params[:field_type], rff_params).to_json.to_s + p[:field_type] = rff_params[:field_type] p end end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 2b5cc7f..38dcf23 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -201,7 +201,7 @@ module ApplicationHelper end end - def field(form, name, type = nil, param = nil, html: nil, help: false, attrs: [], classes: nil, label: nil, placeholder: nil, value: nil, checked: nil) + def field(form, name, type = nil, param = nil, html: nil, help: false, attrs: [], classes: nil, label: nil, placeholder: nil, value: nil, checked: nil, required: false) if form.is_a?(Symbol) || form.is_a?(String) param = type @@ -226,7 +226,7 @@ module ApplicationHelper end select_prompt = nil - show_label = true + show_label = !(/^hidden_field/.match(type.to_s)) label_after = true value_attribute = !form @@ -262,7 +262,7 @@ module ApplicationHelper label_html = eval("(" + (form ? 'form.label' : 'label_tag') + " name, '#{label ? CGI.escapeHTML(label) : name}'.html_safe)") end - if label === false + if label === false || !show_label label_html = '' end @@ -354,7 +354,9 @@ module ApplicationHelper end end form_html += (html_options || '') - puts "\n\t" + form_html + "\n" + if required + form_html += ', :required => true' + end form_html = eval(form_html) if root form_html = "<#{root}>" + form_html + "" @@ -474,9 +476,8 @@ module ApplicationHelper def form_field(f, response = nil) id = 'field_' + f.id.to_s - html = p(f, 'title')#'' + html = p(f, 'title') - #options = ActiveSupport::JSON.decode(options)#JSON.parse(f.options) options = JSON.parse(f.options) if f.field_type == 'multiple' if f.help @@ -490,25 +491,17 @@ module ApplicationHelper end val = response ? ActiveSupport::JSON.decode(response.data) : Hash.new - #val = nil if f.repeats? is_array = f.is_array? opts.each do |key, value| - #html += self.send(options['selection_type'] + '_tag', 'field-' + id) - #ActiveSupport::JSON.decode(key) - if is_array - #x - end - html += field((id + (is_array ? ('_' + key) : '')).to_sym, options['selection_type'] + '_tag', label: value, value: is_array ? (val ? val[key] : nil) : key, checked: is_array ? (val[key] == "1" || val[key] == "on") : val.to_s == key.to_s) + html += field((id + (is_array ? ('_' + key) : '')).to_sym, options['selection_type'] + '_tag', label: value, value: is_array ? (val ? val[key] : nil) : key, checked: is_array ? (val[key] == "1" || val[key] == "on") : val.to_s == key.to_s, required: f.required) end else - html += field(id.to_sym, options['selection_type'] + '_tag', opts, value: val) + html += field(id.to_sym, options['selection_type'] + '_tag', opts, value: val, required: f.required) end - #html += collection_check_boxes nil, nil, opts, nil, :key else - #x - html += field(id.to_sym, options['input_type'] + '_tag', label: false, placeholder: f.help, value: response ? ActiveSupport::JSON.decode(response.data) : nil) + html += field(id.to_sym, options['input_type'] + '_tag', label: false, placeholder: f.help, value: response ? ActiveSupport::JSON.decode(response.data) : nil, required: f.required) end html.html_safe diff --git a/app/views/registration_form_fields/_form.html.haml b/app/views/registration_form_fields/_form.html.haml index 3224c87..7ac254a 100644 --- a/app/views/registration_form_fields/_form.html.haml +++ b/app/views/registration_form_fields/_form.html.haml @@ -5,7 +5,8 @@ %ul - @registration_form_field.errors.full_messages.each do |msg| %li= msg - + - if @conference + = field :conference_id, :hidden_field_tag, value: @conference.id = field f, :field_type, :select, RegistrationFormField::Types.keys - RegistrationFormField::Fields.each do |key, value| - classes = RegistrationFormField::TypesForField(key.to_sym).collect{|v| 'field-type-' + v.to_s}