blacklight 8.0.0.beta4 → 8.0.0.beta6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.rubocop_todo.yml +3 -1
- data/Gemfile +0 -4
- data/README.md +1 -1
- data/Rakefile +18 -0
- data/VERSION +1 -1
- data/app/assets/config/blacklight/manifest.js +3 -0
- data/app/assets/stylesheets/blacklight/_facets.scss +32 -5
- data/app/assets/stylesheets/blacklight/blacklight_defaults.scss +1 -1
- data/app/components/blacklight/document_component.rb +44 -18
- data/app/components/blacklight/document_metadata_component.html.erb +4 -2
- data/app/components/blacklight/document_metadata_component.rb +8 -2
- data/app/components/blacklight/metadata_field_layout_component.rb +7 -4
- data/app/components/blacklight/metadata_field_plain_text_layout_component.rb +17 -0
- data/app/components/blacklight/response/facet_group_component.html.erb +2 -1
- data/app/components/blacklight/response/sort_component.rb +1 -1
- data/app/components/blacklight/response/spellcheck_component.rb +1 -1
- data/app/components/blacklight/response/view_type_button_component.rb +1 -1
- data/app/components/blacklight/response/view_type_component.rb +1 -1
- data/app/components/blacklight/search_context/server_applied_params_component.html.erb +4 -0
- data/app/components/blacklight/search_context/server_applied_params_component.rb +13 -0
- data/app/components/blacklight/{search_context_component.html.erb → search_context/server_item_pagination_component.html.erb} +0 -0
- data/app/components/blacklight/search_context/server_item_pagination_component.rb +71 -0
- data/app/components/blacklight/system/dropdown_component.rb +1 -1
- data/app/components/blacklight/system/flash_message_component.rb +1 -1
- data/app/components/blacklight/system/modal_component.rb +1 -1
- data/app/controllers/concerns/blacklight/bookmarks.rb +1 -1
- data/app/controllers/concerns/blacklight/search_context.rb +46 -6
- data/app/helpers/blacklight/blacklight_helper_behavior.rb +0 -101
- data/app/helpers/blacklight/catalog_helper_behavior.rb +27 -54
- data/app/helpers/blacklight/component_helper_behavior.rb +0 -11
- data/app/helpers/blacklight/document_helper_behavior.rb +76 -0
- data/app/helpers/blacklight/layout_helper_behavior.rb +59 -0
- data/app/helpers/blacklight/url_helper_behavior.rb +11 -3
- data/app/javascript/blacklight/bookmark_toggle.js +8 -15
- data/app/javascript/blacklight/button_focus.js +10 -10
- data/app/javascript/blacklight/index.js +5 -5
- data/app/javascript/blacklight/modal.js +11 -16
- data/app/javascript/blacklight/search_context.js +51 -57
- data/app/models/concerns/blacklight/document.rb +11 -0
- data/app/models/record_mailer.rb +19 -15
- data/app/presenters/blacklight/document_presenter.rb +13 -11
- data/app/presenters/blacklight/index_presenter.rb +1 -1
- data/app/presenters/blacklight/rendering/abstract_step.rb +4 -0
- data/app/presenters/blacklight/rendering/join.rb +7 -1
- data/app/presenters/blacklight/rendering/link_to_facet.rb +1 -1
- data/app/presenters/blacklight/rendering/microdata.rb +1 -1
- data/app/services/blacklight/search_service.rb +2 -1
- data/app/views/catalog/_document.atom.builder +1 -1
- data/app/views/catalog/_document.html.erb +3 -8
- data/app/views/catalog/_document_list.html.erb +2 -1
- data/app/views/catalog/_show_main_content.html.erb +3 -9
- data/app/views/catalog/index.html.erb +3 -0
- data/app/views/catalog/show.html.erb +1 -6
- data/app/views/layouts/blacklight/base.html.erb +4 -4
- data/app/views/record_mailer/email_record.text.erb +4 -3
- data/app/views/record_mailer/sms_record.text.erb +4 -4
- data/blacklight.gemspec +1 -1
- data/config/importmap.rb +1 -1
- data/config/locales/blacklight.ar.yml +209 -232
- data/config/locales/blacklight.ca.yml +0 -6
- data/config/locales/blacklight.de.yml +197 -215
- data/config/locales/blacklight.en.yml +2 -6
- data/config/locales/blacklight.es.yml +196 -215
- data/config/locales/blacklight.fr.yml +196 -219
- data/config/locales/blacklight.hu.yml +193 -212
- data/config/locales/blacklight.it.yml +197 -215
- data/config/locales/blacklight.nl.yml +193 -212
- data/config/locales/blacklight.pt-BR.yml +195 -215
- data/config/locales/blacklight.sq.yml +193 -212
- data/config/locales/blacklight.zh.yml +194 -213
- data/lib/blacklight/configuration/session_tracking_config.rb +45 -0
- data/lib/blacklight/configuration/view_config.rb +0 -4
- data/lib/blacklight/configuration.rb +8 -4
- data/lib/blacklight/engine.rb +6 -7
- data/lib/blacklight/routes/searchable.rb +1 -0
- data/lib/generators/blacklight/assets/importmap_generator.rb +9 -2
- data/lib/generators/blacklight/assets/propshaft_generator.rb +11 -2
- data/lib/generators/blacklight/assets/sprockets_generator.rb +2 -0
- data/lib/generators/blacklight/templates/solr_document.rb +0 -6
- data/package.json +7 -4
- data/rollup.config.js +11 -1
- data/spec/components/blacklight/document_component_spec.rb +9 -4
- data/spec/components/blacklight/search_context/server_applied_params_component_spec.rb +29 -0
- data/spec/components/blacklight/{search_context_component_spec.rb → search_context/server_item_pagination_component_spec.rb} +15 -4
- data/spec/controllers/bookmarks_controller_spec.rb +1 -1
- data/spec/controllers/catalog_controller_spec.rb +17 -5
- data/spec/features/component_template_override_spec.rb +8 -0
- data/spec/features/modal_spec.rb +12 -0
- data/spec/features/sitelinks_search_box_spec.rb +13 -0
- data/spec/helpers/blacklight/url_helper_behavior_spec.rb +1 -1
- data/spec/helpers/blacklight_helper_spec.rb +0 -56
- data/spec/helpers/catalog_helper_spec.rb +56 -0
- data/spec/lib/blacklight/configuration/session_tracking_config_spec.rb +38 -0
- data/spec/models/blacklight/icon_spec.rb +0 -2
- data/spec/models/record_mailer_spec.rb +36 -23
- data/spec/presenters/blacklight/document_presenter_spec.rb +1 -0
- data/spec/presenters/blacklight/field_presenter_spec.rb +2 -2
- data/spec/presenters/blacklight/index_presenter_spec.rb +1 -0
- data/spec/presenters/blacklight/show_presenter_spec.rb +1 -0
- data/spec/presenters/pipeline_spec.rb +13 -2
- data/spec/routing/catalog_routing_spec.rb +4 -0
- data/spec/spec_helper.rb +1 -1
- data/spec/support/view_component_test_helpers.rb +21 -0
- data/spec/test_app_templates/Gemfile.extra +4 -0
- data/spec/test_app_templates/lib/generators/test_app_generator.rb +8 -0
- data/spec/views/catalog/_document.html.erb_spec.rb +22 -1
- data/spec/views/catalog/_document_list.html.erb_spec.rb +7 -2
- data/tasks/blacklight.rake +1 -1
- metadata +24 -20
- data/app/assets/javascripts/blacklight/blacklight.esm.js +0 -390
- data/app/assets/javascripts/blacklight/blacklight.esm.js.map +0 -1
- data/app/assets/javascripts/blacklight/blacklight.js +0 -398
- data/app/assets/javascripts/blacklight/blacklight.js.map +0 -1
- data/app/components/blacklight/search_context_component.rb +0 -68
- data/app/models/concerns/blacklight/document/email.rb +0 -27
- data/app/models/concerns/blacklight/document/sms.rb +0 -25
- data/spec/features/sitelinks_search_box.rb +0 -13
- data/spec/models/blacklight/document/email_spec.rb +0 -57
- data/spec/models/blacklight/document/sms_spec.rb +0 -58
- data/spec/support/view_component_capybara_test_helpers.rb +0 -8
@@ -1,240 +1,221 @@
|
|
1
|
+
---
|
1
2
|
zh:
|
2
|
-
views:
|
3
|
-
pagination:
|
4
|
-
first: '« 首页'
|
5
|
-
last: '末页 »'
|
6
|
-
previous: '« 上一页'
|
7
|
-
next: '下一页 »'
|
8
|
-
truncate: '…'
|
9
|
-
aria:
|
10
|
-
container_label: 分页链接
|
11
|
-
current_page: 当前页面,页面%{page}
|
12
|
-
go_to_page: 前往页面%{page}
|
13
|
-
go_to_previous_page: 转到上一页
|
14
|
-
go_to_next_page: 转到下一页
|
15
|
-
go_to_first_page: 转到第一页
|
16
|
-
go_to_last_page: 转到最后一页
|
17
|
-
|
18
|
-
pagination_compact:
|
19
|
-
previous: '« 上一页'
|
20
|
-
next: '下一页 »'
|
21
|
-
|
22
3
|
blacklight:
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
search_field: '转到搜索'
|
28
|
-
first_result: '转到第一个搜索结果'
|
29
|
-
header_links:
|
30
|
-
login: '登陆'
|
31
|
-
logout: '注销'
|
32
|
-
bookmarks: '书签'
|
33
|
-
search_history: '搜索历史'
|
34
|
-
|
35
|
-
welcome: '欢迎!'
|
36
|
-
and: '和'
|
37
|
-
or: '或'
|
38
|
-
|
39
|
-
modal:
|
40
|
-
close: "关闭"
|
41
|
-
|
4
|
+
and: 和
|
5
|
+
application_name: Blacklight
|
6
|
+
back_to_bookmarks: 返回书签页面
|
7
|
+
back_to_search: 返回搜索页面
|
42
8
|
bookmarks:
|
43
|
-
title: '书签'
|
44
|
-
page_title: '书签 - %{application_name}'
|
45
|
-
no_bookmarks: '你还没有任何书签'
|
46
9
|
add:
|
47
|
-
button:
|
10
|
+
button: 书签
|
11
|
+
failure: 抱歉,保存书签时出错。
|
48
12
|
success:
|
49
|
-
one:
|
50
|
-
other:
|
51
|
-
failure: '抱歉,保存书签时出错。'
|
52
|
-
remove:
|
53
|
-
button: '删除书签'
|
54
|
-
success: '成功删除书签。'
|
55
|
-
failure: '抱歉,删除书签时出错。'
|
56
|
-
action_confirm: '删除这个书签?'
|
57
|
-
clear:
|
58
|
-
action_title: '清除书签'
|
59
|
-
action_confirm: '清除所有书签?'
|
60
|
-
success: '已经清除了所有书签。'
|
61
|
-
failure: '抱歉,清除书签时出错。'
|
62
|
-
need_login: '登陆后才能访问你的书签功能。'
|
63
|
-
list_title: '你的书签'
|
64
|
-
delete: '删除'
|
65
|
-
|
66
|
-
search_history:
|
13
|
+
one: 成功添加书签。
|
14
|
+
other: 成功添加书签。
|
67
15
|
clear:
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
sms: '发送短信'
|
84
|
-
clear: '清除'
|
85
|
-
|
16
|
+
action_confirm: 清除所有书签?
|
17
|
+
action_title: 清除书签
|
18
|
+
failure: 抱歉,清除书签时出错。
|
19
|
+
success: 已经清除了所有书签。
|
20
|
+
delete: 删除
|
21
|
+
list_title: 你的书签
|
22
|
+
need_login: 登陆后才能访问你的书签功能。
|
23
|
+
no_bookmarks: 你还没有任何书签
|
24
|
+
page_title: 书签 - %{application_name}
|
25
|
+
remove:
|
26
|
+
action_confirm: 删除这个书签?
|
27
|
+
button: 删除书签
|
28
|
+
failure: 抱歉,删除书签时出错。
|
29
|
+
success: 成功删除书签。
|
30
|
+
title: 书签
|
86
31
|
citation:
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
32
|
+
apa: APA
|
33
|
+
chicago: Chicago
|
34
|
+
mla: MLA
|
35
|
+
did_you_mean: 你是要输入: %{options} 吗?
|
91
36
|
email:
|
37
|
+
errors:
|
38
|
+
to:
|
39
|
+
blank: 请输入电子邮件接收人才能发送
|
40
|
+
invalid: 请输入合法电子邮件地址
|
92
41
|
form:
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
42
|
+
message: 正文:
|
43
|
+
submit: 发送
|
44
|
+
title: 通过电子邮件发送
|
45
|
+
to: 电子邮件:
|
46
|
+
success: 已发送电子邮件
|
97
47
|
text:
|
98
|
-
default_title:
|
99
|
-
|
100
|
-
author: '作者: %{value}'
|
101
|
-
format: '格式: %{value}'
|
102
|
-
language: '语言: %{value}'
|
48
|
+
default_title: 无
|
49
|
+
message: 正文: %{message}
|
103
50
|
subject:
|
104
51
|
one: '记录: %{title}'
|
105
|
-
other:
|
52
|
+
other: 记录
|
106
53
|
url: '网址: %{url}'
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
text:
|
123
|
-
title: '%{value}'
|
124
|
-
author: ' 来自 %{value}'
|
125
|
-
url: '链接: %{url}'
|
126
|
-
success: "已发送短信"
|
127
|
-
errors:
|
128
|
-
to:
|
129
|
-
invalid: '请输入10位正确电话号码'
|
130
|
-
blank: "请输入接收人电话号码才能发送短信"
|
131
|
-
carrier:
|
132
|
-
blank: '你必须选择一个运营商'
|
133
|
-
invalid: "你必须输入一个运营商"
|
134
|
-
|
135
|
-
back_to_search: '返回搜索页面'
|
136
|
-
back_to_bookmarks: '返回书签页面'
|
137
|
-
|
54
|
+
entry_name:
|
55
|
+
default: 条目
|
56
|
+
grouped:
|
57
|
+
default: 分组结果
|
58
|
+
header_links:
|
59
|
+
bookmarks: 书签
|
60
|
+
login: 登陆
|
61
|
+
logout: 注销
|
62
|
+
search_history: 搜索历史
|
63
|
+
main:
|
64
|
+
aria:
|
65
|
+
main_container: 主要内容
|
66
|
+
modal:
|
67
|
+
close: 关闭
|
68
|
+
or: 或
|
138
69
|
search:
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
search_constraints_header: '搜索条件'
|
145
|
-
search_results: '搜索结果'
|
146
|
-
errors:
|
147
|
-
invalid_solr_id: "抱歉,你要找的结果不存在。"
|
148
|
-
per_page:
|
149
|
-
label: '%{count}<span class="sr-only visually-hidden"> 每页</span>'
|
150
|
-
button_label: '%{count} 每页' # TODO: Remove during major release
|
151
|
-
button_label_html: '%{count}<span class="d-none d-sm-inline"> 每页</span>'
|
152
|
-
title: '每页显示结果数'
|
153
|
-
submit: '更新'
|
154
|
-
aria_label: '结果导航'
|
155
|
-
sort:
|
156
|
-
label: '按 %{field} 排序' # TODO: Remove during major release
|
157
|
-
label_html: '<span class="d-none d-sm-inline">按 %{field} </span>排序'
|
158
|
-
submit: '排序'
|
159
|
-
form:
|
160
|
-
search_field:
|
161
|
-
label: '搜索字段'
|
162
|
-
title: '设定的搜索选项'
|
163
|
-
post_label: '为'
|
164
|
-
search:
|
165
|
-
label: '搜索'
|
166
|
-
placeholder: '搜索...'
|
167
|
-
submit: '搜索'
|
168
|
-
pagination:
|
169
|
-
title: '搜索结果导航'
|
170
|
-
pagination_info:
|
171
|
-
no_items_found: '没有找到 %{entry_name} '
|
172
|
-
single_item_found: '找到 <strong>1</strong> %{entry_name}'
|
173
|
-
pages:
|
174
|
-
one: '<strong>%{start_num}</strong> - <strong>%{end_num}</strong> 共 <strong>%{total_num}</strong>'
|
175
|
-
other: '<strong>%{start_num}</strong> - <strong>%{end_num}</strong> 共 <strong>%{total_num}</strong>'
|
176
|
-
entry_pagination_info:
|
177
|
-
one: '<strong>1 / 1</strong>'
|
178
|
-
other: '<strong>%{current}</strong> / <strong>%{total}</strong>'
|
70
|
+
atom_feed: 搜索结果Atom
|
71
|
+
bookmarks:
|
72
|
+
absent: 加入书签
|
73
|
+
inprogress: 保存...
|
74
|
+
present: 在书签中
|
179
75
|
documents:
|
180
76
|
aria:
|
181
|
-
|
182
|
-
|
183
|
-
counter:
|
77
|
+
limit_search: 限定搜索
|
78
|
+
search_results: 搜索结果
|
79
|
+
counter: "%{counter}. "
|
80
|
+
entry_pagination_info:
|
81
|
+
one: "<strong>1 / 1</strong>"
|
82
|
+
other: "<strong>%{current}</strong> / <strong>%{total}</strong>"
|
83
|
+
errors:
|
84
|
+
invalid_solr_id: 抱歉,你要找的结果不存在。
|
184
85
|
facets:
|
185
|
-
|
186
|
-
clear:
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
more_html: '更多 <span class="sr-only visually-hidden">%{field_name}</span> »'
|
193
|
-
selected:
|
194
|
-
remove: '[删除]'
|
86
|
+
all: 皆
|
87
|
+
clear: 清除搜索条件
|
88
|
+
count: "%{number}"
|
89
|
+
group:
|
90
|
+
close: 隐藏方面
|
91
|
+
open: 显示方面
|
92
|
+
toggle: 更多 »
|
195
93
|
missing: "[未找到]"
|
94
|
+
more_html: 更多 <span class="sr-only visually-hidden">%{field_name}</span> »
|
196
95
|
pivot:
|
197
|
-
show: 打开
|
198
96
|
hide: 关
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
97
|
+
show: 打开
|
98
|
+
selected:
|
99
|
+
remove: "[删除]"
|
100
|
+
sort:
|
101
|
+
count: 按数量排序
|
102
|
+
index: 按字母排序
|
103
|
+
title: 限定搜索
|
203
104
|
filters:
|
204
|
-
|
205
|
-
label: '%{label}:'
|
105
|
+
label: "%{label}:"
|
206
106
|
remove:
|
207
|
-
value: '删除限定条件 %{value}'
|
208
107
|
label_value: '删除限定条件 %{label}: %{value}'
|
209
|
-
|
108
|
+
value: 删除限定条件 %{value}
|
109
|
+
title: 你在搜索:
|
110
|
+
form:
|
111
|
+
search:
|
112
|
+
label: 搜索
|
113
|
+
placeholder: 搜索...
|
114
|
+
search_field:
|
115
|
+
label: 搜索字段
|
116
|
+
post_label: 为
|
117
|
+
title: 设定的搜索选项
|
118
|
+
submit: 搜索
|
119
|
+
group:
|
120
|
+
more: 更多 »
|
121
|
+
header: 搜
|
210
122
|
index:
|
211
|
-
label:
|
123
|
+
label: "%{label}:"
|
124
|
+
page_title:
|
125
|
+
constraint: "%{label}: %{value}"
|
126
|
+
many_constraint_values: "%{values} 已选"
|
127
|
+
title: "%{constraints} - %{application_name} 搜索结果"
|
128
|
+
pagination:
|
129
|
+
title: 搜索结果导航
|
130
|
+
pagination_info:
|
131
|
+
no_items_found: '没有找到 %{entry_name} '
|
132
|
+
pages:
|
133
|
+
one: "<strong>%{start_num}</strong> - <strong>%{end_num}</strong> 共 <strong>%{total_num}</strong>"
|
134
|
+
other: "<strong>%{start_num}</strong> - <strong>%{end_num}</strong> 共 <strong>%{total_num}</strong>"
|
135
|
+
single_item_found: 找到 <strong>1</strong> %{entry_name}
|
136
|
+
per_page:
|
137
|
+
aria_label: 结果导航
|
138
|
+
button_label: "%{count} 每页"
|
139
|
+
button_label_html: '%{count}<span class="d-none d-sm-inline"> 每页</span>'
|
140
|
+
label: '%{count}<span class="sr-only visually-hidden"> 每页</span>'
|
141
|
+
submit: 更新
|
142
|
+
title: 每页显示结果数
|
143
|
+
rss_feed: 搜索结果RSS
|
144
|
+
search_constraints_header: 搜索条件
|
145
|
+
search_results: 搜索结果
|
212
146
|
show:
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
inprogress: "保存..."
|
221
|
-
zero_results:
|
222
|
-
title: "未找到任何结果"
|
223
|
-
modify_search: "请更改你的搜索条件"
|
224
|
-
use_fewer_keywords: "使用更少的搜索条件,使用左边的链接来筛选搜索结果。"
|
225
|
-
search_fields: "你在搜索如下字段 %{search_fields}"
|
226
|
-
search_everything: "试一试搜索所有记录"
|
227
|
-
view_title: "以如下方式察看搜索结果: "
|
147
|
+
label: "%{label}:"
|
148
|
+
title: "%{document_title} - %{application_name}"
|
149
|
+
sort:
|
150
|
+
label: 按 %{field} 排序
|
151
|
+
label_html: <span class="d-none d-sm-inline">按 %{field} </span>排序
|
152
|
+
submit: 排序
|
153
|
+
start_over: 重新开始
|
228
154
|
view:
|
229
|
-
list:
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
155
|
+
list: 列表
|
156
|
+
view_title: '以如下方式察看搜索结果: '
|
157
|
+
zero_results:
|
158
|
+
modify_search: 请更改你的搜索条件
|
159
|
+
search_everything: 试一试搜索所有记录
|
160
|
+
search_fields: 你在搜索如下字段 %{search_fields}
|
161
|
+
title: 未找到任何结果
|
162
|
+
use_fewer_keywords: 使用更少的搜索条件,使用左边的链接来筛选搜索结果。
|
163
|
+
search_history:
|
164
|
+
clear:
|
165
|
+
action_confirm: 清除搜索历史?
|
166
|
+
action_title: 清除搜索历史
|
167
|
+
failure: 清除搜索历史时出错。
|
168
|
+
success: 已经清除搜索历史。
|
169
|
+
forget: 去除
|
170
|
+
no_history: 你没有任何搜索历史
|
171
|
+
page_title: 搜索历史 - %{application_name}
|
172
|
+
recent: 你最近搜索历史
|
173
|
+
save: 保存
|
174
|
+
title: ''
|
175
|
+
skip_links:
|
176
|
+
first_result: 转到第一个搜索结果
|
177
|
+
label: 跳过链接
|
178
|
+
main_content: 转到主要内容
|
179
|
+
search_field: 转到搜索
|
180
|
+
sms:
|
181
|
+
errors:
|
182
|
+
carrier:
|
183
|
+
blank: 你必须选择一个运营商
|
184
|
+
invalid: 你必须输入一个运营商
|
185
|
+
to:
|
186
|
+
blank: 请输入接收人电话号码才能发送短信
|
187
|
+
invalid: 请输入10位正确电话号码
|
188
|
+
form:
|
189
|
+
carrier: 运营商
|
190
|
+
carrier_prompt: 请选择运营商
|
191
|
+
submit: 发送
|
192
|
+
title: 通过短信发送
|
193
|
+
to: '电话号码:'
|
194
|
+
success: 已发送短信
|
195
|
+
text:
|
196
|
+
url: '链接: %{url}'
|
197
|
+
tools:
|
198
|
+
citation: 引用
|
199
|
+
clear: 清除
|
200
|
+
email: 电子邮件
|
201
|
+
sms: 发送短信
|
202
|
+
title: 工具
|
203
|
+
welcome: 欢迎!
|
204
|
+
views:
|
205
|
+
pagination:
|
239
206
|
aria:
|
240
|
-
|
207
|
+
container_label: 分页链接
|
208
|
+
current_page: 当前页面,页面%{page}
|
209
|
+
go_to_first_page: 转到第一页
|
210
|
+
go_to_last_page: 转到最后一页
|
211
|
+
go_to_next_page: 转到下一页
|
212
|
+
go_to_page: 前往页面%{page}
|
213
|
+
go_to_previous_page: 转到上一页
|
214
|
+
first: "« 首页"
|
215
|
+
last: 末页 »
|
216
|
+
next: 下一页 »
|
217
|
+
previous: "« 上一页"
|
218
|
+
truncate: "…"
|
219
|
+
pagination_compact:
|
220
|
+
next: 下一页 »
|
221
|
+
previous: "« 上一页"
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class Blacklight::Configuration
|
4
|
+
class SessionTrackingConfig < Blacklight::OpenStructWithHashAccess
|
5
|
+
# @!attribute storage
|
6
|
+
# @return [String, FalseClass] 'server': use server-side tracking; 'client': delegate search tracking and prev/next navigation to client
|
7
|
+
# @!attribute applied_params_component
|
8
|
+
# @return [Class] component class used to render a facet group
|
9
|
+
# @!attribute item_pagination_component
|
10
|
+
# @return [Class] component class used to render the constraints
|
11
|
+
|
12
|
+
def initialize(property_hash = {})
|
13
|
+
super({ storage: 'server' }.merge(property_hash))
|
14
|
+
end
|
15
|
+
|
16
|
+
def applied_params_component
|
17
|
+
super || default_applied_params_component(storage)
|
18
|
+
end
|
19
|
+
|
20
|
+
def item_pagination_component
|
21
|
+
super || default_item_pagination_component(storage)
|
22
|
+
end
|
23
|
+
|
24
|
+
def url_helper
|
25
|
+
super || default_url_helper(storage)
|
26
|
+
end
|
27
|
+
|
28
|
+
def default_applied_params_component(storage)
|
29
|
+
return Blacklight::SearchContext::ServerAppliedParamsComponent if storage == 'server'
|
30
|
+
|
31
|
+
nil
|
32
|
+
end
|
33
|
+
|
34
|
+
def default_item_pagination_component(storage)
|
35
|
+
return Blacklight::SearchContext::ServerItemPaginationComponent if storage == 'server'
|
36
|
+
|
37
|
+
nil
|
38
|
+
end
|
39
|
+
|
40
|
+
# extension point for alternative storage types
|
41
|
+
def default_url_helper(_storage)
|
42
|
+
nil
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -26,10 +26,6 @@ class Blacklight::Configuration
|
|
26
26
|
# @return [Class] component class used to render the search bar
|
27
27
|
# @!attribute search_header_component
|
28
28
|
# @return [Class] component class used to render the header above the documents
|
29
|
-
def search_bar_presenter_class
|
30
|
-
super || Blacklight::SearchBarPresenter
|
31
|
-
end
|
32
|
-
|
33
29
|
def display_label(**options)
|
34
30
|
I18n.t(
|
35
31
|
:"blacklight.search.view_title.#{key}",
|
@@ -20,6 +20,7 @@ module Blacklight
|
|
20
20
|
autoload :DisplayField
|
21
21
|
autoload :IndexField
|
22
22
|
autoload :ShowField
|
23
|
+
autoload :SessionTrackingConfig
|
23
24
|
end
|
24
25
|
|
25
26
|
class_attribute :default_values, default: {}
|
@@ -200,7 +201,9 @@ module Blacklight
|
|
200
201
|
ViewConfig,
|
201
202
|
default: { top_level_config: :index },
|
202
203
|
show: { top_level_config: :show },
|
203
|
-
citation: { parent_config: :show }
|
204
|
+
citation: { parent_config: :show },
|
205
|
+
email_record: { top_level_config: :email },
|
206
|
+
sms_record: { top_level_config: :sms }
|
204
207
|
)
|
205
208
|
|
206
209
|
# @!attribute sms
|
@@ -279,9 +282,10 @@ module Blacklight
|
|
279
282
|
property :raw_endpoint, default: OpenStructWithHashAccess.new(enabled: false)
|
280
283
|
|
281
284
|
# @!attribute track_search_session
|
282
|
-
#
|
283
|
-
# @
|
284
|
-
|
285
|
+
# { storage: false } value: do no tracking
|
286
|
+
# @since v8.0.0
|
287
|
+
# @return [Blacklight::Configuration::SessionTrackingConfig]
|
288
|
+
property :track_search_session, default: Blacklight::Configuration::SessionTrackingConfig.new
|
285
289
|
|
286
290
|
# @!attribute advanced_search
|
287
291
|
# @since v7.15.0
|
data/lib/blacklight/engine.rb
CHANGED
@@ -19,15 +19,14 @@ module Blacklight
|
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
|
-
|
23
|
-
# rubocop:disable Lint/ConstantDefinitionInBlock
|
24
|
-
PRECOMPILE_ASSETS = %w(favicon.ico blacklight/blacklight.js blacklight/blacklight.js.map blacklight/blacklight.esm.js blacklight/blacklight.esm.js.map).freeze
|
25
|
-
# rubocop:enable Lint/ConstantDefinitionInBlock
|
22
|
+
PRECOMPILE_ASSETS = %w(favicon.ico blacklight/blacklight.js blacklight/blacklight.js.map blacklight/blacklight.esm.js blacklight/blacklight.esm.js.map).freeze
|
26
23
|
|
24
|
+
initializer "blacklight.assets.precompile" do |app|
|
27
25
|
# When Rails has been generated in API mode, it does not have sprockets available
|
28
|
-
|
29
|
-
|
30
|
-
|
26
|
+
next unless app.config.respond_to?(:assets)
|
27
|
+
|
28
|
+
app.config.assets.paths << Engine.root.join("app/javascript")
|
29
|
+
app.config.assets.precompile += Blacklight::Engine::PRECOMPILE_ASSETS
|
31
30
|
end
|
32
31
|
|
33
32
|
initializer "blacklight.importmap", before: "importmap" do |app|
|
@@ -10,6 +10,7 @@ module Blacklight
|
|
10
10
|
def call(mapper, _options = {})
|
11
11
|
mapper.match '/', action: 'index', as: 'search', via: [:get, :post]
|
12
12
|
mapper.get '/advanced', action: 'advanced_search', as: 'advanced_search'
|
13
|
+
mapper.get '/page_links', action: 'page_links', as: 'page_links'
|
13
14
|
|
14
15
|
mapper.post ":id/track", action: 'track', as: 'track'
|
15
16
|
mapper.get ":id/raw", action: 'raw', as: 'raw', defaults: { format: 'json' }
|
@@ -14,9 +14,15 @@ module Blacklight
|
|
14
14
|
def import_javascript_assets
|
15
15
|
append_to_file 'config/importmap.rb' do
|
16
16
|
<<~CONTENT
|
17
|
+
pin "@github/auto-complete-element", to: "https://cdn.skypack.dev/@github/auto-complete-element"
|
17
18
|
pin "@popperjs/core", to: "https://ga.jspm.io/npm:@popperjs/core@2.11.6/dist/umd/popper.min.js"
|
18
19
|
pin "bootstrap", to: "https://ga.jspm.io/npm:bootstrap@#{(defined?(Bootstrap) && Bootstrap::VERSION) || '5.2.2'}/dist/js/bootstrap.js"
|
19
|
-
|
20
|
+
CONTENT
|
21
|
+
end
|
22
|
+
|
23
|
+
append_to_file 'app/assets/config/manifest.js' do
|
24
|
+
<<~CONTENT
|
25
|
+
//= link blacklight/manifest.js
|
20
26
|
CONTENT
|
21
27
|
end
|
22
28
|
end
|
@@ -25,7 +31,8 @@ module Blacklight
|
|
25
31
|
append_to_file 'app/javascript/application.js' do
|
26
32
|
<<~CONTENT
|
27
33
|
import bootstrap from "bootstrap"
|
28
|
-
import "
|
34
|
+
import githubAutoCompleteElement from "@github/auto-complete-element"
|
35
|
+
import Blacklight from "blacklight"
|
29
36
|
CONTENT
|
30
37
|
end
|
31
38
|
end
|
@@ -4,7 +4,15 @@ module Blacklight
|
|
4
4
|
module Assets
|
5
5
|
class PropshaftGenerator < Rails::Generators::Base
|
6
6
|
def add_package
|
7
|
-
|
7
|
+
if ENV['CI']
|
8
|
+
run "yarn add blacklight-frontend:#{Blacklight::Engine.root}"
|
9
|
+
else
|
10
|
+
run 'yarn add blacklight-frontend'
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def add_third_party_packages
|
15
|
+
run 'yarn add @github/auto-complete-element'
|
8
16
|
end
|
9
17
|
|
10
18
|
def add_package_assets
|
@@ -16,7 +24,8 @@ module Blacklight
|
|
16
24
|
|
17
25
|
append_to_file 'app/javascript/application.js' do
|
18
26
|
<<~CONTENT
|
19
|
-
import Blacklight from "blacklight-frontend
|
27
|
+
import Blacklight from "blacklight-frontend";
|
28
|
+
import githubAutoCompleteElement from "@github/auto-complete-element";
|
20
29
|
CONTENT
|
21
30
|
end
|
22
31
|
end
|
@@ -18,6 +18,7 @@ module Blacklight
|
|
18
18
|
return if Rails.version > '7' || Sprockets::VERSION < '4'
|
19
19
|
|
20
20
|
append_to_file 'app/assets/config/manifest.js', "\n//= link application.js"
|
21
|
+
append_to_file 'app/assets/config/manifest.js', "\n//= link blacklight/manifest.js"
|
21
22
|
empty_directory 'app/assets/images'
|
22
23
|
end
|
23
24
|
|
@@ -42,6 +43,7 @@ module Blacklight
|
|
42
43
|
// Required by Blacklight
|
43
44
|
//= require popper
|
44
45
|
//= require bootstrap
|
46
|
+
//= require blacklight/blacklight
|
45
47
|
CONTENT
|
46
48
|
end
|
47
49
|
end
|
@@ -6,12 +6,6 @@ class <%= model_name.classify %>
|
|
6
6
|
|
7
7
|
# self.unique_key = 'id'
|
8
8
|
|
9
|
-
# Email uses the semantic field mappings below to generate the body of an email.
|
10
|
-
SolrDocument.use_extension(Blacklight::Document::Email)
|
11
|
-
|
12
|
-
# SMS uses the semantic field mappings below to generate the body of an SMS email.
|
13
|
-
SolrDocument.use_extension(Blacklight::Document::Sms)
|
14
|
-
|
15
9
|
# DublinCore uses the semantic field mappings below to assemble an OAI-compliant Dublin Core document
|
16
10
|
# Semantic mappings of solr stored fields. Fields may be multi or
|
17
11
|
# single valued. See Blacklight::Document::SemanticFields#field_semantics
|