From 070b12f04a108ee23ea9c1dcca1ec335e30d0ec5 Mon Sep 17 00:00:00 2001 From: Benjamin Choi Date: Tue, 22 Apr 2014 23:01:33 -0400 Subject: [PATCH 1/7] [#1877] [Ben] Set up Enquiries controller, enquiries listing and view single enquiry --- app/controllers/enquiries_controller.rb | 126 ++++++++++++++++++ app/helpers/enquiries_helper.rb | 11 ++ app/models/field.rb | 10 +- .../enquiries/_field_display_basic.html.erb | 6 + .../enquiries/_field_display_photo.html.erb | 22 +++ app/views/enquiries/_header.html.erb | 4 + app/views/enquiries/_summary_row.html.erb | 33 +++++ app/views/enquiries/index.html.erb | 10 ++ app/views/enquiries/show.html.erb | 19 +++ app/views/layouts/application.html.erb | 3 + config/locales/en.yml | 13 ++ config/routes.rb | 7 + 12 files changed, 261 insertions(+), 3 deletions(-) create mode 100644 app/controllers/enquiries_controller.rb create mode 100644 app/helpers/enquiries_helper.rb create mode 100644 app/views/enquiries/_field_display_basic.html.erb create mode 100644 app/views/enquiries/_field_display_photo.html.erb create mode 100644 app/views/enquiries/_header.html.erb create mode 100644 app/views/enquiries/_summary_row.html.erb create mode 100644 app/views/enquiries/index.html.erb create mode 100644 app/views/enquiries/show.html.erb diff --git a/app/controllers/enquiries_controller.rb b/app/controllers/enquiries_controller.rb new file mode 100644 index 000000000..e3369fbf3 --- /dev/null +++ b/app/controllers/enquiries_controller.rb @@ -0,0 +1,126 @@ +class EnquiriesController < ApplicationController + skip_before_filter :verify_authenticity_token + skip_before_filter :check_authentication, :only => [:reindex] + + before_filter :load_enquiry_or_redirect, :only => [:show, :edit, :destroy] + before_filter :current_user, :except => [:reindex] + + # GET /enquiries + def index + # Skeleton based on child controller code + authorize! :index, Enquiry + + @page_name = t("home.view_enquiries") + @aside = 'shared/sidebar_links' + @filter = params[:filter] || params[:status] || "all" + @order = params[:order_by] || 'enquirer_name' + setup_fields! + per_page = params[:per_page] || EnquiriesHelper::View::PER_PAGE + per_page = per_page.to_i unless per_page == 'all' + + filter_enquiries per_page + end + + # GET /enquiries/1 + def show + authorize! :show, @enquiry + @page_name = t("enquiry.view") + @body_class = 'profile-page' + @enquiry = Enquiry.get(params[:id]) + setup_fields! + end + + # GET /enquiries/new + def new + # Skeleton based on child controller code + authorize! :create, Enquiry + + @page_name = t("enquiries.create_new_enquiry") + setup_fields! + @enquiry = Enquiry.new + end + + # GET /enquiries/1/edit + def edit + # Skeleton based on child controller code + authorize! :update, @enquiry + + @page_name = t("enquiry.edit") + setup_fields! + end + + # POST /enquiries + def create + # Skeleton based on child controller code + authorize! :create, Enquiry + params[:enquiry] = JSON.parse(params[:enquiry]) if params[:enquiry].is_a?(String) + create_or_update_enquiry(params[:enquiry]) + if @enquiry.save + flash[:notice] = t("enquiry.messages.creation_success") + redirect_to(@enquiry) + else + render :action => "new" + end + end + + def update + # Not yet implemented + end + + private + + def load_enquiry_or_redirect + @enquiry = Enquiry.get(params[:id]) + + if @enquiry.nil? + flash[:error] = "Enquiry with the given id is not found" + redirect_to :action => :index and return + end + end + + def filter_enquiries(per_page) + total_rows, enquiries = enquiries_by_user_access(@filter, per_page) + @enquiries = paginated_collection enquiries, total_rows + end + + def enquiries_by_user_access(filter_option, per_page) + # Skeleton based on child controller code + keys = [filter_option] # Not currently using keys + options = {} + all_rows = Enquiry.view("all") + return all_rows.length, all_rows + end + + def paginated_collection instances, total_rows + page = params[:page] || 1 + WillPaginate::Collection.create(page, EnquiriesHelper::View::PER_PAGE, total_rows) do |pager| + pager.replace(instances) + end + end + + def setup_fields! + @form_sections = get_form_sections + field_hash_list = @form_sections.collect{ |section| section["fields"] }.flatten + @fields = field_hash_list.collect do |field| + + field["display_name"].each do |lang, str| + field["display_name_#{lang}"] = str + end + field.delete("display_name") + + if field.has_key? "option_strings_text" + field["option_strings_text"].each do |lang, arr| + field["option_strings_text_#{lang}"] = arr.join("\n") + end + field.delete("option_strings_text") + end + + Field.new(field) + end + end + + def get_form_sections + JSON.parse(File.read(Rails.root.join("config", "enquiry_form_sections.json").to_s)) + end + +end diff --git a/app/helpers/enquiries_helper.rb b/app/helpers/enquiries_helper.rb new file mode 100644 index 000000000..7419c6c0c --- /dev/null +++ b/app/helpers/enquiries_helper.rb @@ -0,0 +1,11 @@ +module EnquiriesHelper + + module View + PER_PAGE = 20 + MAX_PER_PAGE = 9999 + end + + def text_to_identify_enquiry enquiry + enquiry['enquirer_name'].blank? ? enquiry.id : "Enquiry by #{enquiry['enquirer_name']}: #{enquiry.id}" + end +end diff --git a/app/models/field.rb b/app/models/field.rb index 8b04635fd..1deb212aa 100644 --- a/app/models/field.rb +++ b/app/models/field.rb @@ -23,6 +23,7 @@ class Field < Hash PHOTO_UPLOAD_BOX = "photo_upload_box" AUDIO_UPLOAD_BOX = "audio_upload_box" DATE_FIELD = "date_field" + LIST_RECORD_FIELD = "list_record_field" FIELD_FORM_TYPES = { TEXT_FIELD => "basic", TEXT_AREA => "basic", @@ -32,7 +33,8 @@ class Field < Hash PHOTO_UPLOAD_BOX => "basic", AUDIO_UPLOAD_BOX => "basic", DATE_FIELD => "basic", - NUMERIC_FIELD => "basic"} + NUMERIC_FIELD => "basic", + LIST_RECORD_FIELD => "basic"} FIELD_DISPLAY_TYPES = { TEXT_FIELD => "basic", TEXT_AREA => "basic", @@ -42,7 +44,8 @@ class Field < Hash PHOTO_UPLOAD_BOX => "photo", AUDIO_UPLOAD_BOX => "audio", DATE_FIELD => "basic", - NUMERIC_FIELD => "basic"} + NUMERIC_FIELD => "basic", + LIST_RECORD_FIELD => "basic"} DEFAULT_VALUES = { TEXT_FIELD => "", TEXT_AREA => "", @@ -52,7 +55,8 @@ class Field < Hash PHOTO_UPLOAD_BOX => nil, AUDIO_UPLOAD_BOX => nil, DATE_FIELD => "", - NUMERIC_FIELD => ""} + NUMERIC_FIELD => "", + LIST_RECORD_FIELD => []} validates_presence_of "display_name_#{I18n.default_locale}", :message=> I18n.t("errors.models.field.display_name_presence") validates_with_method :name, :method => :validate_unique_name diff --git a/app/views/enquiries/_field_display_basic.html.erb b/app/views/enquiries/_field_display_basic.html.erb new file mode 100644 index 000000000..a8be8db14 --- /dev/null +++ b/app/views/enquiries/_field_display_basic.html.erb @@ -0,0 +1,6 @@ + +

+ + <%= field_value_for_display enquiry[field.name] %> +

+ diff --git a/app/views/enquiries/_field_display_photo.html.erb b/app/views/enquiries/_field_display_photo.html.erb new file mode 100644 index 000000000..2082a637a --- /dev/null +++ b/app/views/enquiries/_field_display_photo.html.erb @@ -0,0 +1,22 @@ + + +<% content_for :javascript do %> + +<% end %> + +
+
+ <% # Not yet implemented %> +
+
\ No newline at end of file diff --git a/app/views/enquiries/_header.html.erb b/app/views/enquiries/_header.html.erb new file mode 100644 index 000000000..f48b6c873 --- /dev/null +++ b/app/views/enquiries/_header.html.erb @@ -0,0 +1,4 @@ +

<%= t("enquiries.label") %>

+<% if can? :create, Enquiry %> + <%= link_to content_tag(:span, t("enquiries.create_new_enquiry"), :class => 'create_user'), new_enquiry_path, :class=>'btn' %> +<% end %> diff --git a/app/views/enquiries/_summary_row.html.erb b/app/views/enquiries/_summary_row.html.erb new file mode 100644 index 000000000..b1c1815fc --- /dev/null +++ b/app/views/enquiries/_summary_row.html.erb @@ -0,0 +1,33 @@ + +
+ +
+ +

<%= link_to text_to_identify_enquiry(enquiry), enquiry_path(enquiry) %>

+
+ + <% @fields.each do |relevant_field| %> + <% if relevant_field.visible? %> +
+
<%= t(relevant_field.display_name) %>:
+
<%= enquiry[relevant_field[:name]] %>
+
+ <% end %> + <% end %> +
+ +
+
+ <% show_links = true unless local_assigns.has_key? :show_links %> + <% if show_links %> +
    + <% if can?(:update, enquiry) %> +
  • + <%= link_to(t('buttons.edit'), edit_enquiry_path(enquiry), :class=>'edit') %> | +
  • + <% end %> +
+ <% end %> +
+
+ diff --git a/app/views/enquiries/index.html.erb b/app/views/enquiries/index.html.erb new file mode 100644 index 000000000..afbbd05b5 --- /dev/null +++ b/app/views/enquiries/index.html.erb @@ -0,0 +1,10 @@ +<%= render :partial => "enquiries/header" %> +
+ +
+ <%= render :partial => "enquiries/summary_row", :collection => @enquiries, :as => :enquiry %> + + <%= render :partial => 'shared/pagination', :locals => { :results => @enquiries } %> +
+ +
diff --git a/app/views/enquiries/show.html.erb b/app/views/enquiries/show.html.erb new file mode 100644 index 000000000..87493019e --- /dev/null +++ b/app/views/enquiries/show.html.erb @@ -0,0 +1,19 @@ +

<%= link_to t("enquiries.label"), enquiries_path %> > <%= text_to_identify_enquiry(@enquiry) %>

+ +<% if can? :update, @enquiry %> + <%= link_to content_tag(:span, t("buttons.edit"), :class => 'edit'), edit_enquiry_path(@enquiry), :class=>'btn' %> +<% end %> + +
+ <% content_for :stylesheet do %> + <%= stylesheet_link_tag "jquery.lightbox-0.5" %> + <% end %> + +
+
+
+ <% (@fields.select{|field| field.visible?}).each do |field| %> + <%= render :partial => "field_display_#{field.display_type}", :locals=>{:field => field, :enquiry=>@enquiry} %> + <% end %> +
+
diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index 181d4e53b..1e6da3ace 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -29,6 +29,9 @@ <% if can? :read, Child %>
  • <%= link_to t("navigation.children"), children_path %>
  • <% end %> + <% if can? :read, Enquiry %> +
  • <%= link_to t("navigation.enquiries"), enquiries_path %>
  • + <% end %> <% if current_user_name==nil or can? :manage, FormSection %>
  • <%= link_to t("navigation.forms"), form_sections_path %>
  • <% end %> diff --git a/config/locales/en.yml b/config/locales/en.yml index a41dbbb06..944c305a9 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -14,6 +14,7 @@ en: current_time_zone: "Current time zone" language: "Language" view_records: "View Records" + view_enquiries: "View Enquiries" users: "Manage Users" manage_system_users: "Manage Server Synchronisation Users" records_need_attention: "Records need Attention" @@ -67,6 +68,7 @@ en: navigation: children: "CHILDREN" + enquiries: "ENQUIRIES" forms: "FORMS" users: "USERS" devices: "DEVICES" @@ -201,6 +203,17 @@ en: one: "child" other: "children" + enquiries: + label: "Enquiries" + create_new_enquiry: "Create New Enquiry" + + enquiry: + view: "View Enquiry" + edit: "Edit Enquiry" + + messages: + creation_success: "Enquiry successfully created." + users: unverified: "Unverified Users" select_role: "Please select a role before verifying the user" diff --git a/config/routes.rb b/config/routes.rb index 76ebb788e..bcaef5392 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -65,6 +65,13 @@ match '/children' => 'children#index', :as => :child_filter +####################### +# ENQUIRY URLS +####################### + + resources :enquiries + + ####################### # API URLS ####################### From f242ea14447b1e5cb8c91fde218f72dddbfbb02b Mon Sep 17 00:00:00 2001 From: Benjamin Choi Date: Tue, 29 Apr 2014 21:34:39 -0400 Subject: [PATCH 2/7] [#1877] [Ben] Modified view single enquiry to use tabs --- app/controllers/enquiries_controller.rb | 39 +- .../enquiries/_form_section_info.html.erb | 15 + .../enquiries/_show_form_section.html.erb | 13 + app/views/enquiries/_tabs.html.erb | 13 + app/views/enquiries/show.html.erb | 10 +- config/enquiry_form_sections.json | 1832 +++++++++-------- 6 files changed, 1025 insertions(+), 897 deletions(-) create mode 100644 app/views/enquiries/_form_section_info.html.erb create mode 100644 app/views/enquiries/_show_form_section.html.erb create mode 100644 app/views/enquiries/_tabs.html.erb diff --git a/app/controllers/enquiries_controller.rb b/app/controllers/enquiries_controller.rb index e3369fbf3..f9871c53f 100644 --- a/app/controllers/enquiries_controller.rb +++ b/app/controllers/enquiries_controller.rb @@ -100,27 +100,36 @@ def paginated_collection instances, total_rows def setup_fields! @form_sections = get_form_sections - field_hash_list = @form_sections.collect{ |section| section["fields"] }.flatten - @fields = field_hash_list.collect do |field| - - field["display_name"].each do |lang, str| - field["display_name_#{lang}"] = str + @fields = @form_sections.collect{ |section| section["fields"] }.flatten + end + + def get_form_sections + JSON.parse(File.read(Rails.root.join("config", "enquiry_form_sections.json").to_s)).collect do |form_section| + form_section["fields"].each do |field| + field["display_name"].each do |lang, str| + field["display_name_#{lang}"] = str + end + field.delete("display_name") + + if field.has_key? "option_strings_text" + field["option_strings_text"].each do |lang, arr| + field["option_strings_text_#{lang}"] = arr.join("\n") + end + field.delete("option_strings_text") + end + + Field.new(field) end - field.delete("display_name") - if field.has_key? "option_strings_text" - field["option_strings_text"].each do |lang, arr| - field["option_strings_text_#{lang}"] = arr.join("\n") + ["name", "help_text", "description"].each do |property| + form_section[property].each do |lang, str| + form_section["#{property}_#{lang}"] = str end - field.delete("option_strings_text") + form_section.delete(property) end - Field.new(field) + FormSection.new(form_section) end end - def get_form_sections - JSON.parse(File.read(Rails.root.join("config", "enquiry_form_sections.json").to_s)) - end - end diff --git a/app/views/enquiries/_form_section_info.html.erb b/app/views/enquiries/_form_section_info.html.erb new file mode 100644 index 000000000..ccc5a7fc4 --- /dev/null +++ b/app/views/enquiries/_form_section_info.html.erb @@ -0,0 +1,15 @@ +

    <%= t(form_section.unique_id,:default => form_section.name) %>

    +
    + +
    + <% if form_section.description.present? %> +
    + <%= form_section.description %> +
    + <% end %> + <% if form_section.help_text.present? %> +
    + <%= form_section.help_text %> +
    + <% end %> +
    diff --git a/app/views/enquiries/_show_form_section.html.erb b/app/views/enquiries/_show_form_section.html.erb new file mode 100644 index 000000000..12182bb69 --- /dev/null +++ b/app/views/enquiries/_show_form_section.html.erb @@ -0,0 +1,13 @@ +<% @form_sections.each do |section| %> + +
    +
    + + <%= render :partial => "form_section_info", :locals => {:form_section => section} %> + + <% (section.fields.select{|field| field.visible?}).each do |field| %> + <%= render :partial => "field_display_#{field.display_type}", :locals=>{:field => field, :enquiry=>@enquiry} %> + <% end %> + +
    +<% end %> diff --git a/app/views/enquiries/_tabs.html.erb b/app/views/enquiries/_tabs.html.erb new file mode 100644 index 000000000..763c714a8 --- /dev/null +++ b/app/views/enquiries/_tabs.html.erb @@ -0,0 +1,13 @@ + \ No newline at end of file diff --git a/app/views/enquiries/show.html.erb b/app/views/enquiries/show.html.erb index 87493019e..88eee72a7 100644 --- a/app/views/enquiries/show.html.erb +++ b/app/views/enquiries/show.html.erb @@ -10,10 +10,14 @@ <% end %>
    + +
    + <%= render :partial => "tabs", :object => @form_sections %> +
    +
    - <% (@fields.select{|field| field.visible?}).each do |field| %> - <%= render :partial => "field_display_#{field.display_type}", :locals=>{:field => field, :enquiry=>@enquiry} %> - <% end %> + <%= render :partial => "show_form_section" %>
    +
    diff --git a/config/enquiry_form_sections.json b/config/enquiry_form_sections.json index 0ee96a091..1ba617b59 100644 --- a/config/enquiry_form_sections.json +++ b/config/enquiry_form_sections.json @@ -1,880 +1,954 @@ -[ { - "name": { - "en": "Potential matches" - }, - "help_text": { - "en": "" - }, - "description": { - "en": "" - }, - "unique_id": "e98c765c", - "visible": "true", - "order": 1, - "fields": [{ - "name": "91aec05e", - "visible": "true", - "type": "list_record_field", - "highlight_information": { - "highlighted": false - }, - "editable": false, - "display_name": { - "en": "List of matching child records" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }], - "editable": false, - "base_language": "en" - },{ - "name": { - "en": "Enquirer Details" - }, - "help_text": { - "en": "" - }, - "description": { - "en": "Details of the enquirer looking for child" - }, - "unique_id": "5aaeeac6", - "visible": "true", - "order": 2, - "fields": [{ - "name": "enquirer_name", - "visible": "true", - "type": "text_field", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Name" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }, { - "name": "7b8124c6", - "visible": "true", - "type": "select_box", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Sex" - }, - "help_text": { - "en": "" - }, - "option_strings_text": { - "en": ["Male", "Female"] - }, - "base_language": "en" - }, { - "name": "f9e9ad8c", - "visible": "true", - "type": "text_field", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Date of birth" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }, { - "name": "012dea68", - "visible": "true", - "type": "text_field", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Place of birth" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }, { - "name": "0b4e5d02", - "visible": "true", - "type": "textarea", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Address" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }, { - "name": "1196a106", - "visible": "true", - "type": "text_field", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Telephone number" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }, { - "name": "19925d50", - "visible": "true", - "type": "text_field", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Ethnic group/tribe" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }, { - "name": "2087940e", - "visible": "true", - "type": "text_field", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Nationality" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }, { - "name": "39ef5e2c", - "visible": "true", - "type": "text_field", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Relationship to child" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }, { - "name": "4d64922e", - "visible": "true", - "type": "textarea", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Message for the child" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }], - "editable": true, - "base_language": "en" -}, { - "name": { - "en": "Child Details" - }, - "help_text": { - "en": "" - }, - "description": { - "en": "Details of the child" - }, - "unique_id": "6fd43e0e", - "visible": "true", - "order": 3, - "fields": [{ - "name": "e078c116", - "visible": "true", - "type": "text_field", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Name" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }, { - "name": "ec630b8a", - "visible": "true", - "type": "text_field", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Also known as(nickname)" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }, { - "name": "000dbeb4", - "visible": "true", - "type": "select_box", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Sex" - }, - "help_text": { - "en": "" - }, - "option_strings_text": { - "en": ["Male", "Female"] - }, - "base_language": "en" - }, { - "name": "11dea89c", - "visible": "true", - "type": "text_field", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Date of birth/age" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }, { - "name": "1927505e", - "visible": "true", - "type": "text_field", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Languages spoken" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }, { - "name": "1e8ca2ba", - "visible": "true", - "type": "text_field", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Nationality" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }, { - "name": "27923c80", - "visible": "true", - "type": "text_field", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Ethnic group/tribe" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }, { - "name": "2e494f78", - "visible": "true", - "type": "text_field", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Distinguishing physical characteristics" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }], - "editable": true, - "base_language": "en" -}, { - "name": { - "en": "Family Details" - }, - "help_text": { - "en": "" - }, - "description": { - "en": "Family details of child" - }, - "unique_id": "3b92cdc6", - "visible": "true", - "order": 4, - "fields": [{ - "name": "42f16c80", - "visible": "true", - "type": "text_field", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Father's name" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }, { - "name": "68af5f5e", - "visible": "true", - "type": "select_box", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Is father alive?" - }, - "help_text": { - "en": "" - }, - "option_strings_text": { - "en": ["Yes", "No"] - }, - "base_language": "en" - }, { - "name": "71e51c62", - "visible": "true", - "type": "textarea", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "If father dead, please provide details" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }, { - "name": "7bb943da", - "visible": "true", - "type": "text_field", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Mother's name" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }, { - "name": "8bfc073c", - "visible": "true", - "type": "select_box", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Is mother alive?" - }, - "help_text": { - "en": "" - }, - "option_strings_text": { - "en": ["Yes", "No"] - }, - "base_language": "en" - }, { - "name": "95f98cbe", - "visible": "true", - "type": "textarea", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "If mother dead please provide details" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }, { - "name": "9a04f5d2", - "visible": "true", - "type": "textarea", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Address of child before separation" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }], - "editable": true, - "base_language": "en" -}, { - "name": { - "en": "Siblings Details" - }, - "help_text": { - "en": "" - }, - "description": { - "en": "Child's siblings details" - }, - "unique_id": "c5b7c470", - "visible": "true", - "order": 5, - "fields": [{ - "name": "cc937e6a", - "visible": "true", - "type": "text_field", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "1) Name of sibling or other child accompanying the child" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }, { - "name": "ddf329b2", - "visible": "true", - "type": "text_field", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Relationship" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }, { - "name": "e687920c", - "visible": "true", - "type": "text_field", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Date of birth" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }, { - "name": "ebcd630e", - "visible": "true", - "type": "text_field", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Place of birth" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }, { - "name": "02995c28", - "visible": "true", - "type": "textarea", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Current address" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }, { - "name": "0797bcce", - "visible": "true", - "type": "text_field", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Telephone" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }, { - "name": "10810aa2", - "visible": "true", - "type": "text_field", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "2) Name of sibling or other child accompanying the child" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }, { - "name": "19bbeb0a", - "visible": "true", - "type": "text_field", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Relationship" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }, { - "name": "230f18b2", - "visible": "true", - "type": "text_field", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Date of birth" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }, { - "name": "40e98016", - "visible": "true", - "type": "text_field", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Place of birth" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }, { - "name": "49cf0ebc", - "visible": "true", - "type": "textarea", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Current address" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }, { - "name": "5a0237fa", - "visible": "true", - "type": "text_field", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Telephone" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }, { - "name": "64594b8a", - "visible": "true", - "type": "text_field", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "3) Name of sibling or other child accompanying the child" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }, { - "name": "68eb61c4", - "visible": "true", - "type": "text_field", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Relationship" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }, { - "name": "6ee93600", - "visible": "true", - "type": "text_field", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Date of birth" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }, { - "name": "73c6a09a", - "visible": "true", - "type": "text_field", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Place of birth" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }, { - "name": "7d07c094", - "visible": "true", - "type": "textarea", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Current address" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }, { - "name": "8375bae4", - "visible": "true", - "type": "text_field", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Telephone" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }], - "editable": true, - "base_language": "en" -}, { - "name": { - "en": "Separation History" - }, - "help_text": { - "en": "" - }, - "description": { - "en": "Separation History of child" - }, - "unique_id": "988771d4", - "visible": "true", - "order": 6, - "fields": [{ - "name": "9f1a1a9c", - "visible": "true", - "type": "text_field", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Date of separation" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }, { - "name": "acb62664", - "visible": "true", - "type": "text_field", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Place of separation" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }, { - "name": "d168820e", - "visible": "true", - "type": "textarea", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Circumstances of separation" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }], - "editable": true, - "base_language": "en" -}, { - "name": { - "en": "Tracing Information" - }, - "help_text": { - "en": "" - }, - "description": { - "en": "Other information to assist in tracing the child" - }, - "unique_id": "e803e21a", - "visible": "true", - "order": 7, - "fields": [{ - "name": "fa2f96fa", - "visible": "true", - "type": "textarea", - "highlight_information": { - "highlighted": false - }, - "editable": true, - "display_name": { - "en": "Latest news received" - }, - "help_text": { - "en": "" - }, - "base_language": "en" - }], - "editable": true, - "base_language": "en" -}, -{ -"name": { -"en": "Photo" -}, -"help_text": { -"en": "" -}, -"description": { -"en": "Photo of the enquirer" -}, -"unique_id": "1e1198ae", -"visible": "true", -"order": 8, -"fields": [ -{ -"name": "current_photo_key", -"visible": "true", -"type": "photo_upload_box", -"highlight_information": { -"highlighted": false -}, -"editable": true, -"display_name": { -"en": "Photo" -}, -"help_text": { -"en": "" -}, -"base_language": "en" -} -], -"editable": true, -"base_language": "en" -} +[ + { + "name":{ + "en":"Potential matches" + }, + "help_text":{ + "en":"" + }, + "description":{ + "en":"" + }, + "unique_id":"e98c765c", + "visible":"true", + "order":1, + "fields":[ + { + "name":"91aec05e", + "visible":"true", + "type":"list_record_field", + "highlight_information":{ + "highlighted":false + }, + "editable":false, + "display_name":{ + "en":"List of matching child records" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + } + ], + "editable":false, + "base_language":"en" + }, + { + "name":{ + "en":"Enquirer Details" + }, + "help_text":{ + "en":"" + }, + "description":{ + "en":"Details of the enquirer looking for child" + }, + "unique_id":"5aaeeac6", + "visible":"true", + "order":2, + "fields":[ + { + "name":"enquirer_name", + "visible":"true", + "type":"text_field", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Name" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + }, + { + "name":"7b8124c6", + "visible":"true", + "type":"select_box", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Sex" + }, + "help_text":{ + "en":"" + }, + "option_strings_text":{ + "en":[ + "Male", + "Female" + ] + }, + "base_language":"en" + }, + { + "name":"f9e9ad8c", + "visible":"true", + "type":"text_field", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Date of birth" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + }, + { + "name":"012dea68", + "visible":"true", + "type":"text_field", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Place of birth" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + }, + { + "name":"0b4e5d02", + "visible":"true", + "type":"textarea", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Address" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + }, + { + "name":"1196a106", + "visible":"true", + "type":"text_field", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Telephone number" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + }, + { + "name":"19925d50", + "visible":"true", + "type":"text_field", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Ethnic group/tribe" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + }, + { + "name":"2087940e", + "visible":"true", + "type":"text_field", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Nationality" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + }, + { + "name":"39ef5e2c", + "visible":"true", + "type":"text_field", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Relationship to child" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + }, + { + "name":"4d64922e", + "visible":"true", + "type":"textarea", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Message for the child" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + } + ], + "editable":true, + "base_language":"en" + }, + { + "name":{ + "en":"Child Details" + }, + "help_text":{ + "en":"" + }, + "description":{ + "en":"Details of the child" + }, + "unique_id":"6fd43e0e", + "visible":"true", + "order":3, + "fields":[ + { + "name":"e078c116", + "visible":"true", + "type":"text_field", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Name" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + }, + { + "name":"ec630b8a", + "visible":"true", + "type":"text_field", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Also known as(nickname)" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + }, + { + "name":"000dbeb4", + "visible":"true", + "type":"select_box", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Sex" + }, + "help_text":{ + "en":"" + }, + "option_strings_text":{ + "en":[ + "Male", + "Female" + ] + }, + "base_language":"en" + }, + { + "name":"11dea89c", + "visible":"true", + "type":"text_field", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Date of birth/age" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + }, + { + "name":"1927505e", + "visible":"true", + "type":"text_field", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Languages spoken" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + }, + { + "name":"1e8ca2ba", + "visible":"true", + "type":"text_field", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Nationality" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + }, + { + "name":"27923c80", + "visible":"true", + "type":"text_field", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Ethnic group/tribe" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + }, + { + "name":"2e494f78", + "visible":"true", + "type":"text_field", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Distinguishing physical characteristics" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + } + ], + "editable":true, + "base_language":"en" + }, + { + "name":{ + "en":"Family Details" + }, + "help_text":{ + "en":"" + }, + "description":{ + "en":"Family details of child" + }, + "unique_id":"3b92cdc6", + "visible":"true", + "order":4, + "fields":[ + { + "name":"42f16c80", + "visible":"true", + "type":"text_field", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Father's name" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + }, + { + "name":"68af5f5e", + "visible":"true", + "type":"select_box", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Is father alive?" + }, + "help_text":{ + "en":"" + }, + "option_strings_text":{ + "en":[ + "Yes", + "No" + ] + }, + "base_language":"en" + }, + { + "name":"71e51c62", + "visible":"true", + "type":"textarea", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"If father dead, please provide details" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + }, + { + "name":"7bb943da", + "visible":"true", + "type":"text_field", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Mother's name" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + }, + { + "name":"8bfc073c", + "visible":"true", + "type":"select_box", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Is mother alive?" + }, + "help_text":{ + "en":"" + }, + "option_strings_text":{ + "en":[ + "Yes", + "No" + ] + }, + "base_language":"en" + }, + { + "name":"95f98cbe", + "visible":"true", + "type":"textarea", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"If mother dead please provide details" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + }, + { + "name":"9a04f5d2", + "visible":"true", + "type":"textarea", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Address of child before separation" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + } + ], + "editable":true, + "base_language":"en" + }, + { + "name":{ + "en":"Siblings Details" + }, + "help_text":{ + "en":"" + }, + "description":{ + "en":"Child's siblings details" + }, + "unique_id":"c5b7c470", + "visible":"true", + "order":5, + "fields":[ + { + "name":"cc937e6a", + "visible":"true", + "type":"text_field", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"1) Name of sibling or other child accompanying the child" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + }, + { + "name":"ddf329b2", + "visible":"true", + "type":"text_field", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Relationship" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + }, + { + "name":"e687920c", + "visible":"true", + "type":"text_field", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Date of birth" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + }, + { + "name":"ebcd630e", + "visible":"true", + "type":"text_field", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Place of birth" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + }, + { + "name":"02995c28", + "visible":"true", + "type":"textarea", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Current address" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + }, + { + "name":"0797bcce", + "visible":"true", + "type":"text_field", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Telephone" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + }, + { + "name":"10810aa2", + "visible":"true", + "type":"text_field", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"2) Name of sibling or other child accompanying the child" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + }, + { + "name":"19bbeb0a", + "visible":"true", + "type":"text_field", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Relationship" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + }, + { + "name":"230f18b2", + "visible":"true", + "type":"text_field", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Date of birth" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + }, + { + "name":"40e98016", + "visible":"true", + "type":"text_field", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Place of birth" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + }, + { + "name":"49cf0ebc", + "visible":"true", + "type":"textarea", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Current address" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + }, + { + "name":"5a0237fa", + "visible":"true", + "type":"text_field", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Telephone" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + }, + { + "name":"64594b8a", + "visible":"true", + "type":"text_field", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"3) Name of sibling or other child accompanying the child" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + }, + { + "name":"68eb61c4", + "visible":"true", + "type":"text_field", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Relationship" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + }, + { + "name":"6ee93600", + "visible":"true", + "type":"text_field", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Date of birth" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + }, + { + "name":"73c6a09a", + "visible":"true", + "type":"text_field", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Place of birth" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + }, + { + "name":"7d07c094", + "visible":"true", + "type":"textarea", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Current address" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + }, + { + "name":"8375bae4", + "visible":"true", + "type":"text_field", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Telephone" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + } + ], + "editable":true, + "base_language":"en" + }, + { + "name":{ + "en":"Separation History" + }, + "help_text":{ + "en":"" + }, + "description":{ + "en":"Separation History of child" + }, + "unique_id":"988771d4", + "visible":"true", + "order":6, + "fields":[ + { + "name":"9f1a1a9c", + "visible":"true", + "type":"text_field", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Date of separation" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + }, + { + "name":"acb62664", + "visible":"true", + "type":"text_field", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Place of separation" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + }, + { + "name":"d168820e", + "visible":"true", + "type":"textarea", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Circumstances of separation" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + } + ], + "editable":true, + "base_language":"en" + }, + { + "name":{ + "en":"Tracing Information" + }, + "help_text":{ + "en":"" + }, + "description":{ + "en":"Other information to assist in tracing the child" + }, + "unique_id":"e803e21a", + "visible":"true", + "order":7, + "fields":[ + { + "name":"fa2f96fa", + "visible":"true", + "type":"textarea", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Latest news received" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + } + ], + "editable":true, + "base_language":"en" + }, + { + "name":{ + "en":"Photo" + }, + "help_text":{ + "en":"" + }, + "description":{ + "en":"Photo of the enquirer" + }, + "unique_id":"1e1198ae", + "visible":"true", + "order":8, + "fields":[ + { + "name":"current_photo_key", + "visible":"true", + "type":"photo_upload_box", + "highlight_information":{ + "highlighted":false + }, + "editable":true, + "display_name":{ + "en":"Photo" + }, + "help_text":{ + "en":"" + }, + "base_language":"en" + } + ], + "editable":true, + "base_language":"en" + } ] \ No newline at end of file From ea9f03701a4d99910d93ef2b66b00a1fe0d3a255 Mon Sep 17 00:00:00 2001 From: Your Name Here Date: Mon, 5 May 2014 14:11:03 -0400 Subject: [PATCH 3/7] [#1925] Added Create New Enquiry view and edited enquiries controller to add functionality --- app/controllers/enquiries_controller.rb | 33 +++++++++++++++---- app/views/enquiries/_form_section.html.erb | 11 +++++++ .../enquiries/_list_record_field.html.erb | 0 .../enquiries/_photo_upload_box.html.erb | 22 +++++++++++++ app/views/enquiries/_select_box.html.erb | 8 +++++ app/views/enquiries/_tabs.html.erb | 16 +++++---- app/views/enquiries/_text_field.html.erb | 8 +++++ app/views/enquiries/_textarea.html.erb | 7 ++++ app/views/enquiries/new.html.erb | 21 ++++++++++++ 9 files changed, 112 insertions(+), 14 deletions(-) create mode 100644 app/views/enquiries/_form_section.html.erb create mode 100644 app/views/enquiries/_list_record_field.html.erb create mode 100644 app/views/enquiries/_photo_upload_box.html.erb create mode 100644 app/views/enquiries/_select_box.html.erb create mode 100644 app/views/enquiries/_text_field.html.erb create mode 100644 app/views/enquiries/_textarea.html.erb create mode 100644 app/views/enquiries/new.html.erb diff --git a/app/controllers/enquiries_controller.rb b/app/controllers/enquiries_controller.rb index f9871c53f..66d64ad27 100644 --- a/app/controllers/enquiries_controller.rb +++ b/app/controllers/enquiries_controller.rb @@ -37,7 +37,7 @@ def new @page_name = t("enquiries.create_new_enquiry") setup_fields! - @enquiry = Enquiry.new + @enquiry = Enquiry.new end # GET /enquiries/1/edit @@ -53,13 +53,24 @@ def edit def create # Skeleton based on child controller code authorize! :create, Enquiry - params[:enquiry] = JSON.parse(params[:enquiry]) if params[:enquiry].is_a?(String) + params[:enquiry] = params[:child] + params[:enquiry][:criteria] = params[:child] create_or_update_enquiry(params[:enquiry]) - if @enquiry.save - flash[:notice] = t("enquiry.messages.creation_success") - redirect_to(@enquiry) - else - render :action => "new" + @enquiry['created_by_full_name'] = current_user_full_name + respond_to do |format| + if @enquiry.save! + format.html { redirect_to(@enquiry) } + format.xml { render :xml => @enquiry, :status => :created, :location => @enquiry } + format.json { + render :json => @enquiry.compact.to_json + } + else + format.html { + @form_sections = get_form_sections + render :action => "new" + } + format.xml { render :xml => @enquiry.errors, :status => :unprocessable_entity } + end end end @@ -132,4 +143,12 @@ def get_form_sections end end + def create_or_update_enquiry(enquiry_params) + if @enquiry.nil? + @enquiry = Enquiry.new_with_user_name(current_user, enquiry_params) + else + @enquiry = update_from(params) + end + end + end diff --git a/app/views/enquiries/_form_section.html.erb b/app/views/enquiries/_form_section.html.erb new file mode 100644 index 000000000..9d51941e2 --- /dev/null +++ b/app/views/enquiries/_form_section.html.erb @@ -0,0 +1,11 @@ +<% if form_section.name_en != "Potential matches" %> +
    + <%= render :partial => "form_section_info", :locals => {:form_section => form_section} %> + <% (form_section.fields.select {|field| field.visible? }).each do |field| %> + <% if field.type != "list_record_field" && field.type != "photo_upload_box" %> + <%= render :partial => field.type, :object => field %> + <% end %> + <% end %> + +
    +<% end %> \ No newline at end of file diff --git a/app/views/enquiries/_list_record_field.html.erb b/app/views/enquiries/_list_record_field.html.erb new file mode 100644 index 000000000..e69de29bb diff --git a/app/views/enquiries/_photo_upload_box.html.erb b/app/views/enquiries/_photo_upload_box.html.erb new file mode 100644 index 000000000..0510c540c --- /dev/null +++ b/app/views/enquiries/_photo_upload_box.html.erb @@ -0,0 +1,22 @@ +

    + Photos should be no larger than 10mb. Audio files should be no larger than 10mb. The smaller the better. +

    +<% ChildrenHelper::EditView::ONETIME_PHOTOS_UPLOAD_LIMIT.times do |i|%> +

    + + <%= label_tag "enquiry[photo]#{i}", "Add Photo", :class=>'key' %> + + + <%= file_field_tag "enquiry[photo]#{i}" %> + + <%= image_tag "new/icon_help.png", title: photo_upload_box.help_text, class: 'tool-tip-icon vtip' if photo_upload_box.help_text.present? %> +

    +<% end %> + +<% @enquiry.photos.each do |photo| %> +

    + <%= label_tag "delete_enquiry_photo[#{photo.name}]", t("enquiry.actions.delete_photo") %> + <%= check_box_tag("delete_enquiry_photo[#{photo.name}]") %> + <%= thumbnail_tag(@enquiry, photo.name) %> +

    +<% end %> diff --git a/app/views/enquiries/_select_box.html.erb b/app/views/enquiries/_select_box.html.erb new file mode 100644 index 000000000..46d300464 --- /dev/null +++ b/app/views/enquiries/_select_box.html.erb @@ -0,0 +1,8 @@ +

    + + <%= label_tag select_box.tag_name_attribute, t(select_box.name, :default => select_box.display_name), :class=>'key' %> + +<%= select_tag select_box.tag_name_attribute, options_for_select(select_box.select_options, (@enquiry[select_box.name] || '')) %> + + <%= image_tag "new/icon_help.png", title: select_box.help_text, class: 'tool-tip-icon vtip' if select_box.help_text.present? %> +

    diff --git a/app/views/enquiries/_tabs.html.erb b/app/views/enquiries/_tabs.html.erb index 763c714a8..4fd24d45d 100644 --- a/app/views/enquiries/_tabs.html.erb +++ b/app/views/enquiries/_tabs.html.erb @@ -1,13 +1,15 @@ \ No newline at end of file diff --git a/app/views/enquiries/_text_field.html.erb b/app/views/enquiries/_text_field.html.erb new file mode 100644 index 000000000..35b3d1200 --- /dev/null +++ b/app/views/enquiries/_text_field.html.erb @@ -0,0 +1,8 @@ +

    + + <%= label_tag text_field.tag_name_attribute, t(text_field.name, :default => text_field.display_name), :class=>'key' %> + + <%= text_field_tag text_field.tag_name_attribute, @enquiry[text_field.name] %> + + <%= image_tag "new/icon_help.png", title: text_field.help_text, class: 'tool-tip-icon vtip' if text_field.help_text.present? %> +

    diff --git a/app/views/enquiries/_textarea.html.erb b/app/views/enquiries/_textarea.html.erb new file mode 100644 index 000000000..14ee60b32 --- /dev/null +++ b/app/views/enquiries/_textarea.html.erb @@ -0,0 +1,7 @@ +

    + + <%= label_tag textarea.tag_name_attribute, t(textarea.name,:default => textarea.display_name), :class=>'key' %> + + <%= text_area_tag textarea.tag_name_attribute, @enquiry[textarea.name]%> + <%= image_tag "new/icon_help.png", title: textarea.help_text, class: 'tool-tip-icon vtip' if textarea.help_text.present? %> +

    diff --git a/app/views/enquiries/new.html.erb b/app/views/enquiries/new.html.erb new file mode 100644 index 000000000..e3dcf575f --- /dev/null +++ b/app/views/enquiries/new.html.erb @@ -0,0 +1,21 @@ +

    <%= link_to t("enquiries.label"), enquiries_path %> <%= t("enquiries.create_new_enquiry") %>

    + +<%= form_tag enquiries_path, :multipart => true do %> +
    +
    + <%= render :partial => "tabs", :object => @form_sections %> +
    +
    +
    + <%= render :partial => "form_section", :collection => @form_sections %> +
    + <%= discard_button :back %> + <%= submit_button %> +
    +
    +
    +
    +<% end %> + + + From 2af7188b19350a3c80b97b6727304361006f0bdc Mon Sep 17 00:00:00 2001 From: Benjamin Choi Date: Wed, 7 May 2014 02:48:15 -0400 Subject: [PATCH 4/7] Minor fixes to ensure Potential Matches tab only shows up in View not Create --- app/controllers/enquiries_controller.rb | 4 ++++ app/models/enquiry.rb | 2 +- app/views/enquiries/_form_section.html.erb | 2 +- app/views/enquiries/_summary_row.html.erb | 22 ++++++++++++++-------- app/views/enquiries/_tabs.html.erb | 2 +- app/views/enquiries/new.html.erb | 4 ++-- config/enquiry_form_sections.json | 4 ++-- config/locales/en.yml | 1 + 8 files changed, 26 insertions(+), 15 deletions(-) diff --git a/app/controllers/enquiries_controller.rb b/app/controllers/enquiries_controller.rb index 66d64ad27..82d757ae9 100644 --- a/app/controllers/enquiries_controller.rb +++ b/app/controllers/enquiries_controller.rb @@ -24,6 +24,7 @@ def index # GET /enquiries/1 def show authorize! :show, @enquiry + @page_name = t("enquiry.view") @body_class = 'profile-page' @enquiry = Enquiry.get(params[:id]) @@ -37,6 +38,7 @@ def new @page_name = t("enquiries.create_new_enquiry") setup_fields! + @exclude_tabs = ["e98c765c"] @enquiry = Enquiry.new end @@ -53,6 +55,7 @@ def edit def create # Skeleton based on child controller code authorize! :create, Enquiry + params[:enquiry] = params[:child] params[:enquiry][:criteria] = params[:child] create_or_update_enquiry(params[:enquiry]) @@ -112,6 +115,7 @@ def paginated_collection instances, total_rows def setup_fields! @form_sections = get_form_sections @fields = @form_sections.collect{ |section| section["fields"] }.flatten + @exclude_tabs = [] end def get_form_sections diff --git a/app/models/enquiry.rb b/app/models/enquiry.rb index ef0613cd6..abff3f5d6 100644 --- a/app/models/enquiry.rb +++ b/app/models/enquiry.rb @@ -37,7 +37,7 @@ def find_matching_children self.potential_matches = children.map { |child| child.id } verify_format_of(previous_matches) - unless previous_matches.eql?(self.potential_matches) + if previous_matches.empty? or not previous_matches.eql?(self.potential_matches) self.match_updated_at = Clock.now.to_s end end diff --git a/app/views/enquiries/_form_section.html.erb b/app/views/enquiries/_form_section.html.erb index 9d51941e2..01021d172 100644 --- a/app/views/enquiries/_form_section.html.erb +++ b/app/views/enquiries/_form_section.html.erb @@ -1,4 +1,4 @@ -<% if form_section.name_en != "Potential matches" %> +<% unless @exclude_tabs.include?(form_section.unique_id) %>
    <%= render :partial => "form_section_info", :locals => {:form_section => form_section} %> <% (form_section.fields.select {|field| field.visible? }).each do |field| %> diff --git a/app/views/enquiries/_summary_row.html.erb b/app/views/enquiries/_summary_row.html.erb index b1c1815fc..6468fc0ca 100644 --- a/app/views/enquiries/_summary_row.html.erb +++ b/app/views/enquiries/_summary_row.html.erb @@ -6,14 +6,20 @@

    <%= link_to text_to_identify_enquiry(enquiry), enquiry_path(enquiry) %>

    - <% @fields.each do |relevant_field| %> - <% if relevant_field.visible? %> -
    -
    <%= t(relevant_field.display_name) %>:
    -
    <%= enquiry[relevant_field[:name]] %>
    -
    - <% end %> - <% end %> + <% @fields.each do |relevant_field| %> + <% if relevant_field.visible? and relevant_field.is_highlighted? %> +
    +
    <%= t(relevant_field.display_name) %>:
    +
    <%= enquiry[relevant_field[:name]] %>
    +
    + <% end %> + <% end %> + <% if enquiry.match_updated_at %> +
    +
    <%= t("enquiry.match_updated") %>:
    +
    <%= current_user.localize_date(enquiry.match_updated_at) %>
    +
    + <% end %>
    diff --git a/app/views/enquiries/_tabs.html.erb b/app/views/enquiries/_tabs.html.erb index 4fd24d45d..cf45ee24d 100644 --- a/app/views/enquiries/_tabs.html.erb +++ b/app/views/enquiries/_tabs.html.erb @@ -1,7 +1,7 @@
      <% is_first_tab = true %> <% tabs.each do |form_section| %> - <% if form_section.name_en != "Potential matches" %> + <% unless @exclude_tabs.include?(form_section.unique_id) %> <% if is_first_tab %>
    • <% else %> diff --git a/app/views/enquiries/new.html.erb b/app/views/enquiries/new.html.erb index e3dcf575f..78257e9d1 100644 --- a/app/views/enquiries/new.html.erb +++ b/app/views/enquiries/new.html.erb @@ -1,4 +1,4 @@ -

      <%= link_to t("enquiries.label"), enquiries_path %> <%= t("enquiries.create_new_enquiry") %>

      +

      <%= link_to t("enquiries.label"), enquiries_path %> > <%= t("enquiries.create_new_enquiry") %>

      <%= form_tag enquiries_path, :multipart => true do %>
      @@ -12,7 +12,7 @@ <%= discard_button :back %> <%= submit_button %>
      - +
      <% end %> diff --git a/config/enquiry_form_sections.json b/config/enquiry_form_sections.json index 1ba617b59..0266dfacc 100644 --- a/config/enquiry_form_sections.json +++ b/config/enquiry_form_sections.json @@ -1,7 +1,7 @@ [ { "name":{ - "en":"Potential matches" + "en":"Potential Matches" }, "help_text":{ "en":"" @@ -18,7 +18,7 @@ "visible":"true", "type":"list_record_field", "highlight_information":{ - "highlighted":false + "highlighted":true }, "editable":false, "display_name":{ diff --git a/config/locales/en.yml b/config/locales/en.yml index 944c305a9..91c3bc872 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -210,6 +210,7 @@ en: enquiry: view: "View Enquiry" edit: "Edit Enquiry" + match_updated: "Matches last updated" messages: creation_success: "Enquiry successfully created." From 9da1dd964cb1269a2ec19348ae0b1b0b81712ee8 Mon Sep 17 00:00:00 2001 From: Benjamin Choi Date: Tue, 1 Jul 2014 16:32:08 +0800 Subject: [PATCH 5/7] Added first RSpec tests for enquiries controller. --- app/controllers/enquiries_controller.rb | 2 +- spec/controllers/enquiries_controller_spec.rb | 120 ++++++++++++++++++ 2 files changed, 121 insertions(+), 1 deletion(-) create mode 100644 spec/controllers/enquiries_controller_spec.rb diff --git a/app/controllers/enquiries_controller.rb b/app/controllers/enquiries_controller.rb index 82d757ae9..67e5cadc5 100644 --- a/app/controllers/enquiries_controller.rb +++ b/app/controllers/enquiries_controller.rb @@ -23,7 +23,7 @@ def index # GET /enquiries/1 def show - authorize! :show, @enquiry + authorize! :read, @enquiry @page_name = t("enquiry.view") @body_class = 'profile-page' diff --git a/spec/controllers/enquiries_controller_spec.rb b/spec/controllers/enquiries_controller_spec.rb new file mode 100644 index 000000000..481191ca3 --- /dev/null +++ b/spec/controllers/enquiries_controller_spec.rb @@ -0,0 +1,120 @@ +require 'spec_helper' + +describe EnquiriesController do + + before :each do + Enquiry.all.each{|enquiry| enquiry.destroy} + fake_admin_login + end + + def mock_enquiry(stubs={}) + @mock_enquiry ||= mock_model(Enquiry, stubs).as_null_object + end + + describe '#authorizations' do + describe 'collection' do + it "GET index" do + @controller.current_ability.should_receive(:can?).with(:index, Enquiry).and_return(false); + get :index + response.status.should == 403 + end + + it "GET new" do + @controller.current_ability.should_receive(:can?).with(:create, Enquiry).and_return(false); + get :new + response.status.should == 403 + end + + it "POST create" do + @controller.current_ability.should_receive(:can?).with(:create, Enquiry).and_return(false); + post :create + response.status.should == 403 + end + + end + + describe 'member' do + before :each do + User.stub!(:find_by_user_name).with("uname").and_return(user = mock('user', :user_name => 'uname', :organisation => 'org')) + @enquiry = Enquiry.create({:enquirer_name => 'Someone', :criteria => {'name' => 'child name'}}) + @enquiry_arg = hash_including("_id" => @enquiry.id) + end + + it "GET show" do + @controller.current_ability.should_receive(:can?).with(:read, @enquiry_arg).and_return(false); + get :show, :id => @enquiry.id + response.status.should == 403 + end + end + end + + describe "GET index" do + + describe "viewing enquiries by user with access to all data" do + describe "when the signed in user has access all data" do + before do + fake_field_admin_login + @options ||= {} + @stubs ||= {} + end + + it "should assign all enquiries as @enquiries" do + page = @options.delete(:page) + per_page = @options.delete(:per_page) + enquiries = [mock_enquiry(@stubs)] + @status ||= "all" + @filter ||= "all" + enquiries.stub!(:paginate).and_return(enquiries) + @controller.current_ability.should_receive(:can?).with(:index, Enquiry).and_return(true); + @controller.should_receive(:enquiries_by_user_access).and_return([1, enquiries]) + + get :index, :status => @status + assigns[:enquiries].should == enquiries + end + end + end + + end + + describe "GET show" do + + it "assigns the requested enquiry" do + Enquiry.stub!(:get).with("37").and_return(mock_enquiry) + get :show, :id => "37" + assigns[:enquiry].should equal(mock_enquiry) + end + + it "orders and assigns the forms" do + Enquiry.stub!(:get).with("37").and_return(mock_enquiry) + @controller.should_receive(:get_form_sections).and_return([:the_form_sections]) + get :show, :id => "37" + assigns[:form_sections].should == [:the_form_sections] + end + + it "should flash an error and go to listing page if the resource is not found" do + Enquiry.stub!(:get).with("invalid record").and_return(nil) + get :show, :id=> "invalid record" + flash[:error].should == "Enquiry with the given id is not found" + response.should redirect_to(:action => :index) + end + + end + + describe "GET new" do + + it "assigns a new enquiry as @enquiry" do + Enquiry.stub!(:new).and_return(mock_enquiry) + get :new + assigns[:enquiry].should equal(mock_enquiry) + end + + it "orders and assigns the forms" do + Enquiry.stub!(:new).and_return(mock_enquiry) + @controller.should_receive(:get_form_sections).and_return([:the_form_sections]) + get :new + assigns[:form_sections].should == [:the_form_sections] + end + + end + +end From f4d7e9fd9d139b69dde9ff1a835f473d2fb4294c Mon Sep 17 00:00:00 2001 From: Benjamin Choi Date: Wed, 9 Jul 2014 15:18:28 +0800 Subject: [PATCH 6/7] Added first RSpec test for enquiries view. --- spec/controllers/enquiries_controller_spec.rb | 2 +- spec/views/enquiries/show.html.erb_spec.rb | 63 +++++++++++++++++++ 2 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 spec/views/enquiries/show.html.erb_spec.rb diff --git a/spec/controllers/enquiries_controller_spec.rb b/spec/controllers/enquiries_controller_spec.rb index 481191ca3..cac4c96ca 100644 --- a/spec/controllers/enquiries_controller_spec.rb +++ b/spec/controllers/enquiries_controller_spec.rb @@ -36,7 +36,7 @@ def mock_enquiry(stubs={}) describe 'member' do before :each do User.stub!(:find_by_user_name).with("uname").and_return(user = mock('user', :user_name => 'uname', :organisation => 'org')) - @enquiry = Enquiry.create({:enquirer_name => 'Someone', :criteria => {'name' => 'child name'}}) + @enquiry = Enquiry.create(:enquirer_name => 'Someone', :criteria => {'name' => 'child name'}) @enquiry_arg = hash_including("_id" => @enquiry.id) end diff --git a/spec/views/enquiries/show.html.erb_spec.rb b/spec/views/enquiries/show.html.erb_spec.rb new file mode 100644 index 000000000..d7b0bc667 --- /dev/null +++ b/spec/views/enquiries/show.html.erb_spec.rb @@ -0,0 +1,63 @@ +require 'spec_helper' + +class Schema; +end + +describe "enquiries/show.html.erb" do + + describe "displaying an enquiry's details" do + before :each do + @user = mock('user', :has_permission? => true, :user_name => 'name', :id => 'test-user-id') + controller.stub(:current_user).and_return(@user) + view.stub(:current_user).and_return(@user) + view.stub(:logged_in?).and_return(true) + view.stub(:current_user_name).and_return('name') + view.instance_variable_set(:@exclude_tabs, []) + @form_section = FormSection.new :unique_id => "section_name" + @enquiry = Enquiry.create(:enquirer_name => 'Someone', :criteria => {'name' => 'child name'}) + + assign(:form_sections, [@form_section]) + assign(:enquiry, @enquiry) + assign(:current_user, User.new) + assign(:duplicates, Array.new) + end + + it "renders all fields found on the FormSection" do + @form_section.add_field Field.new_text_field("age", "Age") + @form_section.add_field Field.new_radio_button("gender", ["male", "female"], "Gender") + @form_section.add_field Field.new_select_box("date_of_separation", ["1-2 weeks ago", "More than"], "Date of separation") + + render + + rendered.should have_tag(".section_name") do + with_tag(".profile-section-label", /Age/) + with_tag(".profile-section-label", /Gender/) + with_tag(".profile-section-label", /Date of separation/) + end + + rendered.should have_tag(".key") do + with_tag(".value", "27") + with_tag(".value", "male") + with_tag(".value", "1-2 weeks ago") + end + end + + it "does not render fields found on a disabled FormSection" do + @form_section['enabled'] = false + + render + + rendered.should_not have_tag("dl.section_name dt") + end + + it "does not render fields found on an excluded FormSection" do + view.instance_variable_set(:@exclude_tabs, ['section_name']) + + render + + rendered.should_not have_tag("dl.section_name dt") + end + + end + +end From f7cec0f43341073329751337c80f62a4ade37ec9 Mon Sep 17 00:00:00 2001 From: Benjamin Choi Date: Thu, 17 Jul 2014 01:02:03 +0800 Subject: [PATCH 7/7] Changes to make it work after Rails upgrade. --- app/controllers/enquiries_controller.rb | 19 ++++++++----------- app/models/enquiry.rb | 3 ++- .../enquiries/_field_display_basic.html.erb | 6 +++--- app/views/enquiries/_text_field.html.erb | 4 +++- app/views/enquiries/_textarea.html.erb | 4 +++- 5 files changed, 19 insertions(+), 17 deletions(-) diff --git a/app/controllers/enquiries_controller.rb b/app/controllers/enquiries_controller.rb index 67e5cadc5..a278e6a1f 100644 --- a/app/controllers/enquiries_controller.rb +++ b/app/controllers/enquiries_controller.rb @@ -56,12 +56,13 @@ def create # Skeleton based on child controller code authorize! :create, Enquiry - params[:enquiry] = params[:child] - params[:enquiry][:criteria] = params[:child] - create_or_update_enquiry(params[:enquiry]) - @enquiry['created_by_full_name'] = current_user_full_name + enquirer_name = params[:child].delete('enquirer_name') + create_enquiry({:enquirer_name => enquirer_name, + :criteria => params[:child]}) + @enquiry['created_by_full_name'] = current_user_full_name + respond_to do |format| - if @enquiry.save! + if @enquiry.save format.html { redirect_to(@enquiry) } format.xml { render :xml => @enquiry, :status => :created, :location => @enquiry } format.json { @@ -147,12 +148,8 @@ def get_form_sections end end - def create_or_update_enquiry(enquiry_params) - if @enquiry.nil? - @enquiry = Enquiry.new_with_user_name(current_user, enquiry_params) - else - @enquiry = update_from(params) - end + def create_enquiry(enquiry_params) + @enquiry = Enquiry.new_with_user_name(current_user, enquiry_params) end end diff --git a/app/models/enquiry.rb b/app/models/enquiry.rb index b9eac1b90..74113be94 100644 --- a/app/models/enquiry.rb +++ b/app/models/enquiry.rb @@ -1,7 +1,8 @@ class Enquiry < CouchRest::Model::Base use_database :enquiry - include RecordHelper + include RecordHelper + include RapidFTR::CouchRestRailsBackward before_save :find_matching_children property :enquirer_name diff --git a/app/views/enquiries/_field_display_basic.html.erb b/app/views/enquiries/_field_display_basic.html.erb index a8be8db14..0b0f37154 100644 --- a/app/views/enquiries/_field_display_basic.html.erb +++ b/app/views/enquiries/_field_display_basic.html.erb @@ -1,6 +1,6 @@

      - - <%= field_value_for_display enquiry[field.name] %> + + <%= field_value_for_display (@enquiry[field.name] ? @enquiry[field.name] : + (@enquiry[:criteria] || @enquiry)[field.name]) %>

      - diff --git a/app/views/enquiries/_text_field.html.erb b/app/views/enquiries/_text_field.html.erb index 35b3d1200..b5dfdf133 100644 --- a/app/views/enquiries/_text_field.html.erb +++ b/app/views/enquiries/_text_field.html.erb @@ -2,7 +2,9 @@ <%= label_tag text_field.tag_name_attribute, t(text_field.name, :default => text_field.display_name), :class=>'key' %> - <%= text_field_tag text_field.tag_name_attribute, @enquiry[text_field.name] %> + <%= text_field_tag text_field.tag_name_attribute, + (@enquiry[text_field.name] ? @enquiry[text_field.name] : + (@enquiry[:criteria] || @enquiry)[text_field.name]) %> <%= image_tag "new/icon_help.png", title: text_field.help_text, class: 'tool-tip-icon vtip' if text_field.help_text.present? %>

      diff --git a/app/views/enquiries/_textarea.html.erb b/app/views/enquiries/_textarea.html.erb index 14ee60b32..15bdefa7b 100644 --- a/app/views/enquiries/_textarea.html.erb +++ b/app/views/enquiries/_textarea.html.erb @@ -2,6 +2,8 @@ <%= label_tag textarea.tag_name_attribute, t(textarea.name,:default => textarea.display_name), :class=>'key' %> - <%= text_area_tag textarea.tag_name_attribute, @enquiry[textarea.name]%> + <%= text_area_tag textarea.tag_name_attribute, + (@enquiry[textarea.name] ? @enquiry[textarea.name] : + (@enquiry[:criteria] || @enquiry)[textarea.name]) %> <%= image_tag "new/icon_help.png", title: textarea.help_text, class: 'tool-tip-icon vtip' if textarea.help_text.present? %>