iqvoc 4.0.8 → 4.0.9
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.
- data/CHANGELOG.md +11 -0
- data/Gemfile +5 -1
- data/Gemfile.lock +35 -18
- data/README.md +3 -2
- data/app/assets/stylesheets/iqvoc/components.css.scss +0 -6
- data/app/controllers/collections_controller.rb +30 -17
- data/app/controllers/concepts/alphabetical_controller.rb +15 -9
- data/app/{models/collection/member/concept.rb → controllers/concepts/expired_controller.rb} +13 -15
- data/app/controllers/concepts/hierarchical_controller.rb +3 -0
- data/app/controllers/concepts_controller.rb +2 -3
- data/app/controllers/instance_configuration_controller.rb +5 -6
- data/app/controllers/search_results_controller.rb +1 -2
- data/app/helpers/application_helper.rb +1 -5
- data/app/helpers/concepts_helper.rb +1 -1
- data/app/helpers/rdf_helper.rb +1 -1
- data/app/helpers/widget_helper.rb +3 -3
- data/app/models/collection/base.rb +64 -46
- data/app/models/collection/member/base.rb +12 -0
- data/app/models/collection/member/skos/base.rb +13 -12
- data/app/models/collection/skos/base.rb +1 -1
- data/app/models/collection/{member/collection.rb → skos/unordered.rb} +1 -16
- data/app/models/collection/unordered.rb +7 -0
- data/app/models/concept/base.rb +26 -107
- data/app/models/concept/relation/base.rb +4 -0
- data/app/models/concept/relation/skos/base.rb +17 -7
- data/app/models/concept/skos/base.rb +10 -1
- data/app/models/concept/skos/scheme.rb +1 -1
- data/app/models/concept/validations.rb +117 -0
- data/app/models/label/base.rb +4 -3
- data/app/models/labeling/skos/base.rb +24 -13
- data/app/models/match/skos/base.rb +24 -5
- data/app/models/note/skos/base.rb +17 -14
- data/app/views/collections/_form.html.erb +2 -2
- data/app/views/collections/_header.html.erb +2 -2
- data/app/views/collections/_sidebar.html.erb +3 -3
- data/app/views/collections/index.html.erb +1 -1
- data/app/views/collections/show.html.erb +1 -1
- data/app/views/collections/show.iqrdf +1 -1
- data/app/views/concepts/alphabetical/index.html.erb +1 -1
- data/app/views/concepts/expired/index.html.erb +16 -0
- data/app/views/concepts/notifications/_referenced_concepts.html.erb +1 -1
- data/app/views/concepts/sidebars/_plural.html.erb +4 -0
- data/app/views/dashboard/index.html.erb +1 -1
- data/app/views/layouts/_controls.html.erb +25 -24
- data/app/views/layouts/_navigation.html.erb +1 -1
- data/app/views/layouts/application.html.erb +0 -6
- data/app/views/partials/concept/_edit_link_base.html.erb +2 -1
- data/app/views/partials/labeling/skos/_base.html.erb +1 -2
- data/app/views/partials/note/_edit_base.html.erb +1 -1
- data/app/views/partials/note/skos/_edit_change_note.html.erb +1 -1
- data/app/views/rdf/scheme.iqrdf +1 -1
- data/app/views/search_results/_header.html.erb +2 -2
- data/app/views/search_results/_sidebar.html.erb +2 -2
- data/app/views/search_results/index.html.erb +1 -1
- data/app/views/triplestore_sync/index.html.erb +2 -2
- data/config/locales/de.yml +9 -2
- data/config/locales/en.yml +11 -4
- data/config/locales/pt.yml +8 -3
- data/config/routes.rb +15 -6
- data/db/migrate/20130227145825_fix_collection_type.rb +10 -0
- data/db/schema.rb +1 -1
- data/lib/generators/app/template.rb +20 -0
- data/lib/iqvoc/configuration/collection.rb +5 -5
- data/lib/iqvoc/configuration/concept.rb +7 -7
- data/lib/iqvoc/configuration/core.rb +11 -10
- data/lib/iqvoc/controller_extensions.rb +2 -5
- data/lib/iqvoc/inline_data_helper.rb +25 -3
- data/lib/iqvoc/instance_configuration.rb +1 -1
- data/lib/iqvoc/rdfapi.rb +56 -0
- data/lib/iqvoc/skos_importer.rb +88 -40
- data/lib/iqvoc/version.rb +1 -1
- data/lib/multi_logger.rb +38 -0
- data/lib/tasks/importer.rake +6 -1
- data/test/integration/browse_concepts_and_labels_test.rb +16 -0
- data/test/integration/instance_configuration_test.rb +5 -5
- data/test/integration/search_test.rb +18 -17
- data/test/unit/concept_test.rb +53 -4
- data/test/unit/inline_data_test.rb +61 -0
- data/test/unit/origin_test.rb +1 -1
- data/test/unit/rdfapi_test.rb +83 -0
- data/test/unit/skos_import_test.rb +1 -1
- data/{public/assets/jquery-ui → vendor/assets/images}/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/{public/assets/jquery-ui → vendor/assets/images}/ui-bg_flat_55_fbec88_40x100.png +0 -0
- data/{public/assets/jquery-ui → vendor/assets/images}/ui-bg_glass_75_d0e5f5_1x400.png +0 -0
- data/{public/assets/jquery-ui → vendor/assets/images}/ui-bg_glass_85_dfeffc_1x400.png +0 -0
- data/{public/assets/jquery-ui → vendor/assets/images}/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/{public/assets/jquery-ui → vendor/assets/images}/ui-bg_gloss-wave_55_5c9ccc_500x100.png +0 -0
- data/{public/assets/jquery-ui → vendor/assets/images}/ui-bg_inset-hard_100_f5f8f9_1x100.png +0 -0
- data/{public/assets/jquery-ui → vendor/assets/images}/ui-bg_inset-hard_100_fcfdfd_1x100.png +0 -0
- data/{public/assets/jquery-ui → vendor/assets/images}/ui-icons_217bc0_256x240.png +0 -0
- data/{public/assets/jquery-ui → vendor/assets/images}/ui-icons_2e83ff_256x240.png +0 -0
- data/{public/assets/jquery-ui → vendor/assets/images}/ui-icons_469bdd_256x240.png +0 -0
- data/{public/assets/jquery-ui → vendor/assets/images}/ui-icons_6da8d5_256x240.png +0 -0
- data/{public/assets/jquery-ui → vendor/assets/images}/ui-icons_cd0a0a_256x240.png +0 -0
- data/{public/assets/jquery-ui → vendor/assets/images}/ui-icons_d8e7f3_256x240.png +0 -0
- data/{public/assets/jquery-ui → vendor/assets/images}/ui-icons_f9bd01_256x240.png +0 -0
- data/vendor/assets/stylesheets/{jquery-ui-1.8.23.custom.css → jquery-ui-1.8.23.custom.css.scss} +17 -17
- metadata +29 -131
- data/app/controllers/collections/hierarchical_controller.rb +0 -44
- data/public/assets/ajax-loader-dada1fbb71d7fb80d8dde7a031ae6cd0.gif +0 -0
- data/public/assets/ajax-loader.gif +0 -0
- data/public/assets/arrow_down-07c5dea12928d65fcc31c08279366170.gif +0 -0
- data/public/assets/arrow_down.gif +0 -0
- data/public/assets/arrow_up-51ede92c113b9a870e7a306907360ba8.gif +0 -0
- data/public/assets/arrow_up.gif +0 -0
- data/public/assets/bootstrap/bootstrap-2012a68e8267282c0a2c177d7005ae6d.css +0 -9
- data/public/assets/bootstrap/bootstrap-2012a68e8267282c0a2c177d7005ae6d.css.gz +0 -0
- data/public/assets/bootstrap/bootstrap-35fd77cdf54a8cb63a39d8d0cea7a746.js +0 -19
- data/public/assets/bootstrap/bootstrap-35fd77cdf54a8cb63a39d8d0cea7a746.js.gz +0 -0
- data/public/assets/bootstrap/bootstrap-responsive-609b376f4bb032588c054b563d4bca1f.css +0 -9
- data/public/assets/bootstrap/bootstrap-responsive-609b376f4bb032588c054b563d4bca1f.css.gz +0 -0
- data/public/assets/bootstrap/bootstrap-responsive.css +0 -9
- data/public/assets/bootstrap/bootstrap-responsive.css.gz +0 -0
- data/public/assets/bootstrap/bootstrap.css +0 -9
- data/public/assets/bootstrap/bootstrap.css.gz +0 -0
- data/public/assets/bootstrap/bootstrap.js +0 -19
- data/public/assets/bootstrap/bootstrap.js.gz +0 -0
- data/public/assets/bootstrap/glyphicons-halflings-0e7ff93d8f48fe1f5f762e4312e78da7.png +0 -0
- data/public/assets/bootstrap/glyphicons-halflings-white-ef3d5b8d6a297804352b4a46fdb5466d.png +0 -0
- data/public/assets/bootstrap/glyphicons-halflings-white.png +0 -0
- data/public/assets/bootstrap/glyphicons-halflings.png +0 -0
- data/public/assets/file-58ce0b58f19dfe871b25270e98cff66c.gif +0 -0
- data/public/assets/file.gif +0 -0
- data/public/assets/folder-5c5b1fd2f1ece710f9159f05cc2aaaa8.gif +0 -0
- data/public/assets/folder-closed-8b61fc55011d534f0216c1150994f229.gif +0 -0
- data/public/assets/folder-closed.gif +0 -0
- data/public/assets/folder.gif +0 -0
- data/public/assets/html5-05e1be9157c8366db72fb7a1bcc8daff.js +0 -3
- data/public/assets/html5-05e1be9157c8366db72fb7a1bcc8daff.js.gz +0 -0
- data/public/assets/html5.js +0 -3
- data/public/assets/html5.js.gz +0 -0
- data/public/assets/iqvoc/ie_fixes-6a106c21d979ccdd1f6bf1cb129a0e69.css +0 -1
- data/public/assets/iqvoc/ie_fixes-6a106c21d979ccdd1f6bf1cb129a0e69.css.gz +0 -0
- data/public/assets/iqvoc/ie_fixes.css +0 -1
- data/public/assets/iqvoc/ie_fixes.css.gz +0 -0
- data/public/assets/iqvoc_logo-316859a511c646918fe75e92fa0bf6ac.png +0 -0
- data/public/assets/iqvoc_logo.png +0 -0
- data/public/assets/jquery-ui/ui-bg_flat_0_aaaaaa_40x100-a1eb3e0764573ed4b261ca742ed96ac3.png +0 -0
- data/public/assets/jquery-ui/ui-bg_flat_55_fbec88_40x100-439ee8e6c8ce855f43ed4d7b90684720.png +0 -0
- data/public/assets/jquery-ui/ui-bg_glass_75_d0e5f5_1x400-9357836db77954d0d8c5feb259635223.png +0 -0
- data/public/assets/jquery-ui/ui-bg_glass_85_dfeffc_1x400-7beb11d1590fb2fb1ef5c754100a078a.png +0 -0
- data/public/assets/jquery-ui/ui-bg_glass_95_fef1ec_1x400-c723e9a2b50006c6054836a10b76bb84.png +0 -0
- data/public/assets/jquery-ui/ui-bg_gloss-wave_55_5c9ccc_500x100-cb26f48ac4912c23ce301c69c474d306.png +0 -0
- data/public/assets/jquery-ui/ui-bg_inset-hard_100_f5f8f9_1x100-519299e2aa31bffdd4fed34b4fac603d.png +0 -0
- data/public/assets/jquery-ui/ui-bg_inset-hard_100_fcfdfd_1x100-27e08524d3d56bb59e354435b663c3ac.png +0 -0
- data/public/assets/jquery-ui/ui-icons_217bc0_256x240-ed26778199d8722ae064038a1e841bc8.png +0 -0
- data/public/assets/jquery-ui/ui-icons_2e83ff_256x240-94086d0ce953eb0887ab1b8140903af9.png +0 -0
- data/public/assets/jquery-ui/ui-icons_469bdd_256x240-1c055f2d65517ef8faf1d1999c8ac2fa.png +0 -0
- data/public/assets/jquery-ui/ui-icons_6da8d5_256x240-8f5b417c5604f1b7b5965c98754c33b9.png +0 -0
- data/public/assets/jquery-ui/ui-icons_cd0a0a_256x240-8b44e266bdc1f57f1393579591f89222.png +0 -0
- data/public/assets/jquery-ui/ui-icons_d8e7f3_256x240-1b415e411069df902e6f417cc014172c.png +0 -0
- data/public/assets/jquery-ui/ui-icons_f9bd01_256x240-4553d0576c0498ca4c776aa77aa80833.png +0 -0
- data/public/assets/json2-b08b7b9af3e715f42c088ac728f62a2b.js +0 -157
- data/public/assets/json2-b08b7b9af3e715f42c088ac728f62a2b.js.gz +0 -0
- data/public/assets/json2.js +0 -157
- data/public/assets/json2.js.gz +0 -0
- data/public/assets/manifest-3ce8edde69d5d291841ef7c49daaa9cb.js +0 -21
- data/public/assets/manifest-3ce8edde69d5d291841ef7c49daaa9cb.js.gz +0 -0
- data/public/assets/manifest-c0eca563fd9f16907d302af9a2dcae6b.css +0 -51
- data/public/assets/manifest-c0eca563fd9f16907d302af9a2dcae6b.css.gz +0 -0
- data/public/assets/manifest.css +0 -51
- data/public/assets/manifest.css.gz +0 -0
- data/public/assets/manifest.js +0 -21
- data/public/assets/manifest.js.gz +0 -0
- data/public/assets/manifest.yml +0 -47
- data/public/assets/minus-1d0fae0720bab52bd98598218e8345c0.gif +0 -0
- data/public/assets/minus.gif +0 -0
- data/public/assets/plus-1a29e46532f839ed9c977ef4613d079f.gif +0 -0
- data/public/assets/plus.gif +0 -0
- data/public/assets/spinner_16x16-17dcf941457ae4e702f4600e714b21c1.gif +0 -0
- data/public/assets/spinner_16x16.gif +0 -0
- data/public/assets/spinner_24x24-78c707c1921b93962ea5edd7f4a74134.gif +0 -0
- data/public/assets/spinner_24x24.gif +0 -0
- data/public/assets/treeview-black-c46d96020e5d79c652af0fb0c6656384.gif +0 -0
- data/public/assets/treeview-black-line-0903c58efd34c3203d132e6f873049f6.gif +0 -0
- data/public/assets/treeview-black-line.gif +0 -0
- data/public/assets/treeview-black.gif +0 -0
- data/public/assets/treeview-default-ee6298d311205d21dc57c01c0696df70.gif +0 -0
- data/public/assets/treeview-default-line-2c4106cfd4d322c6e6565f80702c27cb.gif +0 -0
- data/public/assets/treeview-default-line.gif +0 -0
- data/public/assets/treeview-default.gif +0 -0
- data/public/assets/treeview-famfamfam-20dfef13cd5fd1e08fb61ee68eb9d3fa.gif +0 -0
- data/public/assets/treeview-famfamfam-line-a02cce2b80977e066df83137aae71fa8.gif +0 -0
- data/public/assets/treeview-famfamfam-line.gif +0 -0
- data/public/assets/treeview-famfamfam.gif +0 -0
- data/public/assets/treeview-gray-01bfdcd116e081e23daf13024fd3e4e0.gif +0 -0
- data/public/assets/treeview-gray-line-029b3a7b92ed10ea6c4b6289cb9fa0e3.gif +0 -0
- data/public/assets/treeview-gray-line.gif +0 -0
- data/public/assets/treeview-gray.gif +0 -0
- data/public/assets/treeview-red-2a5abbce598d05c864d845998381eef6.gif +0 -0
- data/public/assets/treeview-red-line-f51e6c30aa3b0ff856900ba85d769f1c.gif +0 -0
- data/public/assets/treeview-red-line.gif +0 -0
- data/public/assets/treeview-red.gif +0 -0
- data/vendor/assets/images/jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-bg_flat_55_fbec88_40x100.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-bg_glass_75_d0e5f5_1x400.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-bg_glass_85_dfeffc_1x400.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-bg_gloss-wave_55_5c9ccc_500x100.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-bg_inset-hard_100_f5f8f9_1x100.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-bg_inset-hard_100_fcfdfd_1x100.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-icons_217bc0_256x240.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-icons_2e83ff_256x240.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-icons_469bdd_256x240.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-icons_6da8d5_256x240.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-icons_cd0a0a_256x240.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-icons_d8e7f3_256x240.png +0 -0
- data/vendor/assets/images/jquery-ui/ui-icons_f9bd01_256x240.png +0 -0
- data/vendor/assets/javascripts/json2.js +0 -487
@@ -18,22 +18,25 @@ class Note::SKOS::Base < Note::Base
|
|
18
18
|
|
19
19
|
self.rdf_namespace = 'skos'
|
20
20
|
|
21
|
-
def self.build_from_rdf(
|
22
|
-
unless
|
23
|
-
raise "
|
21
|
+
def self.build_from_rdf(rdf_subject, rdf_predicate, rdf_object)
|
22
|
+
unless rdf_subject.class.reflections.include?(self.name.to_relation_name)
|
23
|
+
raise "#{self.name}#build_from_rdf: Subject (#{rdf_subject}) must be able to receive this kind of note (#{self.name} => #{self.name.to_relation_name})."
|
24
24
|
end
|
25
25
|
|
26
|
-
|
26
|
+
target_class = Iqvoc::RDFAPI::PREDICATE_DICTIONARY[rdf_predicate] || self
|
27
|
+
case rdf_object
|
27
28
|
when String # Literal
|
28
|
-
unless
|
29
|
-
raise "
|
29
|
+
unless rdf_object =~ /^"(.*)"(@(.+))$/
|
30
|
+
raise "#{self.name}#build_from_rdf: Object (#{rdf_object}) must be a string literal"
|
30
31
|
end
|
31
32
|
lang = $3
|
32
33
|
value = JSON.parse(%Q{["#{$1}"]})[0].gsub("\\n", "\n") # Trick to decode \uHHHHH chars
|
33
|
-
|
34
|
+
target_class.new(:value => value, :language => lang).tap do |new_instance|
|
35
|
+
rdf_subject.send(target_class.name.to_relation_name) << new_instance
|
36
|
+
end
|
34
37
|
when Array # Blank node
|
35
|
-
note =
|
36
|
-
|
38
|
+
note = target_class.create!(:owner => rdf_subject)
|
39
|
+
rdf_object.each do |annotation|
|
37
40
|
ns, pred = *annotation.first.split(":", 2)
|
38
41
|
note.annotations.create! do |a|
|
39
42
|
a.namespace = ns
|
@@ -45,19 +48,19 @@ class Note::SKOS::Base < Note::Base
|
|
45
48
|
end
|
46
49
|
|
47
50
|
def build_rdf(document, subject)
|
48
|
-
ns, id =
|
49
|
-
if
|
51
|
+
ns, id = '', ''
|
52
|
+
if self.rdf_namespace and self.rdf_predicate
|
50
53
|
ns, id = self.rdf_namespace, self.rdf_predicate
|
51
54
|
elsif self.class == Note::SKOS::Base # This could be done by setting self.rdf_predicate to 'note'. But all subclasses would inherit this value.
|
52
|
-
ns, id =
|
55
|
+
ns, id = 'Skos', 'note'
|
53
56
|
else
|
54
|
-
raise "
|
57
|
+
raise "#{self.class.name}#build_rdf: Class #{self.class.name} needs to define self.rdf_namespace and self.rdf_predicate."
|
55
58
|
end
|
56
59
|
|
57
60
|
if (IqRdf::Namespace.find_namespace_class(ns))
|
58
61
|
subject.send(ns).send(id, value, :lang => language)
|
59
62
|
else
|
60
|
-
raise "
|
63
|
+
raise "#{self.class.name}#build_rdf: couldn't find Namespace '#{ns}'."
|
61
64
|
end
|
62
65
|
end
|
63
66
|
|
@@ -26,7 +26,7 @@
|
|
26
26
|
<fieldset>
|
27
27
|
<legend><%= Iqvoc::Concept.base_class.model_name.human(:count => 2) %></legend>
|
28
28
|
<%= f.input "concept[inline_member_concept_origins]", :label => t('txt.common.type_to_search') do %>
|
29
|
-
<%= text_field_tag "concept[inline_member_concept_origins]", @collection.inline_member_concept_origins.join(Iqvoc::InlineDataHelper::
|
29
|
+
<%= text_field_tag "concept[inline_member_concept_origins]", @collection.inline_member_concept_origins.join(Iqvoc::InlineDataHelper::JOINER),
|
30
30
|
:class => "entity_select",
|
31
31
|
:"data-query-url" => concepts_path(:format => :json),
|
32
32
|
:"data-entity-uri" => concept_path(:id => "{id}"),
|
@@ -38,7 +38,7 @@
|
|
38
38
|
<fieldset>
|
39
39
|
<legend><%= Iqvoc::Collection.base_class.model_name.human(:count => 2) %></legend>
|
40
40
|
<%= f.input "concept[inline_member_concept_origins]", :label => t('txt.common.type_to_search') do %>
|
41
|
-
<%= text_field_tag "concept[inline_member_collection_origins]", @collection.inline_member_collection_origins.join(Iqvoc::InlineDataHelper::
|
41
|
+
<%= text_field_tag "concept[inline_member_collection_origins]", @collection.inline_member_collection_origins.join(Iqvoc::InlineDataHelper::JOINER),
|
42
42
|
:class => "entity_select",
|
43
43
|
:"data-query-url" => collections_path(:format => :json),
|
44
44
|
:"data-entity-uri" => collection_path(:id => "{id}"),
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<%= concept_header collection %>
|
2
2
|
|
3
3
|
<%= content_for :head do -%>
|
4
|
-
<link href="<%=
|
5
|
-
<link href="<%=
|
4
|
+
<link href="<%= rdf_collection_url(collection.origin, :format => :ttl, :lang => nil) %>" type="text/turtle" rel="alternate" title=""/>
|
5
|
+
<link href="<%= rdf_collection_url(collection.origin, :format => :rdf, :lang => nil) %>" type="application/rdf+xml" rel="alternate" title=""/>
|
6
6
|
<% end -%>
|
@@ -4,8 +4,8 @@
|
|
4
4
|
:perms => [:create, Iqvoc::Collection.base_class], :active => params[:action] == 'new' %>
|
5
5
|
<% if defined?(collection) %>
|
6
6
|
<%= sidebar_header t('txt.common.representations') %>
|
7
|
-
<%= sidebar_item :icon => 'share', :text => 'HTML', :path => collection_url(collection.origin, :format => :html
|
8
|
-
<%= sidebar_item :icon => 'share', :text => 'RDF/XML', :path =>
|
9
|
-
<%= sidebar_item :icon => 'share', :text => 'RDF/Turtle', :path =>
|
7
|
+
<%= sidebar_item :icon => 'share', :text => 'HTML', :path => collection_url(collection.origin, :format => :html) %>
|
8
|
+
<%= sidebar_item :icon => 'share', :text => 'RDF/XML', :path => rdf_collection_url(collection.origin, :format => :rdf, :lang => nil), :id => 'rdf_link_xml' %>
|
9
|
+
<%= sidebar_item :icon => 'share', :text => 'RDF/Turtle', :path => rdf_collection_url(collection.origin, :format => :ttl, :lang => nil), :id => 'rdf_link_ttl' %>
|
10
10
|
<% end %>
|
11
11
|
<% end %>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<%= page_header :title => Iqvoc::Collection.base_class.model_name.human(:count => 2) %>
|
2
2
|
|
3
|
-
<ul class="hybrid-treeview" data-url="<%=
|
3
|
+
<ul class="hybrid-treeview" data-url="<%= collections_path(:format => :json) %>">
|
4
4
|
<%= render :partial => 'collection', :collection => @top_collections %>
|
5
5
|
</ul>
|
6
6
|
|
@@ -47,7 +47,7 @@
|
|
47
47
|
|
48
48
|
<div class="relation panel">
|
49
49
|
<h3><%= Iqvoc::Collection.base_class.model_name.human(:count => 2) %></h3>
|
50
|
-
<ul class="hybrid-treeview" data-url="<%=
|
50
|
+
<ul class="hybrid-treeview" data-url="<%= collections_path(:format => :json) %>">
|
51
51
|
<%= render :partial => 'collection', :collection => @collection.subcollections.sort {|a, b| a.pref_label <=> b.pref_label } %>
|
52
52
|
</ul>
|
53
53
|
</div>
|
@@ -2,7 +2,7 @@ Iqvoc.default_rdf_namespace_helper_methods.each do |meth|
|
|
2
2
|
document.namespaces(self.send(meth))
|
3
3
|
end
|
4
4
|
|
5
|
-
document << @collection.build_rdf_subject
|
5
|
+
document << @collection.build_rdf_subject do |collection|
|
6
6
|
@collection.labelings.each do |labeling|
|
7
7
|
labeling.build_rdf(document, collection)
|
8
8
|
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<%= page_header :title => Iqvoc::Concept.base_class.model_name.human(:count => 2),
|
2
|
+
:desc => t('txt.views.navigation.expired') %>
|
3
|
+
<%= render 'concepts/sidebars/plural' %>
|
4
|
+
|
5
|
+
<div class="panel">
|
6
|
+
<div class="panel-header centered">
|
7
|
+
<%= letter_selector do |letter| %>
|
8
|
+
<% expired_concepts_path(:prefix => letter.to_s.downcase) %>
|
9
|
+
<% end %>
|
10
|
+
</div>
|
11
|
+
<ol class="concepts unstyled">
|
12
|
+
<%= render :partial => 'concepts/alphabetical/pref_labeling', :collection => @pref_labelings %>
|
13
|
+
</ol>
|
14
|
+
</div>
|
15
|
+
|
16
|
+
<%= paginate @pref_labelings %>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<% if association_objects_in_editing_mode && association_objects_in_editing_mode[:concept_relations] %>
|
1
|
+
<% if association_objects_in_editing_mode && association_objects_in_editing_mode[:concept_relations].any? %>
|
2
2
|
<%= alert(:notice, :header => t('txt.common.referenced_concepts')) do %>
|
3
3
|
<ul>
|
4
4
|
<% association_objects_in_editing_mode[:concept_relations].each do |concept_relation| %>
|
@@ -8,6 +8,10 @@
|
|
8
8
|
:icon => 'list-alt',
|
9
9
|
:path => alphabetical_concepts_path(:prefix => 'a'),
|
10
10
|
:active => params[:controller] == 'concepts/alphabetical' %>
|
11
|
+
<%= sidebar_item :text => t("txt.views.navigation.expired"),
|
12
|
+
:icon => 'list-alt',
|
13
|
+
:path => expired_concepts_path(:prefix => 'a'),
|
14
|
+
:active => params[:controller] == 'concepts/expired' %>
|
11
15
|
<% if I18n.locale.to_s != Iqvoc::Concept.pref_labeling_languages.first %>
|
12
16
|
<%= sidebar_item :icon => 'list-alt',
|
13
17
|
:text => t("txt.views.untranslated_concepts.caption"),
|
@@ -10,32 +10,33 @@
|
|
10
10
|
<%- if Iqvoc::Concept.pref_labeling_languages.reject(&:nil?).any? -%>
|
11
11
|
<li><h3><%= t("txt.views.lang_widget.primary") %></h3></li>
|
12
12
|
<% Iqvoc::Concept.pref_labeling_languages.each do |lang| %>
|
13
|
+
<nobr>
|
13
14
|
<li>
|
14
|
-
|
15
|
+
<%= link_to t("languages.#{lang.presence || "-"}", :default => lang.presence || "-"), params.merge(:lang => lang || "none"),
|
15
16
|
:class => ("current" if lang == I18n.locale.to_s) %>
|
16
|
-
</li>
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
<% secondary_languages = Iqvoc.available_languages.reject { |lang| lang == I18n.locale.to_s } %>
|
21
|
-
<% if secondary_languages.any? %>
|
22
|
-
<li><h3><%= t("txt.views.lang_widget.secondary") %></h3></li>
|
23
|
-
<% secondary_languages.each do |lang| %>
|
24
|
-
<li>
|
25
|
-
<label>
|
26
|
-
<input type="checkbox" value="<%= lang %>"> <%= t("languages.#{lang}") %>
|
27
|
-
</label>
|
28
|
-
</li>
|
29
|
-
<% end %>
|
30
|
-
<% end %>
|
31
|
-
</ul>
|
32
|
-
</li>
|
17
|
+
</li></nobr>
|
18
|
+
<% end %>
|
19
|
+
<% end %>
|
33
20
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
<%
|
38
|
-
|
21
|
+
<% secondary_languages = Iqvoc.all_languages.reject { |lang| lang == I18n.locale.to_s } %>
|
22
|
+
<% if secondary_languages.any? %>
|
23
|
+
<li><h3><%= t("txt.views.lang_widget.secondary") %></h3></li>
|
24
|
+
<% secondary_languages.each do |lang| %>
|
25
|
+
<li>
|
26
|
+
<label>
|
27
|
+
<input type="checkbox" value="<%= lang %>"> <%= t("languages.#{lang.presence || "-"}", :default => lang.presence || "-") %>
|
28
|
+
</label>
|
29
|
+
</li>
|
39
30
|
<% end %>
|
40
|
-
|
31
|
+
<% end %>
|
32
|
+
</ul>
|
33
|
+
</li>
|
34
|
+
|
35
|
+
<li>
|
36
|
+
<% if current_user %>
|
37
|
+
<%= link_to t("txt.views.layouts.application.logout"), user_session_path, :method => :delete %>
|
38
|
+
<% else %>
|
39
|
+
<%= link_to t("txt.views.layouts.application.login"), new_user_session_path(:back_to => @return_url) %>
|
40
|
+
<% end %>
|
41
|
+
</li>
|
41
42
|
</ul>
|
@@ -7,7 +7,7 @@
|
|
7
7
|
<span class="icon-bar"></span>
|
8
8
|
<span class="icon-bar"></span>
|
9
9
|
</a>
|
10
|
-
<%= link_to Iqvoc.config["title"], root_path, :class => "brand"
|
10
|
+
<%= link_to Iqvoc.config["title"], root_path, :class => "brand" %>
|
11
11
|
|
12
12
|
<div class="nav-collapse">
|
13
13
|
<ul class="nav">
|
@@ -35,12 +35,6 @@
|
|
35
35
|
<% end %>
|
36
36
|
</div>
|
37
37
|
</div>
|
38
|
-
<script>
|
39
|
-
// load JSON polyfill only if necessary
|
40
|
-
if(typeof JSON === "undefined") {
|
41
|
-
document.write('<%= javascript_include_tag("json2").sub("</", "<\\/").html_safe %>');
|
42
|
-
}
|
43
|
-
</script>
|
44
38
|
<%= javascript_include_tag "manifest" %>
|
45
39
|
<%= yield :scripts %>
|
46
40
|
</body>
|
@@ -1,4 +1,5 @@
|
|
1
|
-
|
1
|
+
<% label = item.pref_label.to_s.presence || ":#{item.origin} [#{t("txt.common.translation_missing_for")} #{[I18n.locale.to_s, Iqvoc::Concept.pref_labeling_languages.first.to_s].uniq.join(", ")}]" %>
|
2
|
+
<%= link_to truncate(label, :length => 45), (item.published? ? concept_path(:id => item.origin) : concept_path(:published => 0, :id => item.origin)) %>
|
2
3
|
<%- if (item.additional_info) -%>
|
3
4
|
(<%= item.additional_info %>)
|
4
5
|
<%- end -%>
|
@@ -1,7 +1,6 @@
|
|
1
1
|
<%= content_tag :div, :class => "relation translation panel", :lang => (defined?(concept) ? lang || nil : nil) do %>
|
2
2
|
<% if defined?(concept) %>
|
3
|
-
|
4
|
-
<h2><%= klass.model_name.human(:count => 2) %> <small><%= lang_translation %></small></h2>
|
3
|
+
<h2><%= klass.model_name.human(:count => 2) %> <small><%= t("languages.#{lang || "-"}") %></small></h2>
|
5
4
|
<div class="relation-body">
|
6
5
|
<%= item_listing(concept.labels_for_labeling_class_and_language(klass, lang)) do |label|
|
7
6
|
label.value
|
@@ -5,7 +5,7 @@
|
|
5
5
|
<%= content_tag("li", :class => "inline_note translation #{" new" if note.new_record?}", :lang => note.language || nil) do %>
|
6
6
|
<%= f.simple_fields_for assoc_klass.name.to_relation_name, note do |note_form| %>
|
7
7
|
<%= note_form.input :value, :as => :text, :input_html => { :rows => 4, :class => 'span4' } %>
|
8
|
-
<%= note_form.input :language, :collection =>
|
8
|
+
<%= note_form.input :language, :collection => Iqvoc.note_languages.map { |l| [l, l]}, :label => t("txt.common.language"), :input_html => { :class => 'span1' } %>
|
9
9
|
|
10
10
|
<% unless note.new_record? %>
|
11
11
|
<%= note_form.input :"_destroy", :as => :boolean, :label => t("txt.common.delete") %>
|
@@ -15,7 +15,7 @@
|
|
15
15
|
<% end %>
|
16
16
|
<% end %>
|
17
17
|
<%= note_form.input :language,
|
18
|
-
:collection =>
|
18
|
+
:collection => Iqvoc.note_languages.map { |l| [l, l]},
|
19
19
|
:label => t("txt.common.language"),
|
20
20
|
:include_blank => false,
|
21
21
|
:input_html => { :class => 'span1' } %>
|
data/app/views/rdf/scheme.iqrdf
CHANGED
@@ -2,7 +2,7 @@ Iqvoc.default_rdf_namespace_helper_methods.each do |meth|
|
|
2
2
|
document.namespaces(self.send(meth))
|
3
3
|
end
|
4
4
|
|
5
|
-
document << Iqvoc::Concept.root_class.instance.build_rdf_subject
|
5
|
+
document << Iqvoc::Concept.root_class.instance.build_rdf_subject do |scheme|
|
6
6
|
@top_concepts.each do |top_concept|
|
7
7
|
scheme.Skos::hasTopConcept IqRdf.build_uri(top_concept.origin)
|
8
8
|
end
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
<% if @results %>
|
4
4
|
<%= content_for :head do %>
|
5
|
-
<link href="<%=
|
6
|
-
<link href="<%=
|
5
|
+
<link href="<%= rdf_search_path(request.query_parameters.merge(:format => :ttl, :lang => nil, :page => @results.current_page, :only_path => false)) %>" type="text/turtle" rel="alternate" title=""/>
|
6
|
+
<link href="<%= rdf_search_path(request.query_parameters.merge(:format => :rdf, :lang => nil, :page => @results.current_page, :only_path => false)) %>" type="application/rdf+xml" rel="alternate" title=""/>
|
7
7
|
<% end %>
|
8
8
|
<% end %>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<% if results %>
|
2
2
|
<%= sidebar do %>
|
3
3
|
<%= sidebar_header t('txt.common.representations') %>
|
4
|
-
<%= sidebar_item :icon => 'share', :text => 'RDF/XML', :path =>
|
5
|
-
<%= sidebar_item :icon => 'share', :text => 'RDF/Turtle', :path =>
|
4
|
+
<%= sidebar_item :icon => 'share', :text => 'RDF/XML', :path => rdf_search_path(request.query_parameters.merge(:format => :rdf, :lang => nil, :page => results.current_page, :only_path => false)), :id => 'rdf_link_xml' %>
|
5
|
+
<%= sidebar_item :icon => 'share', :text => 'RDF/Turtle', :path => rdf_search_path(request.query_parameters.merge(:format => :ttl, :lang => nil, :page => @results.current_page, :only_path => false)), :id => 'rdf_link_ttl' %>
|
6
6
|
<% end %>
|
7
7
|
<% end %>
|
@@ -13,8 +13,8 @@
|
|
13
13
|
|
14
14
|
<%= input_block :label => t('txt.views.search_results.mode'), :id => 'qt' do %>
|
15
15
|
<%= select_tag :qt, options_for_select([
|
16
|
-
[t('txt.views.search_results.exact'), 'exact'],
|
17
16
|
[t('txt.views.search_results.contains'), 'contains'],
|
17
|
+
[t('txt.views.search_results.exact'), 'exact'],
|
18
18
|
[t('txt.views.search_results.ends_with'), 'ends_with'],
|
19
19
|
[t('txt.views.search_results.begins_with'), 'begins_with']
|
20
20
|
], params[:qt]) %>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<%= page_header :title => t("txt.views.triplestore_sync.caption") %>
|
2
2
|
<%= render "dashboard/sidebar" %>
|
3
3
|
|
4
|
-
<%= form_tag triplestore_sync_path(:format => nil
|
4
|
+
<%= form_tag triplestore_sync_path(:format => nil), :method => :post do %>
|
5
5
|
<%= submit_tag t("txt.views.triplestore_sync.start"), :class => "btn btn-primary" %>
|
6
6
|
<% end %>
|
7
7
|
|
@@ -15,7 +15,7 @@
|
|
15
15
|
Iqvoc.default_rdf_namespace_helper_methods.each do |meth|
|
16
16
|
doc.namespaces(self.send(meth))
|
17
17
|
end
|
18
|
-
uri = record.build_rdf_subject
|
18
|
+
uri = record.build_rdf_subject.full_uri # XXX: we actually just want path, plus HTML format
|
19
19
|
%>
|
20
20
|
<li><%= link_to record.to_s, uri %></li>
|
21
21
|
<% end %>
|
data/config/locales/de.yml
CHANGED
@@ -18,7 +18,7 @@ de:
|
|
18
18
|
languages:
|
19
19
|
de: Deutsch
|
20
20
|
en: Englisch
|
21
|
-
none:
|
21
|
+
none: Unbekannt
|
22
22
|
fr: Französisch
|
23
23
|
sl: Slowenisch
|
24
24
|
pl: Polnisch
|
@@ -31,6 +31,10 @@ de:
|
|
31
31
|
it: Italienisch
|
32
32
|
cs: Tschechisch
|
33
33
|
sk: Slowakisch
|
34
|
+
et: Estnisch
|
35
|
+
dk: Dänisch
|
36
|
+
fi: Finnisch
|
37
|
+
sv: Schwedisch
|
34
38
|
views:
|
35
39
|
pagination:
|
36
40
|
first: "« Erste"
|
@@ -89,7 +93,7 @@ de:
|
|
89
93
|
caption: "Instanzkonfiguration"
|
90
94
|
settings:
|
91
95
|
title: Titel
|
92
|
-
|
96
|
+
note_languages: Sprachen für Notes
|
93
97
|
languages_pref_labeling: Sprachen für bevorzugte Labels
|
94
98
|
languages_further_labelings_Labeling::SKOS::AltLabel: Sprachen für alternative Labels
|
95
99
|
triplestore_url: Triplestore-URL
|
@@ -143,6 +147,7 @@ de:
|
|
143
147
|
instance_configuration: "Konfiguration"
|
144
148
|
hierarchical: "Hierarchisch"
|
145
149
|
alphabetical: "Alphabetisch"
|
150
|
+
expired: "Abgelaufene"
|
146
151
|
search: "Suche"
|
147
152
|
about: "Über"
|
148
153
|
users: "Benutzer"
|
@@ -361,3 +366,5 @@ de:
|
|
361
366
|
association_narrower_unpublished: "Spezifischere Begriffe müssen veröffentlicht sein."
|
362
367
|
association_related_unpublished: "Verwandte Begriffe müssen veröffentlicht sein."
|
363
368
|
no_pref_label: "-- kein PrefLabel --"
|
369
|
+
pref_label_not_unique: "Das PrefLabel %{label} ist bereits in Verwendung."
|
370
|
+
pref_labels_not_unique: "Die PrefLabels %{label} sind bereits in Verwendung."
|
data/config/locales/en.yml
CHANGED
@@ -18,7 +18,7 @@ en:
|
|
18
18
|
languages:
|
19
19
|
de: German
|
20
20
|
en: English
|
21
|
-
none:
|
21
|
+
none: Unbekannt
|
22
22
|
fr: French
|
23
23
|
sl: Slovenian
|
24
24
|
pl: Polish
|
@@ -31,6 +31,10 @@ en:
|
|
31
31
|
it: Italian
|
32
32
|
cs: Czech
|
33
33
|
sk: Slovak
|
34
|
+
et: Estonian
|
35
|
+
dk: Danish
|
36
|
+
fi: Finnish
|
37
|
+
sv: Swedish
|
34
38
|
views:
|
35
39
|
pagination:
|
36
40
|
first: "« First"
|
@@ -89,7 +93,7 @@ en:
|
|
89
93
|
caption: "Instance Configuration"
|
90
94
|
settings:
|
91
95
|
title: site title
|
92
|
-
|
96
|
+
note_languages: languages for notes
|
93
97
|
languages_pref_labeling: languages for preferred labels
|
94
98
|
languages_further_labelings_Labeling::SKOS::AltLabel: languages for alternative labels
|
95
99
|
triplestore_url: triplestore URL
|
@@ -151,6 +155,7 @@ en:
|
|
151
155
|
instance_configuration: "Configuration"
|
152
156
|
hierarchical: "Hierarchical"
|
153
157
|
alphabetical: "Alphabetical"
|
158
|
+
expired: "Expired"
|
154
159
|
search: "Search"
|
155
160
|
about: "About"
|
156
161
|
users: "Users"
|
@@ -333,8 +338,8 @@ en:
|
|
333
338
|
error: "Relation not found. Probably removed from the target side. Please refresh your browser window."
|
334
339
|
collections:
|
335
340
|
save:
|
336
|
-
success: "The collection has been successfully
|
337
|
-
error: "The collection could not be
|
341
|
+
success: "The collection has been successfully saved."
|
342
|
+
error: "The collection could not be saved."
|
338
343
|
destroy:
|
339
344
|
success: "The collection has been successfully deleted."
|
340
345
|
error: "The collection could not be deleted."
|
@@ -368,3 +373,5 @@ en:
|
|
368
373
|
association_narrower_unpublished: "Specific terms have to be published."
|
369
374
|
association_related_unpublished: "Related terms have to be published."
|
370
375
|
no_pref_label: "-- no PrefLabel --"
|
376
|
+
pref_label_not_unique: "The preferred label '%{label}' is already in use."
|
377
|
+
pref_labels_not_unique: "The preferred labels '%{label}' are already in use."
|
data/config/locales/pt.yml
CHANGED
@@ -18,7 +18,7 @@ pt:
|
|
18
18
|
languages:
|
19
19
|
de: Alemão
|
20
20
|
en: Inglês
|
21
|
-
none:
|
21
|
+
none: Desconhecido
|
22
22
|
fr: Francês
|
23
23
|
sl: Esloveno
|
24
24
|
pl: Polonês
|
@@ -31,6 +31,10 @@ pt:
|
|
31
31
|
it: Italiano
|
32
32
|
cs: Checo
|
33
33
|
sk: Eslovaco
|
34
|
+
et: Estoniano
|
35
|
+
dk: Dinamarquês
|
36
|
+
fi: Finlandês
|
37
|
+
sv: Sueco
|
34
38
|
views:
|
35
39
|
pagination:
|
36
40
|
first: "« Primeira"
|
@@ -89,7 +93,6 @@ pt:
|
|
89
93
|
caption: "Configuração da Instância"
|
90
94
|
settings:
|
91
95
|
title: "título do sítio"
|
92
|
-
available_languages: "idiomas disponíveis"
|
93
96
|
languages_pref_labeling: "idiomas para os rótulos preferenciais"
|
94
97
|
languages_further_labelings_Labeling::SKOS::AltLabel: "idiomas para os rótulos alternativos"
|
95
98
|
triplestore_url: "URL do repositório de triplas"
|
@@ -367,4 +370,6 @@ pt:
|
|
367
370
|
association_broader_unpublished: "Termos gerais precisam ser publicados."
|
368
371
|
association_narrower_unpublished: "Termo específicos precisam ser publicados."
|
369
372
|
association_related_unpublished: "Termos relacionados precisam ser publicados."
|
370
|
-
no_pref_label: "-- sem rótulo
|
373
|
+
no_pref_label: "-- sem rótulo preferencial --"
|
374
|
+
pref_label_not_unique: "O rótulo preferencial '%{label}' já está em uso."
|
375
|
+
pref_labels_not_unique: "Os rótulos preferenciais '%{label}' já estão em uso."
|
data/config/routes.rb
CHANGED
@@ -17,11 +17,13 @@
|
|
17
17
|
Rails.application.routes.draw do
|
18
18
|
match 'schema(.:format)' => 'pages#schema', :as => 'schema'
|
19
19
|
|
20
|
-
scope '
|
21
|
-
|
22
|
-
return lang.
|
20
|
+
scope ':lang', :constraints => lambda { |params, req|
|
21
|
+
langs = Iqvoc::Concept.pref_labeling_languages.join("|").presence || "en"
|
22
|
+
return params[:lang].to_s =~ /^#{langs}$/
|
23
23
|
} do
|
24
24
|
|
25
|
+
Iqvoc.localized_routes.each { |hook| hook.call(self) }
|
26
|
+
|
25
27
|
resource :user_session, :only => [:new, :create, :destroy]
|
26
28
|
resources :users, :except => [:show]
|
27
29
|
|
@@ -43,8 +45,7 @@ Rails.application.routes.draw do
|
|
43
45
|
match 'alphabetical_concepts(/:prefix)(.:format)' => 'concepts/alphabetical#index', :as => 'alphabetical_concepts'
|
44
46
|
match 'untranslated_concepts/:prefix(.:format)' => 'concepts/untranslated#index', :as => 'untranslated_concepts'
|
45
47
|
match 'hierarchical_concepts(.:format)' => 'concepts/hierarchical#index', :as => 'hierarchical_concepts'
|
46
|
-
|
47
|
-
match 'hierarchical_collections(.:format)' => 'collections/hierarchical#index', :as => 'hierarchical_collections'
|
48
|
+
match 'expired_concepts(.:format)' => 'concepts/expired#index', :as => 'expired_concepts'
|
48
49
|
|
49
50
|
match 'dashboard(.:format)' => 'dashboard#index', :as => 'dashboard'
|
50
51
|
|
@@ -61,6 +62,14 @@ Rails.application.routes.draw do
|
|
61
62
|
root :to => 'frontpage#index', :format => nil
|
62
63
|
end
|
63
64
|
|
65
|
+
match 'schema(.:format)' => 'pages#schema', :as => 'schema'
|
64
66
|
match '/scheme(.:format)' => 'rdf#scheme', :as => 'scheme'
|
65
|
-
|
67
|
+
|
68
|
+
get 'search(.:format)' => 'search_results#index', :as => 'rdf_search'
|
69
|
+
get '/:id(.:format)' => 'rdf#show', :as => 'rdf'
|
70
|
+
get '/collections/:id(.:format)', :as => "rdf_collection", :to => "collections#show"
|
71
|
+
get '/collections', :as => "rdf_collections", :to => "collections#index"
|
72
|
+
|
73
|
+
|
74
|
+
root :to => 'frontpage#index', :format => nil
|
66
75
|
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
class FixCollectionType < ActiveRecord::Migration
|
2
|
+
def up
|
3
|
+
execute "UPDATE concepts SET type='Collection::SKOS::Unordered' WHERE type='Collection::Unordered'"
|
4
|
+
execute "UPDATE collection_members SET type='Collection::Member::SKOS::Base' WHERE type='Collection::Member::Concept'"
|
5
|
+
end
|
6
|
+
|
7
|
+
def down
|
8
|
+
execute "UPDATE concepts SET type='Collection::Unordered' WHERE type='Collection::SKOS::Unordered'"
|
9
|
+
end
|
10
|
+
end
|
data/db/schema.rb
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
#
|
12
12
|
# It's strongly recommended to check this file into your version control system.
|
13
13
|
|
14
|
-
ActiveRecord::Schema.define(:version =>
|
14
|
+
ActiveRecord::Schema.define(:version => 20130227145825) do
|
15
15
|
|
16
16
|
create_table "collection_members", :force => true do |t|
|
17
17
|
t.integer "collection_id"
|
@@ -43,6 +43,26 @@ end
|
|
43
43
|
# Iqvoc.core_assets += []
|
44
44
|
EOF
|
45
45
|
|
46
|
+
remove_file "app/assets/javascripts/application.js"
|
47
|
+
create_file "app/assets/javascripts/manifest.js", <<-EOF
|
48
|
+
//= require framework
|
49
|
+
//= require iqvoc/manifest
|
50
|
+
|
51
|
+
//= require #{app_path}/manifest
|
52
|
+
EOF
|
53
|
+
create_file "app/assets/javascripts/#{app_path}/manifest.js"
|
54
|
+
|
55
|
+
remove_file "app/assets/stylesheets/application.css"
|
56
|
+
create_file "app/assets/stylesheets/manifest.css", <<-EOF
|
57
|
+
/*
|
58
|
+
*= require framework
|
59
|
+
*= require iqvoc/manifest
|
60
|
+
|
61
|
+
*= require #{app_path}/manifest
|
62
|
+
*/
|
63
|
+
EOF
|
64
|
+
create_file "app/assets/stylesheets/#{app_path}/manifest.css"
|
65
|
+
|
46
66
|
remove_file "public/index.html"
|
47
67
|
remove_file "app/controllers/application_controller.rb"
|
48
68
|
remove_file "app/helpers/application_helper.rb"
|
@@ -6,11 +6,11 @@ module Iqvoc
|
|
6
6
|
extend ActiveSupport::Concern
|
7
7
|
|
8
8
|
included do
|
9
|
-
mattr_accessor :base_class_name, :
|
9
|
+
mattr_accessor :base_class_name, :member_class_name
|
10
10
|
|
11
|
-
self.base_class_name = 'Collection::Unordered'
|
11
|
+
self.base_class_name = 'Collection::SKOS::Unordered'
|
12
12
|
|
13
|
-
self.
|
13
|
+
self.member_class_name = 'Collection::Member::SKOS::Base'
|
14
14
|
end
|
15
15
|
|
16
16
|
module ClassMethods
|
@@ -18,8 +18,8 @@ module Iqvoc
|
|
18
18
|
base_class_name.constantize
|
19
19
|
end
|
20
20
|
|
21
|
-
def
|
22
|
-
|
21
|
+
def member_class
|
22
|
+
member_class_name.constantize
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|