abstractor 4.0.1 → 4.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +8 -8
- data/app/assets/images/abstractor/page_green.png +0 -0
- data/app/assets/stylesheets/abstractor/abstractor_abstractions.css +45 -122
- data/app/views/abstractor/abstractor_abstraction_groups/_form.html.haml +7 -7
- data/app/views/abstractor/abstractor_abstractions/_abstraction_history.html.haml +17 -0
- data/app/views/abstractor/abstractor_abstractions/_fields.html.haml +38 -57
- data/app/views/abstractor/abstractor_abstractions/_grouped_abstractions_list.html.haml +23 -0
- data/app/views/abstractor/abstractor_abstractions/_list.html.haml +5 -36
- data/app/views/abstractor/abstractor_abstractions/_ungrouped_abstractions_list.html.haml +22 -0
- data/app/views/abstractor/abstractor_abstractions/edit.html.haml +5 -6
- data/lib/abstractor/methods/models/abstractor_subject.rb +2 -3
- data/lib/abstractor/version.rb +1 -1
- metadata +7 -3
checksums.yaml
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
!binary "U0hBMQ==":
|
|
3
3
|
metadata.gz: !binary |-
|
|
4
|
-
|
|
4
|
+
NmFjZjhkYzhlZWVkZGI1M2Q2YWZkNmUxNTk2OGZjMDljMzc5NWNjNA==
|
|
5
5
|
data.tar.gz: !binary |-
|
|
6
|
-
|
|
6
|
+
NzNmMzg2ZTI1Mjc3ZTU2MjI1YmEyNjE3NjVlMTRhMmU0YWIzZjI2Mw==
|
|
7
7
|
SHA512:
|
|
8
8
|
metadata.gz: !binary |-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
MDEwYzc1NWM5MDZjMDYwMGIxZjY1OGQ2NGU2ZGU4MzUxYmE4MTllYTkwYTg3
|
|
10
|
+
ZWYzNjE3YTBkNTVmMzY2MjczZGZiMGMxZTQ1MzVhNjljMjA1MjQwNWIyMTVm
|
|
11
|
+
ZTg3OGI4YWU0YjA3OGE5NzkxYjI2YjZlZTFkNGY2ZGNhYjM1YzA=
|
|
12
12
|
data.tar.gz: !binary |-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
NDMyM2FkYTAwYjQ4ZDc2MGY5NmU4OTM1MzQxNDhhNWEyZmZiZTE3MTFmOTQx
|
|
14
|
+
NmRmOGZiNTQzOGI4YTVmMWQ2MDg5YWM4MWQyNmYzMWRjYTQxZDg1ODI0NWYx
|
|
15
|
+
YzQ4MTlmNmQyMzI4NTI3ZThkNjk0YTQ0ODI1MDQzOTk3NjgxMGM=
|
|
Binary file
|
|
@@ -51,146 +51,53 @@
|
|
|
51
51
|
margin: 0.1em 0 0.25em !important;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
.abstractor_abstractions fieldset .
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
margin-right: 10px;
|
|
58
|
-
width: 62.625px;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
* html .abstractor_abstractions fieldset .column-1-5 {
|
|
62
|
-
overflow-x: hidden;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
.abstractor_abstractions fieldset .column-1 {
|
|
66
|
-
display: inline;
|
|
67
|
-
float: left;
|
|
68
|
-
margin-right: 10px;
|
|
69
|
-
width: 38.41667px;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
* html .abstractor_abstractions fieldset .column-1 {
|
|
73
|
-
overflow-x: hidden;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
.abstractor_abstractions fieldset .column-2 {
|
|
77
|
-
display: inline;
|
|
78
|
-
float: left;
|
|
79
|
-
margin-right: 10px;
|
|
80
|
-
width: 86.83333px;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
* html .abstractor_abstractions fieldset .column-2 {
|
|
84
|
-
overflow-x: hidden;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
.abstractor_abstractions fieldset .column-3 {
|
|
54
|
+
.abstractor_abstractions fieldset .abstractor_abstraction_schema_name,
|
|
55
|
+
.abstractor_abstractions fieldset .abstractor_suggestion_status,
|
|
56
|
+
.abstractor_abstractions fieldset .abstractor_suggestion_sources {
|
|
88
57
|
display: inline;
|
|
89
58
|
float: left;
|
|
90
59
|
margin-right: 10px;
|
|
91
60
|
width: 135.25px;
|
|
92
61
|
}
|
|
93
62
|
|
|
94
|
-
|
|
95
|
-
overflow-x: hidden;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
.abstractor_abstractions fieldset .column-4 {
|
|
63
|
+
.abstractor_abstractions fieldset .abstraction_edit_abstraction_actions {
|
|
99
64
|
display: inline;
|
|
100
65
|
float: left;
|
|
101
66
|
margin-right: 10px;
|
|
102
67
|
width: 183.66667px;
|
|
103
68
|
}
|
|
104
69
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
.abstractor_abstractions fieldset .column-5 {
|
|
70
|
+
.abstractor_abstractions fieldset .abstractor_abstraction_value,
|
|
71
|
+
.abstractor_abstractions fieldset .abstractor_suggestion_values {
|
|
110
72
|
display: inline;
|
|
111
73
|
float: left;
|
|
112
74
|
margin-right: 10px;
|
|
113
75
|
width: 232.08333px;
|
|
114
76
|
}
|
|
115
77
|
|
|
116
|
-
* html .abstractor_abstractions fieldset .column-5 {
|
|
117
|
-
overflow-x: hidden;
|
|
118
|
-
}
|
|
119
78
|
|
|
120
|
-
.abstractor_abstractions fieldset .
|
|
121
|
-
display: inline;
|
|
122
|
-
float: left;
|
|
123
|
-
margin-right: 10px;
|
|
124
|
-
width: 280.5px;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
* html .abstractor_abstractions fieldset .column-6 {
|
|
128
|
-
overflow-x: hidden;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
.abstractor_abstractions fieldset .column-7 {
|
|
79
|
+
.abstractor_abstractions fieldset .abstraction_edit_abstraction_value {
|
|
132
80
|
display: inline;
|
|
133
81
|
float: left;
|
|
134
82
|
margin-right: 10px;
|
|
135
83
|
width: 328.91667px;
|
|
136
84
|
}
|
|
137
85
|
|
|
138
|
-
|
|
139
|
-
overflow-x: hidden;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
.abstractor_abstractions fieldset .column-8 {
|
|
143
|
-
display: inline;
|
|
144
|
-
float: left;
|
|
145
|
-
margin-right: 10px;
|
|
146
|
-
width: 377.33333px;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
* html .abstractor_abstractions fieldset .column-8 {
|
|
150
|
-
overflow-x: hidden;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
.abstractor_abstractions fieldset .column-9 {
|
|
86
|
+
.abstractor_abstractions fieldset .abstractor_suggestions {
|
|
154
87
|
display: inline;
|
|
155
88
|
float: left;
|
|
156
89
|
margin-right: 10px;
|
|
157
90
|
width: 425.75px;
|
|
158
91
|
}
|
|
159
92
|
|
|
160
|
-
* html .abstractor_abstractions fieldset .
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
.abstractor_abstractions fieldset .
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
width: 474.16667px;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
* html .abstractor_abstractions fieldset .column-10 {
|
|
172
|
-
overflow-x: hidden;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
.abstractor_abstractions fieldset .column-11 {
|
|
176
|
-
display: inline;
|
|
177
|
-
float: left;
|
|
178
|
-
margin-right: 10px;
|
|
179
|
-
width: 522.58333px;
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
* html .abstractor_abstractions fieldset .column-11 {
|
|
183
|
-
overflow-x: hidden;
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
.abstractor_abstractions fieldset .column-12 {
|
|
187
|
-
display: inline;
|
|
188
|
-
float: left;
|
|
189
|
-
margin-right: 10px;
|
|
190
|
-
width: 571px;
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
* html .abstractor_abstractions fieldset .column-12 {
|
|
93
|
+
* html .abstractor_abstractions fieldset .abstractor_abstraction_schema_name,
|
|
94
|
+
* html .abstractor_abstractions fieldset .abstractor_suggestion_status,
|
|
95
|
+
* html .abstractor_abstractions fieldset .abstractor_suggestion_sources,
|
|
96
|
+
* html .abstractor_abstractions fieldset .abstraction_edit_abstraction_actions,
|
|
97
|
+
* html .abstractor_abstractions fieldset .abstractor_abstraction_value,
|
|
98
|
+
* html .abstractor_abstractions fieldset .abstractor_suggestion_values,
|
|
99
|
+
* html .abstractor_abstractions fieldset .abstraction_edit_abstraction_value,
|
|
100
|
+
* html .abstractor_abstractions fieldset .abstractor_suggestions {
|
|
194
101
|
overflow-x: hidden;
|
|
195
102
|
}
|
|
196
103
|
|
|
@@ -198,7 +105,7 @@
|
|
|
198
105
|
clear: both;
|
|
199
106
|
}
|
|
200
107
|
|
|
201
|
-
.abstractor_abstractions fieldset .
|
|
108
|
+
.abstractor_abstractions fieldset .abstractor_abstraction_schema_name {
|
|
202
109
|
font-weight: bold;
|
|
203
110
|
margin-bottom: 0.3em;
|
|
204
111
|
}
|
|
@@ -230,8 +137,18 @@
|
|
|
230
137
|
margin-right: .5em;
|
|
231
138
|
}
|
|
232
139
|
|
|
233
|
-
.abstractor_abstractions fieldset .abstractor_abstraction_source_tooltip_img
|
|
140
|
+
.abstractor_abstractions fieldset .abstractor_abstraction_source_tooltip_img {
|
|
141
|
+
margin-left: 5px;
|
|
142
|
+
}
|
|
143
|
+
.abstractor_abstractions fieldset .abstractor_abstraction_source_tooltip_img i {
|
|
144
|
+
background: url('page.png') no-repeat;
|
|
234
145
|
vertical-align: text-bottom;
|
|
146
|
+
padding: 2px 10px;
|
|
147
|
+
vertical-align: middle;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.abstractor_abstractions fieldset .abstractor_abstraction_source_tooltip_img i.abstraction_text_link_match {
|
|
151
|
+
background: url('page_green.png') no-repeat;
|
|
235
152
|
}
|
|
236
153
|
|
|
237
154
|
.abstractor_abstractions fieldset .hidden {
|
|
@@ -253,15 +170,9 @@
|
|
|
253
170
|
ul.ui-autocomplete, .ui-dialog {
|
|
254
171
|
z-index: 1000 !important;
|
|
255
172
|
}
|
|
256
|
-
.
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
clear: both;
|
|
260
|
-
float: none;
|
|
261
|
-
width: 100%;
|
|
262
|
-
height: 0.1em;
|
|
263
|
-
margin: 0 0 1.45em;
|
|
264
|
-
border: none;
|
|
173
|
+
.abstractor_bottom_border {
|
|
174
|
+
border-bottom: 1px solid #dddddd;
|
|
175
|
+
overflow: auto;
|
|
265
176
|
}
|
|
266
177
|
|
|
267
178
|
/* Tooltips */
|
|
@@ -324,7 +235,7 @@ span.tooltip_img {
|
|
|
324
235
|
font-style:italic
|
|
325
236
|
}
|
|
326
237
|
|
|
327
|
-
.abstractor_abstraction_actions
|
|
238
|
+
.abstractor_abstraction_actions a{
|
|
328
239
|
float: right;
|
|
329
240
|
}
|
|
330
241
|
.abstractor_abstraction_actions a {
|
|
@@ -357,4 +268,16 @@ span.tooltip_img {
|
|
|
357
268
|
|
|
358
269
|
.abstractor_suggestion_values .custom_explanation label {
|
|
359
270
|
font-weight: bold !important;
|
|
360
|
-
}
|
|
271
|
+
}
|
|
272
|
+
ul.abstractor_suggestion_status_group {
|
|
273
|
+
list-style: none;
|
|
274
|
+
margin: 0;
|
|
275
|
+
padding: 0;
|
|
276
|
+
}
|
|
277
|
+
.abstractor_abstractions_header,
|
|
278
|
+
.abstractor_abstraction_group_member,
|
|
279
|
+
.abstractor_abstraction_group_actions {
|
|
280
|
+
border-bottom: 1px solid #dddddd;
|
|
281
|
+
overflow: auto;
|
|
282
|
+
padding-bottom: 0.25em;
|
|
283
|
+
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
- abstractor_abstraction_group ||= @abstractor_abstraction_group
|
|
2
2
|
|
|
3
3
|
.abstractor_abstraction_group
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
.abstractor_abstraction_group_member
|
|
5
|
+
- abstractor_abstractions = abstractor_abstraction_group.abstractor_abstractions.not_deleted.joins(:abstractor_subject => :abstractor_subject_group_member).order('abstractor_subject_group_members.display_order')
|
|
6
|
+
- abstractor_abstractions.each_with_index do |abstractor_abstraction, index|
|
|
7
|
+
%div{ class: "abstractor_abstraction #{Abstractor::Utility.dehumanize(abstractor_abstraction.abstractor_subject.abstractor_abstraction_schema.predicate)} #{'abstractor_bottom_border' if index < abstractor_abstractions.length - 1}" }
|
|
8
|
+
= render :partial => 'abstractor/abstractor_abstractions/fields', :locals => {:abstractor_abstraction => abstractor_abstraction}
|
|
9
|
+
.abstractor_abstraction_group_actions.abstractor_abstraction_actions
|
|
9
10
|
= link_to 'Not applicable group ', Abstractor::UserInterface.abstractor_relative_path(abstractor.abstractor_abstraction_group_path(abstractor_abstraction_group, abstractor_abstraction_value: 'not applicable')), data: { confirm: 'Are you sure?'} , method: :put, class: "abstractor_group_not_applicable_all_link", remote: true
|
|
10
11
|
= link_to 'Unknown group ', Abstractor::UserInterface.abstractor_relative_path(abstractor.abstractor_abstraction_group_path(abstractor_abstraction_group, abstractor_abstraction_value: 'unknown')), data: { confirm: 'Are you sure?'}, method: :put, class: 'abstractor_group_unknown_all_link', remote: true
|
|
11
12
|
- if abstractor_abstraction_group.removable?
|
|
12
|
-
= link_to 'Delete group', Abstractor::UserInterface.abstractor_relative_path(abstractor.abstractor_abstraction_group_path(abstractor_abstraction_group)), data: { confirm: 'Are you sure?'}, method: :delete, class: "abstractor_group_delete_link", remote: true
|
|
13
|
-
%hr
|
|
13
|
+
= link_to 'Delete group', Abstractor::UserInterface.abstractor_relative_path(abstractor.abstractor_abstraction_group_path(abstractor_abstraction_group)), data: { confirm: 'Are you sure?'}, method: :delete, class: "abstractor_group_delete_link", remote: true
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
- if versions.any?
|
|
2
|
+
%br
|
|
3
|
+
%b History:
|
|
4
|
+
- versions.each do |version|
|
|
5
|
+
.version
|
|
6
|
+
.version_date
|
|
7
|
+
%i
|
|
8
|
+
Date:
|
|
9
|
+
= version.created_at.to_date.to_s(:date)
|
|
10
|
+
.version_value
|
|
11
|
+
%i
|
|
12
|
+
Value:
|
|
13
|
+
= version.reify.display_value
|
|
14
|
+
.version_user
|
|
15
|
+
%i
|
|
16
|
+
User:
|
|
17
|
+
= version.originator
|
|
@@ -6,41 +6,23 @@
|
|
|
6
6
|
- about = abstractor_abstraction.about
|
|
7
7
|
|
|
8
8
|
.abstractor_abstraction_display
|
|
9
|
-
.
|
|
10
|
-
.
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
- if rejected_suggestions.length == abstractor_suggestions.length
|
|
15
|
-
%span.editable_abstraction
|
|
16
|
-
= abstractor_abstraction.display_value
|
|
17
|
-
= link_to 'edit', Abstractor::UserInterface.abstractor_relative_path(abstractor.edit_abstractor_abstraction_path(abstractor_abstraction)), :class=>'icon_link edit_link'
|
|
18
|
-
- else
|
|
9
|
+
.abstractor_abstraction_schema_name
|
|
10
|
+
= abstractor_abstraction_schema.display_name
|
|
11
|
+
.abstractor_abstraction_value
|
|
12
|
+
- if rejected_suggestions.length == abstractor_suggestions.length
|
|
13
|
+
%span.editable_abstraction
|
|
19
14
|
= abstractor_abstraction.display_value
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
.
|
|
31
|
-
%i
|
|
32
|
-
Value:
|
|
33
|
-
= "#{version.reify.display_value}"
|
|
34
|
-
.version_user
|
|
35
|
-
%i
|
|
36
|
-
User:
|
|
37
|
-
= "#{version.originator}"
|
|
38
|
-
- if abstractor_suggestions.any?
|
|
39
|
-
.column-9
|
|
40
|
-
- abstractor_suggestions.each do |abstractor_suggestion|
|
|
41
|
-
= form_for [abstractor_abstraction, abstractor_suggestion], url: Abstractor::UserInterface.abstractor_relative_path(abstractor.abstractor_abstraction_abstractor_suggestion_path(abstractor_abstraction, abstractor_suggestion)), method: :put, remote: true, html: { class: 'edit_abstractor_suggestion' } do |f|
|
|
42
|
-
= render 'abstractor/shared/error_messages', :object => f.object
|
|
43
|
-
.column-5
|
|
15
|
+
= link_to 'edit', Abstractor::UserInterface.abstractor_relative_path(abstractor.edit_abstractor_abstraction_path(abstractor_abstraction)), :class=>'icon_link edit_link'
|
|
16
|
+
- else
|
|
17
|
+
= abstractor_abstraction.display_value
|
|
18
|
+
- versions = abstractor_abstraction.versions.sort{|a,b| b.created_at <=> a.created_at}.reject{|v| v.reify.blank? || v.reify.display_value =~ /not set/i}
|
|
19
|
+
= render partial: 'abstractor/abstractor_abstractions/abstraction_history', locals: { versions: versions }
|
|
20
|
+
.abstractor_suggestions
|
|
21
|
+
- if abstractor_suggestions.any?
|
|
22
|
+
- abstractor_suggestions.each_with_index do |abstractor_suggestion, index|
|
|
23
|
+
.abstractor_suggestion{ class: "#{'abstractor_bottom_border' if index < abstractor_suggestions.length - 1}"}
|
|
24
|
+
= form_for [abstractor_abstraction, abstractor_suggestion], url: Abstractor::UserInterface.abstractor_relative_path(abstractor.abstractor_abstraction_abstractor_suggestion_path(abstractor_abstraction, abstractor_suggestion)), method: :put, remote: true, html: { class: 'edit_abstractor_suggestion' } do |f|
|
|
25
|
+
= render 'abstractor/shared/error_messages', object: f.object
|
|
44
26
|
.abstractor_suggestion_values
|
|
45
27
|
= abstractor_suggestion.display_value
|
|
46
28
|
- if abstractor_suggestion.abstractor_suggestion_sources.any?
|
|
@@ -48,38 +30,37 @@
|
|
|
48
30
|
- source_about = abstractor_suggestion_source.source_type.constantize.find(abstractor_suggestion_source.source_id)
|
|
49
31
|
- from_method = abstractor_suggestion_source.source_method
|
|
50
32
|
- if from_method && source_about.respond_to?(from_method)
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
%
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
33
|
+
- abstractable_from_column = source_about.send(from_method)
|
|
34
|
+
- has_text_match = abstractable_from_column && abstractor_suggestion_source.sentence_match_value
|
|
35
|
+
%span{ class: 'abstractor_abstraction_source_tooltip_img', rel: "#abstraction_text_#{abstractor_suggestion_source.id}", title: "#{source_about.class.to_s} #{from_method}"}
|
|
36
|
+
%i{ id: "abstraction_text_link_#{abstractor_suggestion_source.id}", class: "#{'abstraction_text_link_match' if has_text_match}" }
|
|
37
|
+
%div{ id: "abstraction_text_#{abstractor_suggestion_source.id}", class: 'abstractor_abstraction_source_tooltip'}
|
|
38
|
+
- if has_text_match
|
|
39
|
+
= Abstractor::UserInterface.highlight(simple_format(abstractable_from_column.clone), abstractor_suggestion_source.sentence_match_value.strip)
|
|
40
|
+
- else
|
|
41
|
+
= simple_format(abstractable_from_column.clone)
|
|
60
42
|
- if abstractor_suggestion_source.custom_explanation
|
|
61
43
|
.custom_explanation
|
|
62
44
|
%label
|
|
63
45
|
Explanation:
|
|
64
46
|
.explanation_text
|
|
65
47
|
= abstractor_suggestion_source.custom_explanation
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
.column-9
|
|
48
|
+
.abstractor_suggestion_status
|
|
49
|
+
%ul.abstractor_suggestion_status_group
|
|
50
|
+
- values = Abstractor::AbstractorSuggestionStatus.all.sort_by(&:name).map{|s| [s.name, s.id] }
|
|
51
|
+
- values.each do |value|
|
|
52
|
+
- id = "abstractor_suggestion_abstractor_suggestion_status_id_#{value.last}_#{abstractor_suggestion.id}"
|
|
53
|
+
%li
|
|
54
|
+
= f.radio_button :abstractor_suggestion_status_id, value.last, id: id, class: 'abstractor_suggestion_status_selection'
|
|
55
|
+
= f.label :abstractor_suggestion_status_id, value.first, value: value.last, for: id, class: "abstractor_suggestion_status_selection_label #{f.object.abstractor_suggestion_status_id == value.last ? 'abstractor_suggestion_status_selection_label_active' : 'abstractor_suggestion_status_selection_label_inactive' }"
|
|
56
|
+
= f.radio_button :abstractor_suggestion_status_id, '', { style: 'display:none;' }
|
|
57
|
+
- else
|
|
77
58
|
- abstractor_abstraction.abstractor_subject.abstractor_abstraction_sources.select { |s| s.abstractor_abstraction_source_type.name == 'nlp suggestion' }.each do |abstractor_abstraction_source|
|
|
78
59
|
- abstractor_abstraction_source.normalize_from_method_to_sources(abstractor_abstraction.about).each do |source|
|
|
79
60
|
- dom_id = "#{abstractor_abstraction_source.id}_#{source[:source_type]}_#{source[:source_id]}_#{source[:source_method]}"
|
|
80
|
-
%span{ :
|
|
81
|
-
|
|
61
|
+
%span{ class: 'abstractor_abstraction_source_tooltip_img', rel: "#abstraction_text_#{dom_id}", title: "#{source[:source_type].to_s} #{source[:source_method]}"}
|
|
62
|
+
%i{ id: "abstraction_text_link_#{dom_id}" }
|
|
82
63
|
%br
|
|
83
|
-
%div{ :
|
|
64
|
+
%div{ id: "abstraction_text_#{dom_id}", class: 'tooltip'}
|
|
84
65
|
= simple_format(source[:source_type].find(source[:source_id]).send(source[:source_method]))
|
|
85
66
|
.clear
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
.abstractor_abstractions_grouped
|
|
2
|
+
- abstractor_subject_groups = about.class.abstractor_subject_groups(namespace_type: namespace_type, namespace_id: namespace_id)
|
|
3
|
+
- abstractor_subject_groups.each do |abstractor_subject_group|
|
|
4
|
+
.abstractor_subject_groups_container
|
|
5
|
+
%b= abstractor_subject_group.name
|
|
6
|
+
%fieldset
|
|
7
|
+
.abstractor_abstractions_header
|
|
8
|
+
.abstractor_abstraction_schema_name
|
|
9
|
+
%b Name
|
|
10
|
+
.abstractor_abstraction_value
|
|
11
|
+
%b Value
|
|
12
|
+
.abstractor_suggestions
|
|
13
|
+
.abstractor_suggestion_values
|
|
14
|
+
%b Suggestions
|
|
15
|
+
.abstractor_suggestion_status
|
|
16
|
+
%b Status
|
|
17
|
+
.clear
|
|
18
|
+
.abstractor_abstractions_body.abstractor_subject_groups
|
|
19
|
+
- abstractor_abstraction_groups = about.abstractor_abstraction_groups_by_namespace(namespace_type: namespace_type, namespace_id: namespace_id, abstractor_subject_group_id: abstractor_subject_group.id)
|
|
20
|
+
- abstractor_abstraction_groups.each do |abstractor_abstraction_group|
|
|
21
|
+
= render partial: 'abstractor/abstractor_abstraction_groups/form', locals: {abstractor_abstraction_group: abstractor_abstraction_group}
|
|
22
|
+
= link_to 'Add group', Abstractor::UserInterface.abstractor_relative_path(abstractor.abstractor_abstraction_groups_path(about_id: about.id, about_type: about.class.name, abstractor_subject_group_id: abstractor_subject_group.id)), data: { confirm: 'Are you sure?'}, method: :post, class: 'abstractor_group_add_link', remote: true
|
|
23
|
+
.clear
|
|
@@ -1,43 +1,12 @@
|
|
|
1
1
|
- about ||= @about
|
|
2
2
|
- namespace_type ||= @namespace_type
|
|
3
3
|
- namespace_id ||= @namespace_id
|
|
4
|
+
|
|
4
5
|
.abstractor_abstractions
|
|
5
6
|
= link_to 'Not applicable all', Abstractor::UserInterface.abstractor_relative_path(abstractor.update_all_abstractor_abstractions_path(about_type: about.class, about_id: about.id, abstractor_abstraction_value: 'not applicable')), data: { confirm: 'Are you sure?'}, method: :put, class: 'abstractor_not_applicable_all_link'
|
|
6
7
|
= link_to 'Unknown all', Abstractor::UserInterface.abstractor_relative_path(abstractor.update_all_abstractor_abstractions_path(about_type: about.class, about_id: about.id, abstractor_abstraction_value: 'unknown')), data: { confirm: 'Are you sure?'}, method: :put, class: 'abstractor_unknown_all_link'
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
%fieldset
|
|
12
|
-
.column-3
|
|
13
|
-
%b Name
|
|
14
|
-
.column-5
|
|
15
|
-
%b Value
|
|
16
|
-
.column-5
|
|
17
|
-
%b Suggestions
|
|
18
|
-
.column-3
|
|
19
|
-
%b Status
|
|
20
|
-
%hr
|
|
21
|
-
.abstractor_subject_groups
|
|
22
|
-
- abstractor_abstraction_groups = about.abstractor_abstraction_groups_by_namespace(namespace_type: namespace_type, namespace_id: namespace_id, abstractor_subject_group_id: abstractor_subject_group.id)
|
|
23
|
-
- abstractor_abstraction_groups.each_with_index do |abstractor_abstraction_group, index|
|
|
24
|
-
= render partial: 'abstractor/abstractor_abstraction_groups/form', locals: {abstractor_abstraction_group: abstractor_abstraction_group}
|
|
25
|
-
= link_to 'Add group', Abstractor::UserInterface.abstractor_relative_path(abstractor.abstractor_abstraction_groups_path(about_id: about.id, about_type: about.class.name, abstractor_subject_group_id: abstractor_subject_group.id)), data: { confirm: 'Are you sure?'}, method: :post, class: 'abstractor_group_add_link', remote: true
|
|
26
|
-
.clear
|
|
27
|
-
- ungrouped_subjects = about.class.abstractor_subjects(grouped: false, namespace_type: namespace_type, namespace_id: namespace_id)
|
|
28
|
-
- if ungrouped_subjects.any?
|
|
29
|
-
%fieldset
|
|
30
|
-
.column-3
|
|
31
|
-
%b Name
|
|
32
|
-
.column-5
|
|
33
|
-
%b Value
|
|
34
|
-
.column-5
|
|
35
|
-
%b Suggestions
|
|
36
|
-
.column-3
|
|
37
|
-
%b Status
|
|
38
|
-
%hr
|
|
39
|
-
- ungrouped_subjects.each do |ungrouped_subject|
|
|
40
|
-
- ungrouped_subject.abstractor_abstractions.not_deleted.where(:about_id => about.id).each do |abstractor_abstraction|
|
|
41
|
-
%div{ class: "abstractor_abstraction #{Abstractor::Utility.dehumanize(abstractor_abstraction.abstractor_subject.abstractor_abstraction_schema.predicate)}" }
|
|
42
|
-
= render :partial => 'abstractor/abstractor_abstractions/fields', :locals => {:abstractor_abstraction => abstractor_abstraction}
|
|
8
|
+
|
|
9
|
+
= render partial: 'abstractor/abstractor_abstractions/grouped_abstractions_list', locals: { about: about, namespace_type: namespace_type, namespace_id: namespace_id}
|
|
10
|
+
= render partial: 'abstractor/abstractor_abstractions/ungrouped_abstractions_list', locals: { about: about, namespace_type: namespace_type, namespace_id: namespace_id}
|
|
11
|
+
|
|
43
12
|
#abstractor_abstraction_dialog_tooltip
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
.abstractor_abstractions_ungrouped
|
|
2
|
+
- ungrouped_subjects = about.class.abstractor_subjects(grouped: false, namespace_type: namespace_type, namespace_id: namespace_id)
|
|
3
|
+
- if ungrouped_subjects.any?
|
|
4
|
+
%fieldset
|
|
5
|
+
.abstractor_abstractions_header
|
|
6
|
+
.abstractor_abstraction_schema_name
|
|
7
|
+
%b Name
|
|
8
|
+
.abstractor_abstraction_value
|
|
9
|
+
%b Value
|
|
10
|
+
.abstractor_suggestions
|
|
11
|
+
.abstractor_suggestion_values
|
|
12
|
+
%b Suggestions
|
|
13
|
+
.abstractor_suggestion_status
|
|
14
|
+
%b Status
|
|
15
|
+
.clear
|
|
16
|
+
.abstractor_abstractions_body
|
|
17
|
+
- ungrouped_subjects.each_with_index do |ungrouped_subject, index|
|
|
18
|
+
- abstractor_abstractions = ungrouped_subject.abstractor_abstractions.not_deleted.where(:about_id => about.id)
|
|
19
|
+
- abstractor_abstractions.each do |abstractor_abstraction|
|
|
20
|
+
%div{ class: "abstractor_abstraction #{Abstractor::Utility.dehumanize(abstractor_abstraction.abstractor_subject.abstractor_abstraction_schema.predicate)} #{'abstractor_bottom_border' if index < ungrouped_subjects.length - 1}" }
|
|
21
|
+
= render :partial => 'abstractor/abstractor_abstractions/fields', :locals => {:abstractor_abstraction => abstractor_abstraction}
|
|
22
|
+
.clear
|
|
@@ -3,10 +3,9 @@
|
|
|
3
3
|
|
|
4
4
|
.abstractor_abstraction_edit
|
|
5
5
|
= form_for abstractor_abstraction, url: Abstractor::UserInterface.abstractor_relative_path(abstractor.abstractor_abstraction_path(abstractor_abstraction)), method: :put, :remote => true do |f|
|
|
6
|
-
.
|
|
7
|
-
.
|
|
8
|
-
|
|
9
|
-
.column-7
|
|
6
|
+
.abstractor_abstraction_schema_name
|
|
7
|
+
= abstraction_schema.display_name
|
|
8
|
+
.abstraction_edit_abstraction_value
|
|
10
9
|
- case abstraction_schema.abstractor_object_type.value
|
|
11
10
|
- when 'date'
|
|
12
11
|
= f.text_field :value, class: 'abstractor_datepicker'
|
|
@@ -41,7 +40,7 @@
|
|
|
41
40
|
|
|
42
41
|
= f.check_box :unknown
|
|
43
42
|
= f.label :unknown, 'unknown'
|
|
44
|
-
.
|
|
43
|
+
.abstractor_suggestion_sources
|
|
45
44
|
- abstractor_abstraction = f.object
|
|
46
45
|
- abstraction_sources = abstractor_abstraction.abstractor_subject.abstractor_abstraction_sources.select { |s| s.abstractor_abstraction_source_type.name != 'indirect' }
|
|
47
46
|
- abstraction_sources.each do |abstraction_source|
|
|
@@ -53,7 +52,7 @@
|
|
|
53
52
|
%br
|
|
54
53
|
%div{ :id => "abstraction_text_#{dom_id}", :class => 'tooltip'}
|
|
55
54
|
= simple_format(source[:source_type].find(source[:source_id]).send(source[:source_method]))
|
|
56
|
-
.
|
|
55
|
+
.abstraction_edit_abstraction_actions
|
|
57
56
|
= f.submit 'Save'
|
|
58
57
|
= link_to 'Cancel', abstractor_abstraction, :remote => true
|
|
59
58
|
.clear
|
|
@@ -156,11 +156,10 @@ module Abstractor
|
|
|
156
156
|
at = nil
|
|
157
157
|
at = abstractor_text.downcase unless abstractor_text.blank?
|
|
158
158
|
target_abstractor_object_value_variants.each do |abstractor_object_value_variant|
|
|
159
|
-
re = Regexp.new(Regexp.escape(abstractor_object_value_variant.value.downcase))
|
|
159
|
+
re = Regexp.new('\b' + Regexp.escape(abstractor_object_value_variant.value.downcase) + '\b')
|
|
160
160
|
if re =~ at
|
|
161
161
|
abstractor_object_value_variants << abstractor_object_value_variant
|
|
162
162
|
abstractor_object_values << abstractor_object_value_variant.abstractor_object_value
|
|
163
|
-
target_abstractor_object_value_variants.delete_if { |aovv| aovv.abstractor_object_value.id == abstractor_object_value_variant.abstractor_object_value.id }
|
|
164
163
|
end
|
|
165
164
|
end
|
|
166
165
|
|
|
@@ -168,7 +167,7 @@ module Abstractor
|
|
|
168
167
|
target_abstractor_object_values = target_abstractor_object_values - abstractor_object_values
|
|
169
168
|
|
|
170
169
|
target_abstractor_object_values.each do |abstractor_object_value|
|
|
171
|
-
re = Regexp.new(Regexp.escape(abstractor_object_value.value.downcase))
|
|
170
|
+
re = Regexp.new('\b' + Regexp.escape(abstractor_object_value.value.downcase) + '\b')
|
|
172
171
|
if re =~ at
|
|
173
172
|
abstractor_object_values << abstractor_object_value
|
|
174
173
|
end
|
data/lib/abstractor/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: abstractor
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.0.
|
|
4
|
+
version: 4.0.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Michael Gurley, Yulia Bushmanova
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2014-
|
|
11
|
+
date: 2014-10-24 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rails
|
|
@@ -432,6 +432,7 @@ files:
|
|
|
432
432
|
- app/assets/images/abstractor/nu_logo.jpg
|
|
433
433
|
- app/assets/images/abstractor/nubic_logo.png
|
|
434
434
|
- app/assets/images/abstractor/page.png
|
|
435
|
+
- app/assets/images/abstractor/page_green.png
|
|
435
436
|
- app/assets/images/abstractor/rails.png
|
|
436
437
|
- app/assets/images/abstractor/robert_h_lurie.jpg
|
|
437
438
|
- app/assets/images/abstractor/show.png
|
|
@@ -474,8 +475,11 @@ files:
|
|
|
474
475
|
- app/models/abstractor/abstractor_suggestion_status.rb
|
|
475
476
|
- app/views/abstractor/abstractor_abstraction_groups/_form.html.haml
|
|
476
477
|
- app/views/abstractor/abstractor_abstraction_groups/edit.html.haml
|
|
478
|
+
- app/views/abstractor/abstractor_abstractions/_abstraction_history.html.haml
|
|
477
479
|
- app/views/abstractor/abstractor_abstractions/_fields.html.haml
|
|
480
|
+
- app/views/abstractor/abstractor_abstractions/_grouped_abstractions_list.html.haml
|
|
478
481
|
- app/views/abstractor/abstractor_abstractions/_list.html.haml
|
|
482
|
+
- app/views/abstractor/abstractor_abstractions/_ungrouped_abstractions_list.html.haml
|
|
479
483
|
- app/views/abstractor/abstractor_abstractions/edit.html.haml
|
|
480
484
|
- app/views/abstractor/abstractor_abstractions/show.html.haml
|
|
481
485
|
- app/views/abstractor/shared/_error_messages.html.haml
|
|
@@ -786,7 +790,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
786
790
|
version: '0'
|
|
787
791
|
requirements: []
|
|
788
792
|
rubyforge_project:
|
|
789
|
-
rubygems_version: 2.
|
|
793
|
+
rubygems_version: 2.4.2
|
|
790
794
|
signing_key:
|
|
791
795
|
specification_version: 4
|
|
792
796
|
summary: A Rails engine gem for deriving discrete data points from narrative text
|