iqvoc 4.13.0 → 4.14.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +11 -1
- data/Gemfile +13 -16
- data/Gemfile.lock +415 -326
- data/README.md +7 -6
- data/app/aides/inline_data_helper.rb +3 -3
- data/app/aides/skos_exporter.rb +1 -1
- data/app/assets/javascripts/framework.js +3 -3
- data/app/assets/javascripts/iqvoc/hover_menues.js +14 -0
- data/app/assets/javascripts/iqvoc/iqvoc.js +46 -61
- data/app/assets/javascripts/iqvoc/manifest.js +2 -1
- data/app/assets/javascripts/iqvoc/treeview.js +2 -1
- data/app/assets/stylesheets/iqvoc/_manifest.scss +1 -0
- data/app/assets/stylesheets/iqvoc/_search_results.scss +14 -0
- data/app/assets/stylesheets/iqvoc/components/_entity_select.scss +5 -8
- data/app/assets/stylesheets/iqvoc/components/_simplete.scss +2 -1
- data/app/assets/stylesheets/iqvoc/components/_treeview.scss +1 -0
- data/app/assets/stylesheets/iqvoc/hacks/_hacks.scss +1 -1
- data/app/controllers/collections/versions_controller.rb +13 -48
- data/app/controllers/collections_controller.rb +16 -9
- data/app/controllers/concepts/alphabetical_controller.rb +2 -2
- data/app/controllers/concepts/hierarchical_controller.rb +9 -13
- data/app/controllers/concepts/scheme_controller.rb +2 -1
- data/app/controllers/concepts/versions_controller.rb +14 -49
- data/app/controllers/concepts_controller.rb +28 -18
- data/app/controllers/concepts_movement_controller.rb +1 -1
- data/app/controllers/dashboard_controller.rb +5 -5
- data/app/controllers/hierarchy_controller.rb +1 -1
- data/app/controllers/imports_controller.rb +9 -6
- data/app/controllers/reverse_matches_controller.rb +2 -4
- data/app/controllers/search_results_controller.rb +16 -19
- data/app/controllers/triplestore_sync_controller.rb +2 -2
- data/app/controllers/users_controller.rb +1 -1
- data/app/helpers/application_helper.rb +6 -11
- data/app/helpers/concepts_helper.rb +3 -3
- data/app/helpers/link_helper.rb +10 -6
- data/app/helpers/navigation_helper.rb +24 -13
- data/app/helpers/rdf_helper.rb +9 -5
- data/app/jobs/reverse_match_job.rb +8 -4
- data/app/models/ability.rb +7 -7
- data/app/models/abstract_user.rb +1 -1
- data/app/models/collection/base.rb +17 -8
- data/app/models/concept/base.rb +25 -6
- data/app/models/concept/relation/base.rb +1 -1
- data/app/models/concept/relation/reverse_relation_extension.rb +9 -5
- data/app/models/concept/skos/base.rb +0 -10
- data/app/models/concept/validations.rb +6 -4
- data/app/models/concerns/search_extension.rb +0 -17
- data/app/models/concerns/versioning.rb +2 -32
- data/app/models/dataset/adaptors/iqvoc/alphabetical_search_adaptor.rb +2 -2
- data/app/models/dataset/adaptors/iqvoc/http_adaptor.rb +3 -3
- data/app/models/dataset/adaptors/iqvoc/label_adaptor.rb +1 -1
- data/app/models/dataset/adaptors/iqvoc/search_adaptor.rb +3 -3
- data/app/models/export.rb +1 -1
- data/app/models/label/base.rb +5 -5
- data/app/models/labeling/skos/base.rb +14 -10
- data/app/models/note/base.rb +1 -1
- data/app/models/user.rb +2 -0
- data/app/models/user_session.rb +0 -3
- data/app/services/rdf_sync_service.rb +3 -3
- data/app/uploaders/rdf_uploader.rb +1 -1
- data/app/views/collections/_data.html.erb +2 -2
- data/app/views/collections/show_unpublished.html.erb +3 -11
- data/app/views/concepts/alphabetical/_search_result.html.erb +3 -1
- data/app/views/concepts/hierarchical/_treeview.html.erb +4 -1
- data/app/views/concepts/notifications/_referenced_concepts.html.erb +0 -1
- data/app/views/concepts/scheme/show.html.erb +1 -3
- data/app/views/concepts/show_published.html.erb +2 -0
- data/app/views/concepts/show_unpublished.html.erb +5 -11
- data/app/views/dashboard/_table.html.erb +0 -8
- data/app/views/errors/server_error.html.erb +1 -2
- data/app/views/pages/version.html.erb +1 -1
- data/app/views/partials/collection/_member.html.erb +1 -1
- data/app/views/partials/concept/_edit_link_base.html.erb +2 -2
- data/app/views/partials/concept/relation/_base.html.erb +4 -4
- data/app/views/partials/concept/relation/_edit_base.html.erb +13 -10
- data/app/views/partials/concept/relation/skos/_narrower.html.erb +1 -1
- data/app/views/partials/concept/relation/skos/broader/_mono.html.erb +2 -2
- data/app/views/partials/concept/relation/skos/broader/_poly.html.erb +2 -2
- data/app/views/partials/labeling/skos/_base.html.erb +1 -1
- data/app/views/partials/labeling/skos/_edit_base.html.erb +2 -1
- data/app/views/partials/labeling/skos/_search_result.html.erb +3 -0
- data/app/views/partials/match/_panel.html.erb +2 -2
- data/app/views/partials/notation/_base.html.erb +1 -1
- data/app/views/search_results/_detailed_search.html.erb +27 -0
- data/app/views/search_results/_form.html.erb +21 -9
- data/app/views/search_results/index.html.erb +4 -4
- data/app/views/search_results/sections/_change_note.html.erb +28 -25
- data/app/views/search_results/sections/_collection.html.erb +5 -5
- data/app/views/search_results/sections/_datasets.html.erb +8 -20
- data/app/views/search_results/sections/_klass.html.erb +7 -9
- data/app/views/search_results/sections/_languages.html.erb +4 -14
- data/app/views/search_results/sections/_mode.html.erb +8 -10
- data/app/views/search_results/sections/_options.html.erb +8 -0
- data/app/views/search_results/sections/_terms.html.erb +13 -10
- data/app/views/search_results/sections/_type.html.erb +13 -13
- data/config/application.rb +15 -10
- data/config/boot.rb +3 -3
- data/config/cable.yml +1 -1
- data/config/database.yml +17 -16
- data/config/database.yml.postgresql +1 -1
- data/config/engine.rb +1 -1
- data/config/environment.rb +1 -1
- data/config/initializers/active_record.rb +2 -0
- data/config/initializers/backtrace_silencers.rb +4 -3
- data/config/initializers/content_security_policy.rb +21 -21
- data/config/initializers/filter_parameter_logging.rb +6 -2
- data/config/initializers/inflections.rb +4 -4
- data/config/initializers/iqvoc.rb +1 -0
- data/config/initializers/permissions_policy.rb +11 -0
- data/config/initializers/wrap_parameters.rb +3 -3
- data/config/initializers/zeitwerk.rb +6 -0
- data/config/locales/activerecord.de.yml +2 -2
- data/config/locales/de.yml +18 -19
- data/config/locales/en.yml +16 -17
- data/config/locales/pt.yml +0 -7
- data/config/puma.rb +10 -4
- data/config/routes.rb +0 -4
- data/db/migrate/20220107114201_add_fk_constraint_to_active_storage_attachments_for_blob_id.active_storage.rb +10 -0
- data/db/migrate/20231012135837_remove_locked_by.rb +6 -0
- data/db/schema.rb +36 -39
- data/iqvoc.gemspec +14 -13
- data/lib/iqvoc/configuration/concept.rb +2 -0
- data/lib/iqvoc/configuration/core.rb +13 -2
- data/lib/iqvoc/configuration/instance_configuration.rb +3 -3
- data/lib/iqvoc/environments/development.rb +23 -9
- data/lib/iqvoc/environments/production.rb +21 -19
- data/lib/iqvoc/environments/test.rb +15 -8
- data/lib/iqvoc/version.rb +1 -1
- data/lib/tasks/sync.rake +1 -1
- data/test/authentication.rb +1 -1
- data/test/controllers/concepts_movement_controller_test.rb +0 -2
- data/test/controllers/hierarchy_test.rb +4 -4
- data/test/controllers/reverse_match_test.rb +1 -1
- data/test/integration/client_edit_concept_test.rb +1 -1
- data/test/integration/collection_browsing_test.rb +45 -0
- data/test/integration/collection_circularity_test.rb +3 -3
- data/test/integration/concept_collection_assignment_test.rb +7 -7
- data/test/integration/create_concept_test.rb +15 -0
- data/test/integration/reverse_match_job_test.rb +39 -7
- data/test/integration/search_test.rb +12 -12
- data/test/integration/version_page_test.rb +26 -0
- data/test/integration_test_helper.rb +2 -2
- data/test/models/concept_test.rb +37 -0
- data/test/models/deep_cloning_test.rb +9 -7
- data/test/models/rdf_sync_test.rb +3 -3
- data/test/models/zeitwerk_compliance_test.rb +7 -0
- data/test/test_helper.rb +3 -0
- metadata +69 -222
- data/app/views/search_results/sections/_note.html.erb +0 -6
- data/config/initializers/new_framework_defaults_5_1.rb +0 -14
- data/config/initializers/sqlite3_booleans.rb +0 -1
- data/public/422.html +0 -58
- data/public/assets/fonts/FiraMono-Regular-0b6138c5b386dc9125473fd851926f29.ttf +0 -0
- data/public/assets/fonts/FiraMono-Regular-690950e8d89c92cba41eeeb13f1de93e.woff +0 -0
- data/public/assets/fonts/FiraMono-Regular-98f97ed2dbf9d94d4fa5df048434b88d.eot +0 -0
- data/public/assets/fonts/FiraMono-Regular.eot +0 -0
- data/public/assets/fonts/FiraMono-Regular.ttf +0 -0
- data/public/assets/fonts/FiraMono-Regular.woff +0 -0
- data/public/assets/fonts/FiraSans-Bold-0de5f536bd0dc370449c0c67a49a6fe7.eot +0 -0
- data/public/assets/fonts/FiraSans-Bold-25037ef8d155e38b5df0c242a4c6cf2d.ttf +0 -0
- data/public/assets/fonts/FiraSans-Bold-494219a9639084eb9528ff47f79fcda1.woff +0 -0
- data/public/assets/fonts/FiraSans-Bold.eot +0 -0
- data/public/assets/fonts/FiraSans-Bold.ttf +0 -0
- data/public/assets/fonts/FiraSans-Bold.woff +0 -0
- data/public/assets/fonts/FiraSans-BoldItalic-5b3b812df9e1cb2b1f34baad65a2bdfb.ttf +0 -0
- data/public/assets/fonts/FiraSans-BoldItalic-90b8087c48feff2e828f658c49de5399.eot +0 -0
- data/public/assets/fonts/FiraSans-BoldItalic-b10e46158d50bf9b78968112acf87310.woff +0 -0
- data/public/assets/fonts/FiraSans-BoldItalic.eot +0 -0
- data/public/assets/fonts/FiraSans-BoldItalic.ttf +0 -0
- data/public/assets/fonts/FiraSans-BoldItalic.woff +0 -0
- data/public/assets/fonts/FiraSans-Book-659d252627051e785260ba445da8930f.woff +0 -0
- data/public/assets/fonts/FiraSans-Book-abc65ceb7bfaed729bff7a9d1367b7d4.eot +0 -0
- data/public/assets/fonts/FiraSans-Book-f0410501d5ecc5fe66bcdbc02b482c81.ttf +0 -0
- data/public/assets/fonts/FiraSans-Book.eot +0 -0
- data/public/assets/fonts/FiraSans-Book.ttf +0 -0
- data/public/assets/fonts/FiraSans-Book.woff +0 -0
- data/public/assets/fonts/FiraSans-ExtraLight-140f15ee97cb2099ff01c2b57dcd1a24.woff +0 -0
- data/public/assets/fonts/FiraSans-ExtraLight-28e5c2679df66406ebd117fbdded6753.eot +0 -0
- data/public/assets/fonts/FiraSans-ExtraLight-c15de70ebceffce178cbd2e82aa2c373.ttf +0 -0
- data/public/assets/fonts/FiraSans-ExtraLight.eot +0 -0
- data/public/assets/fonts/FiraSans-ExtraLight.ttf +0 -0
- data/public/assets/fonts/FiraSans-ExtraLight.woff +0 -0
- data/public/assets/fonts/FiraSans-Italic-ac4cb18fe14a7c90f29cdd2ce499ba59.woff +0 -0
- data/public/assets/fonts/FiraSans-Italic-bdea00fee0da5ca9176061e00c26a0da.eot +0 -0
- data/public/assets/fonts/FiraSans-Italic-e7e76a0ee170fd29b5d8100753eff569.ttf +0 -0
- data/public/assets/fonts/FiraSans-Italic.eot +0 -0
- data/public/assets/fonts/FiraSans-Italic.ttf +0 -0
- data/public/assets/fonts/FiraSans-Italic.woff +0 -0
- data/public/assets/fonts/FiraSans-Light-20adaf630b690c3e3184daaeae585f22.woff +0 -0
- data/public/assets/fonts/FiraSans-Light-3689e18b38d335ec0c43823adb6a2984.eot +0 -0
- data/public/assets/fonts/FiraSans-Light-55b04531e7a9ecdf58090d70b94b68e2.ttf +0 -0
- data/public/assets/fonts/FiraSans-Light-SC-098407a72b7ad46f7c2480d7ac11baf2.eot +0 -0
- data/public/assets/fonts/FiraSans-Light-SC-82763fe2ce9e6b897556c6f3c2aceb29.woff2 +0 -0
- data/public/assets/fonts/FiraSans-Light-SC-c73985985f0501c1845a5185b180fe6b.woff +0 -0
- data/public/assets/fonts/FiraSans-Light-SC-c9563f48d9cccd91f07e46801c27130f.ttf +0 -0
- data/public/assets/fonts/FiraSans-Light-SC.eot +0 -0
- data/public/assets/fonts/FiraSans-Light-SC.ttf +0 -0
- data/public/assets/fonts/FiraSans-Light-SC.woff +0 -0
- data/public/assets/fonts/FiraSans-Light-SC.woff2 +0 -0
- data/public/assets/fonts/FiraSans-Light.eot +0 -0
- data/public/assets/fonts/FiraSans-Light.ttf +0 -0
- data/public/assets/fonts/FiraSans-Light.woff +0 -0
- data/public/assets/fonts/FiraSans-Medium-082fab59048189168006bf2e914ba8b7.woff +0 -0
- data/public/assets/fonts/FiraSans-Medium-11706edfe8651c355b413bd24b4b5e10.eot +0 -0
- data/public/assets/fonts/FiraSans-Medium-3a0dacdeaba1b4c054f2d6cb5061965d.ttf +0 -0
- data/public/assets/fonts/FiraSans-Medium.eot +0 -0
- data/public/assets/fonts/FiraSans-Medium.ttf +0 -0
- data/public/assets/fonts/FiraSans-Medium.woff +0 -0
- data/public/assets/fonts/FiraSans-MediumItalic-6c8a2646d72641226527d574a8485b66.woff +0 -0
- data/public/assets/fonts/FiraSans-MediumItalic-b81e92794a6878b6c578d97b3ad5e6d7.ttf +0 -0
- data/public/assets/fonts/FiraSans-MediumItalic-eae7f4a3c4db9fe83025909ebfae5ad9.eot +0 -0
- data/public/assets/fonts/FiraSans-MediumItalic.eot +0 -0
- data/public/assets/fonts/FiraSans-MediumItalic.ttf +0 -0
- data/public/assets/fonts/FiraSans-MediumItalic.woff +0 -0
- data/public/assets/fonts/FiraSans-Regular-537188a19aeebdd74a92e114af7a02cb.ttf +0 -0
- data/public/assets/fonts/FiraSans-Regular-5d6a923de9be80ff5c2995cc03d93127.woff +0 -0
- data/public/assets/fonts/FiraSans-Regular-db689e5fea21ed4b7890811151968dc6.eot +0 -0
- data/public/assets/fonts/FiraSans-Regular.eot +0 -0
- data/public/assets/fonts/FiraSans-Regular.ttf +0 -0
- data/public/assets/fonts/FiraSans-Regular.woff +0 -0
- data/public/assets/fonts/FiraSans-UltraLight-3baefce4c224a0f0b26cdafe37dfa55d.eot +0 -0
- data/public/assets/fonts/FiraSans-UltraLight-e3909a352b87f853bb464836adfd602a.ttf +0 -0
- data/public/assets/fonts/FiraSans-UltraLight-f7289beeaa2353caf487553ee8b8ef03.woff +0 -0
- data/public/assets/fonts/FiraSans-UltraLight.eot +0 -0
- data/public/assets/fonts/FiraSans-UltraLight.ttf +0 -0
- data/public/assets/fonts/FiraSans-UltraLight.woff +0 -0
- data/public/assets/fonts/FontAwesome.otf +0 -0
- data/public/assets/fonts/fontawesome-webfont.eot +0 -0
- data/public/assets/fonts/fontawesome-webfont.svg +0 -2671
- data/public/assets/fonts/fontawesome-webfont.ttf +0 -0
- data/public/assets/fonts/fontawesome-webfont.woff +0 -0
- data/public/assets/fonts/fontawesome-webfont.woff2 +0 -0
- data/public/assets/images/ajax-loader-30d8e72bfdae694b1938658e1b087df0.gif +0 -0
- data/public/assets/images/ajax-loader.gif +0 -0
- data/public/assets/images/iqvoc_logo-165f17a46cf0a1bf9464db9d136fb843.svg +0 -41
- data/public/assets/images/iqvoc_logo.svg +0 -41
- data/public/assets/images/treeview-default-line-5e3c0e0c48f48c23c45aef7b72c739c0.gif +0 -0
- data/public/assets/images/treeview-default-line.gif +0 -0
- data/public/assets/javascripts/bootstrap.bundle.min-68b3c2f1c1f636f947fff1229d3ffbf5.js +0 -7
- data/public/assets/javascripts/bootstrap.bundle.min.js +0 -42
- data/public/assets/javascripts/jquery-17e41799d7fba03a313ca6b67d8a0954.js +0 -26
- data/public/assets/javascripts/jquery-d52dc3a9171f1fc89dd0f8e35e42c9d2.js +0 -26
- data/public/assets/javascripts/jquery.js +0 -10875
- data/public/assets/javascripts/manifest-7708201f7c24d5186cd075c3317f9b70.js +0 -7311
- data/public/assets/javascripts/manifest-89894d9f630fa57378a0c28e2a3d9ea9.js +0 -7325
- data/public/assets/javascripts/manifest.js +0 -5660
- data/public/assets/manifest.json +0 -1
- data/public/assets/stylesheets/manifest-893c7de3dee9ed1295bc1b5b4c1f0c34.css +0 -13
- data/public/assets/stylesheets/manifest-94b7be92a9b1cfeafea4ea71af910324.css +0 -13
- data/public/assets/stylesheets/manifest-e576edf92efaaad86b15b565fa473d0b.css +0 -7
- data/public/assets/stylesheets/manifest.css +0 -14314
- data/public/export/12750.nt +0 -28
- data/public/export/17385303752427181100115432751692126521.nt +0 -28
- data/public/export/181196830007276319343907883650755121680.nt +0 -28
- data/public/export/194669028845730209313058462140064732442.nt +0 -28
- data/public/export/21988.nt +0 -28
- data/public/export/230655012044692637365356891394989635995.nt +0 -28
- data/public/export/233590502327750705645106563554497694497.nt +0 -28
- data/public/export/245884359537367641918690456207690070316.nt +0 -28
- data/public/export/250386066048669747259363837063223215204.nt +0 -28
- data/public/export/256041066575224861739818511470898486442.nt +0 -28
- data/public/export/287138383024694264939471429022965897163.nt +0 -28
- data/public/export/31892.nt +0 -28
- data/public/export/333774437366008328346740356666975078086.nt +0 -28
- data/public/export/34639390376251419382098415225771775708.nt +0 -28
- data/public/export/4098.nt +0 -28
- data/public/export/47070.nt +0 -28
- data/public/export/49947.nt +0 -28
- data/public/export/5793.nt +0 -28
- data/public/export/64089124325772410079516909502763866955.nt +0 -28
- data/public/export/64718.nt +0 -28
- data/public/export/71200590939430584664474292378126383577.nt +0 -28
- data/public/export/81965533953024918329855744567916239964.nt +0 -28
- data/public/favicon.ico +0 -0
- data/public/robots.txt +0 -5
- data/public/uploads/import/213b73161661ebbad4e5ee3f543ae617.nt +0 -259
- data/public/uploads/import/22ad4d7419b7914c7319c46a66839f77.nt +0 -259
- data/public/uploads/import/22b78e01b9b5876851578cf9a8373c07.nt +0 -259
- data/public/uploads/import/2ab75781f8141010699dd272f681b245.nt +0 -259
- data/public/uploads/import/4c7fe47a2c21a681fd8f0eb3af0ebf19.nt +0 -259
- data/public/uploads/import/5265d7cb194f017c592a68914ecf8d9f.nt +0 -259
- data/public/uploads/import/5cb5414a66e4ae5dbe05eb763c367bd1.nt +0 -259
- data/public/uploads/import/6b042e00c2e2abf9241d2ece3e67ed27.nt +0 -259
- data/public/uploads/import/749edd3918db157202b00f89418b87d1.nt +0 -259
- data/public/uploads/import/7aeb9d76b78ba67674caa53a96e1caa0.nt +0 -259
- data/public/uploads/import/7b7fc425b8926e586ca10d0f1385aa4e.nt +0 -259
- data/public/uploads/import/8319d34702375718b20e72a6af71c503.nt +0 -259
- data/public/uploads/import/9ec48f5aaece8d2a8770439e34199b19.nt +0 -259
- data/public/uploads/import/a22750632c35587057285920142c2db8.nt +0 -259
- data/public/uploads/import/a6d9eeb5e76ce0032614c8142a33c90b.nt +0 -259
- data/public/uploads/import/a7ec826e32e80d1fc61f5e89f7442199.nt +0 -259
- data/public/uploads/import/af2ac8cb84a194da9871ea701f915a25.nt +0 -259
- data/public/uploads/import/b50c67ef8cb51fa12812ac2601faaa75.nt +0 -259
- data/public/uploads/import/b66560ac9cc4aecd50f82d4fcec8bde4.nt +0 -259
- data/public/uploads/import/c1a12245a41d9105585fb48a0b5244ab.nt +0 -259
- data/public/uploads/import/c4b23750b9f72a7f93bcd979a9afded3.nt +0 -259
- data/public/uploads/import/d1edac76626a35a6e72a592c98e97b1a.nt +0 -259
- data/public/uploads/import/eca92dbeff4aec30e3072103bb5f565f.nt +0 -259
- data/public/uploads/import/f7996f8826062cd8dcfc8fac70e830b9.nt +0 -259
- data/public/uploads/tmp/1609926599-187261935008931-0002-5418/hobbies.nt +0 -259
- data/public/uploads/tmp/1610450700-516890595554445-0002-2685/hobbies.nt +0 -259
- data/public/uploads/tmp/1610450844-597126333235543-0001-0714/hobbies.nt +0 -259
- data/public/uploads/tmp/1611054155-443031323634581-0001-9192/hobbies.nt +0 -259
- data/public/uploads/tmp/1611225485-767301590714814-0002-6904/hobbies.nt +0 -259
- data/public/uploads/tmp/1611225661-919900076415463-0002-0657/hobbies.nt +0 -259
- data/public/uploads/tmp/1611227389-36557097935032-0002-4613/hobbies.nt +0 -259
- data/public/uploads/tmp/1611585376-822293462114758-0001-9752/hobbies.nt +0 -259
- data/public/uploads/tmp/1611585431-703460698560673-0002-7522/hobbies.nt +0 -259
- data/public/uploads/tmp/1611586554-483369300394995-0002-0872/hobbies.nt +0 -259
- data/public/uploads/tmp/1619777137-609890333749067-0002-0264/hobbies.nt +0 -259
- data/public/uploads/tmp/1627291050-163284787457980-0001-2701/hobbies.nt +0 -259
- data/public/uploads/tmp/1627291589-952446089963663-0002-3171/hobbies.nt +0 -259
- data/public/uploads/tmp/1627291819-788250283200541-0002-2503/hobbies.nt +0 -259
- data/public/uploads/tmp/1627292534-103362378955855-0001-7089/hobbies.nt +0 -259
- data/public/uploads/tmp/1627293799-506613299368066-0002-1247/hobbies.nt +0 -259
- data/public/uploads/tmp/1627293863-868842521367397-0001-4656/hobbies.nt +0 -259
- data/public/uploads/tmp/1636993960-338364327912413-0002-8049/hobbies.nt +0 -259
- data/public/uploads/tmp/1641550181-434480636271400-0002-7928/hobbies.nt +0 -259
- data/public/uploads/tmp/1641550416-6444469569098-0002-2156/hobbies.nt +0 -259
- data/public/uploads/tmp/1641550691-848542458162760-0002-6815/hobbies.nt +0 -259
- data/public/uploads/tmp/1641550716-647719127292471-0002-9954/hobbies.nt +0 -259
- data/public/uploads/tmp/1641551058-78248622355227-0002-3663/hobbies.nt +0 -259
- data/public/uploads/tmp/1641551220-744894908610606-0001-3879/hobbies.nt +0 -259
data/db/schema.rb
CHANGED
@@ -2,16 +2,15 @@
|
|
2
2
|
# of editing this file, please use the migrations feature of Active Record to
|
3
3
|
# incrementally modify your database, and then regenerate this schema definition.
|
4
4
|
#
|
5
|
-
#
|
6
|
-
#
|
7
|
-
#
|
8
|
-
# from scratch.
|
9
|
-
#
|
5
|
+
# This file is the source Rails uses to define your schema when running `bin/rails
|
6
|
+
# db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to
|
7
|
+
# be faster and is potentially less error prone than running all of your
|
8
|
+
# migrations from scratch. Old migrations may fail to apply correctly if those
|
9
|
+
# migrations use external dependencies or application code.
|
10
10
|
#
|
11
11
|
# It's strongly recommended that you check this file into your version control system.
|
12
12
|
|
13
|
-
ActiveRecord::Schema.define(version:
|
14
|
-
|
13
|
+
ActiveRecord::Schema[7.0].define(version: 2023_10_12_135837) do
|
15
14
|
# These are extensions that must be enabled in order to support this database
|
16
15
|
enable_extension "plpgsql"
|
17
16
|
|
@@ -27,8 +26,8 @@ ActiveRecord::Schema.define(version: 2020_09_01_143030) do
|
|
27
26
|
t.string "type"
|
28
27
|
t.integer "owner_id"
|
29
28
|
t.integer "target_id"
|
30
|
-
t.datetime "created_at"
|
31
|
-
t.datetime "updated_at"
|
29
|
+
t.datetime "created_at", precision: nil
|
30
|
+
t.datetime "updated_at", precision: nil
|
32
31
|
t.integer "rank", default: 100
|
33
32
|
t.index ["owner_id", "target_id"], name: "ix_concept_relations_fk"
|
34
33
|
end
|
@@ -39,13 +38,12 @@ ActiveRecord::Schema.define(version: 2020_09_01_143030) do
|
|
39
38
|
t.integer "rev", default: 1
|
40
39
|
t.date "published_at"
|
41
40
|
t.integer "published_version_id"
|
42
|
-
t.integer "locked_by"
|
43
41
|
t.date "expired_at"
|
44
42
|
t.date "follow_up"
|
45
43
|
t.boolean "to_review"
|
46
44
|
t.date "rdf_updated_at"
|
47
|
-
t.datetime "created_at"
|
48
|
-
t.datetime "updated_at"
|
45
|
+
t.datetime "created_at", precision: nil
|
46
|
+
t.datetime "updated_at", precision: nil
|
49
47
|
t.boolean "top_term", default: false
|
50
48
|
t.index ["origin"], name: "ix_concepts_on_origin"
|
51
49
|
t.index ["published_version_id"], name: "ix_concepts_publ_version_id"
|
@@ -61,13 +59,13 @@ ActiveRecord::Schema.define(version: 2020_09_01_143030) do
|
|
61
59
|
t.integer "attempts", default: 0, null: false
|
62
60
|
t.text "handler", null: false
|
63
61
|
t.text "last_error"
|
64
|
-
t.datetime "run_at"
|
65
|
-
t.datetime "locked_at"
|
66
|
-
t.datetime "failed_at"
|
62
|
+
t.datetime "run_at", precision: nil
|
63
|
+
t.datetime "locked_at", precision: nil
|
64
|
+
t.datetime "failed_at", precision: nil
|
67
65
|
t.string "locked_by"
|
68
66
|
t.string "queue"
|
69
|
-
t.datetime "created_at"
|
70
|
-
t.datetime "updated_at"
|
67
|
+
t.datetime "created_at", precision: nil
|
68
|
+
t.datetime "updated_at", precision: nil
|
71
69
|
t.string "error_message"
|
72
70
|
t.string "delayed_reference_type"
|
73
71
|
t.integer "delayed_reference_id"
|
@@ -85,9 +83,9 @@ ActiveRecord::Schema.define(version: 2020_09_01_143030) do
|
|
85
83
|
t.boolean "success", default: false
|
86
84
|
t.integer "file_type"
|
87
85
|
t.string "token"
|
88
|
-
t.datetime "created_at"
|
89
|
-
t.datetime "updated_at"
|
90
|
-
t.datetime "finished_at"
|
86
|
+
t.datetime "created_at", precision: nil
|
87
|
+
t.datetime "updated_at", precision: nil
|
88
|
+
t.datetime "finished_at", precision: nil
|
91
89
|
t.string "default_namespace"
|
92
90
|
t.index ["user_id"], name: "index_exports_on_user_id"
|
93
91
|
end
|
@@ -96,9 +94,9 @@ ActiveRecord::Schema.define(version: 2020_09_01_143030) do
|
|
96
94
|
t.integer "user_id"
|
97
95
|
t.text "output"
|
98
96
|
t.boolean "success", default: false
|
99
|
-
t.datetime "created_at"
|
100
|
-
t.datetime "updated_at"
|
101
|
-
t.datetime "finished_at"
|
97
|
+
t.datetime "created_at", precision: nil
|
98
|
+
t.datetime "updated_at", precision: nil
|
99
|
+
t.datetime "finished_at", precision: nil
|
102
100
|
t.string "import_file"
|
103
101
|
t.boolean "publish"
|
104
102
|
t.string "default_namespace"
|
@@ -109,8 +107,8 @@ ActiveRecord::Schema.define(version: 2020_09_01_143030) do
|
|
109
107
|
t.string "type"
|
110
108
|
t.integer "owner_id"
|
111
109
|
t.integer "target_id"
|
112
|
-
t.datetime "created_at"
|
113
|
-
t.datetime "updated_at"
|
110
|
+
t.datetime "created_at", precision: nil
|
111
|
+
t.datetime "updated_at", precision: nil
|
114
112
|
t.index ["owner_id", "target_id", "type"], name: "ix_labelings_fk_type"
|
115
113
|
t.index ["type"], name: "ix_labelings_on_type"
|
116
114
|
end
|
@@ -120,8 +118,8 @@ ActiveRecord::Schema.define(version: 2020_09_01_143030) do
|
|
120
118
|
t.string "origin", limit: 4000
|
121
119
|
t.string "language"
|
122
120
|
t.string "value", limit: 1024
|
123
|
-
t.datetime "created_at"
|
124
|
-
t.datetime "updated_at"
|
121
|
+
t.datetime "created_at", precision: nil
|
122
|
+
t.datetime "updated_at", precision: nil
|
125
123
|
t.date "published_at"
|
126
124
|
t.index ["language"], name: "ix_labels_on_language"
|
127
125
|
t.index ["origin"], name: "ix_labels_on_origin"
|
@@ -131,8 +129,8 @@ ActiveRecord::Schema.define(version: 2020_09_01_143030) do
|
|
131
129
|
t.integer "concept_id"
|
132
130
|
t.string "type"
|
133
131
|
t.string "value"
|
134
|
-
t.datetime "created_at"
|
135
|
-
t.datetime "updated_at"
|
132
|
+
t.datetime "created_at", precision: nil
|
133
|
+
t.datetime "updated_at", precision: nil
|
136
134
|
t.index ["concept_id", "type"], name: "ix_matches_fk_type"
|
137
135
|
t.index ["type"], name: "ix_matches_on_type"
|
138
136
|
end
|
@@ -148,8 +146,8 @@ ActiveRecord::Schema.define(version: 2020_09_01_143030) do
|
|
148
146
|
t.integer "note_id"
|
149
147
|
t.string "predicate", limit: 50
|
150
148
|
t.string "value", limit: 1024
|
151
|
-
t.datetime "created_at"
|
152
|
-
t.datetime "updated_at"
|
149
|
+
t.datetime "created_at", precision: nil
|
150
|
+
t.datetime "updated_at", precision: nil
|
153
151
|
t.string "namespace", limit: 50
|
154
152
|
t.string "language"
|
155
153
|
t.index ["note_id"], name: "ix_note_annotations_fk"
|
@@ -160,8 +158,8 @@ ActiveRecord::Schema.define(version: 2020_09_01_143030) do
|
|
160
158
|
t.string "language", limit: 2
|
161
159
|
t.string "value", limit: 4000
|
162
160
|
t.string "type", limit: 50
|
163
|
-
t.datetime "created_at"
|
164
|
-
t.datetime "updated_at"
|
161
|
+
t.datetime "created_at", precision: nil
|
162
|
+
t.datetime "updated_at", precision: nil
|
165
163
|
t.integer "owner_id"
|
166
164
|
t.string "owner_type", null: false
|
167
165
|
t.integer "position"
|
@@ -176,8 +174,8 @@ ActiveRecord::Schema.define(version: 2020_09_01_143030) do
|
|
176
174
|
t.string "email"
|
177
175
|
t.string "crypted_password"
|
178
176
|
t.boolean "active"
|
179
|
-
t.datetime "created_at"
|
180
|
-
t.datetime "updated_at"
|
177
|
+
t.datetime "created_at", precision: nil
|
178
|
+
t.datetime "updated_at", precision: nil
|
181
179
|
t.string "password_salt"
|
182
180
|
t.string "persistence_token"
|
183
181
|
t.string "perishable_token"
|
@@ -187,9 +185,9 @@ ActiveRecord::Schema.define(version: 2020_09_01_143030) do
|
|
187
185
|
t.text "comment"
|
188
186
|
t.integer "login_count", default: 0, null: false
|
189
187
|
t.integer "failed_login_count", default: 0, null: false
|
190
|
-
t.datetime "last_request_at"
|
191
|
-
t.datetime "current_login_at"
|
192
|
-
t.datetime "last_login_at"
|
188
|
+
t.datetime "last_request_at", precision: nil
|
189
|
+
t.datetime "current_login_at", precision: nil
|
190
|
+
t.datetime "last_login_at", precision: nil
|
193
191
|
t.string "current_login_ip"
|
194
192
|
t.string "last_login_ip"
|
195
193
|
end
|
@@ -198,7 +196,6 @@ ActiveRecord::Schema.define(version: 2020_09_01_143030) do
|
|
198
196
|
add_foreign_key "collection_members", "concepts", column: "target_id", on_update: :cascade
|
199
197
|
add_foreign_key "concept_relations", "concepts", column: "owner_id", on_update: :cascade
|
200
198
|
add_foreign_key "concept_relations", "concepts", column: "target_id", on_update: :cascade
|
201
|
-
add_foreign_key "concepts", "users", column: "locked_by", on_update: :cascade, on_delete: :nullify
|
202
199
|
add_foreign_key "exports", "users", on_update: :cascade, on_delete: :nullify
|
203
200
|
add_foreign_key "imports", "users", on_update: :cascade, on_delete: :nullify
|
204
201
|
add_foreign_key "labelings", "concepts", column: "owner_id", on_update: :cascade
|
data/iqvoc.gemspec
CHANGED
@@ -11,20 +11,20 @@ Gem::Specification.new do |s|
|
|
11
11
|
s.homepage = 'http://github.com/innoq/iqvoc'
|
12
12
|
s.summary = 'iQvoc'
|
13
13
|
s.description = 'iQvoc - a SKOS(-XL) vocabulary management system built on the Semantic Web'
|
14
|
-
s.license = 'Apache
|
14
|
+
s.license = 'Apache-2.0'
|
15
15
|
|
16
|
-
s.add_dependency 'rails', '
|
17
|
-
s.add_dependency 'puma'
|
18
|
-
s.add_dependency 'bootsnap'
|
16
|
+
s.add_dependency 'rails', '~> 7.0.8'
|
17
|
+
s.add_dependency 'puma'
|
18
|
+
s.add_dependency 'bootsnap'
|
19
19
|
s.add_dependency 'bundler'
|
20
|
-
s.add_dependency 'kaminari'
|
21
|
-
s.add_dependency 'authlogic'
|
20
|
+
s.add_dependency 'kaminari'
|
21
|
+
s.add_dependency 'authlogic'
|
22
22
|
s.add_dependency 'scrypt'
|
23
|
-
s.add_dependency 'cancancan'
|
24
|
-
s.add_dependency 'iq_rdf'
|
23
|
+
s.add_dependency 'cancancan'
|
24
|
+
s.add_dependency 'iq_rdf'
|
25
25
|
s.add_dependency 'json'
|
26
26
|
s.add_dependency 'rails_autolink'
|
27
|
-
s.add_dependency 'faraday'
|
27
|
+
s.add_dependency 'faraday'
|
28
28
|
s.add_dependency 'faraday_middleware'
|
29
29
|
s.add_dependency 'bootstrap_form', '~> 4.0'
|
30
30
|
s.add_dependency 'iq_triplestorage'
|
@@ -32,18 +32,19 @@ Gem::Specification.new do |s|
|
|
32
32
|
s.add_dependency 'linkeddata'
|
33
33
|
s.add_dependency 'rdf-vocab'
|
34
34
|
s.add_dependency 'deep_cloneable'
|
35
|
-
s.add_dependency 'uglifier', '>= 1.3.0'
|
36
35
|
s.add_dependency 'apipie-rails'
|
37
36
|
s.add_dependency 'maruku'
|
37
|
+
s.add_dependency 'net-http'
|
38
38
|
s.add_dependency 'database_cleaner', '~> 1.8.5'
|
39
|
-
s.add_dependency 'delayed_job_active_record'
|
39
|
+
s.add_dependency 'delayed_job_active_record'
|
40
40
|
s.add_dependency 'carrierwave'
|
41
|
+
s.add_dependency 'carrierwave-i18n'
|
41
42
|
s.add_dependency 'rack-mini-profiler'
|
42
43
|
s.add_dependency 'faucet_pipeline_rails'
|
43
44
|
|
44
45
|
s.files = %w(LICENSE README.md CHANGELOG.md Gemfile Gemfile.lock Rakefile iqvoc.gemspec) +
|
45
|
-
Dir.glob('{app,config,db,
|
46
|
-
s.test_files =
|
46
|
+
Dir.glob('{app,config,db,lib}/**/*')
|
47
|
+
s.test_files = Dir['{test}/**/*']
|
47
48
|
s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
48
49
|
s.require_paths = ['lib']
|
49
50
|
end
|
@@ -12,6 +12,7 @@ module Iqvoc
|
|
12
12
|
:broader_relation_class_name, :further_relation_class_names,
|
13
13
|
:pref_labeling_class_name,
|
14
14
|
:alt_labeling_class_name,
|
15
|
+
:hidden_labeling_class_name,
|
15
16
|
:match_class_names,
|
16
17
|
:note_class_names,
|
17
18
|
:notation_class_names,
|
@@ -27,6 +28,7 @@ module Iqvoc
|
|
27
28
|
|
28
29
|
self.pref_labeling_class_name = 'Labeling::SKOS::PrefLabel'
|
29
30
|
self.alt_labeling_class_name = 'Labeling::SKOS::AltLabel'
|
31
|
+
self.hidden_labeling_class_name = 'Labeling::SKOS::HiddenLabel'
|
30
32
|
|
31
33
|
self.note_class_names = [
|
32
34
|
Iqvoc.change_note_class_name,
|
@@ -11,6 +11,7 @@ module Iqvoc
|
|
11
11
|
:default_rdf_namespace_helper_modules,
|
12
12
|
:default_rdf_namespace_helper_methods,
|
13
13
|
:rdf_namespaces,
|
14
|
+
:rdf_show_change_notes,
|
14
15
|
:change_note_class_name,
|
15
16
|
:first_level_class_configuration_modules,
|
16
17
|
:navigation_items,
|
@@ -103,6 +104,9 @@ module Iqvoc
|
|
103
104
|
iqvoc: 'http://try.iqvoc.net/schema#'
|
104
105
|
}
|
105
106
|
|
107
|
+
# This flag determines if the changes notes should be included in the RDF representation of a Concept/Label/Collection.
|
108
|
+
self.rdf_show_change_notes = true
|
109
|
+
|
106
110
|
# The class to use for automatic generation of change notes on every save
|
107
111
|
self.change_note_class_name = 'Note::SKOS::ChangeNote'
|
108
112
|
|
@@ -118,7 +122,8 @@ module Iqvoc
|
|
118
122
|
'collection',
|
119
123
|
'languages',
|
120
124
|
'change_note',
|
121
|
-
'datasets'
|
125
|
+
'datasets',
|
126
|
+
'options',
|
122
127
|
]
|
123
128
|
|
124
129
|
# ignored database tables during thesaurus truncation
|
@@ -132,11 +137,13 @@ module Iqvoc
|
|
132
137
|
# initialize
|
133
138
|
self.config.register_settings({
|
134
139
|
'title' => 'iQvoc',
|
140
|
+
'concept_modal_preview' => true,
|
135
141
|
'languages.pref_labeling' => ['en', 'de'],
|
136
142
|
'languages.further_labelings.Labeling::SKOS::AltLabel' => ['en', 'de'],
|
137
143
|
'languages.notes' => ['en', 'de'],
|
138
144
|
'performance.unbounded_hierarchy' => false,
|
139
|
-
'sources.iqvoc' => ['']
|
145
|
+
'sources.iqvoc' => [''],
|
146
|
+
'sources.create_reverse_matches' => true
|
140
147
|
})
|
141
148
|
end
|
142
149
|
|
@@ -189,6 +196,10 @@ module Iqvoc
|
|
189
196
|
self.config.register_setting('title', value)
|
190
197
|
end
|
191
198
|
|
199
|
+
def concept_modal_preview_enabled?
|
200
|
+
config['concept_modal_preview'] == true
|
201
|
+
end
|
202
|
+
|
192
203
|
def engine?
|
193
204
|
Iqvoc.const_defined?(:Engine)
|
194
205
|
end
|
@@ -80,7 +80,7 @@ module Iqvoc
|
|
80
80
|
|
81
81
|
json = JSON.dump([value])[1..-2] # temporary array wrapper ensures valid JSON text
|
82
82
|
if setting = ConfigurationSetting.find_by_key(key)
|
83
|
-
setting.
|
83
|
+
setting.update(value: json)
|
84
84
|
else
|
85
85
|
ConfigurationSetting.create(key: key, value: json)
|
86
86
|
end
|
@@ -116,8 +116,8 @@ module Iqvoc
|
|
116
116
|
if value == nil
|
117
117
|
raise TypeError, 'nil values not supported'
|
118
118
|
end
|
119
|
-
|
120
|
-
unless [TrueClass, FalseClass, String,
|
119
|
+
|
120
|
+
unless [TrueClass, FalseClass, String, Integer, Float, Array].include?(value.class)
|
121
121
|
raise TypeError, 'complex values not supported'
|
122
122
|
end
|
123
123
|
end
|
@@ -1,11 +1,12 @@
|
|
1
|
+
require "active_support/core_ext/integer/time"
|
1
2
|
require 'iqvoc'
|
2
3
|
|
3
4
|
module Iqvoc::Environments
|
4
5
|
def self.setup_development(config)
|
5
6
|
# Settings specified here will take precedence over those in config/application.rb.
|
6
7
|
|
7
|
-
# In the development environment your application's code is reloaded
|
8
|
-
#
|
8
|
+
# In the development environment your application's code is reloaded any time
|
9
|
+
# it changes. This slows down response time but is perfect for development
|
9
10
|
# since you don't have to restart the web server when you make code changes.
|
10
11
|
config.cache_classes = false
|
11
12
|
|
@@ -15,14 +16,18 @@ module Iqvoc::Environments
|
|
15
16
|
# Show full error reports.
|
16
17
|
config.consider_all_requests_local = true
|
17
18
|
|
19
|
+
# Enable server timing
|
20
|
+
config.server_timing = true
|
21
|
+
|
18
22
|
# Enable/disable caching. By default caching is disabled.
|
19
23
|
# Run rails dev:cache to toggle caching.
|
20
|
-
if Rails.root.join(
|
24
|
+
if Rails.root.join("tmp/caching-dev.txt").exist?
|
21
25
|
config.action_controller.perform_caching = true
|
26
|
+
config.action_controller.enable_fragment_cache_logging = true
|
22
27
|
|
23
28
|
config.cache_store = :memory_store
|
24
29
|
config.public_file_server.headers = {
|
25
|
-
|
30
|
+
"Cache-Control" => "public, max-age=#{2.days.to_i}"
|
26
31
|
}
|
27
32
|
else
|
28
33
|
config.action_controller.perform_caching = false
|
@@ -30,7 +35,7 @@ module Iqvoc::Environments
|
|
30
35
|
config.cache_store = :null_store
|
31
36
|
end
|
32
37
|
|
33
|
-
# Store uploaded files on the local file system (see config/storage.yml for options)
|
38
|
+
# Store uploaded files on the local file system (see config/storage.yml for options).
|
34
39
|
config.active_storage.service = :local
|
35
40
|
|
36
41
|
# Don't care if the mailer can't send.
|
@@ -41,20 +46,29 @@ module Iqvoc::Environments
|
|
41
46
|
# Print deprecation notices to the Rails logger.
|
42
47
|
config.active_support.deprecation = :log
|
43
48
|
|
49
|
+
# Raise exceptions for disallowed deprecations.
|
50
|
+
config.active_support.disallowed_deprecation = :raise
|
51
|
+
|
52
|
+
# Tell Active Support which deprecation messages to disallow.
|
53
|
+
config.active_support.disallowed_deprecation_warnings = []
|
54
|
+
|
44
55
|
# Raise an error on page load if there are pending migrations.
|
45
56
|
config.active_record.migration_error = :page_load
|
46
57
|
|
47
58
|
# Highlight code that triggered database queries in logs.
|
48
59
|
config.active_record.verbose_query_logs = true
|
49
60
|
|
50
|
-
# Raises error for missing translations
|
51
|
-
config.
|
61
|
+
# Raises error for missing translations.
|
62
|
+
config.i18n.raise_on_missing_translations = true
|
52
63
|
|
53
|
-
#
|
54
|
-
config.
|
64
|
+
# Annotate rendered view with file names.
|
65
|
+
config.action_view.annotate_rendered_view_with_filenames = true
|
55
66
|
|
56
67
|
# Use an evented file watcher to asynchronously detect changes in source code,
|
57
68
|
# routes, locales, etc. This feature depends on the listen gem.
|
58
69
|
config.file_watcher = ActiveSupport::EventedFileUpdateChecker
|
70
|
+
|
71
|
+
# Uncomment if you wish to allow Action Cable access from any origin.
|
72
|
+
# config.action_cable.disable_request_forgery_protection = true
|
59
73
|
end
|
60
74
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require "active_support/core_ext/integer/time"
|
1
2
|
require 'iqvoc'
|
2
3
|
|
3
4
|
module Iqvoc::Environments
|
@@ -23,28 +24,28 @@ module Iqvoc::Environments
|
|
23
24
|
|
24
25
|
# Disable serving static files from the `/public` folder by default since
|
25
26
|
# Apache or NGINX already handles this.
|
26
|
-
config.public_file_server.enabled = ENV[
|
27
|
+
config.public_file_server.enabled = ENV["RAILS_SERVE_STATIC_FILES"].present?
|
27
28
|
|
28
29
|
# Enable serving of images, stylesheets, and JavaScripts from an asset server.
|
29
|
-
# config.
|
30
|
+
# config.asset_host = "http://assets.example.com"
|
30
31
|
|
31
32
|
# Specifies the header that your server uses for sending files.
|
32
|
-
# config.action_dispatch.x_sendfile_header =
|
33
|
-
# config.action_dispatch.x_sendfile_header =
|
33
|
+
# config.action_dispatch.x_sendfile_header = "X-Sendfile" # for Apache
|
34
|
+
# config.action_dispatch.x_sendfile_header = "X-Accel-Redirect" # for NGINX
|
34
35
|
|
35
|
-
# Store uploaded files on the local file system (see config/storage.yml for options)
|
36
|
+
# Store uploaded files on the local file system (see config/storage.yml for options).
|
36
37
|
config.active_storage.service = :local
|
37
38
|
|
38
|
-
# Mount Action Cable outside main process or domain
|
39
|
+
# Mount Action Cable outside main process or domain.
|
39
40
|
# config.action_cable.mount_path = nil
|
40
|
-
# config.action_cable.url =
|
41
|
-
# config.action_cable.allowed_request_origins = [
|
41
|
+
# config.action_cable.url = "wss://example.com/cable"
|
42
|
+
# config.action_cable.allowed_request_origins = [ "http://example.com", /http:\/\/example.*/ ]
|
42
43
|
|
43
44
|
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
|
44
45
|
# config.force_ssl = true
|
45
46
|
|
46
|
-
#
|
47
|
-
#
|
47
|
+
# Include generic and useful information about system operation, but avoid logging too much
|
48
|
+
# information to avoid inadvertent exposure of personally identifiable information (PII).
|
48
49
|
config.log_level = (ENV['LOG_LEVEL'] || :info)
|
49
50
|
|
50
51
|
# Prepend all log lines with the following tags.
|
@@ -53,9 +54,9 @@ module Iqvoc::Environments
|
|
53
54
|
# Use a different cache store in production.
|
54
55
|
# config.cache_store = :mem_cache_store
|
55
56
|
|
56
|
-
# Use a real queuing backend for Active Job (and separate queues per environment)
|
57
|
+
# Use a real queuing backend for Active Job (and separate queues per environment).
|
57
58
|
# config.active_job.queue_adapter = :resque
|
58
|
-
# config.active_job.queue_name_prefix = "
|
59
|
+
# config.active_job.queue_name_prefix = "iqvoc_production"
|
59
60
|
|
60
61
|
config.action_mailer.perform_caching = false
|
61
62
|
|
@@ -70,12 +71,18 @@ module Iqvoc::Environments
|
|
70
71
|
# Send deprecation notices to registered listeners.
|
71
72
|
config.active_support.deprecation = :notify
|
72
73
|
|
74
|
+
# Log disallowed deprecations.
|
75
|
+
config.active_support.disallowed_deprecation = :log
|
76
|
+
|
77
|
+
# Tell Active Support which deprecation messages to disallow.
|
78
|
+
config.active_support.disallowed_deprecation_warnings = []
|
79
|
+
|
73
80
|
# Use default logging formatter so that PID and timestamp are not suppressed.
|
74
81
|
config.log_formatter = ::Logger::Formatter.new
|
75
82
|
|
76
83
|
# Use a different logger for distributed setups.
|
77
|
-
# require
|
78
|
-
# config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new
|
84
|
+
# require "syslog/logger"
|
85
|
+
# config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new "app-name")
|
79
86
|
|
80
87
|
if ENV["RAILS_LOG_TO_STDOUT"].present?
|
81
88
|
logger = ActiveSupport::Logger.new(STDOUT)
|
@@ -85,10 +92,5 @@ module Iqvoc::Environments
|
|
85
92
|
|
86
93
|
# Do not dump schema after migrations.
|
87
94
|
config.active_record.dump_schema_after_migration = false
|
88
|
-
|
89
|
-
config.i18n.enforce_available_locales = true
|
90
|
-
|
91
|
-
# Raises error for missing translations
|
92
|
-
config.action_view.raise_on_missing_translations = false
|
93
95
|
end
|
94
96
|
end
|
@@ -1,13 +1,10 @@
|
|
1
|
+
require "active_support/core_ext/integer/time"
|
1
2
|
require 'iqvoc'
|
2
3
|
|
3
4
|
module Iqvoc::Environments
|
4
5
|
def self.setup_test(config)
|
5
6
|
# Settings specified here will take precedence over those in config/application.rb.
|
6
7
|
|
7
|
-
# The test environment is used exclusively to run your application's
|
8
|
-
# test suite. You never need to work with it otherwise. Remember that
|
9
|
-
# your test database is "scratch space" for the test suite and is wiped
|
10
|
-
# and recreated between test runs. Don't rely on the data there!
|
11
8
|
config.cache_classes = true
|
12
9
|
|
13
10
|
# Do not eager load code on boot. This avoids loading your whole application
|
@@ -18,12 +15,13 @@ module Iqvoc::Environments
|
|
18
15
|
# Configure public file server for tests with Cache-Control for performance.
|
19
16
|
config.public_file_server.enabled = true
|
20
17
|
config.public_file_server.headers = {
|
21
|
-
|
18
|
+
"Cache-Control" => "public, max-age=#{1.hour.to_i}"
|
22
19
|
}
|
23
20
|
|
24
21
|
# Show full error reports and disable caching.
|
25
22
|
config.consider_all_requests_local = true
|
26
23
|
config.action_controller.perform_caching = false
|
24
|
+
config.cache_store = :null_store
|
27
25
|
|
28
26
|
# Raise exceptions instead of rendering exception templates.
|
29
27
|
config.action_dispatch.show_exceptions = false
|
@@ -31,7 +29,7 @@ module Iqvoc::Environments
|
|
31
29
|
# Disable request forgery protection in test environment.
|
32
30
|
config.action_controller.allow_forgery_protection = false
|
33
31
|
|
34
|
-
# Store uploaded files on the local file system in a temporary directory
|
32
|
+
# Store uploaded files on the local file system in a temporary directory.
|
35
33
|
config.active_storage.service = :test
|
36
34
|
|
37
35
|
config.action_mailer.perform_caching = false
|
@@ -44,7 +42,16 @@ module Iqvoc::Environments
|
|
44
42
|
# Print deprecation notices to the stderr.
|
45
43
|
config.active_support.deprecation = :stderr
|
46
44
|
|
47
|
-
#
|
48
|
-
config.
|
45
|
+
# Raise exceptions for disallowed deprecations.
|
46
|
+
config.active_support.disallowed_deprecation = :raise
|
47
|
+
|
48
|
+
# Tell Active Support which deprecation messages to disallow.
|
49
|
+
config.active_support.disallowed_deprecation_warnings = []
|
50
|
+
|
51
|
+
# Raises error for missing translations.
|
52
|
+
config.i18n.raise_on_missing_translations = true
|
53
|
+
|
54
|
+
# Annotate rendered view with file names.
|
55
|
+
# config.action_view.annotate_rendered_view_with_filenames = true
|
49
56
|
end
|
50
57
|
end
|
data/lib/iqvoc/version.rb
CHANGED
data/lib/tasks/sync.rake
CHANGED
data/test/authentication.rb
CHANGED
@@ -150,7 +150,7 @@ boot:
|
|
150
150
|
|
151
151
|
get :show, params: { lang: 'en', format: 'ttl', root: 'root' }
|
152
152
|
assert_response 200
|
153
|
-
assert_equal @response.
|
153
|
+
assert_equal @response.media_type, 'text/turtle'
|
154
154
|
assert @response.body =~ /:root[^\.]+skos:topConceptOf[^\.]+:scheme/m
|
155
155
|
assert @response.body =~ /:root[^\.]+skos:prefLabel[^\.]+"Root"@en/m
|
156
156
|
assert @response.body =~ /:root[^\.]+skos:narrower[^\.]+:bar/m
|
@@ -180,7 +180,7 @@ boot:
|
|
180
180
|
|
181
181
|
get :show, params: { lang: 'en', format: 'ttl', root: 'lorem', dir: 'up' }
|
182
182
|
assert_response 200
|
183
|
-
assert_equal @response.
|
183
|
+
assert_equal @response.media_type, 'text/turtle'
|
184
184
|
assert @response.body.include?(<<-EOS)
|
185
185
|
:lorem a skos:Concept;
|
186
186
|
skos:prefLabel "Lorem"@en;
|
@@ -210,7 +210,7 @@ boot:
|
|
210
210
|
|
211
211
|
get :show, params: { lang: 'en', format: 'rdf', root: 'root' }
|
212
212
|
assert_response 200
|
213
|
-
assert_equal @response.
|
213
|
+
assert_equal @response.media_type, 'application/rdf+xml'
|
214
214
|
end
|
215
215
|
|
216
216
|
test 'root parameter handling' do
|
@@ -357,7 +357,7 @@ boot:
|
|
357
357
|
test 'avoid duplication' do # in response to a bug report
|
358
358
|
get :show, params: { lang: 'en', format: 'ttl', root: 'uno', dir: 'up' }
|
359
359
|
assert_response 200
|
360
|
-
assert_equal 'text/turtle', @response.
|
360
|
+
assert_equal 'text/turtle', @response.media_type
|
361
361
|
assert @response.body.include?(<<-EOS)
|
362
362
|
:bravo a skos:Concept;
|
363
363
|
skos:prefLabel "Bravo"@en;
|
@@ -69,7 +69,7 @@ class ClientEditConceptsTest < ActionDispatch::IntegrationTest
|
|
69
69
|
page.click_link_or_button('Speichern')
|
70
70
|
assert page.has_css?('.alert.alert-success')
|
71
71
|
# return to edit mode
|
72
|
-
page.click_link_or_button('
|
72
|
+
page.click_link_or_button('Bearbeiten')
|
73
73
|
assert page.has_css?('#edit_concept')
|
74
74
|
|
75
75
|
section = page.find('#note_skos_definitions_data')
|