iqvoc_skosxl 2.5.0 → 2.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +1 -1
- data/Gemfile.lock +133 -107
- data/app/assets/stylesheets/iqvoc_skosxl/{entity_select.css.scss → _entity_select.scss} +0 -0
- data/app/assets/stylesheets/iqvoc_skosxl/{manifest.css.scss → _manifest.scss} +0 -0
- data/app/controllers/labels/versions_controller.rb +4 -1
- data/app/controllers/labels_controller.rb +3 -0
- data/app/models/concept/skosxl/extension.rb +3 -3
- data/app/models/label/skosxl/base.rb +3 -8
- data/app/models/label/skosxl/properties/literal_form.rb +1 -3
- data/app/models/label/skosxl/validations.rb +7 -11
- data/app/models/labeling/skosxl/base.rb +1 -1
- data/app/views/partials/labeling/skosxl/_base.html.erb +1 -1
- data/app/views/partials/labeling/skosxl/_edit_base.html.erb +1 -1
- data/config/initializers/iqvoc.rb +2 -2
- data/db/migrate/20150108154312_add_fk_contraints_iqvoc_skosxl.rb +7 -0
- data/db/schema.rb +164 -88
- data/iqvoc_skosxl.gemspec +1 -1
- data/lib/iqvoc/skosxl/version.rb +1 -1
- data/test/controllers/routing_test.rb +0 -1
- data/test/integration/concept_label_language_test.rb +1 -1
- data/test/integration/label_creation_test.rb +1 -1
- data/test/models/label_test.rb +15 -9
- data/test/models/skos_importer_test.rb +1 -2
- metadata +10 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2f14622bd5b6659d1a10c80eaaf7aa726c9949ff
|
4
|
+
data.tar.gz: 4322450f8ac9646e001bc4ae296daf1e03c561bc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0c3f60e5c7ab2eea9f0c2b8b78c1041ad5d8c8f6c5d4f01621ac5c89169c56e278efa3e33d6c4063d5c90141843930a13c1e376ed288f115626fe0ddae3441d3
|
7
|
+
data.tar.gz: f9f04483cfe7df69c2891d96cc557ade4a11dda2e4321bfec1057d9c3796b0028b5adc85ad5650d02b4fec48ab4f215c38c80fda796012830476a4c91ec76958
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
GIT
|
2
2
|
remote: git://github.com/innoq/iqvoc.git
|
3
|
-
revision:
|
3
|
+
revision: 2c318aa4315dd44af73797b8a05eb0c20b82ac5d
|
4
4
|
specs:
|
5
|
-
iqvoc (4.
|
5
|
+
iqvoc (4.8.2)
|
6
6
|
apipie-rails
|
7
7
|
authlogic (~> 3.4.2)
|
8
|
-
bootstrap-sass (~> 3.
|
9
|
-
bootstrap_form (~> 2.
|
8
|
+
bootstrap-sass (~> 3.3.1.0)
|
9
|
+
bootstrap_form (~> 2.2.0)
|
10
10
|
bundler
|
11
11
|
cancancan
|
12
12
|
carrierwave
|
@@ -14,7 +14,7 @@ GIT
|
|
14
14
|
delayed_job_active_record (~> 4.0.1)
|
15
15
|
faraday
|
16
16
|
faraday_middleware
|
17
|
-
font-awesome-rails
|
17
|
+
font-awesome-rails (~> 4.2.0)
|
18
18
|
iq_rdf (>= 0.1.15)
|
19
19
|
iq_triplestorage
|
20
20
|
json
|
@@ -23,34 +23,43 @@ GIT
|
|
23
23
|
linkeddata
|
24
24
|
maruku
|
25
25
|
nokogiri
|
26
|
-
rails (~> 4.
|
26
|
+
rails (~> 4.2.0)
|
27
27
|
rails_autolink
|
28
|
-
sass-rails (~>
|
28
|
+
sass-rails (~> 5.0.0)
|
29
29
|
uglifier (>= 1.3.0)
|
30
30
|
|
31
31
|
GEM
|
32
32
|
remote: https://rubygems.org/
|
33
33
|
specs:
|
34
|
-
actionmailer (4.
|
35
|
-
actionpack (= 4.
|
36
|
-
actionview (= 4.
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
34
|
+
actionmailer (4.2.0)
|
35
|
+
actionpack (= 4.2.0)
|
36
|
+
actionview (= 4.2.0)
|
37
|
+
activejob (= 4.2.0)
|
38
|
+
mail (~> 2.5, >= 2.5.4)
|
39
|
+
rails-dom-testing (~> 1.0, >= 1.0.5)
|
40
|
+
actionpack (4.2.0)
|
41
|
+
actionview (= 4.2.0)
|
42
|
+
activesupport (= 4.2.0)
|
43
|
+
rack (~> 1.6.0)
|
42
44
|
rack-test (~> 0.6.2)
|
43
|
-
|
44
|
-
|
45
|
+
rails-dom-testing (~> 1.0, >= 1.0.5)
|
46
|
+
rails-html-sanitizer (~> 1.0, >= 1.0.1)
|
47
|
+
actionview (4.2.0)
|
48
|
+
activesupport (= 4.2.0)
|
45
49
|
builder (~> 3.1)
|
46
50
|
erubis (~> 2.7.0)
|
47
|
-
|
48
|
-
|
51
|
+
rails-dom-testing (~> 1.0, >= 1.0.5)
|
52
|
+
rails-html-sanitizer (~> 1.0, >= 1.0.1)
|
53
|
+
activejob (4.2.0)
|
54
|
+
activesupport (= 4.2.0)
|
55
|
+
globalid (>= 0.3.0)
|
56
|
+
activemodel (4.2.0)
|
57
|
+
activesupport (= 4.2.0)
|
49
58
|
builder (~> 3.1)
|
50
|
-
activerecord (4.
|
51
|
-
activemodel (= 4.
|
52
|
-
activesupport (= 4.
|
53
|
-
arel (~>
|
59
|
+
activerecord (4.2.0)
|
60
|
+
activemodel (= 4.2.0)
|
61
|
+
activesupport (= 4.2.0)
|
62
|
+
arel (~> 6.0)
|
54
63
|
activerecord-jdbc-adapter (1.3.7)
|
55
64
|
activerecord (>= 2.2)
|
56
65
|
activerecord-jdbcmysql-adapter (1.3.7)
|
@@ -59,26 +68,26 @@ GEM
|
|
59
68
|
activerecord-jdbcsqlite3-adapter (1.3.7)
|
60
69
|
activerecord-jdbc-adapter (~> 1.3.7)
|
61
70
|
jdbc-sqlite3 (~> 3.7.2)
|
62
|
-
activesupport (4.
|
63
|
-
i18n (~> 0.
|
71
|
+
activesupport (4.2.0)
|
72
|
+
i18n (~> 0.7)
|
64
73
|
json (~> 1.7, >= 1.7.7)
|
65
74
|
minitest (~> 5.1)
|
66
|
-
thread_safe (~> 0.
|
75
|
+
thread_safe (~> 0.3, >= 0.3.4)
|
67
76
|
tzinfo (~> 1.1)
|
68
|
-
apipie-rails (0.
|
77
|
+
apipie-rails (0.3.1)
|
69
78
|
json
|
70
|
-
arel (
|
71
|
-
authlogic (3.4.
|
79
|
+
arel (6.0.0)
|
80
|
+
authlogic (3.4.4)
|
72
81
|
activerecord (>= 3.2)
|
73
82
|
activesupport (>= 3.2)
|
74
83
|
request_store (~> 1.0)
|
75
84
|
scrypt (~> 1.2)
|
76
85
|
awesome_print (1.2.0)
|
77
|
-
bootstrap-sass (3.
|
86
|
+
bootstrap-sass (3.3.1.0)
|
78
87
|
sass (~> 3.2)
|
79
|
-
bootstrap_form (2.
|
88
|
+
bootstrap_form (2.2.0)
|
80
89
|
builder (3.2.2)
|
81
|
-
cancancan (1.
|
90
|
+
cancancan (1.10.1)
|
82
91
|
capybara (2.3.0)
|
83
92
|
mime-types (>= 1.16)
|
84
93
|
nokogiri (>= 1.3.3)
|
@@ -92,11 +101,11 @@ GEM
|
|
92
101
|
mime-types (>= 1.16)
|
93
102
|
cliver (0.3.2)
|
94
103
|
coderay (1.1.0)
|
95
|
-
database_cleaner (1.
|
96
|
-
delayed_job (4.0.
|
97
|
-
activesupport (>= 3.0, <
|
98
|
-
delayed_job_active_record (4.0.
|
99
|
-
activerecord (>= 3.0, <
|
104
|
+
database_cleaner (1.4.0)
|
105
|
+
delayed_job (4.0.6)
|
106
|
+
activesupport (>= 3.0, < 5.0)
|
107
|
+
delayed_job_active_record (4.0.3)
|
108
|
+
activerecord (>= 3.0, < 5.0)
|
100
109
|
delayed_job (>= 3.0, < 4.1)
|
101
110
|
ebnf (0.3.6)
|
102
111
|
haml (~> 4.0)
|
@@ -106,22 +115,24 @@ GEM
|
|
106
115
|
nokogiri (>= 1.4.3)
|
107
116
|
erubis (2.7.0)
|
108
117
|
execjs (2.2.2)
|
109
|
-
faraday (0.9.
|
118
|
+
faraday (0.9.1)
|
110
119
|
multipart-post (>= 1.2, < 3)
|
111
120
|
faraday_middleware (0.9.1)
|
112
121
|
faraday (>= 0.7.4, < 0.10)
|
113
|
-
ffi (1.9.
|
114
|
-
ffi (1.9.
|
122
|
+
ffi (1.9.6)
|
123
|
+
ffi (1.9.6-java)
|
115
124
|
ffi-compiler (0.1.3)
|
116
125
|
ffi (>= 1.0.0)
|
117
126
|
rake
|
118
127
|
font-awesome-rails (4.2.0.0)
|
119
128
|
railties (>= 3.2, < 5.0)
|
120
|
-
|
129
|
+
globalid (0.3.0)
|
130
|
+
activesupport (>= 4.1.0)
|
131
|
+
haml (4.0.6)
|
121
132
|
tilt
|
122
133
|
hike (1.2.3)
|
123
|
-
htmlentities (4.3.
|
124
|
-
i18n (0.
|
134
|
+
htmlentities (4.3.3)
|
135
|
+
i18n (0.7.0)
|
125
136
|
iq_rdf (0.1.15)
|
126
137
|
activesupport
|
127
138
|
builder
|
@@ -129,54 +140,56 @@ GEM
|
|
129
140
|
iq_triplestorage (0.2.2)
|
130
141
|
jdbc-mysql (5.1.30)
|
131
142
|
jdbc-sqlite3 (3.7.2.1)
|
132
|
-
json (1.8.
|
133
|
-
json (1.8.
|
143
|
+
json (1.8.2)
|
144
|
+
json (1.8.2-java)
|
134
145
|
json-ld (1.1.7)
|
135
146
|
rdf (~> 1.1, >= 1.1.4)
|
136
|
-
kaminari (0.16.
|
147
|
+
kaminari (0.16.2)
|
137
148
|
actionpack (>= 3.0.0)
|
138
149
|
activesupport (>= 3.0.0)
|
139
150
|
kaminari-bootstrap (3.0.1)
|
140
151
|
kaminari (>= 0.13.0)
|
141
152
|
rails
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
rdf
|
148
|
-
rdf-
|
149
|
-
rdf-
|
150
|
-
rdf-
|
151
|
-
rdf-
|
152
|
-
rdf-
|
153
|
-
rdf-
|
154
|
-
rdf-
|
155
|
-
rdf-
|
156
|
-
rdf-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
153
|
+
link_header (0.0.8)
|
154
|
+
linkeddata (1.1.2)
|
155
|
+
equivalent-xml (~> 0.4)
|
156
|
+
json-ld (~> 1.1, >= 1.1.7)
|
157
|
+
nokogiri (~> 1.6)
|
158
|
+
rdf (~> 1.1, >= 1.1.7)
|
159
|
+
rdf-aggregate-repo (~> 1.1)
|
160
|
+
rdf-isomorphic (~> 1.1)
|
161
|
+
rdf-json (~> 1.1)
|
162
|
+
rdf-microdata (~> 2.0)
|
163
|
+
rdf-n3 (~> 1.1)
|
164
|
+
rdf-rdfa (~> 1.1, >= 1.1.5)
|
165
|
+
rdf-rdfxml (~> 1.1, >= 1.1.3)
|
166
|
+
rdf-reasoner (~> 0.2, >= 0.2.1)
|
167
|
+
rdf-trig (~> 1.1, >= 1.1.3)
|
168
|
+
rdf-trix (~> 1.1)
|
169
|
+
rdf-turtle (~> 1.1, >= 1.1.5)
|
170
|
+
sparql (~> 1.1, >= 1.1.4)
|
171
|
+
sparql-client (~> 1.1, >= 1.1.3)
|
172
|
+
loofah (2.0.1)
|
173
|
+
nokogiri (>= 1.5.9)
|
174
|
+
mail (2.6.3)
|
175
|
+
mime-types (>= 1.16, < 3)
|
162
176
|
maruku (0.7.2)
|
163
177
|
method_source (0.8.2)
|
164
|
-
mime-types (
|
165
|
-
mini_portile (0.6.
|
166
|
-
minitest (5.
|
178
|
+
mime-types (2.4.3)
|
179
|
+
mini_portile (0.6.2)
|
180
|
+
minitest (5.5.1)
|
167
181
|
multi_json (1.10.1)
|
168
182
|
multipart-post (2.0.0)
|
169
183
|
mysql2 (0.3.16)
|
170
184
|
net-http-persistent (2.9.4)
|
171
|
-
nokogiri (1.6.2
|
172
|
-
mini_portile (
|
173
|
-
nokogiri (1.6.2
|
185
|
+
nokogiri (1.6.6.2)
|
186
|
+
mini_portile (~> 0.6.0)
|
187
|
+
nokogiri (1.6.6.2-java)
|
174
188
|
poltergeist (1.5.1)
|
175
189
|
capybara (~> 2.1)
|
176
190
|
cliver (~> 0.3.1)
|
177
191
|
multi_json (~> 1.0)
|
178
192
|
websocket-driver (>= 0.2.0)
|
179
|
-
polyglot (0.3.5)
|
180
193
|
pry (0.9.12.6)
|
181
194
|
coderay (~> 1.0)
|
182
195
|
method_source (~> 0.8)
|
@@ -188,69 +201,85 @@ GEM
|
|
188
201
|
spoon (~> 0.0)
|
189
202
|
pry-rails (0.3.2)
|
190
203
|
pry (>= 0.9.10)
|
191
|
-
rack (1.
|
192
|
-
rack-test (0.6.
|
204
|
+
rack (1.6.0)
|
205
|
+
rack-test (0.6.3)
|
193
206
|
rack (>= 1.0)
|
194
|
-
rails (4.
|
195
|
-
actionmailer (= 4.
|
196
|
-
actionpack (= 4.
|
197
|
-
actionview (= 4.
|
198
|
-
|
199
|
-
|
200
|
-
|
207
|
+
rails (4.2.0)
|
208
|
+
actionmailer (= 4.2.0)
|
209
|
+
actionpack (= 4.2.0)
|
210
|
+
actionview (= 4.2.0)
|
211
|
+
activejob (= 4.2.0)
|
212
|
+
activemodel (= 4.2.0)
|
213
|
+
activerecord (= 4.2.0)
|
214
|
+
activesupport (= 4.2.0)
|
201
215
|
bundler (>= 1.3.0, < 2.0)
|
202
|
-
railties (= 4.
|
203
|
-
sprockets-rails
|
216
|
+
railties (= 4.2.0)
|
217
|
+
sprockets-rails
|
218
|
+
rails-deprecated_sanitizer (1.0.3)
|
219
|
+
activesupport (>= 4.2.0.alpha)
|
220
|
+
rails-dom-testing (1.0.5)
|
221
|
+
activesupport (>= 4.2.0.beta, < 5.0)
|
222
|
+
nokogiri (~> 1.6.0)
|
223
|
+
rails-deprecated_sanitizer (>= 1.0.1)
|
224
|
+
rails-html-sanitizer (1.0.1)
|
225
|
+
loofah (~> 2.0)
|
204
226
|
rails_autolink (1.1.6)
|
205
227
|
rails (> 3.1)
|
206
|
-
railties (4.
|
207
|
-
actionpack (= 4.
|
208
|
-
activesupport (= 4.
|
228
|
+
railties (4.2.0)
|
229
|
+
actionpack (= 4.2.0)
|
230
|
+
activesupport (= 4.2.0)
|
209
231
|
rake (>= 0.8.7)
|
210
232
|
thor (>= 0.18.1, < 2.0)
|
211
|
-
rake (10.
|
212
|
-
rdf (1.1.
|
233
|
+
rake (10.4.2)
|
234
|
+
rdf (1.1.7)
|
235
|
+
link_header (~> 0.0, >= 0.0.8)
|
213
236
|
rdf-aggregate-repo (1.1.0)
|
214
237
|
rdf (>= 1.1)
|
215
238
|
rdf-isomorphic (1.1.0)
|
216
239
|
rdf (>= 1.1)
|
217
|
-
rdf-json (1.1.
|
218
|
-
rdf (
|
219
|
-
rdf-microdata (
|
240
|
+
rdf-json (1.1.1)
|
241
|
+
rdf (~> 1.1)
|
242
|
+
rdf-microdata (2.0)
|
220
243
|
htmlentities (~> 4.3)
|
221
244
|
nokogiri (~> 1.6)
|
222
245
|
rdf (~> 1.1)
|
223
246
|
rdf-xsd (~> 1.1)
|
224
247
|
rdf-n3 (1.1.2)
|
225
248
|
rdf (~> 1.1, >= 1.1.5)
|
226
|
-
rdf-rdfa (1.1.
|
249
|
+
rdf-rdfa (1.1.5)
|
227
250
|
haml (~> 4.0)
|
228
251
|
htmlentities (~> 4.3)
|
229
252
|
rdf (~> 1.1, >= 1.1.6)
|
253
|
+
rdf-aggregate-repo
|
230
254
|
rdf-xsd (~> 1.1)
|
231
255
|
rdf-rdfxml (1.1.3)
|
232
256
|
htmlentities (~> 4.3)
|
233
257
|
rdf (~> 1.1, >= 1.1.6)
|
234
258
|
rdf-rdfa (~> 1.1, >= 1.1.4.1)
|
235
259
|
rdf-xsd (~> 1.1)
|
260
|
+
rdf-reasoner (0.2.1)
|
261
|
+
rdf (~> 1.1, >= 1.1.4.2)
|
262
|
+
rdf-turtle (~> 1.1)
|
263
|
+
rdf-xsd (~> 1.1)
|
236
264
|
rdf-trig (1.1.3.1)
|
237
265
|
ebnf (~> 0.3, >= 0.3.5)
|
238
266
|
rdf (~> 1.1, >= 1.1.2.1)
|
239
267
|
rdf-turtle (~> 1.1, >= 1.1.3)
|
240
268
|
rdf-trix (1.1.0)
|
241
269
|
rdf (>= 1.1)
|
242
|
-
rdf-turtle (1.1.
|
270
|
+
rdf-turtle (1.1.5)
|
243
271
|
ebnf (~> 0.3, >= 0.3.6)
|
244
272
|
rdf (~> 1.1, >= 1.1.4)
|
245
273
|
rdf-xsd (1.1.2)
|
246
274
|
rdf (~> 1.1)
|
247
275
|
request_store (1.1.0)
|
248
|
-
sass (3.
|
249
|
-
sass-rails (
|
276
|
+
sass (3.4.10)
|
277
|
+
sass-rails (5.0.1)
|
250
278
|
railties (>= 4.0.0, < 5.0)
|
251
|
-
sass (~> 3.
|
252
|
-
sprockets (
|
253
|
-
sprockets-rails (
|
279
|
+
sass (~> 3.1)
|
280
|
+
sprockets (>= 2.8, < 4.0)
|
281
|
+
sprockets-rails (>= 2.0, < 4.0)
|
282
|
+
tilt (~> 1.1)
|
254
283
|
scrypt (1.2.1)
|
255
284
|
ffi-compiler (>= 0.0.2)
|
256
285
|
rake
|
@@ -269,12 +298,12 @@ GEM
|
|
269
298
|
spoon (0.0.4)
|
270
299
|
ffi
|
271
300
|
spring (1.1.3)
|
272
|
-
sprockets (2.
|
301
|
+
sprockets (2.12.3)
|
273
302
|
hike (~> 1.2)
|
274
303
|
multi_json (~> 1.0)
|
275
304
|
rack (~> 1.0)
|
276
305
|
tilt (~> 1.1, != 1.3.0)
|
277
|
-
sprockets-rails (2.2.
|
306
|
+
sprockets-rails (2.2.4)
|
278
307
|
actionpack (>= 3.0)
|
279
308
|
activesupport (>= 3.0)
|
280
309
|
sprockets (>= 2.8, < 4.0)
|
@@ -284,12 +313,9 @@ GEM
|
|
284
313
|
thread_safe (0.3.4)
|
285
314
|
thread_safe (0.3.4-java)
|
286
315
|
tilt (1.4.1)
|
287
|
-
|
288
|
-
polyglot
|
289
|
-
polyglot (>= 0.3.1)
|
290
|
-
tzinfo (1.2.1)
|
316
|
+
tzinfo (1.2.2)
|
291
317
|
thread_safe (~> 0.1)
|
292
|
-
uglifier (2.
|
318
|
+
uglifier (2.7.0)
|
293
319
|
execjs (>= 0.3.0)
|
294
320
|
json (>= 1.8.0)
|
295
321
|
websocket-driver (0.3.3)
|
@@ -306,7 +332,7 @@ DEPENDENCIES
|
|
306
332
|
activerecord-jdbcsqlite3-adapter
|
307
333
|
awesome_print
|
308
334
|
capybara
|
309
|
-
iqvoc (~> 4.
|
335
|
+
iqvoc (~> 4.8.0)!
|
310
336
|
mysql2
|
311
337
|
poltergeist (~> 1.5.0)
|
312
338
|
pry-rails
|
File without changes
|
File without changes
|
@@ -96,8 +96,11 @@ class Labels::VersionsController < ApplicationController
|
|
96
96
|
label = Iqvoc::XLLabel.base_class.by_origin(params[:origin]).unpublished.last!
|
97
97
|
|
98
98
|
authorize! :send_to_review, label
|
99
|
-
|
100
99
|
label.to_review
|
100
|
+
|
101
|
+
authorize! :unlock, label
|
102
|
+
label.unlock
|
103
|
+
|
101
104
|
label.save!
|
102
105
|
flash[:success] = t('txt.controllers.versioning.to_review_success')
|
103
106
|
redirect_to label_path(published: 0, id: label)
|
@@ -57,7 +57,10 @@ class LabelsController < ApplicationController
|
|
57
57
|
|
58
58
|
def create
|
59
59
|
authorize! :create, Iqvoc::XLLabel.base_class
|
60
|
+
|
60
61
|
@label = Iqvoc::XLLabel.base_class.new(label_params)
|
62
|
+
@label.lock_by_user(current_user.id)
|
63
|
+
|
61
64
|
if @label.valid?
|
62
65
|
if @label.save
|
63
66
|
flash[:success] = I18n.t('txt.controllers.versioned_label.success')
|
@@ -19,7 +19,7 @@ module Concept
|
|
19
19
|
# (Re)create labelings reflecting a widget's parameters
|
20
20
|
origin_mappings.each do |language, new_origins|
|
21
21
|
new_origins = new_origins.
|
22
|
-
split(
|
22
|
+
split(InlineDataHelper::SPLITTER).map(&:squish)
|
23
23
|
|
24
24
|
# Iterate over all labels to be added and create them
|
25
25
|
Iqvoc::XLLabel.base_class.by_origin(new_origins).each do |l|
|
@@ -37,13 +37,13 @@ module Concept
|
|
37
37
|
def labelings_by_id(relation_name, language)
|
38
38
|
(@labelings_by_id && @labelings_by_id[relation_name] && @labelings_by_id[relation_name][language]) ||
|
39
39
|
self.send(relation_name).by_label_language(language).
|
40
|
-
map { |l| l.target.origin }.join(
|
40
|
+
map { |l| l.target.origin }.join(InlineDataHelper::JOINER)
|
41
41
|
end
|
42
42
|
|
43
43
|
def valid_label_language
|
44
44
|
(@labelings_by_id || {}).each { |labeling_class_name, origin_mappings|
|
45
45
|
origin_mappings.each { |language, new_origins|
|
46
|
-
new_origins = new_origins.split(
|
46
|
+
new_origins = new_origins.split(InlineDataHelper::SPLITTER)
|
47
47
|
Iqvoc::XLLabel.base_class.by_origin(new_origins).each do |label|
|
48
48
|
if label.language != language.to_s
|
49
49
|
errors.add(:base,
|
@@ -11,9 +11,9 @@ class Label::SKOSXL::Base < Label::Base
|
|
11
11
|
|
12
12
|
# ********** Hooks
|
13
13
|
|
14
|
-
|
14
|
+
after_initialize do |label|
|
15
15
|
if label.origin.blank?
|
16
|
-
label.origin =
|
16
|
+
label.origin = Origin.new.to_s
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
@@ -69,7 +69,7 @@ class Label::SKOSXL::Base < Label::Base
|
|
69
69
|
define_method("inline_#{relation_class_name.to_relation_name}=".to_sym) do |value|
|
70
70
|
# write to instance variable and write it on after_save
|
71
71
|
(@inline_assigned_relations ||= {})[relation_class_name] = value.
|
72
|
-
split(/\r\n|, */).map(&:strip).reject(&:blank?).uniq
|
72
|
+
split(/\r\n|, */).map(&:strip).reject(&:blank?).uniq
|
73
73
|
end
|
74
74
|
end
|
75
75
|
|
@@ -132,11 +132,6 @@ class Label::SKOSXL::Base < Label::Base
|
|
132
132
|
relations.select{ |rel| rel.class.name == relation_class }
|
133
133
|
end
|
134
134
|
|
135
|
-
def origin=(val)
|
136
|
-
# escape origin in any case
|
137
|
-
write_attribute :origin, Iqvoc::Origin.new(val).to_s
|
138
|
-
end
|
139
|
-
|
140
135
|
def build_rdf_subject(&block)
|
141
136
|
ns = IqRdf::Namespace.find_namespace_class(self.rdf_namespace.to_sym)
|
142
137
|
raise "Namespace '#{rdf_namespace}' is not defined in IqRdf document." unless ns
|
@@ -1,12 +1,10 @@
|
|
1
|
-
require 'iqvoc/rdfapi'
|
2
|
-
|
3
1
|
class Label::SKOSXL::Properties::LiteralForm
|
4
2
|
class_attribute :rdf_namespace, :rdf_predicate
|
5
3
|
self.rdf_namespace = 'skosxl'
|
6
4
|
self.rdf_predicate = 'literalForm'
|
7
5
|
|
8
6
|
def self.build_from_rdf(rdf_subject, rdf_predicate, rdf_object)
|
9
|
-
unless rdf_object =~
|
7
|
+
unless rdf_object =~ RDFAPI::LITERAL_REGEXP
|
10
8
|
raise InvalidStringLiteralError,
|
11
9
|
"#{self.name}#build_from_rdf: Object (#{rdf_object}) must be a string literal"
|
12
10
|
end
|
@@ -5,24 +5,20 @@ module Label
|
|
5
5
|
|
6
6
|
included do
|
7
7
|
validates :origin, presence: true
|
8
|
-
|
8
|
+
validates :origin, uniqueness: { scope: :rev }
|
9
9
|
validate :origin_has_to_be_escaped
|
10
|
-
|
10
|
+
|
11
|
+
validates :value, uniqueness: { scope: [:language, :rev] },
|
12
|
+
if: :validatable_for_publishing?
|
13
|
+
validates :value, presence: true, if: :validatable_for_publishing?
|
11
14
|
end
|
12
15
|
|
13
16
|
def origin_has_to_be_escaped
|
14
|
-
|
15
|
-
errors.add :
|
17
|
+
unless Origin.new(origin).valid?
|
18
|
+
errors.add :base, I18n.t('txt.models.label.origin_invalid')
|
16
19
|
end
|
17
20
|
end
|
18
21
|
|
19
|
-
def value_must_be_given
|
20
|
-
if validatable_for_publishing?
|
21
|
-
if value.blank?
|
22
|
-
errors.add :origin, I18n.t('txt.models.label.value_error')
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
22
|
end
|
27
23
|
end
|
28
24
|
end
|
@@ -75,7 +75,7 @@ class Labeling::SKOSXL::Base < Labeling::Base
|
|
75
75
|
raise "#{self.name}#build_from_rdf: Subject (#{rdf_subject}) must be a Concept."
|
76
76
|
end
|
77
77
|
|
78
|
-
predicate_class =
|
78
|
+
predicate_class = RDFAPI::PREDICATE_DICTIONARY[rdf_predicate] || self
|
79
79
|
predicate_class.create do |klass|
|
80
80
|
klass.owner = rdf_subject
|
81
81
|
klass.target = rdf_object
|
@@ -9,7 +9,7 @@
|
|
9
9
|
</div>
|
10
10
|
<% elsif defined?(label) %>
|
11
11
|
<h2><%= klass.model_name.human %> <%= t("txt.common.of") %></h2>
|
12
|
-
<div class="relation">
|
12
|
+
<div class="relation-body">
|
13
13
|
<%= item_listing(label.concepts_for_labeling_class(klass)) do |c|
|
14
14
|
link_to c.to_s, concept_path(:id => c)
|
15
15
|
end
|
@@ -13,7 +13,7 @@
|
|
13
13
|
:"data-entities" => Iqvoc::XLLabel.base_class.editor_selectable.
|
14
14
|
by_language(language).by_origin(concept.labelings_by_id(
|
15
15
|
klass.name.to_relation_name, language).
|
16
|
-
split(
|
16
|
+
split(InlineDataHelper::SPLITTER)).
|
17
17
|
map { |l| label_widget_data(l) }.to_json %>
|
18
18
|
<% end %>
|
19
19
|
<% end %>
|
@@ -44,8 +44,8 @@ ActiveSupport.on_load :rdf_export_before_save do
|
|
44
44
|
end
|
45
45
|
|
46
46
|
ActiveSupport.on_load :skos_importer do
|
47
|
-
|
48
|
-
|
47
|
+
SkosImporter.prepend_first_level_object_classes(Iqvoc::XLLabel.base_class)
|
48
|
+
SkosImporter.second_level_object_classes +=
|
49
49
|
[Label::SKOSXL::Properties::LiteralForm] +
|
50
50
|
Iqvoc::XLLabel.note_classes +
|
51
51
|
Iqvoc::XLLabel.relation_classes +
|
@@ -0,0 +1,7 @@
|
|
1
|
+
class AddFkContraintsIqvocSkosxl < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
add_foreign_key :labels, :labels, column: 'published_version_id', on_update: :cascade, on_delete: :cascade
|
4
|
+
add_foreign_key :label_relations, :labels, column: 'domain_id', on_update: :cascade, on_delete: :cascade
|
5
|
+
add_foreign_key :label_relations, :labels, column: 'range_id', on_update: :cascade, on_delete: :cascade
|
6
|
+
end
|
7
|
+
end
|
data/db/schema.rb
CHANGED
@@ -9,154 +9,230 @@
|
|
9
9
|
# from scratch. The latter is a flawed and unsustainable approach (the more migrations
|
10
10
|
# you'll amass, the slower it'll run and the greater likelihood for issues).
|
11
11
|
#
|
12
|
-
# It's strongly recommended
|
12
|
+
# It's strongly recommended that you check this file into your version control system.
|
13
13
|
|
14
|
-
ActiveRecord::Schema.define(:
|
14
|
+
ActiveRecord::Schema.define(version: 20150108154312) do
|
15
15
|
|
16
|
-
create_table "collection_members", :
|
17
|
-
t.integer "collection_id"
|
18
|
-
t.integer "target_id"
|
19
|
-
t.string "type"
|
16
|
+
create_table "collection_members", force: :cascade do |t|
|
17
|
+
t.integer "collection_id", limit: 4
|
18
|
+
t.integer "target_id", limit: 4
|
19
|
+
t.string "type", limit: 255
|
20
20
|
end
|
21
21
|
|
22
|
-
add_index "collection_members", ["collection_id", "target_id", "type"], :
|
22
|
+
add_index "collection_members", ["collection_id", "target_id", "type"], name: "ix_collections_fk_type", using: :btree
|
23
|
+
add_index "collection_members", ["target_id"], name: "fk_rails_5a05e228ee", using: :btree
|
23
24
|
|
24
|
-
create_table "concept_relations", :
|
25
|
-
t.string "type"
|
26
|
-
t.integer "owner_id"
|
27
|
-
t.integer "target_id"
|
25
|
+
create_table "concept_relations", force: :cascade do |t|
|
26
|
+
t.string "type", limit: 255
|
27
|
+
t.integer "owner_id", limit: 4
|
28
|
+
t.integer "target_id", limit: 4
|
28
29
|
t.datetime "created_at"
|
29
30
|
t.datetime "updated_at"
|
30
|
-
t.integer "rank", :default
|
31
|
+
t.integer "rank", limit: 4, default: 100
|
31
32
|
end
|
32
33
|
|
33
|
-
add_index "concept_relations", ["owner_id", "target_id"], :
|
34
|
+
add_index "concept_relations", ["owner_id", "target_id"], name: "ix_concept_relations_fk", using: :btree
|
35
|
+
add_index "concept_relations", ["target_id"], name: "fk_rails_1b7d5559ab", using: :btree
|
34
36
|
|
35
|
-
create_table "concepts", :
|
36
|
-
t.string "type"
|
37
|
-
t.string "origin", :
|
38
|
-
t.integer "rev",
|
37
|
+
create_table "concepts", force: :cascade do |t|
|
38
|
+
t.string "type", limit: 255
|
39
|
+
t.string "origin", limit: 4000
|
40
|
+
t.integer "rev", limit: 4, default: 1
|
39
41
|
t.date "published_at"
|
40
|
-
t.integer "published_version_id"
|
41
|
-
t.integer "locked_by"
|
42
|
+
t.integer "published_version_id", limit: 4
|
43
|
+
t.integer "locked_by", limit: 4
|
42
44
|
t.date "expired_at"
|
43
45
|
t.date "follow_up"
|
44
|
-
t.boolean "to_review"
|
46
|
+
t.boolean "to_review", limit: 1
|
45
47
|
t.date "rdf_updated_at"
|
46
48
|
t.datetime "created_at"
|
47
49
|
t.datetime "updated_at"
|
48
|
-
t.boolean "top_term",
|
50
|
+
t.boolean "top_term", limit: 1, default: false
|
49
51
|
end
|
50
52
|
|
51
|
-
add_index "concepts", ["
|
52
|
-
add_index "concepts", ["
|
53
|
+
add_index "concepts", ["locked_by"], name: "fk_rails_ca7e673cc3", using: :btree
|
54
|
+
add_index "concepts", ["origin"], name: "ix_concepts_on_origin", length: {"origin"=>255}, using: :btree
|
55
|
+
add_index "concepts", ["published_version_id"], name: "ix_concepts_publ_version_id", using: :btree
|
53
56
|
|
54
|
-
create_table "configuration_settings", :
|
55
|
-
t.string "key"
|
56
|
-
t.string "value"
|
57
|
+
create_table "configuration_settings", force: :cascade do |t|
|
58
|
+
t.string "key", limit: 255
|
59
|
+
t.string "value", limit: 255
|
57
60
|
end
|
58
61
|
|
59
|
-
create_table "
|
60
|
-
t.
|
61
|
-
t.integer "
|
62
|
-
t.
|
62
|
+
create_table "delayed_jobs", force: :cascade do |t|
|
63
|
+
t.integer "priority", limit: 4, default: 0, null: false
|
64
|
+
t.integer "attempts", limit: 4, default: 0, null: false
|
65
|
+
t.text "handler", limit: 65535, null: false
|
66
|
+
t.text "last_error", limit: 65535
|
67
|
+
t.datetime "run_at"
|
68
|
+
t.datetime "locked_at"
|
69
|
+
t.datetime "failed_at"
|
70
|
+
t.string "locked_by", limit: 255
|
71
|
+
t.string "queue", limit: 255
|
63
72
|
t.datetime "created_at"
|
64
73
|
t.datetime "updated_at"
|
65
74
|
end
|
66
75
|
|
67
|
-
add_index "
|
68
|
-
add_index "label_relations", ["type"], :name => "ix_label_relations_on_type"
|
76
|
+
add_index "delayed_jobs", ["priority", "run_at"], name: "delayed_jobs_priority", using: :btree
|
69
77
|
|
70
|
-
create_table "
|
71
|
-
t.
|
72
|
-
t.
|
73
|
-
t.
|
78
|
+
create_table "exports", force: :cascade do |t|
|
79
|
+
t.integer "user_id", limit: 4
|
80
|
+
t.text "output", limit: 65535
|
81
|
+
t.boolean "success", limit: 1, default: false
|
82
|
+
t.integer "file_type", limit: 4
|
83
|
+
t.string "token", limit: 255
|
74
84
|
t.datetime "created_at"
|
75
85
|
t.datetime "updated_at"
|
86
|
+
t.datetime "finished_at"
|
87
|
+
t.string "default_namespace", limit: 255
|
76
88
|
end
|
77
89
|
|
78
|
-
add_index "
|
79
|
-
add_index "labelings", ["type"], :name => "ix_labelings_on_type"
|
90
|
+
add_index "exports", ["user_id"], name: "index_exports_on_user_id", using: :btree
|
80
91
|
|
81
|
-
create_table "
|
82
|
-
t.
|
83
|
-
t.
|
84
|
-
t.
|
85
|
-
t.
|
92
|
+
create_table "imports", force: :cascade do |t|
|
93
|
+
t.integer "user_id", limit: 4
|
94
|
+
t.text "output", limit: 65535
|
95
|
+
t.boolean "success", limit: 1, default: false
|
96
|
+
t.datetime "created_at"
|
97
|
+
t.datetime "updated_at"
|
98
|
+
t.datetime "finished_at"
|
99
|
+
t.string "import_file", limit: 255
|
100
|
+
t.boolean "publish", limit: 1
|
101
|
+
t.string "default_namespace", limit: 255
|
102
|
+
end
|
103
|
+
|
104
|
+
add_index "imports", ["user_id"], name: "index_imports_on_user_id", using: :btree
|
105
|
+
|
106
|
+
create_table "job_relations", force: :cascade do |t|
|
107
|
+
t.string "type", limit: 255
|
108
|
+
t.string "owner_reference", limit: 255
|
109
|
+
t.string "job_id", limit: 255
|
110
|
+
t.datetime "created_at"
|
111
|
+
t.datetime "updated_at"
|
112
|
+
t.string "response_error", limit: 255
|
113
|
+
end
|
114
|
+
|
115
|
+
create_table "label_relations", force: :cascade do |t|
|
116
|
+
t.string "type", limit: 255
|
117
|
+
t.integer "domain_id", limit: 4
|
118
|
+
t.integer "range_id", limit: 4
|
119
|
+
t.datetime "created_at"
|
120
|
+
t.datetime "updated_at"
|
121
|
+
end
|
122
|
+
|
123
|
+
add_index "label_relations", ["domain_id", "range_id", "type"], name: "ix_label_rel_dom_rng_type", using: :btree
|
124
|
+
add_index "label_relations", ["range_id"], name: "fk_rails_bb0176a385", using: :btree
|
125
|
+
add_index "label_relations", ["type"], name: "ix_label_relations_on_type", using: :btree
|
126
|
+
|
127
|
+
create_table "labelings", force: :cascade do |t|
|
128
|
+
t.string "type", limit: 255
|
129
|
+
t.integer "owner_id", limit: 4
|
130
|
+
t.integer "target_id", limit: 4
|
131
|
+
t.datetime "created_at"
|
132
|
+
t.datetime "updated_at"
|
133
|
+
end
|
134
|
+
|
135
|
+
add_index "labelings", ["owner_id", "target_id", "type"], name: "ix_labelings_fk_type", using: :btree
|
136
|
+
add_index "labelings", ["target_id"], name: "fk_rails_3a628f1b05", using: :btree
|
137
|
+
add_index "labelings", ["type"], name: "ix_labelings_on_type", using: :btree
|
138
|
+
|
139
|
+
create_table "labels", force: :cascade do |t|
|
140
|
+
t.string "type", limit: 255
|
141
|
+
t.string "origin", limit: 4000
|
142
|
+
t.string "language", limit: 255
|
143
|
+
t.string "value", limit: 1024
|
86
144
|
t.datetime "created_at"
|
87
145
|
t.datetime "updated_at"
|
88
146
|
t.date "published_at"
|
89
|
-
t.integer "rev",
|
90
|
-
t.integer "published_version_id"
|
91
|
-
t.integer "locked_by"
|
147
|
+
t.integer "rev", limit: 4, default: 1
|
148
|
+
t.integer "published_version_id", limit: 4
|
149
|
+
t.integer "locked_by", limit: 4
|
92
150
|
t.date "expired_at"
|
93
151
|
t.date "follow_up"
|
94
|
-
t.boolean "to_review"
|
152
|
+
t.boolean "to_review", limit: 1
|
95
153
|
t.date "rdf_updated_at"
|
96
154
|
end
|
97
155
|
|
98
|
-
add_index "labels", ["language"], :
|
99
|
-
add_index "labels", ["origin"], :
|
100
|
-
add_index "labels", ["published_version_id"], :
|
101
|
-
add_index "labels", ["value"], :
|
156
|
+
add_index "labels", ["language"], name: "ix_labels_on_language", using: :btree
|
157
|
+
add_index "labels", ["origin"], name: "ix_labels_on_origin", length: {"origin"=>255}, using: :btree
|
158
|
+
add_index "labels", ["published_version_id"], name: "ix_labels_on_published_v", using: :btree
|
159
|
+
add_index "labels", ["value"], name: "ix_labels_on_value", length: {"value"=>255}, using: :btree
|
102
160
|
|
103
|
-
create_table "matches", :
|
104
|
-
t.integer "concept_id"
|
105
|
-
t.string "type"
|
106
|
-
t.string "value"
|
161
|
+
create_table "matches", force: :cascade do |t|
|
162
|
+
t.integer "concept_id", limit: 4
|
163
|
+
t.string "type", limit: 255
|
164
|
+
t.string "value", limit: 255
|
107
165
|
t.datetime "created_at"
|
108
166
|
t.datetime "updated_at"
|
109
167
|
end
|
110
168
|
|
111
|
-
add_index "matches", ["concept_id", "type"], :
|
112
|
-
add_index "matches", ["type"], :
|
169
|
+
add_index "matches", ["concept_id", "type"], name: "ix_matches_fk_type", using: :btree
|
170
|
+
add_index "matches", ["type"], name: "ix_matches_on_type", using: :btree
|
113
171
|
|
114
|
-
create_table "notations", :
|
115
|
-
t.integer "concept_id"
|
116
|
-
t.string "value", :
|
117
|
-
t.string "data_type", :
|
172
|
+
create_table "notations", force: :cascade do |t|
|
173
|
+
t.integer "concept_id", limit: 4
|
174
|
+
t.string "value", limit: 4000
|
175
|
+
t.string "data_type", limit: 4000
|
118
176
|
end
|
119
177
|
|
120
|
-
add_index "notations", ["concept_id"], :
|
178
|
+
add_index "notations", ["concept_id"], name: "index_notations_on_concept_id", using: :btree
|
121
179
|
|
122
|
-
create_table "note_annotations", :
|
123
|
-
t.integer "note_id"
|
124
|
-
t.string "predicate", :
|
125
|
-
t.string "value", :
|
180
|
+
create_table "note_annotations", force: :cascade do |t|
|
181
|
+
t.integer "note_id", limit: 4
|
182
|
+
t.string "predicate", limit: 50
|
183
|
+
t.string "value", limit: 1024
|
126
184
|
t.datetime "created_at"
|
127
185
|
t.datetime "updated_at"
|
128
|
-
t.string "namespace", :
|
186
|
+
t.string "namespace", limit: 50
|
187
|
+
t.string "language", limit: 255
|
129
188
|
end
|
130
189
|
|
131
|
-
add_index "note_annotations", ["note_id"], :
|
190
|
+
add_index "note_annotations", ["note_id"], name: "ix_note_annotations_fk", using: :btree
|
132
191
|
|
133
|
-
create_table "notes", :
|
134
|
-
t.string "language", :
|
135
|
-
t.string "value", :
|
136
|
-
t.string "type", :
|
192
|
+
create_table "notes", force: :cascade do |t|
|
193
|
+
t.string "language", limit: 2
|
194
|
+
t.string "value", limit: 4000
|
195
|
+
t.string "type", limit: 50
|
137
196
|
t.datetime "created_at"
|
138
197
|
t.datetime "updated_at"
|
139
|
-
t.integer "owner_id"
|
140
|
-
t.string "owner_type",
|
198
|
+
t.integer "owner_id", limit: 4
|
199
|
+
t.string "owner_type", limit: 255, null: false
|
141
200
|
end
|
142
201
|
|
143
|
-
add_index "notes", ["language"], :
|
144
|
-
add_index "notes", ["owner_id", "owner_type", "type"], :
|
145
|
-
add_index "notes", ["type"], :
|
202
|
+
add_index "notes", ["language"], name: "ix_notes_on_language", using: :btree
|
203
|
+
add_index "notes", ["owner_id", "owner_type", "type"], name: "ix_notes_fk_type", using: :btree
|
204
|
+
add_index "notes", ["type"], name: "ix_notes_on_type", using: :btree
|
146
205
|
|
147
|
-
create_table "users", :
|
148
|
-
t.string "forename"
|
149
|
-
t.string "surname"
|
150
|
-
t.string "email"
|
151
|
-
t.string "crypted_password"
|
152
|
-
t.boolean "active"
|
206
|
+
create_table "users", force: :cascade do |t|
|
207
|
+
t.string "forename", limit: 255
|
208
|
+
t.string "surname", limit: 255
|
209
|
+
t.string "email", limit: 255
|
210
|
+
t.string "crypted_password", limit: 255
|
211
|
+
t.boolean "active", limit: 1
|
153
212
|
t.datetime "created_at"
|
154
213
|
t.datetime "updated_at"
|
155
|
-
t.string "password_salt"
|
156
|
-
t.string "persistence_token"
|
157
|
-
t.string "perishable_token"
|
158
|
-
t.string "role"
|
159
|
-
t.string "telephone_number"
|
214
|
+
t.string "password_salt", limit: 255
|
215
|
+
t.string "persistence_token", limit: 255
|
216
|
+
t.string "perishable_token", limit: 255
|
217
|
+
t.string "role", limit: 255
|
218
|
+
t.string "telephone_number", limit: 255
|
219
|
+
t.string "type", limit: 255
|
160
220
|
end
|
161
221
|
|
222
|
+
add_foreign_key "collection_members", "concepts", column: "collection_id", on_update: :cascade
|
223
|
+
add_foreign_key "collection_members", "concepts", column: "target_id", on_update: :cascade
|
224
|
+
add_foreign_key "concept_relations", "concepts", column: "owner_id", on_update: :cascade
|
225
|
+
add_foreign_key "concept_relations", "concepts", column: "target_id", on_update: :cascade
|
226
|
+
add_foreign_key "concepts", "users", column: "locked_by", on_update: :cascade, on_delete: :nullify
|
227
|
+
add_foreign_key "exports", "users", on_update: :cascade, on_delete: :nullify
|
228
|
+
add_foreign_key "imports", "users", on_update: :cascade, on_delete: :nullify
|
229
|
+
add_foreign_key "label_relations", "labels", column: "domain_id", on_update: :cascade, on_delete: :cascade
|
230
|
+
add_foreign_key "label_relations", "labels", column: "range_id", on_update: :cascade, on_delete: :cascade
|
231
|
+
add_foreign_key "labelings", "concepts", column: "owner_id", on_update: :cascade
|
232
|
+
add_foreign_key "labelings", "labels", column: "target_id", on_update: :cascade, on_delete: :cascade
|
233
|
+
add_foreign_key "labels", "labels", column: "published_version_id", on_update: :cascade, on_delete: :cascade
|
234
|
+
add_foreign_key "labels", "labels", column: "published_version_id", on_update: :cascade, on_delete: :cascade
|
235
|
+
add_foreign_key "matches", "concepts", on_update: :cascade, on_delete: :cascade
|
236
|
+
add_foreign_key "notations", "concepts", on_update: :cascade
|
237
|
+
add_foreign_key "note_annotations", "notes", on_update: :cascade, on_delete: :cascade
|
162
238
|
end
|
data/iqvoc_skosxl.gemspec
CHANGED
@@ -13,7 +13,7 @@ Gem::Specification.new do |s|
|
|
13
13
|
s.license = 'Apache License 2.0'
|
14
14
|
s.description = 'iQvoc - a SKOS(-XL) vocabulary management system built on the Semantic Web'
|
15
15
|
|
16
|
-
s.add_dependency 'iqvoc', '>= 4.
|
16
|
+
s.add_dependency 'iqvoc', '>= 4.8.0', '~> 4.8'
|
17
17
|
s.add_development_dependency 'bundler', '~> 1.6'
|
18
18
|
|
19
19
|
s.files = %w(README.md Gemfile Gemfile.lock Rakefile iqvoc_skosxl.gemspec) +
|
data/lib/iqvoc/skosxl/version.rb
CHANGED
@@ -75,7 +75,7 @@ class ConceptLabelLanguageTest < ActionDispatch::IntegrationTest
|
|
75
75
|
click_button 'Speichern'
|
76
76
|
visit dashboard_path(lang: 'de', format: 'html')
|
77
77
|
page.find('td a').click
|
78
|
-
page.click_link_or_button '
|
78
|
+
page.click_link_or_button 'Bearbeitung fortsetzen'
|
79
79
|
|
80
80
|
# NB: label languages do not match relation languages
|
81
81
|
fill_in 'labeling_skosxl_pref_labels_en',
|
@@ -31,7 +31,7 @@ class LabelCreationTest < ActionDispatch::IntegrationTest
|
|
31
31
|
assert page.has_content? 'Instanz ist konsistent.'
|
32
32
|
end
|
33
33
|
|
34
|
-
test '
|
34
|
+
test 'inconsistent label creation' do
|
35
35
|
visit new_label_path(lang: 'de', language: 'de')
|
36
36
|
assert page.has_content? 'Neues Label'
|
37
37
|
fill_in 'Vorlageform', with: ''
|
data/test/models/label_test.rb
CHANGED
@@ -18,16 +18,22 @@ class LabelTest < ActiveSupport::TestCase
|
|
18
18
|
@current_label = Iqvoc::XLLabel.base_class.create(
|
19
19
|
language: 'en', value: 'Forest', published_at: 3.days.ago)
|
20
20
|
duplicate = Iqvoc::XLLabel.base_class.new(
|
21
|
-
language: 'en', value: 'Forest'
|
22
|
-
refute duplicate.save
|
23
|
-
duplicate.published_at = nil
|
21
|
+
language: 'en', value: 'Forest')
|
24
22
|
assert duplicate.save
|
23
|
+
refute duplicate.publishable?
|
24
|
+
|
25
|
+
duplicate.value = 'Forest2'
|
26
|
+
assert duplicate.publishable?
|
25
27
|
end
|
26
28
|
|
27
|
-
test '
|
28
|
-
|
29
|
+
test 'label origin generation' do
|
30
|
+
l1 = Iqvoc::XLLabel.base_class.create(
|
29
31
|
language: 'en', value: 'Forest', published_at: 3.days.ago)
|
30
|
-
|
32
|
+
assert_match /_[0-9a-z]{8}/, l1.origin
|
33
|
+
|
34
|
+
l2 = Iqvoc::XLLabel.base_class.create(
|
35
|
+
language: 'en', value: 'Forest', origin: 'forest', published_at: 3.days.ago)
|
36
|
+
assert_equal 'forest', l2.origin
|
31
37
|
end
|
32
38
|
|
33
39
|
test 'should create two labels with equal values but different languages' do
|
@@ -36,7 +42,7 @@ class LabelTest < ActiveSupport::TestCase
|
|
36
42
|
l2 = Iqvoc::XLLabel.base_class.new(
|
37
43
|
language: 'en', value: 'Forest', published_at: 3.days.ago)
|
38
44
|
assert l2.save
|
39
|
-
|
45
|
+
assert_match /_[0-9a-z]{8}/, l2.origin
|
40
46
|
end
|
41
47
|
|
42
48
|
test 'should validate origin for escaping' do
|
@@ -44,11 +50,11 @@ class LabelTest < ActiveSupport::TestCase
|
|
44
50
|
language: 'en', value: 'Forest', published_at: 3.days.ago)
|
45
51
|
assert label.publishable?
|
46
52
|
|
47
|
-
label.origin = '
|
53
|
+
label.origin = 'foo-bar'
|
48
54
|
assert_equal 'foo-bar', label.origin
|
49
55
|
assert label.publishable?
|
50
56
|
|
51
|
-
label.origin =
|
57
|
+
label.origin = Origin.new('FoÖ/Bär').to_s
|
52
58
|
assert label.publishable?
|
53
59
|
end
|
54
60
|
end
|
@@ -1,7 +1,6 @@
|
|
1
1
|
# encoding: UTF-8
|
2
2
|
|
3
3
|
require File.expand_path('../../test_helper', __FILE__)
|
4
|
-
require 'iqvoc/skos_importer'
|
5
4
|
|
6
5
|
class SkosImporterTest < ActiveSupport::TestCase
|
7
6
|
TEST_DATA = File.open(File.expand_path('../../fixtures/hobbies.nt', __FILE__))
|
@@ -14,7 +13,7 @@ class SkosImporterTest < ActiveSupport::TestCase
|
|
14
13
|
self.rdf_predicate = 'test-relation'
|
15
14
|
end
|
16
15
|
|
17
|
-
@importer =
|
16
|
+
@importer = SkosImporter.new(TEST_DATA, 'http://hobbies.com/')
|
18
17
|
@importer.second_level_object_classes << TestRelation
|
19
18
|
end
|
20
19
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: iqvoc_skosxl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robert Glaser
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2015-01-29 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: iqvoc
|
@@ -18,20 +18,20 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - ">="
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 4.
|
21
|
+
version: 4.8.0
|
22
22
|
- - "~>"
|
23
23
|
- !ruby/object:Gem::Version
|
24
|
-
version: '4.
|
24
|
+
version: '4.8'
|
25
25
|
type: :runtime
|
26
26
|
prerelease: false
|
27
27
|
version_requirements: !ruby/object:Gem::Requirement
|
28
28
|
requirements:
|
29
29
|
- - ">="
|
30
30
|
- !ruby/object:Gem::Version
|
31
|
-
version: 4.
|
31
|
+
version: 4.8.0
|
32
32
|
- - "~>"
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: '4.
|
34
|
+
version: '4.8'
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
36
|
name: bundler
|
37
37
|
requirement: !ruby/object:Gem::Requirement
|
@@ -60,8 +60,8 @@ files:
|
|
60
60
|
- Rakefile
|
61
61
|
- app/assets/javascripts/iqvoc_skosxl/manifest.js
|
62
62
|
- app/assets/javascripts/manifest.js
|
63
|
-
- app/assets/stylesheets/iqvoc_skosxl/
|
64
|
-
- app/assets/stylesheets/iqvoc_skosxl/
|
63
|
+
- app/assets/stylesheets/iqvoc_skosxl/_entity_select.scss
|
64
|
+
- app/assets/stylesheets/iqvoc_skosxl/_manifest.scss
|
65
65
|
- app/assets/stylesheets/manifest.css.scss
|
66
66
|
- app/controllers/labels/versions_controller.rb
|
67
67
|
- app/controllers/labels_controller.rb
|
@@ -124,6 +124,7 @@ files:
|
|
124
124
|
- config/secrets.yml
|
125
125
|
- db/migrate/20110408121540_extend_label.rb
|
126
126
|
- db/migrate/20110408123644_add_label_relations.rb
|
127
|
+
- db/migrate/20150108154312_add_fk_contraints_iqvoc_skosxl.rb
|
127
128
|
- db/schema.rb
|
128
129
|
- db/seeds.rb
|
129
130
|
- iqvoc_skosxl.gemspec
|
@@ -162,7 +163,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
162
163
|
version: '0'
|
163
164
|
requirements: []
|
164
165
|
rubyforge_project:
|
165
|
-
rubygems_version: 2.4.
|
166
|
+
rubygems_version: 2.4.5
|
166
167
|
signing_key:
|
167
168
|
specification_version: 4
|
168
169
|
summary: iQvoc SKOS-XL extension
|