discerner 2.0.4 → 2.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 88645173fdadecf73aa691ce4c08988b0ec45edb
4
- data.tar.gz: 992a3eff4bdf48feba80dd6f2361f2012df547c6
3
+ metadata.gz: d003dc673d344a81ba57493c85359cb204d4ec25
4
+ data.tar.gz: e640b76a3ac01c8651a0daf029fbced903dccac4
5
5
  SHA512:
6
- metadata.gz: b6a923211f3551ae3f713cf65c5fcf75437a0b6d9a328bd198fbd11ac094120d6d858fc4e5192e991fc159e138072e4679722baf2870ae92a05b2a3202ca97a6
7
- data.tar.gz: c6fbc44e44cc98dc4a295a8110315cedbfa22a71411ec9efddb177b3c43a29a5cc1ecf2cce9db2d4175a59d32ac36b4bbdb23cf1b8ffe4e180770c7078f76a9b
6
+ metadata.gz: 965d91c637899dd9d029de35bb03181605bccc6ae5bd76c0742a41f179ebb3b0fc2f747d4e0f853d158ffbd685a253c0edae7fab75f55d097733bea966c7ee23
7
+ data.tar.gz: 218fb8fdcc5d94e91bb2056214f86f137749ab79d8f157ebb468abd50b230aed202659a61a4209f3b32f297f7e46ae68124df42a7bb4ba96fb54bf37bcd4880b
@@ -0,0 +1,5 @@
1
+ module Discerner
2
+ class SearchNamespace < ActiveRecord::Base
3
+ include Discerner::Methods::Models::SearchNamespace
4
+ end
5
+ end
@@ -11,14 +11,14 @@
11
11
  %td{colspan: '4'}
12
12
  No qualifying searches found
13
13
  - else
14
- - @discernerSearchCombinationsTemplate = generate_nested_attributes_template(f, :search_combinations, 'search_combination')
14
+ - @discernerSearchCombinationsTemplate = discerner_generate_nested_attributes_template(f, :search_combinations, 'search_combination')
15
15
  = f.fields_for :search_combinations, f.object.search_combinations.ordered_by_display_order do |search_combination|
16
16
  = render partial: 'search_combination_fields', locals: { f: search_combination }
17
17
 
18
18
  %tfoot
19
19
  %tr
20
20
  %td{ colspan: '4', class: 'add_search_combinations_link' }
21
- = link_to_add_fields "Add search", :search_combinations
21
+ = discerner_link_to_add_fields "Add search", :search_combinations
22
22
  .clear
23
23
 
24
24
  :javascript
@@ -13,12 +13,12 @@
13
13
  %tfoot
14
14
  %tr
15
15
  %td{ colspan: '4', class: 'add_search_parameters_link' }
16
- = link_to_add_fields "Add criteria", :search_parameters
16
+ = discerner_link_to_add_fields "Add criteria", :search_parameters
17
17
  .clear
18
18
 
19
19
  :javascript
20
20
  $(function () {
21
- var discernerSearchParametersTemplate = '#{generate_nested_attributes_template(f, :search_parameters, 'search_parameter')}',
21
+ var discernerSearchParametersTemplate = '#{discerner_generate_nested_attributes_template(f, :search_parameters, 'search_parameter')}',
22
22
  parametersUrl = decodeURIComponent('#{values_parameters_url(parameter_id: ':question_id', format: 'json')}'); // used to generate parameter values for list parameters
23
23
 
24
24
  new Discerner.SearchParameter.UI({
@@ -10,7 +10,7 @@
10
10
  %td
11
11
  = search.display_name
12
12
  %td
13
- = format_datetime(search.updated_at)
13
+ = discerner_format_datetime(search.updated_at)
14
14
  %td
15
15
  = link_to 'Open', edit_search_path(search), class: 'show_link icon_link'
16
16
  = link_to 'Export options', export_parameters_path(search), class: 'options_link icon_link' if export_discerner_results?
@@ -6,7 +6,7 @@
6
6
  = f.object.warnings.full_messages.join(', ')
7
7
 
8
8
  - unless f.blank?
9
- - search_combination_id = nested_record_id(f, :search_combination)
9
+ - search_combination_id = discerner_nested_record_id(f, :search_combination)
10
10
  %tr{ id: "#{search_combination_id}", class: "search_combination fields #{'error' if f.object.warnings.any?}" }
11
11
  %td.combined_search_operator
12
12
  %span
@@ -18,5 +18,5 @@
18
18
  -#= f.select(:operator_id, operator_options('search'))
19
19
  = f.select(:combined_search_id, combined_searches_options(@discerner_search), { include_blank: true },{ class: 'search_combinations_combobox_autocompleter' })
20
20
  %td.remove
21
- = link_to_remove_fields 'Remove', f, :search_combinations
21
+ = discerner_link_to_remove_fields 'Remove', f, :search_combinations
22
22
  %td
@@ -1,4 +1,4 @@
1
- - search_parameter_id = nested_record_id(f, :search_parameter)
1
+ - search_parameter_id = discerner_nested_record_id(f, :search_parameter)
2
2
 
3
3
  - if f.object.disabled? && f.object.warnings.any?
4
4
  %tr.error
@@ -29,7 +29,7 @@
29
29
 
30
30
  .div-instruction-bar
31
31
  %td.remove
32
- = link_to_remove_fields 'Remove', f, :search_parameters
32
+ = discerner_link_to_remove_fields 'Remove', f, :search_parameters
33
33
  %td.parameter_values
34
34
  .search_parameter_values
35
35
  %table{ class: 'records' }
@@ -37,11 +37,11 @@
37
37
  = f.fields_for :search_parameter_values, f.object.search_parameter_values.ordered_by_display_order do |search_parameter_value_form|
38
38
  = render partial: 'search_parameter_value_fields', locals: { f: search_parameter_value_form }
39
39
  %span{ class: 'add_header'}
40
- = link_to_add_fields "Add selection", :search_parameter_values, {style: "display:none;"}
40
+ = discerner_link_to_add_fields "Add selection", :search_parameter_values, {style: "display:none;"}
41
41
 
42
42
  :javascript
43
43
  $(function () {
44
- var searchParameterValuesTemplate = '#{generate_nested_attributes_template(f, :search_parameter_values, "search_parameter_value")}',
44
+ var searchParameterValuesTemplate = '#{discerner_generate_nested_attributes_template(f, :search_parameter_values, "search_parameter_value")}',
45
45
  container = $('##{search_parameter_id}'),
46
46
  parametersUrl = decodeURIComponent('#{values_parameters_url(parameter_id: ':question_id', search_parameter_value_id: ':search_parameter_value_id')}'), // used to generate parameter values for combobox parameters
47
47
  searchParameterUI = new Discerner.SearchParameterValue.UI({ container: container, searchParameterValuesTemplate: searchParameterValuesTemplate, parametersUrl: parametersUrl });
@@ -1,4 +1,4 @@
1
- - search_parameter_value_id = nested_record_id(f, :search_parameter_value)
1
+ - search_parameter_value_id = discerner_nested_record_id(f, :search_parameter_value)
2
2
  - if f.object.disabled? && f.object.warnings.any?
3
3
  %tr.error
4
4
  %td
@@ -24,7 +24,7 @@
24
24
  %td.additional_value
25
25
  = f.text_field :additional_value
26
26
  %td.remove
27
- = link_to_remove_fields 'Remove', f, :search_parameter_values
27
+ = discerner_link_to_remove_fields 'Remove', f, :search_parameter_values
28
28
 
29
29
  - else # this part is used for rendering existing parameter values
30
30
  - parameter = f.object.search_parameter.parameter
@@ -39,13 +39,13 @@
39
39
  %span{ class: 'parameter_value_text' }
40
40
  = f.object.parameter_value.name
41
41
  %td{class: "remove", class: "invisible"}
42
- = link_to_remove_fields 'Remove', f, :search_parameter_values
42
+ = discerner_link_to_remove_fields 'Remove', f, :search_parameter_values
43
43
 
44
44
  - when 'combobox'
45
45
  %td.parameter_value
46
46
  = render partial: 'discerner/parameters/values_autocompleter', locals: {parameter: parameter, f: f, search_parameter_value_id: search_parameter_value_id}
47
47
  %td.remove
48
- = link_to_remove_fields 'Remove', f, :search_parameter_values
48
+ = discerner_link_to_remove_fields 'Remove', f, :search_parameter_values
49
49
 
50
50
  - else
51
51
  %td.operator
@@ -58,5 +58,5 @@
58
58
  %td{class: "additional_value #{'invisible' unless f.object.operator && f.object.operator.operator_type == 'range'}"}
59
59
  = f.text_field :additional_value, class: "#{type == 'date' ? 'datepicker' : nil}"
60
60
  %td.remove
61
- = link_to_remove_fields 'Remove', f, :search_parameter_values
61
+ = discerner_link_to_remove_fields 'Remove', f, :search_parameter_values
62
62
 
@@ -0,0 +1,9 @@
1
+ class CreateDiscernerSearchNamespaces < ActiveRecord::Migration
2
+ def change
3
+ create_table :discerner_search_namespaces do |t|
4
+ t.integer :search_id
5
+ t.string :namespace_type
6
+ t.integer :namespace_id
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,37 @@
1
+ class ReplaceNamespaceColumnsWithLabelForSearches < ActiveRecord::Migration
2
+ def up
3
+ add_column :discerner_searches, :label, :string
4
+
5
+ Discerner::Search.transaction do
6
+ Discerner::Search.all.each do |search|
7
+ if !search.namespace_id.blank?
8
+ search.search_namespaces << Discerner::SearchNamespace.create(namespace_type: search.namespace_type, namespace_id: search.namespace_id)
9
+ elsif !search.namespace_type.blank?
10
+ search.label = search.namespace_type
11
+ end
12
+ search.save!
13
+ end
14
+ remove_column :discerner_searches, :namespace_type
15
+ remove_column :discerner_searches, :namespace_id
16
+ end
17
+ end
18
+
19
+ def down
20
+ add_column :discerner_searches, :namespace_id, :integer
21
+ add_column :discerner_searches, :namespace_type, :string
22
+
23
+ Discerner::Search.transaction do
24
+ Discerner::Search.all.each do |search|
25
+ if search.search_namespaces.any?
26
+ search.namespace_id = search.search_namespaces.first.namespace_id
27
+ search.namespace_type = search.search_namespaces.first.namespace_type
28
+ elsif !search.label.blank?
29
+ search.namespace_type = search.label
30
+ end
31
+ search.save!
32
+ end
33
+ end
34
+
35
+ remove_column :discerner_searches, :label
36
+ end
37
+ end
@@ -6,7 +6,7 @@ module Discerner
6
6
  "discerner/dictionaries/#{@discerner_search.dictionary.parameterized_name}/results"
7
7
  end
8
8
 
9
- def generate_nested_attributes_template(f, association, association_prefix = nil )
9
+ def discerner_generate_nested_attributes_template(f, association, association_prefix = nil )
10
10
  if association_prefix.nil?
11
11
  association_prefix = association.to_s.singularize
12
12
  end
@@ -17,22 +17,18 @@ module Discerner
17
17
  escape_javascript(fields)
18
18
  end
19
19
 
20
- def link_to_add_fields(name, association, html_options={})
20
+ def discerner_link_to_add_fields(name, association, html_options={})
21
21
  css_class = html_options[:class] || ' '
22
22
  css_class += "add_#{association.to_s} add add_link icon_link"
23
23
  html_options[:class] = css_class
24
24
  link_to(name, 'javascript:void(0);', html_options)
25
25
  end
26
26
 
27
- def link_to_remove_fields(name, f, association)
27
+ def discerner_link_to_remove_fields(name, f, association)
28
28
  f.hidden_field(:_destroy) + link_to(name, "javascript:void(0);", class: "delete_#{association.to_s} delete_link icon_link")
29
29
  end
30
30
 
31
- def link_to_soft_delete_fields(name, f, association)
32
- f.hidden_field(:soft_delete) + link_to(name, "javascript:void(0);", class: "delete_#{association.to_s} delete_link icon_link")
33
- end
34
-
35
- def nested_record_id(builder, assocation)
31
+ def discerner_nested_record_id(builder, assocation)
36
32
  builder.object.id.nil? ? "new_nested_record" : "#{assocation.to_s.singularize}_#{builder.object.id}"
37
33
  end
38
34
 
@@ -131,11 +127,11 @@ module Discerner
131
127
  link_to "Export options", export_parameters_path(@discerner_search), class: "discerner-button discerner-button-positive"
132
128
  end
133
129
 
134
- def format_datetime(datetime)
130
+ def discerner_format_datetime(datetime)
135
131
  datetime.strftime("%m/%d/%Y %I:%M %p") if datetime
136
132
  end
137
133
 
138
- def format_date(date)
134
+ def discerner_format_date(date)
139
135
  date.strftime("%m/%d/%Y") if date
140
136
  end
141
137
  end
@@ -12,6 +12,7 @@ module Discerner
12
12
  base.send :has_many, :search_combinations, inverse_of: :search
13
13
  base.send :has_many, :combined_searches, through: :search_combinations
14
14
  base.send :has_many, :export_parameters, inverse_of: :search
15
+ base.send :has_many, :search_namespaces, inverse_of: :search
15
16
 
16
17
  # Validations
17
18
  base.send :validates, :dictionary, presence: { message: "for search can't be blank" }
@@ -0,0 +1,12 @@
1
+ module Discerner
2
+ module Methods
3
+ module Models
4
+ module SearchNamespace
5
+ def self.included(base)
6
+ base.send :belongs_to, :search
7
+ base.send :belongs_to, :namespace, polymorphic: true
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
@@ -1,3 +1,3 @@
1
1
  module Discerner
2
- VERSION = "2.0.4"
2
+ VERSION = "2.0.5"
3
3
  end
@@ -120,6 +120,7 @@ module Discerner
120
120
  copy_file "models/search_combination.rb", "#{path}/search_combination.rb"
121
121
  copy_file "models/search_parameter_value.rb", "#{path}/search_parameter_value.rb"
122
122
  copy_file "models/search_parameter.rb", "#{path}/search_parameter.rb"
123
+ copy_file "models/search_namespace.rb", "#{path}/search_namespace.rb"
123
124
  copy_file "models/search.rb", "#{path}/search.rb"
124
125
  end
125
126
 
@@ -0,0 +1,5 @@
1
+ module Discerner
2
+ class SearchNamespace < ActiveRecord::Base
3
+ include Discerner::Methods::Models::SearchNamespace
4
+ end
5
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: discerner
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.4
4
+ version: 2.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Gurley, Yulia Bushmanova
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-08 00:00:00.000000000 Z
11
+ date: 2014-09-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -375,6 +375,7 @@ files:
375
375
  - app/models/discerner/parameter_value_category.rb
376
376
  - app/models/discerner/search.rb
377
377
  - app/models/discerner/search_combination.rb
378
+ - app/models/discerner/search_namespace.rb
378
379
  - app/models/discerner/search_parameter.rb
379
380
  - app/models/discerner/search_parameter_value.rb
380
381
  - app/views/discerner/export_parameters/index.html.haml
@@ -434,6 +435,8 @@ files:
434
435
  - db/migrate/20140227191827_remove_blank_parameter_values_from_export_parameters.rb
435
436
  - db/migrate/20140815214547_add_namespace_to_discerner_searches.rb
436
437
  - db/migrate/20140815214629_add_namespace_to_discerner_dictionaries.rb
438
+ - db/migrate/20140915032427_create_discerner_search_namespaces.rb
439
+ - db/migrate/20140915032608_replace_namespace_columns_with_label_for_searches.rb
437
440
  - db/seeds.rb
438
441
  - lib/discerner.rb
439
442
  - lib/discerner/engine.rb
@@ -452,6 +455,7 @@ files:
452
455
  - lib/discerner/methods/models/parameter_value_category.rb
453
456
  - lib/discerner/methods/models/search.rb
454
457
  - lib/discerner/methods/models/search_combination.rb
458
+ - lib/discerner/methods/models/search_namespace.rb
455
459
  - lib/discerner/methods/models/search_parameter.rb
456
460
  - lib/discerner/methods/models/search_parameter_value.rb
457
461
  - lib/discerner/methods/models/soft_delete.rb
@@ -480,6 +484,7 @@ files:
480
484
  - lib/generators/discerner/install/templates/models/parameter_value_category.rb
481
485
  - lib/generators/discerner/install/templates/models/search.rb
482
486
  - lib/generators/discerner/install/templates/models/search_combination.rb
487
+ - lib/generators/discerner/install/templates/models/search_namespace.rb
483
488
  - lib/generators/discerner/install/templates/models/search_parameter.rb
484
489
  - lib/generators/discerner/install/templates/models/search_parameter_value.rb
485
490
  - lib/generators/discerner/install/templates/views/layouts/searches.html.erb
@@ -506,7 +511,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
506
511
  version: '0'
507
512
  requirements: []
508
513
  rubyforge_project:
509
- rubygems_version: 2.2.2
514
+ rubygems_version: 2.4.1
510
515
  signing_key:
511
516
  specification_version: 4
512
517
  summary: Rails engine that provides dictionary-based search functionality