enju_leaf 1.1.4 → 1.2.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (143) hide show
  1. checksums.yaml +4 -4
  2. data/README.rdoc +3 -3
  3. data/app/assets/javascripts/autocomplete_agent.js +30 -0
  4. data/app/assets/javascripts/{menu.enju.js → enju.menu.js} +5 -0
  5. data/app/assets/javascripts/enju_leaf.js +3 -3
  6. data/app/assets/javascripts/portlets.js +2 -2
  7. data/app/assets/stylesheets/enju.css +52 -18
  8. data/app/assets/stylesheets/enju_leaf.css +2 -0
  9. data/app/controllers/concerns/enju_leaf/controller.rb +225 -0
  10. data/app/controllers/my_accounts_controller.rb +9 -7
  11. data/app/controllers/names_controller.rb +60 -0
  12. data/app/controllers/page_controller.rb +5 -4
  13. data/app/controllers/profiles_controller.rb +13 -4
  14. data/app/controllers/roles_controller.rb +11 -2
  15. data/app/controllers/user_export_files_controller.rb +13 -3
  16. data/app/controllers/user_groups_controller.rb +12 -3
  17. data/app/controllers/user_import_files_controller.rb +14 -4
  18. data/app/controllers/user_import_results_controller.rb +11 -1
  19. data/app/jobs/user_export_file_job.rb +7 -0
  20. data/app/jobs/user_import_file_job.rb +7 -0
  21. data/app/mailers/notifier.rb +0 -2
  22. data/app/models/concerns/calculate_stat.rb +35 -0
  23. data/app/models/concerns/enju_leaf/enju_user.rb +309 -0
  24. data/app/models/concerns/export_file.rb +19 -0
  25. data/app/models/concerns/import_file.rb +89 -0
  26. data/app/models/concerns/master_model.rb +38 -0
  27. data/app/models/profile.rb +2 -2
  28. data/app/models/user_export_file.rb +0 -2
  29. data/app/models/user_group.rb +0 -3
  30. data/app/models/user_import_file.rb +0 -1
  31. data/app/policies/application_policy.rb +53 -0
  32. data/app/policies/name_policy.rb +21 -0
  33. data/app/policies/profile_policy.rb +55 -0
  34. data/app/policies/role_policy.rb +21 -0
  35. data/app/policies/user_export_file_policy.rb +21 -0
  36. data/app/policies/user_group_policy.rb +22 -0
  37. data/app/policies/user_import_file_policy.rb +21 -0
  38. data/app/policies/user_import_result_policy.rb +21 -0
  39. data/app/views/devise/sessions/{new.mobile.erb → new.html+phone.erb} +0 -0
  40. data/app/views/layouts/{application.mobile.erb → application.html+phone.erb} +0 -0
  41. data/app/views/layouts/application.html.erb +2 -2
  42. data/app/views/layouts/devise/{passwords.mobile.erb → passwords.html+phone.erb} +0 -0
  43. data/app/views/layouts/devise/{sessions.mobile.erb → sessions.html+phone.erb} +0 -0
  44. data/app/views/my_accounts/{show.mobile.erb → show.html+phone.erb} +0 -0
  45. data/app/views/my_accounts/show.html.erb +3 -3
  46. data/app/views/names/_form.html.erb +41 -0
  47. data/app/views/names/edit.html.erb +6 -0
  48. data/app/views/names/index.html.erb +37 -0
  49. data/app/views/names/new.html.erb +5 -0
  50. data/app/views/names/show.html.erb +34 -0
  51. data/app/views/page/{403.mobile.erb → 403.html+phone.erb} +0 -0
  52. data/app/views/page/{404.mobile.erb → 404.html+phone.erb} +0 -0
  53. data/app/views/page/{500.mobile.erb → 500.html+phone.erb} +0 -0
  54. data/app/views/page/_footer.html+phone.erb +3 -0
  55. data/app/views/page/_footer.html.erb +3 -10
  56. data/app/views/page/{_index.mobile.erb → _index.html+phone.erb} +0 -0
  57. data/app/views/page/_menu.html.erb +1 -1
  58. data/app/views/page/{_mobile.mobile.erb → _mobile.html+phone.erb} +0 -0
  59. data/app/views/page/{_search_form.mobile.erb → _search_form.html+phone.erb} +0 -0
  60. data/app/views/page/_select_locale.html.erb +1 -1
  61. data/app/views/page/configuration.html.erb +1 -1
  62. data/app/views/page/{index.mobile.erb → index.html+phone.erb} +0 -0
  63. data/app/views/profiles/edit.html.erb +1 -1
  64. data/app/views/profiles/index.html.erb +5 -5
  65. data/app/views/profiles/{show.mobile.erb → show.html+phone.erb} +0 -0
  66. data/app/views/profiles/show.html.erb +9 -4
  67. data/app/views/roles/index.html.erb +2 -2
  68. data/app/views/roles/show.html.erb +1 -1
  69. data/app/views/user_groups/_form.html.erb +1 -1
  70. data/app/views/user_groups/index.html.erb +4 -4
  71. data/app/views/user_groups/show.html.erb +2 -2
  72. data/config/locales/translation_ja.yml +2 -2
  73. data/config/routes.rb +1 -4
  74. data/db/migrate/20151126005552_add_provider_to_identity.rb +5 -0
  75. data/db/migrate/20160627232219_add_most_recent_to_user_import_file_transitions.rb +9 -0
  76. data/db/migrate/20160627232316_add_most_recent_to_user_export_file_transitions.rb +9 -0
  77. data/lib/enju_leaf/engine.rb +4 -8
  78. data/lib/enju_leaf/helper.rb +1 -1
  79. data/lib/enju_leaf/version.rb +1 -1
  80. data/lib/enju_leaf.rb +0 -249
  81. data/lib/generators/enju_leaf/setup/setup_generator.rb +19 -26
  82. data/lib/generators/enju_leaf/setup/templates/config/initializers/enju_leaf.rb +1 -0
  83. data/lib/tasks/enju_leaf_tasks.rake +2 -2
  84. data/spec/controllers/profiles_controller_spec.rb +22 -12
  85. data/spec/controllers/user_export_files_controller_spec.rb +9 -10
  86. data/spec/controllers/user_groups_controller_spec.rb +9 -9
  87. data/spec/controllers/user_import_files_controller_spec.rb +6 -6
  88. data/spec/controllers/user_import_results_controller_spec.rb +3 -3
  89. data/spec/dummy/app/controllers/application_controller.rb +6 -7
  90. data/spec/dummy/app/models/user.rb +4 -5
  91. data/spec/dummy/config/application.rb +6 -38
  92. data/spec/dummy/config/environments/development.rb +22 -18
  93. data/spec/dummy/config/environments/production.rb +46 -34
  94. data/spec/dummy/config/environments/test.rb +19 -14
  95. data/spec/dummy/config/initializers/enju_leaf.rb +2 -0
  96. data/spec/dummy/config/routes.rb +5 -1
  97. data/spec/dummy/db/migrate/20151213070943_add_translation_table_to_library_group.rb +13 -0
  98. data/spec/dummy/db/migrate/20151213072705_add_footer_banner_to_library_group.rb +9 -0
  99. data/spec/dummy/db/schema.rb +15 -0
  100. data/spec/factories/profile.rb +6 -6
  101. data/spec/models/user_export_file_spec.rb +1 -1
  102. data/spec/models/user_import_file_spec.rb +5 -5
  103. data/spec/rails_helper.rb +4 -11
  104. data/spec/routing/users_spec.rb +14 -0
  105. data/spec/spec_helper.rb +1 -1
  106. data/spec/support/devise.rb +2 -2
  107. data/spec/views/my_accounts/show.html.erb_spec.rb +43 -0
  108. data/spec/views/page/about.html.erb_spec.rb +0 -3
  109. data/spec/views/page/advanced_search.html.erb_spec.rb +1 -4
  110. data/spec/views/page/configuration.html.erb_spec.rb +0 -3
  111. data/spec/views/page/export.html.erb_spec.rb +0 -3
  112. data/spec/views/page/import.html.erb_spec.rb +0 -3
  113. data/spec/views/page/index.html.erb_spec.rb +1 -4
  114. data/spec/views/page/opensearch.xml.builder_spec.rb +1 -4
  115. data/spec/views/page/statistics.html.erb_spec.rb +0 -3
  116. data/spec/views/profiles/edit.html.erb_spec.rb +11 -14
  117. data/spec/views/profiles/index.html.erb_spec.rb +3 -4
  118. data/spec/views/profiles/show.html.erb_spec.rb +3 -8
  119. data/spec/views/user_import_results/index.html.erb_spec.rb +0 -3
  120. data/vendor/assets/javascripts/jquery.highlight.js +97 -56
  121. metadata +114 -288
  122. data/app/assets/javascripts/tab_view.js +0 -4
  123. data/app/models/enju_leaf/ability.rb +0 -102
  124. data/app/views/page/_footer.mobile.erb +0 -3
  125. data/app/workers/user_export_file_queue.rb +0 -7
  126. data/app/workers/user_import_file_queue.rb +0 -7
  127. data/config/initializers/resque.rb +0 -1
  128. data/lib/enju_leaf/calculate_stat.rb +0 -42
  129. data/lib/enju_leaf/controller.rb +0 -24
  130. data/lib/enju_leaf/export_file.rb +0 -26
  131. data/lib/enju_leaf/import_file.rb +0 -99
  132. data/lib/enju_leaf/master_model.rb +0 -42
  133. data/lib/enju_leaf/user.rb +0 -317
  134. data/lib/plugins/ext/mobylette/resolvers/chained_fallback_resolver.rb +0 -73
  135. data/lib/plugins/ext/mobylette.rb +0 -2
  136. data/lib/plugins/ext/sunspot/abstract_search.rb +0 -12
  137. data/lib/plugins/ext/sunspot/dismax.rb +0 -41
  138. data/lib/plugins/ext/sunspot/start_record.rb +0 -55
  139. data/lib/plugins/ext/sunspot.rb +0 -3
  140. data/lib/plugins/ext.rb +0 -2
  141. data/lib/plugins.rb +0 -2
  142. data/spec/dummy/config/application.yml +0 -47
  143. data/spec/routing/accounts_spec.rb +0 -14
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f99d307e483123e2b9f2e35cc715e3c8d9c206b6
4
- data.tar.gz: b8b568f5b35b43e90fa5dfc1fcf9283f1fa4a11d
3
+ metadata.gz: bddebc600e5d6d8fb8f3a0117cbd5bdaab34c711
4
+ data.tar.gz: ab1f301430da8166e9ac10b9d7b94c39dc607ffb
5
5
  SHA512:
6
- metadata.gz: 733cd275871a981f143ea4218bdd3ff872d1322c5885786869145dc7afe58bcedda9564ea0a296f54ce23dac6ffcc9ed94e04bdd9566362ad3a16d20deea671a
7
- data.tar.gz: 97493bbba2fcebd9fee021254ba845209c3a6b19c8584cdf4814a267e8880d4b00b31ec02ac332576984fe18730bf4820f90d9f545308b7f42771ac08329d2c1
6
+ metadata.gz: 5b2285b9dfdb9d0ecd2e6abdb888d9694336645b16d29369c73a45e29345f53ed9db4db4d2fd3496407d7abe6dfb87344ba3b5fb6ab923c69ac19f3319c33e1f
7
+ data.tar.gz: d31402743602b18a903e83c0ada8a6c33124cfc5a7561089e08c3b0666986fe441d999e94e12b2560cf8c322411d980e76e2b8546eb58df10a531de0480d3126
data/README.rdoc CHANGED
@@ -1,7 +1,7 @@
1
1
  = Next-L Enju Leaf
2
- {<img src="https://travis-ci.org/next-l/enju_leaf.svg?branch=1.1" alt="Build Status" />}[https://travis-ci.org/next-l/enju_leaf]
3
- {<img src="https://coveralls.io/repos/next-l/enju_nii/badge.svg?branch=1.1&service=github" alt="Coverage Status" />}[https://coveralls.io/github/next-l/enju_nii?branch=1.1]
4
- {<img src="https://hakiri.io/github/next-l/enju_leaf/1.1.svg" alt="security" />}[https://hakiri.io/github/next-l/enju_leaf/1.1]
2
+ {<img src="https://travis-ci.org/next-l/enju_leaf.svg?branch=1.2" alt="Build Status" />}[https://travis-ci.org/next-l/enju_leaf]
3
+ {<img src="https://coveralls.io/repos/next-l/enju_leaf/badge.svg?branch=1.2&service=github" alt="Coverage Status" />}[https://coveralls.io/github/next-l/enju_leaf?branch=1.2]
4
+ {<img src="https://hakiri.io/github/next-l/enju_leaf/1.2.svg" alt="security" />}[https://hakiri.io/github/next-l/enju_leaf/1.2]
5
5
 
6
6
  Next-L Enju Leaf は、{Project Next-L}[http://www.next-l.jp] で開発している図書館管理システムです。
7
7
 
@@ -0,0 +1,30 @@
1
+ $(document).ready(function(){
2
+ $("#creator_form").on('cocoon:after-insert', function(e, added_task){
3
+ $('.creator_full_name').focus(function(){
4
+ $(this).autocomplete({
5
+ minLength: 1,
6
+ //source: '/agents.json'
7
+ source: function(request, response){
8
+ $.ajax({
9
+ url: '/agents.json',
10
+ datatype: 'json',
11
+ data: {
12
+ query: request.term + '*'
13
+ },
14
+ success: function(data) {
15
+ response(data);
16
+ }
17
+ });
18
+ },
19
+ select: function(event, ui){
20
+ //console.log(added_task[0].getElementsByTagName('input')[0]);
21
+ added_task[0].getElementsByTagName('input')[0].value = ui.item.agent_id;
22
+ }
23
+ }).data("ui-autocomplete")._renderItem = function(ul, item) {
24
+ return $( "<li>" )
25
+ .append( "<a>" + item.label + "<br>" + item.desc + "</a>" )
26
+ .appendTo(ul);
27
+ };
28
+ });
29
+ });
30
+ });
@@ -8,3 +8,8 @@ $(function(){
8
8
  });
9
9
  $('.hidden').removeClass('hidden');
10
10
  });
11
+
12
+ $(document).ready(function(){
13
+ $("#tabs").tabs();
14
+ $('.hidden').removeClass('hidden');
15
+ });
@@ -4,9 +4,9 @@
4
4
  //= require jquery.shortcut
5
5
  //= require jquery.cookie
6
6
  //= require jquery.ui.menubar
7
- //= require menu.enju
8
7
  //= require select_locale
9
8
  //= require portlets
10
- //= require tab_view
9
+ //= require enju.menu
11
10
  //= require jquery.powertip
12
- //= require jquery_nested_form
11
+ //= require cocoon
12
+ //= require autocomplete_agent
@@ -22,7 +22,7 @@ function saveOrder(year, month, day, root_path) {
22
22
  function restoreOrder() {
23
23
  $(".column").each(function(index, value) {
24
24
  var columnId = value.id;
25
- var cookieName = "listOrder" + columnId
25
+ var cookieName = "listOrder" + columnId;
26
26
  var cookie = $.cookie(cookieName);
27
27
  if ( cookie == null ) { return; }
28
28
  var IDs = cookie.split(",");
@@ -32,7 +32,7 @@ function restoreOrder() {
32
32
  continue;
33
33
  }
34
34
  var portletId = toks[0];
35
- var visible = toks[1]
35
+ var visible = toks[1];
36
36
  var portlet = $(".column")
37
37
  .find('#' + portletId)
38
38
  .appendTo($('#' + columnId));
@@ -129,10 +129,6 @@ div#pickup_book_jacket{
129
129
  text-align: center;
130
130
  }
131
131
 
132
- img.book_jacket{
133
- border: 1px solid;
134
- }
135
-
136
132
  img.screen_shot{
137
133
  border: 0;
138
134
  }
@@ -341,7 +337,18 @@ li{
341
337
  }
342
338
 
343
339
  input.resource_title{
344
- width: 30em;
340
+ width: 100%;
341
+ box-sizing: border-box;
342
+ }
343
+
344
+ input.resource_name{
345
+ width: 80%;
346
+ box-sizing: border-box;
347
+ }
348
+
349
+ input.resource_subject{
350
+ width: 50%;
351
+ box-sizing: border-box;
345
352
  }
346
353
 
347
354
  input.resource_locale{
@@ -358,19 +365,25 @@ input.resource_zip_code{
358
365
  }
359
366
 
360
367
  input.resource_url{
361
- width: 40em;
368
+ width: 100%;
369
+ box-sizing: border-box;
362
370
  }
363
371
 
364
- input.resource_isbn_issn, input.resource_identifier, input.resource_user_number, input.resource_user, input.resource_item_identifier{
365
- width: 10em;
372
+ input.resource_isbn_issn{
373
+ width: 20em;
366
374
  ime-mode: disabled;
367
375
  }
368
376
 
369
- input.resource_identifier_body{
377
+ input.resource_identifier, input.resource_user_number, input.resource_user, input.resource_item_identifier{
370
378
  width: 20em;
371
379
  ime-mode: disabled;
372
380
  }
373
381
 
382
+ input.resource_identifier_body{
383
+ width: 40em;
384
+ ime-mode: disabled;
385
+ }
386
+
374
387
  input.resource_integer{
375
388
  width: 5em;
376
389
  ime-mode: disabled;
@@ -398,18 +411,11 @@ input.short_name{
398
411
  }
399
412
 
400
413
  textarea{
401
- width: 40em;
414
+ width: 100%;
415
+ box-sizing: border-box;
402
416
  height: 10em;
403
417
  }
404
418
 
405
- p#post_to_twitter{
406
- margin-left: 10px;
407
- }
408
-
409
- input.twitter_text{
410
- width:40em;
411
- }
412
-
413
419
  textarea#message_body{
414
420
  width: 40em;
415
421
  height: 20em;
@@ -531,6 +537,10 @@ div.book_jacket{
531
537
  width: 190px;
532
538
  }
533
539
 
540
+ div.book_jacket img.book_jacket{
541
+ border: 1px solid rgba(0, 0, 0, 0.25);
542
+ }
543
+
534
544
  div.search_form{
535
545
  margin-bottom: 10px;
536
546
  }
@@ -539,3 +549,27 @@ div.search_form{
539
549
 
540
550
  .enju_table_header{
541
551
  }
552
+
553
+ .bold {
554
+ font-weight: bold;
555
+ }
556
+
557
+ .normal-weight {
558
+ font-weight: normal;
559
+ }
560
+
561
+ .right {
562
+ text-align: right;
563
+ }
564
+
565
+ .center {
566
+ text-align: center;
567
+ }
568
+
569
+ .nowrap {
570
+ white-space: nowrap;
571
+ }
572
+
573
+ .display-none {
574
+ display: none;
575
+ }
@@ -10,5 +10,7 @@
10
10
  *= require jquery.ui.menu
11
11
  *= require jquery.ui.datepicker
12
12
  *= require jquery.ui.menubar
13
+ *= require jquery.ui.autocomplete
14
+ *= require jquery.ui.theme
13
15
  *= require portlets
14
16
  */
@@ -0,0 +1,225 @@
1
+ module EnjuLeaf
2
+ module Controller
3
+ extend ActiveSupport::Concern
4
+
5
+ included do
6
+ before_action :get_library_group, :set_locale, :set_available_languages, :set_mobile_request
7
+ before_action :store_current_location, unless: :devise_controller?
8
+ rescue_from Pundit::NotAuthorizedError, with: :render_403
9
+ #rescue_from ActiveRecord::RecordNotFound, with: :render_404
10
+ rescue_from Errno::ECONNREFUSED, with: :render_500_nosolr
11
+ #rescue_from ActionView::MissingTemplate, with: :render_404_invalid_format
12
+ end
13
+
14
+ private
15
+
16
+ def render_403
17
+ return if performed?
18
+ if user_signed_in?
19
+ respond_to do |format|
20
+ format.html {render template: 'page/403', status: 403}
21
+ #format.html.phone {render template: 'page/403', status: 403}
22
+ format.xml {render template: 'page/403', status: 403}
23
+ format.json { render text: '{"error": "forbidden"}' }
24
+ format.rss {render template: 'page/403.xml', status: 403}
25
+ end
26
+ else
27
+ respond_to do |format|
28
+ format.html { redirect_to main_app.new_user_session_url }
29
+ #format.html.phone { redirect_to new_user_session_url }
30
+ format.xml { render template: 'page/403', status: 403 }
31
+ format.json { render text: '{"error": "forbidden"}' }
32
+ format.rss { render template: 'page/403.xml', status: 403 }
33
+ end
34
+ end
35
+ end
36
+
37
+ def render_404
38
+ return if performed?
39
+ respond_to do |format|
40
+ format.html { render template: 'page/404', status: 404 }
41
+ #format.html.phone { render template: 'page/404', status: 404 }
42
+ format.xml { render template: 'page/404', status: 404 }
43
+ format.json { render text: '{"error": "not_found"}' }
44
+ format.rss { render template: 'page/404.xml', status: 404 }
45
+ end
46
+ end
47
+
48
+ def render_404_invalid_format
49
+ return if performed?
50
+ render file: "#{Rails.root}/public/404", formats: [:html]
51
+ end
52
+
53
+ def render_500
54
+ return if performed?
55
+ respond_to do |format|
56
+ format.html {render file: "#{Rails.root}/public/500", layout: false, status: 500}
57
+ #format.html.phone {render file: "#{Rails.root}/public/500", layout: false, status: 500}
58
+ format.xml {render template: 'page/500', status: 500}
59
+ format.json { render text: '{"error": "server_error"}' }
60
+ format.xml {render template: 'page/500.xml', status: 500}
61
+ end
62
+ end
63
+
64
+ def render_500_nosolr
65
+ Rails.logger.fatal("please confirm that the Solr is running.")
66
+ return if performed?
67
+ #flash[:notice] = t('page.connection_failed')
68
+ respond_to do |format|
69
+ format.html {render template: "page/500_nosolr", layout: false, status: 500}
70
+ #format.html.phone {render template: "page/500_nosolr", layout: false, status: 500}
71
+ format.xml {render template: 'page/500', status: 500}
72
+ format.json { render text: '{"error": "server_error"}' }
73
+ format.xml {render template: 'page/500.xml', status: 500}
74
+ end
75
+ end
76
+
77
+ def after_sign_in_path_for(resource)
78
+ session[:locale] = nil
79
+ super
80
+ end
81
+
82
+ def set_locale
83
+ if params[:locale]
84
+ unless I18n.available_locales.include?(params[:locale].to_s.intern)
85
+ raise InvalidLocaleError
86
+ end
87
+ end
88
+ if user_signed_in?
89
+ locale = params[:locale] || session[:locale] || current_user.profile.try(:locale).try(:to_sym)
90
+ else
91
+ locale = params[:locale] || session[:locale]
92
+ end
93
+ if locale
94
+ I18n.locale = @locale = session[:locale] = locale.to_sym
95
+ else
96
+ I18n.locale = @locale = session[:locale] = I18n.default_locale
97
+ end
98
+ rescue InvalidLocaleError
99
+ @locale = I18n.default_locale
100
+ end
101
+
102
+ def default_url_options(options={})
103
+ {locale: nil}
104
+ end
105
+
106
+ def set_available_languages
107
+ if Rails.env == 'production'
108
+ @available_languages = Rails.cache.fetch('available_languages'){
109
+ Language.where(iso_639_1: I18n.available_locales.map{|l| l.to_s}).select([:id, :iso_639_1, :name, :native_name, :display_name, :position]).all
110
+ }
111
+ else
112
+ @available_languages = Language.where(iso_639_1: I18n.available_locales.map{|l| l.to_s})
113
+ end
114
+ end
115
+
116
+ def reset_params_session
117
+ session[:params] = nil
118
+ end
119
+
120
+ def not_found
121
+ raise ActiveRecord::RecordNotFound
122
+ end
123
+
124
+ def access_denied
125
+ raise Pundit::NotAuthorizedError
126
+ end
127
+
128
+ def get_user
129
+ @user = User.where(username: params[:user_id]).first if params[:user_id]
130
+ #authorize! :show, @user if @user
131
+ end
132
+
133
+ def get_user_group
134
+ @user_group = UserGroup.find(params[:user_group_id]) if params[:user_group_id]
135
+ end
136
+
137
+ def convert_charset
138
+ case params[:format]
139
+ when 'csv'
140
+ return unless LibraryGroup.site_config.settings[:csv_charset_conversion]
141
+ # TODO: 他の言語
142
+ if @locale.to_sym == :ja
143
+ headers["Content-Type"] = "text/csv; charset=Shift_JIS"
144
+ response.body = NKF::nkf('-Ws', response.body)
145
+ end
146
+ when 'xml'
147
+ if @locale.to_sym == :ja
148
+ headers["Content-Type"] = "application/xml; charset=Shift_JIS"
149
+ response.body = NKF::nkf('-Ws', response.body)
150
+ end
151
+ end
152
+ end
153
+
154
+ def store_page
155
+ if request.get? and request.format.try(:html?) and !request.xhr?
156
+ flash[:page] = params[:page] if params[:page].to_i > 0
157
+ end
158
+ end
159
+
160
+ def set_role_query(user, search)
161
+ role = user.try(:role) || Role.default_role
162
+ search.build do
163
+ with(:required_role_id).less_than_or_equal_to role.id
164
+ end
165
+ end
166
+
167
+ def get_version
168
+ @version = params[:version_id].to_i if params[:version_id]
169
+ @version = nil if @version == 0
170
+ end
171
+
172
+ def clear_search_sessions
173
+ session[:query] = nil
174
+ session[:params] = nil
175
+ session[:search_params] = nil
176
+ session[:manifestation_ids] = nil
177
+ end
178
+
179
+ def api_request?
180
+ true unless params[:format].nil? or params[:format] == 'html'
181
+ end
182
+
183
+ def get_top_page_content
184
+ if defined?(EnjuNews)
185
+ @news_feeds = Rails.cache.fetch('news_feed_all'){NewsFeed.order(:position)}
186
+ @news_posts = NewsPost.limit(LibraryGroup.site_config.settings[:news_post_number_top_page] || 10)
187
+ end
188
+ @libraries = Library.real
189
+ end
190
+
191
+ def set_mobile_request
192
+ case params[:view]
193
+ when 'phone'
194
+ session[:enju_view] = :phone
195
+ when 'desktop'
196
+ session[:enju_view] = :desktop
197
+ when 'reset'
198
+ session[:enju_view] = nil
199
+ end
200
+
201
+ case session[:enju_view].try(:to_sym)
202
+ when :phone
203
+ request.variant = :phone
204
+ when :desktop
205
+ request.variant = nil
206
+ else
207
+ request.variant = :phone if browser.device.mobile?
208
+ end
209
+ end
210
+
211
+ def move_position(resource, direction, redirect = true)
212
+ if ['higher', 'lower'].include?(direction)
213
+ resource.send("move_#{direction}")
214
+ if redirect
215
+ redirect_to url_for(controller: resource.class.to_s.pluralize.underscore)
216
+ return
217
+ end
218
+ end
219
+ end
220
+
221
+ def store_current_location
222
+ store_location_for(:user, request.url)
223
+ end
224
+ end
225
+ end
@@ -1,22 +1,20 @@
1
1
  class MyAccountsController < ApplicationController
2
- before_filter :authenticate_user!
2
+ before_action :authenticate_user!
3
+ before_action :set_profile
3
4
 
4
5
  def show
5
- @profile = current_user.profile
6
-
7
6
  respond_to do |format|
8
7
  format.html
8
+ format.html.phone
9
9
  format.json { render json: @profile }
10
10
  end
11
11
  end
12
12
 
13
13
  def edit
14
- @profile = current_user.profile
15
14
  prepare_options
16
15
  end
17
16
 
18
17
  def update
19
- @profile = current_user.profile
20
18
  user_attrs = [
21
19
  :id, :email, :current_password, :password, :password_confirmation
22
20
  ]
@@ -32,7 +30,7 @@ class MyAccountsController < ApplicationController
32
30
 
33
31
  if saved
34
32
  if @profile.save
35
- sign_in(current_user, bypass: true)
33
+ bypass_sign_in(current_user)
36
34
  format.html { redirect_to my_account_url, notice: t('controller.successfully_updated', model: t('activerecord.models.user')) }
37
35
  format.json { head :no_content }
38
36
  else
@@ -52,7 +50,6 @@ class MyAccountsController < ApplicationController
52
50
  end
53
51
 
54
52
  def destroy
55
- @profile = current_user.profile
56
53
  @profile.destroy
57
54
 
58
55
  respond_to do |format|
@@ -62,6 +59,11 @@ class MyAccountsController < ApplicationController
62
59
  end
63
60
 
64
61
  private
62
+ def set_profile
63
+ @profile = current_user.profile
64
+ authorize @profile
65
+ end
66
+
65
67
  def profile_params
66
68
  attrs = [
67
69
  :full_name, :full_name_transcription, :user_number,
@@ -0,0 +1,60 @@
1
+ class NamesController < ApplicationController
2
+ before_action :set_name, only: [:show, :edit, :update, :destroy]
3
+ before_action :check_policy, only: [:index, :new, :create]
4
+
5
+ # GET /names
6
+ def index
7
+ @names = Name.paginate(params[:page])
8
+ end
9
+
10
+ # GET /names/1
11
+ def show
12
+ end
13
+
14
+ # GET /names/new
15
+ def new
16
+ @name = Name.new
17
+ end
18
+
19
+ # GET /names/1/edit
20
+ def edit
21
+ end
22
+
23
+ # POST /names
24
+ def create
25
+ @name = Name.new(name_params)
26
+
27
+ if @name.save
28
+ redirect_to @name, notice: 'Name was successfully created.'
29
+ else
30
+ render :new
31
+ end
32
+ end
33
+
34
+ # PATCH/PUT /names/1
35
+ def update
36
+ if @name.update(name_params)
37
+ redirect_to @name, notice: 'Name was successfully updated.'
38
+ else
39
+ render :edit
40
+ end
41
+ end
42
+
43
+ # DELETE /names/1
44
+ def destroy
45
+ @name.destroy
46
+ redirect_to names_url, notice: 'Name was successfully destroyed.'
47
+ end
48
+
49
+ private
50
+ # Use callbacks to share common setup or constraints between actions.
51
+ def set_name
52
+ @name = Name.find(params[:id])
53
+ authorize @name
54
+ end
55
+
56
+ # Only allow a trusted parameter "white list" through.
57
+ def name_params
58
+ params.require(:name).permit(:first_name, :middle_name, :last_name, :language_id, :profile_id, :position)
59
+ end
60
+ end
@@ -1,8 +1,8 @@
1
1
  class PageController < ApplicationController
2
- before_filter :clear_search_sessions, only: [:index, :advanced_search]
3
- before_filter :store_location, only: [:advanced_search, :about, :add_on, :msie_accelerator, :statistics]
4
- before_filter :authenticate_user!, except: [:index, :advanced_search, :about, :add_on, :msie_accelerator, :opensearch, :statistics, :routing_error]
5
- before_filter :check_librarian, except: [:index, :advanced_search, :about, :add_on, :msie_accelerator, :opensearch, :statistics, :routing_error]
2
+ before_action :skip_authorization
3
+ before_action :clear_search_sessions, only: [:index, :advanced_search]
4
+ before_action :authenticate_user!, except: [:index, :advanced_search, :about, :add_on, :msie_accelerator, :opensearch, :statistics, :routing_error]
5
+ before_action :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
  # トップページを表示します。
@@ -40,6 +40,7 @@ class PageController < ApplicationController
40
40
 
41
41
  respond_to do |format|
42
42
  format.html
43
+ format.html.phone
43
44
  end
44
45
  end
45
46
 
@@ -1,8 +1,7 @@
1
- # -*- encoding: utf-8 -*-
2
1
  class ProfilesController < ApplicationController
3
- load_and_authorize_resource except: [:index, :create]
4
- authorize_resource only: [:index, :create]
5
- before_filter :prepare_options, only: [:new, :edit]
2
+ before_action :set_profile, only: [:show, :edit, :update, :destroy]
3
+ before_action :check_policy, only: [:index, :new, :create]
4
+ before_action :prepare_options, only: [:new, :edit]
6
5
 
7
6
  # GET /profiles
8
7
  # GET /profiles.json
@@ -60,6 +59,7 @@ class ProfilesController < ApplicationController
60
59
 
61
60
  respond_to do |format|
62
61
  format.html # show.html.erb
62
+ format.html.phone
63
63
  format.json { render json: @profile }
64
64
  end
65
65
  end
@@ -163,6 +163,15 @@ class ProfilesController < ApplicationController
163
163
  end
164
164
 
165
165
  private
166
+ def set_profile
167
+ @profile = Profile.find(params[:id])
168
+ authorize @profile
169
+ end
170
+
171
+ def check_policy
172
+ authorize Profile
173
+ end
174
+
166
175
  def profile_params
167
176
  attrs = [
168
177
  :full_name, :full_name_transcription,
@@ -1,6 +1,6 @@
1
1
  class RolesController < ApplicationController
2
- load_and_authorize_resource except: :index
3
- authorize_resource only: :index
2
+ before_action :set_role, only: [:show, :edit, :update, :destroy]
3
+ before_action :check_policy, only: [:index, :new, :create]
4
4
 
5
5
  # GET /roles
6
6
  # GET /roles.json
@@ -46,6 +46,15 @@ class RolesController < ApplicationController
46
46
  end
47
47
 
48
48
  private
49
+ def set_role
50
+ @role = Role.find(params[:id])
51
+ authorize @role
52
+ end
53
+
54
+ def check_policy
55
+ authorize Role
56
+ end
57
+
49
58
  def role_params
50
59
  params.require(:role).permit(:name, :display_name, :note)
51
60
  end
@@ -1,5 +1,6 @@
1
1
  class UserExportFilesController < ApplicationController
2
- load_and_authorize_resource
2
+ before_action :set_user_export_file, only: [:show, :edit, :update, :destroy]
3
+ before_action :check_policy, only: [:index, :new, :create]
3
4
 
4
5
  # GET /user_export_files
5
6
  # GET /user_export_files.json
@@ -60,7 +61,7 @@ class UserExportFilesController < ApplicationController
60
61
  respond_to do |format|
61
62
  if @user_export_file.save
62
63
  if @user_export_file.mode == 'export'
63
- Resque.enqueue(UserExportFileQueue, @user_export_file.id)
64
+ UserExportFileJob.perform_later(@user_export_file)
64
65
  end
65
66
  format.html { redirect_to @user_export_file, notice: t('export.successfully_created', model: t('activerecord.models.user_export_file')) }
66
67
  format.json { render json: @user_export_file, status: :created, location: @user_export_file }
@@ -77,7 +78,7 @@ class UserExportFilesController < ApplicationController
77
78
  respond_to do |format|
78
79
  if @user_export_file.update_attributes(user_export_file_params)
79
80
  if @user_export_file.mode == 'export'
80
- UserExportFileQueue.perform(@user_export_file.id)
81
+ UserExportFileJob.perform_later(@user_export_file)
81
82
  end
82
83
  format.html { redirect_to @user_export_file, notice: t('controller.successfully_updated', model: t('activerecord.models.user_export_file')) }
83
84
  format.json { head :no_content }
@@ -100,6 +101,15 @@ class UserExportFilesController < ApplicationController
100
101
  end
101
102
 
102
103
  private
104
+ def set_user_export_file
105
+ @user_export_file = UserExportFile.find(params[:id])
106
+ authorize @user_export_file
107
+ end
108
+
109
+ def check_policy
110
+ authorize UserExportFile
111
+ end
112
+
103
113
  def user_export_file_params
104
114
  params.require(:user_export_file).permit(:mode)
105
115
  end