enju_leaf 1.1.0.rc20 → 1.1.0.rc21

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.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/unknown_resource.png +0 -0
  3. data/app/controllers/my_accounts_controller.rb +0 -11
  4. data/app/controllers/page_controller.rb +12 -0
  5. data/app/controllers/profiles_controller.rb +23 -5
  6. data/app/controllers/user_import_files_controller.rb +1 -0
  7. data/app/helpers/page_helper.rb +14 -0
  8. data/app/models/profile.rb +7 -1
  9. data/app/models/user_export_file.rb +1 -0
  10. data/app/models/user_import_file.rb +20 -10
  11. data/app/views/page/_menu.html.erb +40 -51
  12. data/app/views/page/advanced_search.html.erb +14 -3
  13. data/app/views/page/configuration.html.erb +3 -0
  14. data/app/views/page/statistics.html.erb +0 -14
  15. data/app/views/page/system_information.html.erb +13 -1
  16. data/app/views/profiles/_edit_profile.html.erb +2 -2
  17. data/app/views/user_import_files/_results.html.erb +22 -0
  18. data/app/views/user_import_files/show.html.erb +8 -12
  19. data/app/views/user_import_results/_list.html.erb +22 -0
  20. data/app/views/user_import_results/_list_lines.html.erb +24 -0
  21. data/app/views/user_import_results/index.html.erb +5 -30
  22. data/app/views/user_import_results/show.html.erb +1 -1
  23. data/config/locales/devise.ja.yml +3 -3
  24. data/config/locales/translation_en.yml +5 -1
  25. data/config/locales/translation_ja.yml +5 -1
  26. data/lib/enju_leaf/calculate_stat.rb +3 -0
  27. data/lib/enju_leaf/engine.rb +0 -1
  28. data/lib/enju_leaf/helper.rb +22 -7
  29. data/lib/enju_leaf/import_file.rb +4 -0
  30. data/lib/enju_leaf/master_model.rb +1 -0
  31. data/lib/enju_leaf/user.rb +52 -20
  32. data/lib/enju_leaf/version.rb +1 -1
  33. data/lib/generators/enju_leaf/setup/setup_generator.rb +1 -1
  34. data/spec/controllers/my_accounts_controller_spec.rb +2 -2
  35. data/spec/controllers/profiles_controller_spec.rb +19 -5
  36. data/spec/controllers/user_import_files_controller_spec.rb +8 -1
  37. data/spec/controllers/user_import_results_controller_spec.rb +21 -1
  38. data/spec/dummy/app/assets/javascripts/application.js +4 -6
  39. data/spec/dummy/config/initializers/kaminari_config.rb +10 -0
  40. data/spec/fixtures/user_import_files.yml +2 -0
  41. data/spec/models/user_import_file_spec.rb +32 -24
  42. data/spec/models/user_spec.rb +29 -1
  43. data/spec/rails_helper.rb +82 -0
  44. data/spec/spec_helper.rb +86 -51
  45. data/spec/views/page/configuration.html.erb_spec.rb +1 -1
  46. data/spec/views/user_import_results/index.html.erb_spec.rb +32 -0
  47. metadata +20 -11
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3273d500f23e9cc91fa3e7f5bb4326b487f82ece
4
- data.tar.gz: a85ea982da6df34bc0ec54854af71dbd878e271e
3
+ metadata.gz: 814060a69ff014c4f6109974273e83e7afa7bda6
4
+ data.tar.gz: a69228eb3e3734622b2d34c7b2c47feb2fae2268
5
5
  SHA512:
6
- metadata.gz: 3e49feb51fe8ec0fb8f99c5585f3392b0ec50e96bbee9b9b9593c6ebf0c7cbfa25182a27cc33ab62f9a64b05407e27c286492cfa1b36d3eb6df1c5b0f586e1e9
7
- data.tar.gz: 7da97d2101393d48658fc87f380975b90087812e5df3a8075a84aa3325a655d51c185af9d16795d726383212cebfc31fcc10a38b91da719259970b47c51756ee
6
+ metadata.gz: 8fa95c3a8e7b904e9b949752723aa12d33b0035e7f4f99997c1c5775a914462293aa89ca84c16792798b80681964a4471b71c7c73b5fb79a102074c2ef94e172
7
+ data.tar.gz: c2d52a9face2180054eff01c1d85ee74a4ae3fb7b9c94dfda0662bf29cd4d3e0faea9cd5a0040989adbe2e0ef976538b0cd49700e5de38665c51bae11aab265f
Binary file
@@ -12,17 +12,6 @@ class MyAccountsController < ApplicationController
12
12
 
13
13
  def edit
14
14
  @profile = current_user.profile
15
- if defined?(EnjuCirculation)
16
- if params[:mode] == 'feed_token'
17
- if params[:disable] == 'true'
18
- @profile.delete_checkout_icalendar_token
19
- else
20
- @profile.reset_checkout_icalendar_token
21
- end
22
- render partial: 'feed_token'
23
- return
24
- end
25
- end
26
15
  prepare_options
27
16
  end
28
17
 
@@ -5,6 +5,7 @@ class PageController < ApplicationController
5
5
  before_filter :check_librarian, except: [:index, :advanced_search, :about, :add_on, :msie_accelerator, :opensearch, :statistics, :routing_error]
6
6
  helper_method :get_libraries
7
7
 
8
+ # トップページを表示します。
8
9
  def index
9
10
  if user_signed_in?
10
11
  session[:user_return_to] = nil
@@ -42,51 +43,62 @@ class PageController < ApplicationController
42
43
  end
43
44
  end
44
45
 
46
+ # Internet Explorer用のアクセラレータを表示します。
45
47
  def msie_accelerator
46
48
  respond_to do |format|
47
49
  format.xml { render layout: false }
48
50
  end
49
51
  end
50
52
 
53
+ # OpenSearch Descriptionファイルを表示します。
51
54
  def opensearch
52
55
  respond_to do |format|
53
56
  format.xml { render layout: false }
54
57
  end
55
58
  end
56
59
 
60
+ # 詳細検索画面を表示します。
57
61
  def advanced_search
58
62
  get_libraries
59
63
  @title = t('page.advanced_search')
60
64
  end
61
65
 
66
+ # 統計画面を表示します。
62
67
  def statistics
63
68
  @title = t('page.statistics')
64
69
  end
65
70
 
71
+ # システム設定画面を表示します。
66
72
  def configuration
67
73
  @title = t('page.configuration')
68
74
  end
69
75
 
76
+ # システム情報画面を表示します。
70
77
  def system_information
71
78
  @specs = Bundler.load.specs.sort!
72
79
  end
73
80
 
81
+ # インポート画面を表示します。
74
82
  def import
75
83
  @title = t('page.import')
76
84
  end
77
85
 
86
+ # エクスポート画面を表示します。
78
87
  def export
79
88
  @title = t('page.export')
80
89
  end
81
90
 
91
+ # 「このシステムについて」を表示します。
82
92
  def about
83
93
  @title = t('page.about_this_system')
84
94
  end
85
95
 
96
+ # 「アドオン」を表示します。
86
97
  def add_on
87
98
  @title = t('page.add_on')
88
99
  end
89
100
 
101
+ # ルーティングエラー画面を表示します。
90
102
  def routing_error
91
103
  render_404
92
104
  end
@@ -7,6 +7,13 @@ class ProfilesController < ApplicationController
7
7
  # GET /profiles
8
8
  # GET /profiles.json
9
9
  def index
10
+ if params[:username].present?
11
+ profile = User.where(username: params[:username]).first.try(:profile)
12
+ if profile
13
+ redirect_to profile
14
+ return
15
+ end
16
+ end
10
17
  query = flash[:query] = params[:query].to_s
11
18
  @query = query.dup
12
19
  @count = {}
@@ -73,6 +80,17 @@ class ProfilesController < ApplicationController
73
80
 
74
81
  # GET /profiles/1/edit
75
82
  def edit
83
+ if defined?(EnjuCirculation)
84
+ if params[:mode] == 'feed_token'
85
+ if params[:disable] == 'true'
86
+ @profile.delete_checkout_icalendar_token
87
+ else
88
+ @profile.reset_checkout_icalendar_token
89
+ end
90
+ render partial: 'feed_token', locals: {profile: @profile}
91
+ return
92
+ end
93
+ end
76
94
  if @profile.user == current_user
77
95
  redirect_to edit_my_account_url
78
96
  return
@@ -154,9 +172,9 @@ class ProfilesController < ApplicationController
154
172
  ]
155
173
  attrs += [
156
174
  :library_id, :expired_at, :birth_date,
157
- :user_group_id, :required_role_id, :note, :locked, :user_number, {
175
+ :user_group_id, :required_role_id, :note, :user_number, {
158
176
  :user_attributes => [
159
- :id, :username, :email, :current_password,
177
+ :id, :username, :email, :current_password, :locked,
160
178
  {:user_has_role_attributes => [:id, :role_id]}
161
179
  ]
162
180
  }
@@ -168,14 +186,14 @@ class ProfilesController < ApplicationController
168
186
  attrs = [
169
187
  :full_name, :full_name_transcription,
170
188
  :keyword_list, :locale,
171
- :save_checkout_history, # EnjuCirculation
189
+ :save_checkout_history, :checkout_icalendar_token, # EnjuCirculation
172
190
  :save_search_history, # EnjuSearchLog
173
191
  ]
174
192
  attrs += [
175
193
  :library_id, :expired_at, :birth_date,
176
- :user_group_id, :required_role_id, :note, :locked, :user_number, {
194
+ :user_group_id, :required_role_id, :note, :user_number, {
177
195
  :user_attributes => [
178
- :id, :email, :current_password, :auto_generated_password,
196
+ :id, :email, :current_password, :auto_generated_password, :locked,
179
197
  {:user_has_role_attributes => [:id, :role_id]}
180
198
  ]
181
199
  }
@@ -21,6 +21,7 @@ class UserImportFilesController < ApplicationController
21
21
  file = @user_import_file.user_import.path
22
22
  end
23
23
  end
24
+ @user_import_results = @user_import_file.user_import_results.page(params[:page])
24
25
 
25
26
  respond_to do |format|
26
27
  format.html # show.html.erb
@@ -1,2 +1,16 @@
1
1
  module PageHelper
2
+ def check_all_button( param, label )
3
+ html = <<-EOF
4
+ <button type="button" id="check_all_#{ param }">#{ label }</button>
5
+ <script>
6
+ $(function(){
7
+ $("#check_all_#{ param }").click(function(e){
8
+ var checkboxes = $("input##{ param }");
9
+ checkboxes.prop("checked", !checkboxes.prop("checked"));
10
+ });
11
+ });
12
+ </script>
13
+ EOF
14
+ html.html_safe
15
+ end
2
16
  end
@@ -20,7 +20,7 @@ class Profile < ActiveRecord::Base
20
20
 
21
21
  normalize_attribute :user_number
22
22
 
23
- attr_accessor :birth_date, :locked
23
+ attr_accessor :birth_date
24
24
 
25
25
  searchable do
26
26
  text :user_number, :full_name, :full_name_transcription, :note
@@ -49,11 +49,15 @@ class Profile < ActiveRecord::Base
49
49
  before_save :set_expired_at, :set_date_of_birth
50
50
  accepts_nested_attributes_for :user
51
51
 
52
+ # 既定のユーザ権限を設定します。
53
+ # @return [void]
52
54
  def set_role_and_agent
53
55
  self.required_role = Role.where(name: 'Librarian').first unless required_role
54
56
  self.locale = I18n.default_locale.to_s unless locale
55
57
  end
56
58
 
59
+ # ユーザの有効期限を設定します。
60
+ # @return [Time]
57
61
  def set_expired_at
58
62
  if expired_at.blank?
59
63
  if user_group.valid_period_for_new_user > 0
@@ -62,6 +66,8 @@ class Profile < ActiveRecord::Base
62
66
  end
63
67
  end
64
68
 
69
+ # ユーザの誕生日を設定します。
70
+ # @return [Time]
65
71
  def set_date_of_birth
66
72
  self.date_of_birth = Time.zone.parse(birth_date) if birth_date
67
73
  rescue ArgumentError
@@ -27,6 +27,7 @@ class UserExportFile < ActiveRecord::Base
27
27
  delegate :can_transition_to?, :transition_to!, :transition_to, :current_state,
28
28
  to: :state_machine
29
29
 
30
+ # エクスポートの処理を実行します。
30
31
  def export!
31
32
  transition_to!(:started)
32
33
  tempfile = Tempfile.new(['user_export_file_', '.txt'])
@@ -43,6 +43,7 @@ class UserImportFile < ActiveRecord::Base
43
43
  delegate :can_transition_to?, :transition_to!, :transition_to, :current_state,
44
44
  to: :state_machine
45
45
 
46
+ # 利用者情報をTSVファイルを用いて作成します。
46
47
  def import
47
48
  transition_to!(:started)
48
49
  num = { user_imported: 0, user_found: 0, failed: 0 }
@@ -79,14 +80,11 @@ class UserImportFile < ActiveRecord::Base
79
80
  new_user.role = Role.find(2) # User
80
81
  end
81
82
  new_user.username = username
82
- new_user.assign_attributes(set_user_params(new_user, row))
83
+ new_user.assign_attributes(set_user_params(row))
83
84
  profile = Profile.new
84
85
  profile.assign_attributes(set_profile_params(row))
85
86
 
86
87
  if new_user.save
87
- if profile.locked
88
- new_user.lock_access!
89
- end
90
88
  new_user.profile = profile
91
89
  if profile.save
92
90
  num[:user_imported] += 1
@@ -115,6 +113,7 @@ class UserImportFile < ActiveRecord::Base
115
113
  raise e
116
114
  end
117
115
 
116
+ # 利用者情報をTSVファイルを用いて更新します。
118
117
  def modify
119
118
  transition_to!(:started)
120
119
  num = { user_updated: 0, user_not_found: 0, failed: 0 }
@@ -136,7 +135,7 @@ class UserImportFile < ActiveRecord::Base
136
135
  username = row['username']
137
136
  new_user = User.where(username: username).first
138
137
  if new_user.try(:profile)
139
- new_user.assign_attributes(set_user_params(new_user, row))
138
+ new_user.assign_attributes(set_user_params(row))
140
139
  new_user.profile.assign_attributes(set_profile_params(row))
141
140
  Profile.transaction do
142
141
  if new_user.save and new_user.profile.save
@@ -155,6 +154,7 @@ class UserImportFile < ActiveRecord::Base
155
154
  rows.close
156
155
  transition_to!(:completed)
157
156
  Sunspot.commit
157
+ send_message
158
158
  num
159
159
  rescue => e
160
160
  self.error_message = "line #{row_num}: #{e.message}"
@@ -163,6 +163,7 @@ class UserImportFile < ActiveRecord::Base
163
163
  raise e
164
164
  end
165
165
 
166
+ # 利用者情報をTSVファイルを用いて削除します。
166
167
  def remove
167
168
  transition_to!(:started)
168
169
  row_num = 1
@@ -185,6 +186,7 @@ class UserImportFile < ActiveRecord::Base
185
186
  end
186
187
  end
187
188
  transition_to!(:completed)
189
+ send_message
188
190
  rescue => e
189
191
  self.error_message = "line #{row_num}: #{e.message}"
190
192
  save
@@ -201,6 +203,8 @@ class UserImportFile < ActiveRecord::Base
201
203
  :pending
202
204
  end
203
205
 
206
+ # インポート作業用のファイルを読み込みます。
207
+ # @param [File] tempfile 作業用のファイル
204
208
  def open_import_file(tempfile)
205
209
  file = CSV.open(tempfile.path, 'r:utf-8', col_sep: "\t")
206
210
  header_columns = %w(
@@ -231,6 +235,7 @@ class UserImportFile < ActiveRecord::Base
231
235
  rows
232
236
  end
233
237
 
238
+ # 未処理のインポート作業用のファイルを一括で処理します。
234
239
  def self.import
235
240
  UserImportFile.not_imported.each do |file|
236
241
  file.import_start
@@ -240,7 +245,9 @@ class UserImportFile < ActiveRecord::Base
240
245
  end
241
246
 
242
247
  private
243
- def set_user_params(_new_user, row)
248
+ # ユーザ情報のパラメータを設定します。
249
+ # @param [Hash] row 利用者情報のハッシュ
250
+ def set_user_params(row)
244
251
  params = {}
245
252
  params[:email] = row['email'] if row['email'].present?
246
253
 
@@ -249,9 +256,16 @@ class UserImportFile < ActiveRecord::Base
249
256
  else
250
257
  params[:password] = Devise.friendly_token[0..7]
251
258
  end
259
+
260
+ if %w(t true).include?(row['locked'].to_s.downcase.strip)
261
+ params[:locked] = '1'
262
+ end
263
+
252
264
  params
253
265
  end
254
266
 
267
+ # 利用者情報のパラメータを設定します。
268
+ # @param [Hash] row 利用者情報のハッシュ
255
269
  def set_profile_params(row)
256
270
  params = {}
257
271
  user_group = UserGroup.where(name: row['user_group']).first
@@ -280,10 +294,6 @@ class UserImportFile < ActiveRecord::Base
280
294
 
281
295
  params[:note] = row['note'] if row['note']
282
296
 
283
- if %w(t true).include?(row['locked'].to_s.downcase.strip)
284
- params[:locked] = true
285
- end
286
-
287
297
  if I18n.available_locales.include?(row['locale'].to_s.to_sym)
288
298
  params[:locale] = row['locale']
289
299
  end
@@ -28,10 +28,11 @@
28
28
  <li><%= link_to t('page.checkout_history'), checkouts_path -%></li>
29
29
  <li><%= link_to t('page.listing', model: t('activerecord.models.reserve')), reserves_path -%></li>
30
30
  <%- end -%>
31
+ <li><%= link_to t('page.catalog_search'), manifestations_path %></li>
31
32
  </ul>
32
33
  <% end %>
33
34
  </li>
34
- <%- if user_signed_in? -%>
35
+ <%- if user_signed_in? and (current_user.has_role?('Librarian') or defined?(EnjuBookmark)) -%>
35
36
  <li>
36
37
  <a href="#acquisition_menu"><%= t('page.acquisition') -%></a>
37
38
  <ul>
@@ -40,27 +41,23 @@
40
41
  <% if defined?(EnjuNdl) %>
41
42
  <li><%= link_to t('enju_ndl.import_from_ndl_search'), ndl_books_path -%></li>
42
43
  <% end %>
43
- <% if defined?(EnjuNii) %>
44
- <li><%= link_to t('enju_nii.import_from_cinii_books'), cinii_books_path -%></li>
45
- <% end %>
46
- <% if defined?(EnjuLoc) %>
47
- <li><%= link_to t('enju_loc.import_from_loc_search'), loc_search_index_path -%></li>
48
- <% end %>
44
+ <% if defined?(EnjuNii) %>
45
+ <li><%= link_to t('enju_nii.import_from_cinii_books'), cinii_books_path -%></li>
46
+ <% end %>
47
+ <% if defined?(EnjuLoc) %>
48
+ <li><%= link_to t('enju_loc.import_from_loc_search'), loc_search_index_path -%></li>
49
+ <% end %>
49
50
  <li><%= link_to t('page.add_resource_manually'), new_manifestation_path -%></li>
50
51
  <li><%= link_to t('page.serial'), manifestations_path(serial: true) -%></li>
51
52
  <li><%= link_to t('page.import_from_file'), new_resource_import_file_path -%></li>
52
53
  <li><%= link_to t('activerecord.models.accept'), new_accept_path -%></li>
53
- <% if defined?(EnjuIr) %>
54
- <li><%= link_to t('activemodel.models.resource'), resources_path -%></li>
55
- <% end %>
56
- <% if defined?(EnjuBookmark) %>
57
- <li><%= link_to t('page.listing', model: t('activerecord.models.bookmark')), bookmarks_path -%></li>
58
- <% end %>
59
- <%- else -%>
60
- <% if defined?(EnjuBookmark) %>
61
- <li><%= link_to t('page.listing', model: t('activerecord.models.bookmark')), bookmarks_path -%></li>
54
+ <% if defined?(EnjuIr) %>
55
+ <li><%= link_to t('activemodel.models.resource'), resources_path -%></li>
62
56
  <% end %>
63
57
  <%- end -%>
58
+ <% if defined?(EnjuBookmark) %>
59
+ <li><%= link_to t('page.listing', model: t('activerecord.models.bookmark')), bookmarks_path -%></li>
60
+ <% end %>
64
61
  </ul>
65
62
  </li>
66
63
  <% end %>
@@ -103,41 +100,33 @@
103
100
  </ul>
104
101
  </li>
105
102
  <% end %>
106
- <li>
107
- <a href="#configuration_menu">
108
- <% if current_user.try(:has_role?, 'Librarian') %>
109
- <%= t('page.management') -%>
110
- <% else %>
111
- <%= t('page.configuration') -%>
112
- <% end %>
113
- </a>
114
- <ul>
115
- <%- if user_signed_in? -%>
116
- <%- if current_user.has_role?('Librarian') -%>
117
- <li><%= link_to t('user.management'), profiles_path -%></li>
118
- <li><%= link_to t('page.agent_management'), agents_path -%></li>
119
- <li><%= link_to t('page.import'), page_import_path -%></li>
120
- <li><%= link_to t('page.export'), page_export_path -%></li>
121
- <% if defined?(EnjuPurchaseRequest) %>
122
- <li><%= link_to t('activerecord.models.order_list'), order_lists_path -%></li>
123
- <% end %>
124
- <li><%= link_to t('page.statistics'), page_statistics_path -%></li>
125
- <% if defined?(EnjuSearchLog) %>
126
- <li><%= link_to t('activerecord.models.search_history'), search_histories_path %></li>
127
- <% end %>
128
- <% if @library_group.settings[:erms_url] %>
129
- <li><%= link_to t('page.electronic_resource_management'), @library_group.settings[:erms_url] -%></li>
130
- <% end %>
131
- <li><%= link_to t('page.configuration'), page_configuration_path -%></li>
103
+ <%- if current_user.try(:has_role?, 'Librarian') -%>
104
+ <li>
105
+ <a href="#configuration_menu">
106
+ <% if current_user.try(:has_role?, 'Librarian') %>
107
+ <%= t('page.management') -%>
132
108
  <% else %>
133
- <ul>
134
- <li><%= link_to t('user.account_management'), edit_my_account_path -%></li>
135
- </ul>
136
- <%- end -%>
137
- <%- else -%>
138
- <li><%= link_to t('page.sign_in'), new_user_session_path -%></li>
139
- <%- end -%>
140
- </ul>
141
- </li>
109
+ <%= t('page.configuration') -%>
110
+ <% end %>
111
+ </a>
112
+ <ul>
113
+ <li><%= link_to t('user.management'), profiles_path -%></li>
114
+ <li><%= link_to t('page.agent_management'), agents_path -%></li>
115
+ <li><%= link_to t('page.import'), page_import_path -%></li>
116
+ <li><%= link_to t('page.export'), page_export_path -%></li>
117
+ <% if defined?(EnjuPurchaseRequest) %>
118
+ <li><%= link_to t('activerecord.models.order_list'), order_lists_path -%></li>
119
+ <% end %>
120
+ <li><%= link_to t('page.statistics'), page_statistics_path -%></li>
121
+ <% if defined?(EnjuSearchLog) %>
122
+ <li><%= link_to t('activerecord.models.search_history'), search_histories_path %></li>
123
+ <% end %>
124
+ <% if @library_group.settings[:erms_url] %>
125
+ <li><%= link_to t('page.electronic_resource_management'), @library_group.settings[:erms_url] -%></li>
126
+ <% end %>
127
+ <li><%= link_to t('page.configuration'), page_configuration_path -%></li>
128
+ </ul>
129
+ </li>
130
+ <% end %>
142
131
  </ul>
143
132
  </div>
@@ -10,6 +10,7 @@
10
10
  <% @libraries.sort_by{|l| l.position }.each do |library| %>
11
11
  <label><%= check_box_tag "library_adv[]", library.name %><%= library.display_name.localize %></label>
12
12
  <% end %>
13
+ <div class="check_all"><%= check_all_button "library_adv_", t('advanced_search.check_all') %></div>
13
14
  </td>
14
15
  </tr>
15
16
  <tr>
@@ -50,15 +51,25 @@
50
51
  <td><label><%= t('activerecord.attributes.item.item_identifier') -%>:</label></td>
51
52
  <td><%= text_field_tag 'item_identifier' -%></td>
52
53
  </tr>
54
+ <% if defined?(EnjuSubject) %>
55
+ <tr>
56
+ <td><label><%= t('activerecord.models.classification') %>:</label></td>
57
+ <td>
58
+ <%- types = ClassificationType.all.select{|t| ! t.classifications.empty? } -%>
59
+ <%= select_tag 'classification_type', options_from_collection_for_select( types, :id, Proc.new{|e| e.display_name.localize } ) -%>
60
+ <%= text_field_tag 'classification' -%>
61
+ </td>
62
+ </tr>
63
+ <% end %>
53
64
  <tr>
54
65
  <td><label><%= t('activerecord.attributes.manifestation.date_of_publication') -%>:</label></td>
55
- <td><%= t('advanced_search.from') -%> <%= text_field_tag 'pub_date_from', nil, class: 'date_text_field', placeholder: "#{t('page.example')}: 1978, 1978-04-12" -%>
56
- <%= t('advanced_search.to') -%> <%= text_field_tag 'pub_date_to', nil, class: 'date_text_field', placeholder: "#{t('page.example')}: 2011, 2011-04-12"-%></td>
66
+ <td><%= t('advanced_search.from') -%> <%= text_field_tag 'pub_date_from', nil, class: 'wide_date_text_field', placeholder: "#{t('page.example')}: 1978, 1978-04-12" -%>
67
+ <%= t('advanced_search.to') -%> <%= text_field_tag 'pub_date_until', nil, class: 'wide_date_text_field', placeholder: "#{t('page.example')}: 2011, 2011-04-12"-%></td>
57
68
  </tr>
58
69
  <tr>
59
70
  <td><label><%= t('activerecord.attributes.item.acquired_at') -%>:</label></td>
60
71
  <td><%= t('advanced_search.from') -%> <%= text_field_tag 'acquired_from', nil, class: 'wide_date_text_field', placeholder: "#{t('page.example')}: 2005, 2005-04-01" -%>
61
- <%= t('advanced_search.to') -%> <%= text_field_tag 'acquired_to', nil, class: 'wide_date_text_field', placeholder: "#{t('page.example')}: 2011, 2011-03-31"-%></td>
72
+ <%= t('advanced_search.to') -%> <%= text_field_tag 'acquired_until', nil, class: 'wide_date_text_field', placeholder: "#{t('page.example')}: 2011, 2011-03-31"-%></td>
62
73
  </tr>
63
74
  <tr>
64
75
  <td><label><%= t('page.number_of_pages') -%>:</label></td>
@@ -51,6 +51,9 @@
51
51
  <ul>
52
52
  <li><%= link_to t('item.all_item'), items_path %></li>
53
53
  <li><%= link_to t('activerecord.models.resource_import_file'), resource_import_files_path -%></li>
54
+ <% if respond_to? :new_withdraw_path %>
55
+ <li><%= link_to t('activerecord.models.withdraw'), new_withdraw_path -%></li>
56
+ <% end %>
54
57
  </ul>
55
58
  </li>
56
59
  <li><%= link_to t('activerecord.models.identifier_type'), identifier_types_path -%>
@@ -5,33 +5,27 @@
5
5
  <tr>
6
6
  <th><%= t('page.model') -%></th>
7
7
  <th><%= t('page.number_of_record') -%></th>
8
- <th><%= t('page.note') -%></th>
9
8
  </tr>
10
9
  <tr>
11
10
  <td><%= link_to t('activerecord.models.agent'), agents_path -%></td>
12
11
  <td><%= Agent.count -%></td>
13
- <td></td>
14
12
  </tr>
15
13
  <tr>
16
14
  <td><%= link_to t('activerecord.models.profile'), profiles_path -%></td>
17
15
  <td><%= Profile.count -%></td>
18
- <td></td>
19
16
  </tr>
20
17
  <tr>
21
18
  <td><%= link_to t('activerecord.models.manifestation'), manifestations_path -%></td>
22
19
  <td><%= Manifestation.count -%></td>
23
- <td></td>
24
20
  </tr>
25
21
  <tr>
26
22
  <td><%= link_to t('activerecord.models.item'), items_path -%></td>
27
23
  <td><%= Item.count -%></td>
28
- <td></td>
29
24
  </tr>
30
25
  <% if defined?(EnjuSearchLog) %>
31
26
  <tr>
32
27
  <td><%= link_to t('activerecord.models.search_history'), search_histories_path -%></td>
33
28
  <td><%= SearchHistory.count -%></td>
34
- <td></td>
35
29
  </tr>
36
30
  <% end %>
37
31
  <% if defined?(EnjuBookmark) %>
@@ -41,19 +35,16 @@
41
35
  <%= Bookmark.count -%>
42
36
  (<%= link_to t('activerecord.attributes.bookmark_stat_has_manifestation.bookmarks_count'), bookmark_stats_path -%>)
43
37
  </td>
44
- <td></td>
45
38
  </tr>
46
39
  <tr>
47
40
  <td><%= link_to t('activerecord.models.tag'), tags_path -%></td>
48
41
  <td><%= Tag.count -%></td>
49
- <td></td>
50
42
  </tr>
51
43
  <% end %>
52
44
  <% if defined?(EnjuSubject) %>
53
45
  <tr>
54
46
  <td><%= link_to t('activerecord.models.subject'), subjects_path -%></td>
55
47
  <td><%= Subject.count -%></td>
56
- <td></td>
57
48
  </tr>
58
49
  <% end %>
59
50
  <% if defined?(EnjuCirculation) %>
@@ -64,7 +55,6 @@
64
55
  (<%= link_to t('activerecord.attributes.checkout_stat_has_user.checkouts_count'), user_checkout_stats_path -%>)
65
56
  (<%= link_to t('activerecord.attributes.checkout_stat_has_manifestation.checkouts_count'), manifestation_checkout_stats_path -%>)
66
57
  </td>
67
- <td></td>
68
58
  </tr>
69
59
  <tr>
70
60
  <td><%= link_to t('activerecord.models.reserve'), reserves_path -%></td>
@@ -73,26 +63,22 @@
73
63
  (<%= link_to t('activerecord.attributes.reserve_stat_has_user.reserves_count'), user_reserve_stats_path -%>)
74
64
  (<%= link_to t('activerecord.attributes.reserve_stat_has_manifestation.reserves_count'), manifestation_reserve_stats_path -%>)
75
65
  </td>
76
- <td></td>
77
66
  </tr>
78
67
  <% end %>
79
68
  <% if defined?(EnjuPurchaseRequest) %>
80
69
  <tr>
81
70
  <td><%= link_to t('activerecord.models.purchase_request'), purchase_requests_path -%></td>
82
71
  <td><%= PurchaseRequest.count -%></td>
83
- <td></td>
84
72
  </tr>
85
73
  <% end %>
86
74
  <% if defined?(EnjuQuestion) %>
87
75
  <tr>
88
76
  <td><%= link_to t('activerecord.models.question'), questions_path -%></td>
89
77
  <td><%= Question.count -%></td>
90
- <td></td>
91
78
  </tr>
92
79
  <tr>
93
80
  <td><%= link_to t('activerecord.models.answer'), answers_path -%></td>
94
81
  <td><%= Answer.count -%></td>
95
- <td></td>
96
82
  </tr>
97
83
  <% end %>
98
84
  </table>
@@ -3,14 +3,26 @@
3
3
  <div id="content_list">
4
4
 
5
5
  <ul>
6
+ <li>Ruby: <%= RUBY_DESCRIPTION %></li>
6
7
  <li>Environment: <%= Rails.env %></li>
7
8
  <li>Gems:
8
9
  <ul>
9
- <% @specs.each do |spec| %>
10
+ <% @specs.sort_by{|e| e.name }.each do |spec| %>
10
11
  <li><%= spec.name %>: <%= spec.version.to_s %></li>
11
12
  <% end %>
12
13
  </ul>
13
14
  </li>
15
+ <li>Languages:
16
+ <ul>
17
+ <% @available_languages.each do |language| %>
18
+ <li><%= language.iso_639_1 %>: <%= language.native_name || language.name %>
19
+ <% if language.iso_639_1 == I18n.locale.to_s %>
20
+ (<%= t('page.default_locale') %>)
21
+ <% end %>
22
+ </li>
23
+ <% end %>
24
+ </ul>
25
+ </li>
14
26
  </ul>
15
27
 
16
28
  </div>
@@ -7,8 +7,8 @@
7
7
  <%= f.hidden_field :checkout_icalendar_token -%>
8
8
  <%- end -%>
9
9
  <br />
10
- <input onclick="$.ajax({data:'authenticity_token=' + encodeURIComponent('<%= form_authenticity_token %>'), success:function(request){$('#feed_token').html(request);}, type:'get', url:'<%= edit_my_account_path(mode: 'feed_token') %>'});" type="button" value="<%= t('page.reset') %>" />
11
- <input onclick="$.ajax({data:'authenticity_token=' + encodeURIComponent('<%= form_authenticity_token %>'), success:function(request){$('#feed_token').html(request);}, type:'get', url:'<%= edit_my_account_path(disable: true, mode: 'feed_token') %>'});" type="button" value="<%= t('page.delete') %>" />
10
+ <input onclick="$.ajax({data:'authenticity_token=' + encodeURIComponent('<%= form_authenticity_token %>'), success:function(request){$('#feed_token').html(request);}, type:'get', url:'<%= edit_profile_path(profile, mode: 'feed_token') %>'});" type="button" value="<%= t('page.reset') %>" />
11
+ <input onclick="$.ajax({data:'authenticity_token=' + encodeURIComponent('<%= form_authenticity_token %>'), success:function(request){$('#feed_token').html(request);}, type:'get', url:'<%= edit_profile_path(profile, disable: true, mode: 'feed_token') %>'});" type="button" value="<%= t('page.delete') %>" />
12
12
  </div>
13
13
  <br />
14
14
  </div>