iqvoc 4.13.2 → 4.14.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (104) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +6 -8
  3. data/Gemfile.lock +381 -331
  4. data/app/aides/inline_data_helper.rb +3 -3
  5. data/app/aides/skos_exporter.rb +1 -1
  6. data/app/assets/javascripts/iqvoc/iqvoc.js +0 -20
  7. data/app/assets/stylesheets/iqvoc/_manifest.scss +1 -0
  8. data/app/assets/stylesheets/iqvoc/_search_results.scss +14 -0
  9. data/app/controllers/collections/versions_controller.rb +12 -47
  10. data/app/controllers/collections_controller.rb +15 -8
  11. data/app/controllers/concepts/alphabetical_controller.rb +1 -1
  12. data/app/controllers/concepts/hierarchical_controller.rb +9 -13
  13. data/app/controllers/concepts/versions_controller.rb +13 -48
  14. data/app/controllers/concepts_controller.rb +19 -15
  15. data/app/controllers/concepts_movement_controller.rb +1 -1
  16. data/app/controllers/dashboard_controller.rb +5 -5
  17. data/app/controllers/imports_controller.rb +9 -6
  18. data/app/controllers/reverse_matches_controller.rb +2 -4
  19. data/app/controllers/search_results_controller.rb +13 -19
  20. data/app/helpers/application_helper.rb +0 -8
  21. data/app/helpers/link_helper.rb +13 -9
  22. data/app/helpers/rdf_helper.rb +9 -5
  23. data/app/jobs/reverse_match_job.rb +8 -4
  24. data/app/models/ability.rb +7 -7
  25. data/app/models/collection/base.rb +17 -8
  26. data/app/models/concept/base.rb +17 -7
  27. data/app/models/concept/relation/base.rb +1 -1
  28. data/app/models/concept/relation/reverse_relation_extension.rb +9 -5
  29. data/app/models/concerns/search_extension.rb +0 -17
  30. data/app/models/concerns/versioning.rb +1 -31
  31. data/app/models/dataset/adaptors/iqvoc/alphabetical_search_adaptor.rb +2 -2
  32. data/app/models/dataset/adaptors/iqvoc/http_adaptor.rb +2 -2
  33. data/app/models/dataset/adaptors/iqvoc/search_adaptor.rb +2 -2
  34. data/app/models/export.rb +1 -1
  35. data/app/models/label/base.rb +5 -5
  36. data/app/models/note/base.rb +1 -1
  37. data/app/models/user.rb +2 -0
  38. data/app/uploaders/rdf_uploader.rb +1 -1
  39. data/app/views/collections/_data.html.erb +2 -2
  40. data/app/views/collections/show_unpublished.html.erb +3 -11
  41. data/app/views/concepts/notifications/_referenced_concepts.html.erb +0 -1
  42. data/app/views/concepts/show_published.html.erb +2 -0
  43. data/app/views/concepts/show_unpublished.html.erb +5 -11
  44. data/app/views/dashboard/_table.html.erb +0 -8
  45. data/app/views/pages/version.html.erb +1 -1
  46. data/app/views/partials/concept/_edit_link_base.html.erb +2 -2
  47. data/app/views/partials/concept/relation/_edit_base.html.erb +13 -10
  48. data/app/views/search_results/_detailed_search.html.erb +27 -0
  49. data/app/views/search_results/_form.html.erb +21 -9
  50. data/app/views/search_results/index.html.erb +4 -4
  51. data/app/views/search_results/sections/_change_note.html.erb +28 -25
  52. data/app/views/search_results/sections/_collection.html.erb +5 -5
  53. data/app/views/search_results/sections/_datasets.html.erb +8 -20
  54. data/app/views/search_results/sections/_klass.html.erb +7 -9
  55. data/app/views/search_results/sections/_languages.html.erb +4 -14
  56. data/app/views/search_results/sections/_mode.html.erb +8 -10
  57. data/app/views/search_results/sections/_options.html.erb +6 -8
  58. data/app/views/search_results/sections/_terms.html.erb +13 -10
  59. data/app/views/search_results/sections/_type.html.erb +13 -13
  60. data/config/application.rb +1 -1
  61. data/config/boot.rb +1 -1
  62. data/config/database.yml +21 -15
  63. data/config/database.yml.postgresql +1 -1
  64. data/config/engine.rb +1 -0
  65. data/config/initializers/active_record.rb +2 -0
  66. data/config/initializers/content_security_policy.rb +21 -26
  67. data/config/initializers/filter_parameter_logging.rb +4 -2
  68. data/config/initializers/inflections.rb +4 -4
  69. data/config/initializers/iqvoc.rb +1 -0
  70. data/config/locales/de.yml +13 -18
  71. data/config/locales/en.yml +13 -18
  72. data/config/locales/pt.yml +0 -7
  73. data/config/routes.rb +0 -4
  74. data/db/migrate/20231012135837_remove_locked_by.rb +6 -0
  75. data/db/schema.rb +31 -34
  76. data/iqvoc.gemspec +7 -5
  77. data/lib/iqvoc/configuration/concept.rb +2 -0
  78. data/lib/iqvoc/configuration/core.rb +4 -0
  79. data/lib/iqvoc/configuration/instance_configuration.rb +2 -2
  80. data/lib/iqvoc/environments/development.rb +5 -2
  81. data/lib/iqvoc/environments/production.rb +7 -28
  82. data/lib/iqvoc/environments/test.rb +1 -1
  83. data/lib/iqvoc/version.rb +1 -1
  84. data/test/controllers/concepts_movement_controller_test.rb +0 -2
  85. data/test/controllers/reverse_match_test.rb +1 -1
  86. data/test/integration/collection_browsing_test.rb +45 -0
  87. data/test/integration/collection_circularity_test.rb +3 -3
  88. data/test/integration/concept_collection_assignment_test.rb +1 -1
  89. data/test/integration/create_concept_test.rb +15 -0
  90. data/test/integration/reverse_match_job_test.rb +39 -7
  91. data/test/integration/search_test.rb +9 -9
  92. data/test/integration/version_page_test.rb +26 -0
  93. data/test/models/concept_test.rb +37 -0
  94. data/test/models/deep_cloning_test.rb +9 -7
  95. data/test/test_helper.rb +3 -0
  96. metadata +81 -67
  97. data/app/views/search_results/sections/_note.html.erb +0 -6
  98. data/bin/bundle +0 -3
  99. data/bin/delayed_job +0 -5
  100. data/bin/rails +0 -4
  101. data/bin/rake +0 -4
  102. data/bin/setup +0 -36
  103. data/bin/update +0 -31
  104. data/bin/yarn +0 -17
@@ -41,9 +41,13 @@ class ReverseMatchJobTest < ActiveSupport::TestCase
41
41
  { rel: 'remove_match', href: 'http://0.0.0.0:3000/airsoft/remove_match', method: 'patch' }
42
42
  ]}.to_json
43
43
 
44
- stub_request(:get, 'http://try.iqvoc.com/')
45
- .with(:headers => {'Accept' => 'application/json', 'User-Agent' => 'Faraday v0.9.0'})
46
- .to_return(status: 200, body: body, headers: {})
44
+ stub_request(:get, "http://try.iqvoc.com/").
45
+ with(
46
+ headers: {
47
+ 'Accept'=>'application/json',
48
+ 'User-Agent'=>"Faraday v#{Faraday::VERSION}"
49
+ }).
50
+ to_return(status: 200, body: body, headers: {})
47
51
 
48
52
  @worker = Delayed::Worker.new
49
53
  DatabaseCleaner.start
@@ -56,7 +60,12 @@ class ReverseMatchJobTest < ActiveSupport::TestCase
56
60
  test 'successfull job' do
57
61
  status, body = status_and_body(:mapping_added)
58
62
  stub_request(:patch, 'http://0.0.0.0:3000/airsoft/add_match?match_class=match_skos_broadmatch&uri=http://try.iqvoc.com/airsoft')
59
- .with(:headers => {'Accept' => '*/*', 'Content-Type'=>'application/json', 'Referer'=>'http://try.iqvoc.com/', 'User-Agent'=>'Faraday v0.9.0'})
63
+ .with(headers: {
64
+ 'Accept' => '*/*',
65
+ 'Content-Type' => 'application/json',
66
+ 'Referer' => 'http://try.iqvoc.com/',
67
+ 'User-Agent'=>"Faraday v#{Faraday::VERSION}"
68
+ })
60
69
  .to_return(status: status, body: body.to_json, headers: {})
61
70
 
62
71
  job = @reverse_match_service.build_job(:add_match, @airsoft, 'http://try.iqvoc.com', 'Match::SKOS::BroadMatch')
@@ -70,7 +79,8 @@ class ReverseMatchJobTest < ActiveSupport::TestCase
70
79
 
71
80
  test 'job timeout' do
72
81
  status, body = status_and_body(:mapping_added)
73
- stub_request(:patch, 'http://0.0.0.0:3000/airsoft/add_match?match_class=match_skos_broadmatch&uri=http://try.iqvoc.com/airsoft').to_timeout
82
+ stub_request(:patch, 'http://0.0.0.0:3000/airsoft/add_match?match_class=match_skos_broadmatch&uri=http://try.iqvoc.com/airsoft')
83
+ .to_timeout
74
84
 
75
85
  job = @reverse_match_service.build_job(:add_match, @airsoft, 'http://try.iqvoc.com', 'Match::SKOS::BroadMatch')
76
86
  @reverse_match_service.add(job)
@@ -83,9 +93,26 @@ class ReverseMatchJobTest < ActiveSupport::TestCase
83
93
  assert_equal 'timeout_error', job.error_message
84
94
  end
85
95
 
96
+ test 'failed connection' do
97
+ status, body = status_and_body(:mapping_added)
98
+ stub_request(:patch, 'http://0.0.0.0:3000/airsoft/add_match?match_class=match_skos_broadmatch&uri=http://try.iqvoc.com/airsoft')
99
+ .to_raise(Errno::ECONNREFUSED)
100
+
101
+ job = @reverse_match_service.build_job(:add_match, @airsoft, 'http://try.iqvoc.com', 'Match::SKOS::BroadMatch')
102
+ @reverse_match_service.add(job)
103
+
104
+ job = Delayed::Job.last
105
+ @worker.run(job)
106
+
107
+ assert_equal 1, @airsoft.jobs.size
108
+
109
+ assert_equal 'connection_failed', job.error_message
110
+ end
111
+
86
112
  test 'unknown resource' do
87
113
  status, body = status_and_body(:mapping_added)
88
- stub_request(:patch, 'http://0.0.0.0:3000/airsoft/add_match?match_class=match_skos_broadmatch&uri=http://try.iqvoc.com/airsoft').to_return(status: 404)
114
+ stub_request(:patch, 'http://0.0.0.0:3000/airsoft/add_match?match_class=match_skos_broadmatch&uri=http://try.iqvoc.com/airsoft')
115
+ .to_return(status: 404)
89
116
 
90
117
  job = @reverse_match_service.build_job(:add_match, @airsoft, 'http://try.iqvoc.com', 'Match::SKOS::BroadMatch')
91
118
  @reverse_match_service.add(job)
@@ -101,7 +128,12 @@ class ReverseMatchJobTest < ActiveSupport::TestCase
101
128
  test 'unknown match class' do
102
129
  status, body = status_and_body(:unknown_match)
103
130
  stub_request(:patch, 'http://0.0.0.0:3000/airsoft/add_match?match_class=match_skos_broadmatch&uri=http://try.iqvoc.com/airsoft')
104
- .with(:headers => {'Accept' => '*/*', 'Content-Type'=>'application/json', 'Referer'=>'http://try.iqvoc.com/', 'User-Agent'=>'Faraday v0.9.0'})
131
+ .with(headers: {
132
+ 'Accept' => '*/*',
133
+ 'Content-Type' => 'application/json',
134
+ 'Referer' => 'http://try.iqvoc.com/',
135
+ 'User-Agent'=>'Faraday v1.10.3'
136
+ })
105
137
  .to_return(status: status, body: body.to_json, headers: {})
106
138
 
107
139
  job = @reverse_match_service.build_job(:add_match, @airsoft, 'http://try.iqvoc.com', 'Match::SKOS::BroadMatch')
@@ -47,9 +47,9 @@ class SearchTest < ActionDispatch::IntegrationTest
47
47
  visit search_path(lang: 'en', format: 'html')
48
48
 
49
49
  [{
50
- type: 'Labels', query: 'Forest', query_type: 'contains',
51
- amount: 1, result: 'Forest'
52
- }].each { |q|
50
+ type: 'Labels', query: 'Forest', query_type: 'contain keyword',
51
+ amount: 1, result: 'Forest'
52
+ }].each { |q|
53
53
  find('#t').select q[:type]
54
54
  fill_in 'Search term(s)', with: q[:query]
55
55
  find('#qt').select q[:query_type]
@@ -62,7 +62,7 @@ class SearchTest < ActionDispatch::IntegrationTest
62
62
  click_button('Search')
63
63
 
64
64
  assert page.has_css?('.search-result', count: q[:amount]),
65
- "Page has #{page.all(:css, '.search-result').count} '.search-result' nodes. Should be #{q[:amount]}."
65
+ "Page has #{page.all(:css, '.search-result').count} '.search-result' nodes. Should be #{q[:amount]}."
66
66
 
67
67
  within('.search-result') do
68
68
  assert page.has_content?(q[:result]), "Could not find '#{q[:result]}' within '.search-result'."
@@ -74,7 +74,7 @@ class SearchTest < ActionDispatch::IntegrationTest
74
74
  visit search_path(lang: 'en', format: 'html')
75
75
 
76
76
  find('#t').select 'Labels'
77
- find('#qt').select 'contains'
77
+ find('#qt').select 'contain keyword'
78
78
  fill_in 'Search term(s)', with: 'Alpha'
79
79
  click_button('Search')
80
80
  assert page.has_css?('.search-result', count: 1)
@@ -119,7 +119,7 @@ class SearchTest < ActionDispatch::IntegrationTest
119
119
  visit search_path(lang: 'en', format: 'html')
120
120
 
121
121
  find('#t').select 'Labels'
122
- find('#qt').select 'contains'
122
+ find('#qt').select 'contain keyword'
123
123
  fill_in 'Search term(s)', with: 'res'
124
124
  find('#c').select @collection.to_s
125
125
 
@@ -160,7 +160,7 @@ class SearchTest < ActionDispatch::IntegrationTest
160
160
  visit search_path(lang: 'en', format: 'html')
161
161
 
162
162
  find('#t').select 'Notes'
163
- find('#qt').select 'contains'
163
+ find('#qt').select 'contain keyword'
164
164
  fill_in 'Search term(s)', with: 'ipsum'
165
165
  find('#c').select @collection.to_s
166
166
 
@@ -179,7 +179,7 @@ class SearchTest < ActionDispatch::IntegrationTest
179
179
  visit search_path(lang: 'en', format: 'html')
180
180
 
181
181
  find('#t').select 'Labels'
182
- find('#qt').select 'exact match'
182
+ find('#qt').select 'exactly match'
183
183
  fill_in 'Search term(s)', with: ''
184
184
  find('#c').select @collection.to_s
185
185
 
@@ -208,7 +208,7 @@ class SearchTest < ActionDispatch::IntegrationTest
208
208
  visit search_path(lang: 'en', format: 'html')
209
209
 
210
210
  find('#t').select 'Labels'
211
- find('#qt').select 'contains'
211
+ find('#qt').select 'contain keyword'
212
212
  fill_in 'Search term(s)', with: 'sample_'
213
213
 
214
214
  click_button('Search')
@@ -0,0 +1,26 @@
1
+ # Copyright 2011-2023 innoQ Deutschland GmbH
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require File.join(File.expand_path(File.dirname(__FILE__)), '../integration_test_helper')
16
+
17
+ class VersionPageTest < ActionDispatch::IntegrationTest
18
+
19
+ test 'visit version page' do
20
+ visit version_path(lang: 'de')
21
+
22
+ assert page.body.include? 'iQvoc core version:'
23
+ assert page.body.include? Iqvoc::VERSION
24
+ end
25
+
26
+ end
@@ -249,4 +249,41 @@ class ConceptTest < ActiveSupport::TestCase
249
249
  refute wolf_concept.publishable?
250
250
  assert wolf_concept.errors.full_messages_for(:base).include? I18n.t('txt.models.concept.no_self_reference')
251
251
  end
252
+
253
+ test 'expired concepts scopes' do
254
+ assert_equal 0, Iqvoc::Concept.base_class.not_expired.count
255
+ assert_equal 0, Iqvoc::Concept.base_class.expired.count
256
+
257
+ wolf_concept = Iqvoc::Concept.base_class.new(origin: 'wolf').publish.tap do |c|
258
+ RDFAPI.devour c, 'skos:prefLabel', '"Wolf"@en'
259
+ c.save
260
+ end
261
+ refute wolf_concept.expired?
262
+
263
+ assert_equal 1, Iqvoc::Concept.base_class.not_expired.count
264
+ assert_equal 0, Iqvoc::Concept.base_class.expired.count
265
+
266
+ # expired until tomorrow
267
+ wolf_concept.expired_at = Date.tomorrow
268
+ wolf_concept.save
269
+ refute wolf_concept.expired?
270
+
271
+ assert_equal 1, Iqvoc::Concept.base_class.not_expired.count
272
+ assert_equal 0, Iqvoc::Concept.base_class.expired.count
273
+
274
+ # expired from today
275
+ wolf_concept.expired_at = Date.today
276
+ wolf_concept.save
277
+ assert wolf_concept.expired?
278
+
279
+ assert_equal 0, Iqvoc::Concept.base_class.not_expired.count
280
+ assert_equal 1, Iqvoc::Concept.base_class.expired.count
281
+
282
+ wolf_concept.expired_at = Date.yesterday
283
+ wolf_concept.save
284
+ assert wolf_concept.expired?
285
+
286
+ assert_equal 0, Iqvoc::Concept.base_class.not_expired.count
287
+ assert_equal 1, Iqvoc::Concept.base_class.expired.count
288
+ end
252
289
  end
@@ -60,14 +60,14 @@ class DeepCloningTest < ActiveSupport::TestCase
60
60
 
61
61
  @root_collection = Iqvoc::Collection.base_class.new(origin: 'root_collection1').tap do |c|
62
62
  RDFAPI.devour c, 'skos:prefLabel', '"Root Collection"@en'
63
- RDFAPI.devour c, 'skos:member', @root_concept1
64
- RDFAPI.devour c, 'skos:member', @root_concept2
65
- RDFAPI.devour c, 'skos:member', @child_concept
66
- RDFAPI.devour c, 'skos:member', @sub_collection
67
63
  c.publish
68
64
  c.save
69
65
  end
70
66
 
67
+ @root_collection.concepts << @root_concept1
68
+ @root_collection.concepts << @root_concept2
69
+ @root_collection.concepts << @child_concept
70
+ @root_collection.subcollections << @sub_collection
71
71
  end
72
72
 
73
73
  def after_setup
@@ -78,14 +78,16 @@ class DeepCloningTest < ActiveSupport::TestCase
78
78
  assert_equal @root_concept1, @child_concept.broader_relations.first.target
79
79
 
80
80
  assert_equal 3, @root_collection.concepts.size
81
- assert_equal [@root_concept1, @root_concept2, @child_concept], @root_collection.concepts
81
+ [@root_concept1, @root_concept2, @child_concept].each do |concept|
82
+ @root_collection.concepts.include? concept
83
+ end
82
84
 
83
85
  assert_equal 1, @root_collection.subcollections.size
84
86
  assert_equal @sub_collection, @root_collection.subcollections.first
85
87
  end
86
88
 
87
89
  test 'should deep clone concept' do
88
- root_concept_dup = @root_concept1.branch @admin
90
+ root_concept_dup = @root_concept1.branch
89
91
  root_concept_dup.save
90
92
 
91
93
  # test narrower
@@ -103,7 +105,7 @@ class DeepCloningTest < ActiveSupport::TestCase
103
105
  end
104
106
 
105
107
  test 'should deep clone collection' do
106
- root_collection_dup = @root_collection.branch @admin
108
+ root_collection_dup = @root_collection.branch
107
109
  root_collection_dup.save
108
110
 
109
111
  # test subcollections
data/test/test_helper.rb CHANGED
@@ -21,3 +21,6 @@ unless defined?(Iqvoc) && Iqvoc.const_defined?(:Engine)
21
21
  end
22
22
 
23
23
  require 'rails/test_help'
24
+ require 'authlogic/test_case'
25
+
26
+ include Authlogic::TestCase
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iqvoc
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.13.2
4
+ version: 4.14.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Glaser
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2022-05-19 00:00:00.000000000 Z
14
+ date: 2024-02-02 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rails
@@ -19,48 +19,42 @@ dependencies:
19
19
  requirements:
20
20
  - - "~>"
21
21
  - !ruby/object:Gem::Version
22
- version: 6.1.5
23
- - - ">="
24
- - !ruby/object:Gem::Version
25
- version: 6.1.5.1
22
+ version: 7.0.8
26
23
  type: :runtime
27
24
  prerelease: false
28
25
  version_requirements: !ruby/object:Gem::Requirement
29
26
  requirements:
30
27
  - - "~>"
31
28
  - !ruby/object:Gem::Version
32
- version: 6.1.5
33
- - - ">="
34
- - !ruby/object:Gem::Version
35
- version: 6.1.5.1
29
+ version: 7.0.8
36
30
  - !ruby/object:Gem::Dependency
37
31
  name: puma
38
32
  requirement: !ruby/object:Gem::Requirement
39
33
  requirements:
40
- - - "<"
34
+ - - ">="
41
35
  - !ruby/object:Gem::Version
42
- version: '6.0'
36
+ version: '0'
43
37
  type: :runtime
44
38
  prerelease: false
45
39
  version_requirements: !ruby/object:Gem::Requirement
46
40
  requirements:
47
- - - "<"
41
+ - - ">="
48
42
  - !ruby/object:Gem::Version
49
- version: '6.0'
43
+ version: '0'
50
44
  - !ruby/object:Gem::Dependency
51
45
  name: bootsnap
52
46
  requirement: !ruby/object:Gem::Requirement
53
47
  requirements:
54
48
  - - ">="
55
49
  - !ruby/object:Gem::Version
56
- version: 1.4.4
50
+ version: '0'
57
51
  type: :runtime
58
52
  prerelease: false
59
53
  version_requirements: !ruby/object:Gem::Requirement
60
54
  requirements:
61
55
  - - ">="
62
56
  - !ruby/object:Gem::Version
63
- version: 1.4.4
57
+ version: '0'
64
58
  - !ruby/object:Gem::Dependency
65
59
  name: bundler
66
60
  requirement: !ruby/object:Gem::Requirement
@@ -177,16 +171,16 @@ dependencies:
177
171
  name: faraday
178
172
  requirement: !ruby/object:Gem::Requirement
179
173
  requirements:
180
- - - '='
174
+ - - ">="
181
175
  - !ruby/object:Gem::Version
182
- version: 0.9.0
176
+ version: '0'
183
177
  type: :runtime
184
178
  prerelease: false
185
179
  version_requirements: !ruby/object:Gem::Requirement
186
180
  requirements:
187
- - - '='
181
+ - - ">="
188
182
  - !ruby/object:Gem::Version
189
- version: 0.9.0
183
+ version: '0'
190
184
  - !ruby/object:Gem::Dependency
191
185
  name: faraday_middleware
192
186
  requirement: !ruby/object:Gem::Requirement
@@ -313,6 +307,20 @@ dependencies:
313
307
  - - ">="
314
308
  - !ruby/object:Gem::Version
315
309
  version: '0'
310
+ - !ruby/object:Gem::Dependency
311
+ name: net-http
312
+ requirement: !ruby/object:Gem::Requirement
313
+ requirements:
314
+ - - ">="
315
+ - !ruby/object:Gem::Version
316
+ version: '0'
317
+ type: :runtime
318
+ prerelease: false
319
+ version_requirements: !ruby/object:Gem::Requirement
320
+ requirements:
321
+ - - ">="
322
+ - !ruby/object:Gem::Version
323
+ version: '0'
316
324
  - !ruby/object:Gem::Dependency
317
325
  name: database_cleaner
318
326
  requirement: !ruby/object:Gem::Requirement
@@ -355,6 +363,20 @@ dependencies:
355
363
  - - ">="
356
364
  - !ruby/object:Gem::Version
357
365
  version: '0'
366
+ - !ruby/object:Gem::Dependency
367
+ name: carrierwave-i18n
368
+ requirement: !ruby/object:Gem::Requirement
369
+ requirements:
370
+ - - ">="
371
+ - !ruby/object:Gem::Version
372
+ version: '0'
373
+ type: :runtime
374
+ prerelease: false
375
+ version_requirements: !ruby/object:Gem::Requirement
376
+ requirements:
377
+ - - ">="
378
+ - !ruby/object:Gem::Version
379
+ version: '0'
358
380
  - !ruby/object:Gem::Dependency
359
381
  name: rack-mini-profiler
360
382
  requirement: !ruby/object:Gem::Requirement
@@ -390,14 +412,7 @@ email:
390
412
  - till.schulte-coerne@innoq.com
391
413
  - frederik.dohr@innoq.com
392
414
  - marc.jansing@innoq.com
393
- executables:
394
- - bundle
395
- - delayed_job
396
- - rails
397
- - rake
398
- - setup
399
- - update
400
- - yarn
415
+ executables: []
401
416
  extensions: []
402
417
  extra_rdoc_files: []
403
418
  files:
@@ -472,6 +487,7 @@ files:
472
487
  - app/assets/stylesheets/_framework.scss
473
488
  - app/assets/stylesheets/iqvoc/_bootstrap_overrides.scss
474
489
  - app/assets/stylesheets/iqvoc/_manifest.scss
490
+ - app/assets/stylesheets/iqvoc/_search_results.scss
475
491
  - app/assets/stylesheets/iqvoc/components/_components.scss
476
492
  - app/assets/stylesheets/iqvoc/components/_datepicker.scss
477
493
  - app/assets/stylesheets/iqvoc/components/_entity_select.scss
@@ -708,6 +724,7 @@ files:
708
724
  - app/views/partials/note/skos/change_note/_search_result.html.erb
709
725
  - app/views/partials/note/skos/definition/_search_result.html.erb
710
726
  - app/views/rdf/dataset.iqrdf
727
+ - app/views/search_results/_detailed_search.html.erb
711
728
  - app/views/search_results/_form.html.erb
712
729
  - app/views/search_results/_header.html.erb
713
730
  - app/views/search_results/_result_list.html.erb
@@ -721,7 +738,6 @@ files:
721
738
  - app/views/search_results/sections/_klass.html.erb
722
739
  - app/views/search_results/sections/_languages.html.erb
723
740
  - app/views/search_results/sections/_mode.html.erb
724
- - app/views/search_results/sections/_note.html.erb
725
741
  - app/views/search_results/sections/_options.html.erb
726
742
  - app/views/search_results/sections/_terms.html.erb
727
743
  - app/views/search_results/sections/_type.html.erb
@@ -733,13 +749,6 @@ files:
733
749
  - app/views/users/edit.html.erb
734
750
  - app/views/users/index.html.erb
735
751
  - app/views/users/new.html.erb
736
- - bin/bundle
737
- - bin/delayed_job
738
- - bin/rails
739
- - bin/rake
740
- - bin/setup
741
- - bin/update
742
- - bin/yarn
743
752
  - config/application.rb
744
753
  - config/boot.rb
745
754
  - config/cable.yml
@@ -839,6 +848,7 @@ files:
839
848
  - db/migrate/20200529053158_extend_users.rb
840
849
  - db/migrate/20200901143030_add_collection_type_index.rb
841
850
  - db/migrate/20220107114201_add_fk_constraint_to_active_storage_attachments_for_blob_id.active_storage.rb
851
+ - db/migrate/20231012135837_remove_locked_by.rb
842
852
  - db/schema.rb
843
853
  - db/seeds.rb
844
854
  - iqvoc.gemspec
@@ -875,6 +885,7 @@ files:
875
885
  - test/integration/authentication_test.rb
876
886
  - test/integration/browse_concepts_and_labels_test.rb
877
887
  - test/integration/client_edit_concept_test.rb
888
+ - test/integration/collection_browsing_test.rb
878
889
  - test/integration/collection_circularity_test.rb
879
890
  - test/integration/concept_browsing_test.rb
880
891
  - test/integration/concept_collection_assignment_test.rb
@@ -893,6 +904,7 @@ files:
893
904
  - test/integration/tree_test.rb
894
905
  - test/integration/untranslated_test.rb
895
906
  - test/integration/user_management_test.rb
907
+ - test/integration/version_page_test.rb
896
908
  - test/integration_test_helper.rb
897
909
  - test/models/concept_scheme_test.rb
898
910
  - test/models/concept_test.rb
@@ -929,53 +941,55 @@ required_rubygems_version: !ruby/object:Gem::Requirement
929
941
  - !ruby/object:Gem::Version
930
942
  version: '0'
931
943
  requirements: []
932
- rubygems_version: 3.0.3.1
944
+ rubygems_version: 3.4.10
933
945
  signing_key:
934
946
  specification_version: 4
935
947
  summary: iQvoc
936
948
  test_files:
937
949
  - test/authentication.rb
938
- - test/integration/edit_concepts_test.rb
950
+ - test/controllers/concepts_movement_controller_test.rb
951
+ - test/controllers/hierarchy_test.rb
952
+ - test/controllers/rdf_rendering_test.rb
953
+ - test/controllers/reverse_match_test.rb
939
954
  - test/integration/alphabetical_test.rb
940
- - test/integration/edit_collections_test.rb
941
- - test/integration/reverse_match_job_test.rb
942
- - test/integration/concept_collection_assignment_test.rb
955
+ - test/integration/api_documentation_test.rb
943
956
  - test/integration/authentication_test.rb
944
- - test/integration/import_test.rb
945
- - test/integration/instance_configuration_browsing_test.rb
946
- - test/integration/search_test.rb
947
- - test/integration/dashboard_test.rb
948
- - test/integration/export_test.rb
949
- - test/integration/concept_browsing_test.rb
950
- - test/integration/tree_test.rb
951
- - test/integration/note_annotations_test.rb
952
957
  - test/integration/browse_concepts_and_labels_test.rb
953
958
  - test/integration/client_edit_concept_test.rb
959
+ - test/integration/collection_browsing_test.rb
960
+ - test/integration/collection_circularity_test.rb
961
+ - test/integration/concept_browsing_test.rb
962
+ - test/integration/concept_collection_assignment_test.rb
954
963
  - test/integration/concept_scheme_browsing_test.rb
955
- - test/integration/api_documentation_test.rb
956
- - test/integration/navigation_test.rb
957
964
  - test/integration/create_concept_test.rb
958
- - test/integration/user_management_test.rb
965
+ - test/integration/dashboard_test.rb
966
+ - test/integration/edit_collections_test.rb
967
+ - test/integration/edit_concepts_test.rb
968
+ - test/integration/export_test.rb
969
+ - test/integration/import_test.rb
970
+ - test/integration/instance_configuration_browsing_test.rb
971
+ - test/integration/navigation_test.rb
972
+ - test/integration/note_annotations_test.rb
973
+ - test/integration/reverse_match_job_test.rb
974
+ - test/integration/search_test.rb
975
+ - test/integration/tree_test.rb
959
976
  - test/integration/untranslated_test.rb
960
- - test/integration/collection_circularity_test.rb
961
- - test/models/inline_data_test.rb
962
- - test/models/rdf_sync_test.rb
963
- - test/models/testdata.nt
964
- - test/models/skos_export_test.rb
965
- - test/models/skos_import_test.rb
966
- - test/models/instance_configuration_test.rb
977
+ - test/integration/user_management_test.rb
978
+ - test/integration/version_page_test.rb
979
+ - test/integration_test_helper.rb
980
+ - test/models/concept_scheme_test.rb
967
981
  - test/models/concept_test.rb
968
982
  - test/models/deep_cloning_test.rb
969
- - test/models/concept_scheme_test.rb
970
- - test/models/origin_test.rb
971
- - test/models/skos_collection_import_test.rb
972
983
  - test/models/hygiene_test.rb
984
+ - test/models/inline_data_test.rb
985
+ - test/models/instance_configuration_test.rb
973
986
  - test/models/note_test.rb
987
+ - test/models/origin_test.rb
988
+ - test/models/rdf_sync_test.rb
974
989
  - test/models/rdfapi_test.rb
990
+ - test/models/skos_collection_import_test.rb
991
+ - test/models/skos_export_test.rb
992
+ - test/models/skos_import_test.rb
993
+ - test/models/testdata.nt
975
994
  - test/models/zeitwerk_compliance_test.rb
976
995
  - test/test_helper.rb
977
- - test/controllers/reverse_match_test.rb
978
- - test/controllers/rdf_rendering_test.rb
979
- - test/controllers/concepts_movement_controller_test.rb
980
- - test/controllers/hierarchy_test.rb
981
- - test/integration_test_helper.rb
@@ -1,6 +0,0 @@
1
- <div class="form-group">
2
- <%= label_tag nil, t('txt.views.search_results.note'), :class => 'col-sm-2 col-form-label' %>
3
- <div class="col-sm-4">
4
- <%= text_field_tag :note, params[:note], :class => 'form-control' %>
5
- </div>
6
- </div>
data/bin/bundle DELETED
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env ruby
2
- ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
3
- load Gem.bin_path('bundler', 'bundle')
data/bin/delayed_job DELETED
@@ -1,5 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment'))
4
- require 'delayed/command'
5
- Delayed::Command.new(ARGV).daemonize
data/bin/rails DELETED
@@ -1,4 +0,0 @@
1
- #!/usr/bin/env ruby
2
- APP_PATH = File.expand_path('../config/application', __dir__)
3
- require_relative "../config/boot"
4
- require "rails/commands"
data/bin/rake DELETED
@@ -1,4 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require_relative "../config/boot"
3
- require "rake"
4
- Rake.application.run
data/bin/setup DELETED
@@ -1,36 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require "fileutils"
3
-
4
- # path to your application root.
5
- APP_ROOT = File.expand_path('..', __dir__)
6
-
7
- def system!(*args)
8
- system(*args) || abort("\n== Command #{args} failed ==")
9
- end
10
-
11
- FileUtils.chdir APP_ROOT do
12
- # This script is a way to set up or update your development environment automatically.
13
- # This script is idempotent, so that you can run it at any time and get an expectable outcome.
14
- # Add necessary setup steps to this file.
15
-
16
- puts '== Installing dependencies =='
17
- system! 'gem install bundler --conservative'
18
- system('bundle check') || system!('bundle install')
19
-
20
- # Install JavaScript dependencies
21
- system! 'bin/yarn'
22
-
23
- # puts "\n== Copying sample files =="
24
- # unless File.exist?('config/database.yml')
25
- # FileUtils.cp 'config/database.yml.sample', 'config/database.yml'
26
- # end
27
-
28
- puts "\n== Preparing database =="
29
- system! 'bin/rails db:prepare'
30
-
31
- puts "\n== Removing old logs and tempfiles =="
32
- system! 'bin/rails log:clear tmp:clear'
33
-
34
- puts "\n== Restarting application server =="
35
- system! 'bin/rails restart'
36
- end
data/bin/update DELETED
@@ -1,31 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require 'fileutils'
3
- include FileUtils
4
-
5
- # path to your application root.
6
- APP_ROOT = File.expand_path('..', __dir__)
7
-
8
- def system!(*args)
9
- system(*args) || abort("\n== Command #{args} failed ==")
10
- end
11
-
12
- chdir APP_ROOT do
13
- # This script is a way to update your development environment automatically.
14
- # Add necessary update steps to this file.
15
-
16
- puts '== Installing dependencies =='
17
- system! 'gem install bundler --conservative'
18
- system('bundle check') || system!('bundle install')
19
-
20
- # Install JavaScript dependencies if using Yarn
21
- # system('bin/yarn')
22
-
23
- puts "\n== Updating database =="
24
- system! 'bin/rails db:migrate'
25
-
26
- puts "\n== Removing old logs and tempfiles =="
27
- system! 'bin/rails log:clear tmp:clear'
28
-
29
- puts "\n== Restarting application server =="
30
- system! 'bin/rails restart'
31
- end