bpluser 0.1.19 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (99) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +33 -0
  3. data/Rakefile +34 -3
  4. data/app/assets/config/bpluser_manifest.js +1 -0
  5. data/app/assets/javascripts/bpluser/folder_tools.js +26 -0
  6. data/app/controllers/bookmarks_controller.rb +50 -0
  7. data/app/controllers/concerns/bpluser/folders_verify_user.rb +20 -0
  8. data/app/controllers/concerns/bpluser/omniauth_callbacks.rb +27 -0
  9. data/app/controllers/concerns/bpluser/registrations.rb +35 -0
  10. data/app/controllers/concerns/bpluser/saved_searches.rb +62 -0
  11. data/app/controllers/folder_items_actions_controller.rb +77 -0
  12. data/app/controllers/folder_items_controller.rb +97 -0
  13. data/app/controllers/folders_controller.rb +100 -0
  14. data/app/controllers/saved_searches_controller.rb +5 -0
  15. data/app/controllers/users/omniauth_callbacks_controller.rb +7 -0
  16. data/app/controllers/users/registrations_controller.rb +7 -0
  17. data/app/controllers/users/sessions_controller.rb +6 -0
  18. data/app/controllers/users_controller.rb +25 -0
  19. data/app/helpers/bpluser/folders_helper_behavior.rb +11 -0
  20. data/app/helpers/folders_helper.rb +5 -0
  21. data/app/models/bpluser/folder.rb +21 -10
  22. data/app/models/bpluser/folder_item.rb +5 -7
  23. data/app/models/concerns/bpluser/users.rb +71 -0
  24. data/app/models/concerns/bpluser/validatable.rb +34 -0
  25. data/app/views/bookmarks/index.html.erb +58 -0
  26. data/app/views/bookmarks/update.js.erb +1 -0
  27. data/app/views/bpluser/folders/_folder.html.erb +36 -0
  28. data/app/views/catalog/_constraints.html.erb +14 -0
  29. data/app/views/catalog/_folder_item_control.html.erb +52 -0
  30. data/app/views/catalog/_save_search.html.erb +8 -0
  31. data/app/views/devise/confirmations/new.html.erb +14 -0
  32. data/app/views/devise/mailer/reset_password_instructions.html.erb +13 -0
  33. data/app/views/devise/passwords/edit.html.erb +32 -0
  34. data/app/views/devise/passwords/new.html.erb +30 -0
  35. data/app/views/devise/registrations/edit.html.erb +82 -0
  36. data/app/views/devise/registrations/new.html.erb +45 -0
  37. data/app/views/devise/sessions/new.html.erb +72 -0
  38. data/app/views/devise/shared/_links.erb +29 -0
  39. data/app/views/folder_items/create.js.erb +1 -0
  40. data/app/views/folder_items/destroy.js.erb +1 -0
  41. data/app/views/folder_items/item_actions.js.erb +2 -0
  42. data/app/views/folder_items/update.js.erb +1 -0
  43. data/app/views/folders/_in_folder.html.erb +3 -0
  44. data/app/views/folders/_new_edit_form_fields.html.erb +36 -0
  45. data/app/views/folders/edit.html.erb +25 -0
  46. data/app/views/folders/index.html.erb +67 -0
  47. data/app/views/folders/new.html.erb +26 -0
  48. data/app/views/folders/public_list.html.erb +41 -0
  49. data/app/views/folders/show.html.erb +82 -0
  50. data/app/views/saved_searches/index.html.erb +55 -0
  51. data/app/views/search_history/index.html.erb +57 -0
  52. data/app/views/shared/_folder_item_actions.html.erb +54 -0
  53. data/app/views/shared/_folder_tools.html.erb +4 -0
  54. data/app/views/shared/_tools.html.erb +16 -0
  55. data/app/views/shared/_user_util_links.html.erb +42 -0
  56. data/app/views/users/show.html.erb +33 -0
  57. data/config/locales/bpluser.en.yml +129 -0
  58. data/config/routes.rb +23 -2
  59. data/lib/bpluser/controller.rb +61 -0
  60. data/lib/bpluser/devise_guests_override.rb +21 -0
  61. data/lib/bpluser/engine.rb +27 -1
  62. data/lib/bpluser/version.rb +3 -1
  63. data/lib/bpluser.rb +21 -15
  64. data/lib/generators/bpluser/controller_generator.rb +29 -0
  65. data/lib/generators/bpluser/devise_generator.rb +40 -0
  66. data/lib/generators/bpluser/install_generator.rb +62 -0
  67. data/lib/generators/bpluser/templates/config/initializers/{devise.rb → devise.rb.bak} +0 -0
  68. data/lib/generators/bpluser/templates/config/locales/devise.en.yml +53 -0
  69. data/lib/generators/bpluser/templates/config/omniauth-polaris.yml +10 -15
  70. data/lib/generators/bpluser/templates/models/user.rb +3 -4
  71. data/lib/generators/bpluser/user_generator.rb +23 -0
  72. data/lib/tasks/bpluser_tasks.rake +27 -0
  73. metadata +132 -158
  74. data/app/controllers/bpluser/api_controller.rb +0 -8
  75. data/app/controllers/bpluser/users/omniauth_callbacks_controller.rb +0 -48
  76. data/app/controllers/bpluser/users/registrations_controller.rb +0 -35
  77. data/app/controllers/bpluser/users/sessions_controller.rb +0 -23
  78. data/app/models/bpluser/ability.rb +0 -22
  79. data/app/models/bpluser/application_record.rb +0 -5
  80. data/app/models/bpluser/concerns/users.rb +0 -190
  81. data/app/models/bpluser/concerns/validatable.rb +0 -47
  82. data/app/models/bpluser/user.rb~ +0 -213
  83. data/app/models/bpluser/user_institution.rb +0 -6
  84. data/app/models/bpluser/validatable.rb~ +0 -65
  85. data/lib/bpluser/routes.rb +0 -37
  86. data/lib/generators/bpluser/bpluser_generator.rb +0 -183
  87. data/lib/generators/bpluser/templates/config/hydra-ldap.yml +0 -33
  88. data/lib/generators/bpluser/templates/config/omniauth-facebook.yml +0 -14
  89. data/lib/generators/bpluser/templates/controllers/users/omniauth_callbacks_controller.rb +0 -3
  90. data/lib/generators/bpluser/templates/controllers/users/registrations_controller.rb +0 -3
  91. data/lib/generators/bpluser/templates/controllers/users/sessions_controller.rb +0 -3
  92. data/lib/generators/bpluser/templates/migrations/add_fields_to_user.rb +0 -22
  93. data/lib/generators/bpluser/templates/migrations/add_folder_items_to_folder.rb +0 -18
  94. data/lib/generators/bpluser/templates/migrations/add_folders_to_user.rb +0 -14
  95. data/lib/generators/bpluser/templates/migrations/create_institutions_for_users.rb +0 -16
  96. data/lib/generators/bpluser/templates/models/ability.rb +0 -4
  97. data/lib/generators/bpluser/templates/views/devise/registrations/edit.html.erb +0 -0
  98. data/lib/generators/bpluser/templates/views/devise/registrations/new.html.erb +0 -24
  99. data/lib/generators/bpluser/templates/views/devise/sessions/new.html.erb +0 -17
@@ -0,0 +1,29 @@
1
+ <%- if controller_name != 'sessions' %>
2
+ <%= link_to "Sign in", new_user_session_path %><br />
3
+ <% end -%>
4
+
5
+ <%- if devise_mapping.registerable? && controller_name != 'registrations' %>
6
+ Don't have an account? <strong><%= link_to t('devise.registrations.sign_up'),
7
+ new_user_registration_path %></strong><br />
8
+ <% end -%>
9
+
10
+ <%# if devise_mapping.recoverable? && controller_name != 'passwords' %>
11
+ <%# link_to "Forgot your password?", new_password_path(resource_name) %><!-- <br /> -->
12
+ <%# end -%>
13
+
14
+ <%- if devise_mapping.confirmable? && controller_name != 'confirmations' %>
15
+ <%= link_to "Didn't receive confirmation instructions?", new_confirmation_path(resource_name) %><br />
16
+ <% end -%>
17
+
18
+ <%- if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != 'unlocks' %>
19
+ <%= link_to "Didn't receive unlock instructions?", new_unlock_path(resource_name) %><br />
20
+ <% end -%>
21
+ <!--
22
+ <div>
23
+ <%# if devise_mapping.omniauthable? %>
24
+ <%# resource_class.omniauth_providers.each do |provider| %>
25
+ <%# link_to "Sign in with #{provider.to_s.titleize}", omniauth_authorize_path(resource_name, provider) %><br />
26
+ <%# end -%>
27
+ <%# end -%>
28
+ </div>
29
+ -->
@@ -0,0 +1 @@
1
+ $('#folder_item_toggle').replaceWith("<%= escape_javascript(render(partial: 'folders/in_folder')) %>");
@@ -0,0 +1 @@
1
+ $('#folder_item_toggle').replaceWith("<%= escape_javascript(render(partial: 'catalog/folder_item_control', locals: { document: @document })) %>")
@@ -0,0 +1,2 @@
1
+ /* need this so flash error shows up on ajax form submit w/no ??? */
2
+ $('#flash').html(<%= flash[:notice].to_json %>);
@@ -0,0 +1 @@
1
+ $('#folder_item_toggle').replaceWith("<%= escape_javascript(render(partial: 'folders/in_folder')) %>");
@@ -0,0 +1,3 @@
1
+ <%= icon('fas', 'folder-open', aria: { hidden: true }) %> <%= link_to(t('blacklight.folder_items.item_in_folder'),
2
+ folders_path) %>
3
+
@@ -0,0 +1,36 @@
1
+ <%= form_for(form_object, html: { id: 'edit_folder_form' }) do |f| %>
2
+ <p class="form_intro_text">Add a title and description for your folder. If the visibility is set to "public," other users will be able to view the items in the folder. (Items can only be added or removed by you.)</p>
3
+ <%= render 'shared/error_messages', :object => f.object %>
4
+ <div class="form-group row">
5
+ <%= label_tag(:title,
6
+ content_tag(:span, '*', class: 'required_field_indicator') + ' Title',
7
+ class: 'col-form-label col-sm-2') %>
8
+ <div class="col-sm-4">
9
+ <%= f.text_field :title, class: 'form-control' %>
10
+ </div>
11
+ </div>
12
+ <div class="form-group row">
13
+ <%= label_tag(:visibility,
14
+ content_tag(:span, '*', class: 'required_field_indicator') + ' Visibility',
15
+ class: 'col-form-label col-sm-2') %>
16
+ <div class="col-sm-3">
17
+ <%= f.select(:visibility, %w(private public), {}, { class: 'form-control' }) %>
18
+ </div>
19
+ </div>
20
+ <div class="form-group row">
21
+ <%= f.label :description, class: 'col-form-label col-sm-2' %>
22
+ <div class="col-sm-4">
23
+ <%= f.text_area :description, class: 'form-control', size: '24x4' %>
24
+ </div>
25
+ </div>
26
+ <div class="form-group row">
27
+ <div class="offset-sm-2 col-sm-6">
28
+ <%= f.submit submit_button_text, class: 'btn btn-primary' %>
29
+ <% if @folder.id %>
30
+ <%= link_to 'Cancel', folder_path(@folder.id), class: 'btn btn-outline-secondary' %>
31
+ <% else %>
32
+ <%= link_to 'Cancel', folders_path, class: 'btn btn-outline-secondary' %>
33
+ <% end %>
34
+ </div>
35
+ </div>
36
+ <% end %>
@@ -0,0 +1,25 @@
1
+ <% @page_title = t('blacklight.folders.edit_folder') + " - " + application_name %>
2
+ <div class="col-sm-9">
3
+ <div id="breadcrumb">
4
+ <ul class="breadcrumb">
5
+ <li class="breadcrumb-item">
6
+ <%= link_to(t('blacklight.users.account_heading'), current_user) %>
7
+ <span class="divider"><%= t('blacklight.breadcrumb.separator') %></span>
8
+ </li>
9
+ <li class="breadcrumb-item">
10
+ <%= link_to(t('blacklight.folders.list_title'), folders_path) %>
11
+ <span class="divider"><%= t('blacklight.breadcrumb.separator') %></span>
12
+ </li>
13
+ <li class="active breadcrumb-item">
14
+ <%= t('blacklight.folders.edit_folder') + ': ' + @folder.title %>
15
+ </li>
16
+ </ul>
17
+ </div>
18
+ <div id="edit_folder" class="folder_container">
19
+
20
+ <h2><%= t('blacklight.folders.edit_folder') + ': ' + @folder.title %></h2>
21
+
22
+ <%= render 'new_edit_form_fields', :form_object => @folder, :submit_button_text => 'Update folder' %>
23
+
24
+ </div>
25
+ </div>
@@ -0,0 +1,67 @@
1
+ <% @page_title = t('blacklight.folders.list_title') + " - " + application_name %>
2
+ <div class="row">
3
+ <div class="col-sm-9">
4
+
5
+ <div id="breadcrumb">
6
+ <ul class="breadcrumb">
7
+ <% if current_user %>
8
+ <li class="breadcrumb-item">
9
+ <%= link_to(t('blacklight.users.account_heading'), current_user) %>
10
+ <span class="divider"><%= t('blacklight.breadcrumb.separator') %></span>
11
+ </li>
12
+ <% end %>
13
+ <li class="active breadcrumb-item">
14
+ <%= t('blacklight.folders.list_title') %>
15
+ </li>
16
+ </ul>
17
+ </div>
18
+
19
+ <h2>
20
+ <%= t('blacklight.folders.list_title') %>
21
+ <small id="add_folder">
22
+ <%= link_to(icon('fas', 'plus', aria: { hidden: true }) + ' add folder',
23
+ new_folder_path,
24
+ id: 'create_folder_link',
25
+ class: 'btn btn-primary btn-sm') %>
26
+ </small>
27
+ </h2>
28
+
29
+ <% if current_or_guest_user.blank? %>
30
+ <% redirect to login %>
31
+ <% else %>
32
+
33
+ <div id="user_folders" class="folder_container">
34
+ <p><%= t('blacklight.folders.intro') %></p>
35
+ <ul id="user_folder_list">
36
+ <li>
37
+ <h4>
38
+ <%= link_to t('blacklight.bookmarks.title'), bookmarks_path, :class => "folder_title" %>
39
+ <small class="folder_visibility">
40
+ <% if current_user %>
41
+ <%= icon('fas', 'lock', aria: { hidden: true }) %>
42
+ <span class="visibility_private">private</span>
43
+ <% end %>
44
+ </small>
45
+ </h4>
46
+ <div class="folder_status">
47
+ <span class="folder_item_count">
48
+ <%= pluralize(current_or_guest_user.bookmarks.length.to_s, 'item') %>
49
+ </span>
50
+ </div>
51
+ <%= t('blacklight.bookmarks.description') %>
52
+ </li>
53
+ <% unless @folders.blank? %>
54
+ <%= render @folders %>
55
+ <% end %>
56
+ </ul>
57
+ </div>
58
+ <% end %>
59
+ </div>
60
+ <div class="col-sm-3">
61
+ <div id="public_folders_sidebar">
62
+ <ul>
63
+ <li><%= link_to 'View all shared folders', public_folders_path %></li>
64
+ </ul>
65
+ </div>
66
+ </div>
67
+ </div>
@@ -0,0 +1,26 @@
1
+ <% @page_title = "#{t('blacklight.folders.add_folder')} - #{application_name}" %>
2
+ <div class="col-sm-9">
3
+
4
+ <div id="breadcrumb">
5
+ <ul class="breadcrumb">
6
+ <li class="breadcrumb-item">
7
+ <%= link_to(t('blacklight.users.account_heading'), current_user) %>
8
+ <span class="divider"><%= t('blacklight.breadcrumb.separator') %></span>
9
+ </li>
10
+ <li class="breadcrumb-item">
11
+ <%= link_to(t('blacklight.folders.list_title'), folders_path) %>
12
+ <span class="divider"><%= t('blacklight.breadcrumb.separator') %></span>
13
+ </li>
14
+ <li class="active breadcrumb-item">
15
+ <%= t('blacklight.folders.add_folder') %>
16
+ </li>
17
+ </ul>
18
+ </div>
19
+
20
+ <div id="new_folder" class="folder_container">
21
+
22
+ <h2><%= t('blacklight.folders.add_folder') %></h2>
23
+ <%= render 'new_edit_form_fields', form_object: @folder, submit_button_text: 'Create Folder' %>
24
+
25
+ </div>
26
+ </div>
@@ -0,0 +1,41 @@
1
+ <% @page_title = "#{t('blacklight.folders.public_list.title')} - #{application_name}" %>
2
+ <div class="col-sm-9">
3
+
4
+ <div id="breadcrumb">
5
+ <ul class="breadcrumb">
6
+ <% if current_user %>
7
+ <li class="breadcrumb-item">
8
+ <%= link_to(t('blacklight.users.account_heading'), current_user) %>
9
+ <span class="divider"><%= t('blacklight.breadcrumb.separator') %></span>
10
+ </li>
11
+ <% end %>
12
+ <li class="breadcrumb-item">
13
+ <%= link_to(t('blacklight.folders.list_title'), folders_path) %>
14
+ <span class="divider"><%= t('blacklight.breadcrumb.separator') %></span>
15
+ </li>
16
+ <li class="active breadcrumb-item">
17
+ <%= t('blacklight.folders.public_list.title') %>
18
+ </li>
19
+ </ul>
20
+ </div>
21
+
22
+ <h2>
23
+ <%= t('blacklight.folders.public_list.title') %>
24
+ <small id="add_folder">
25
+ <%= link_to(icon('fas', 'plus', aria: { hidden: true }) + ' add folder',
26
+ new_folder_path,
27
+ id: 'create_folder_link',
28
+ class: 'btn btn-primary btn-sm') %>
29
+ </small>
30
+ </h2>
31
+
32
+ <div id="user_folders" class="folder_container">
33
+ <p><%= t('blacklight.folders.public_list.intro') %></p>
34
+ <ul id="user_folder_list" class="public_folders">
35
+ <% unless @folders.blank? %>
36
+ <%= render @folders %>
37
+ <% end %>
38
+ </ul>
39
+ </div>
40
+
41
+ </div>
@@ -0,0 +1,82 @@
1
+ <% @page_title = "{@folder.title}-#{application_name}" %>
2
+
3
+ <%= javascript_include_tag 'bpluser/folder_tools' %>
4
+
5
+ <div id="content" class="folder_show_container col-sm-9">
6
+ <div id="breadcrumb">
7
+ <ul class="breadcrumb">
8
+ <% if current_user %>
9
+ <li class="breadcrumb-item">
10
+ <%= link_to(t('blacklight.users.account_heading'), current_user) %>
11
+ <span class="divider"><%= t('blacklight.breadcrumb.separator') %></span>
12
+ </li>
13
+ <% end %>
14
+ <li class="breadcrumb-item">
15
+ <%= link_to(t('blacklight.folders.list_title'), folders_path) %>
16
+ <span class="divider"><%= t('blacklight.breadcrumb.separator') %></span>
17
+ </li>
18
+ <% unless current_user and current_user.folders.include?(@folder) %>
19
+ <li class="breadcrumb-item">
20
+ <%= link_to(t('blacklight.folders.public_list.title'), public_folders_path) %>
21
+ <span class="divider"><%= t('blacklight.breadcrumb.separator') %></span>
22
+ </li>
23
+ <% end %>
24
+ <li class="active breadcrumb-item">
25
+ <%= @folder.title %>
26
+ </li>
27
+ </ul>
28
+ </div>
29
+
30
+ <h2>
31
+ <%= @folder.title %>
32
+ <% if current_user && folder_belongs_to_user(@folder) %>
33
+ <small id="folder_tools">
34
+ <div class="folder_visibility">
35
+ <% if @folder.public? %>
36
+ <%= icon('fas', 'eye', aria: { hidden: true }) %>
37
+ <span class="visibility_public"><%= @folder.visibility %></span>
38
+ <% else %>
39
+ <%= icon('fas', 'lock', aria: { hidden: true }) %>
40
+ <span class="visibility_private"><%= @folder.visibility %></span>
41
+ <% end %>
42
+ </div>
43
+ <%= link_to(icon('fas', 'edit', aria: { hidden: true }) + ' ' + t('blacklight.folders.edit'),
44
+ edit_folder_path(@folder),
45
+ class: 'btn btn-outline-secondary btn-sm',
46
+ title: 'edit this folder') %>
47
+ <%= link_to(icon('fas', 'trash-alt', aria: { hidden: true }) + ' ' + t('blacklight.folders.delete.delete'),
48
+ @folder,
49
+ class: 'btn btn-outline-secondary btn-sm',
50
+ method: :delete,
51
+ data: { confirm: t('blacklight.folders.delete.confirm') },
52
+ title: t('blacklight.folders.delete.delete')) %>
53
+ </small>
54
+ <% end %>
55
+ </h2>
56
+
57
+ <%# render 'shared/tools' %>
58
+ <% if @folder.description %>
59
+ <div id="folder_description">
60
+ <%= @folder.description %>
61
+ </div>
62
+ <% end %>
63
+
64
+ <% unless @folder_items.empty? %>
65
+ <%= render partial: 'catalog/sort_and_per_page' %>
66
+
67
+ <%= form_tag selected_folder_items_actions_path, method: :put, id: "item_actions_form" do %>
68
+ <%= render partial: 'shared/folder_item_actions' %>
69
+ <%= render_document_index %>
70
+ <% end %>
71
+
72
+ <%= render partial: 'catalog/results_pagination' %>
73
+ <% else %>
74
+ <div id="empty_folder" class="well">
75
+ <h5><%= t('blacklight.folders.empty') %></h5>
76
+ <p><%= t('blacklight.folders.help.add_items') %></p>
77
+ </div>
78
+ <% end %>
79
+ </div>
80
+ <div id="sidebar" class="col-sm-3 folder_facets">
81
+ <%# render 'catalog/search_sidebar' %>
82
+ </div><!--/well -->
@@ -0,0 +1,55 @@
1
+ <% @page_title = t('blacklight.saved_searches.page_title', application_name: application_name) %>
2
+ <div class="col-sm-9" id="searches_content">
3
+
4
+ <div id="breadcrumb">
5
+ <ul class="breadcrumb">
6
+ <li class="breadcrumb-item">
7
+ <%= link_to(t('blacklight.users.account_heading'), current_user) %>
8
+ <span class="divider"><%= t('blacklight.breadcrumb.separator') %></span>
9
+ </li>
10
+ <li class="active breadcrumb-item">
11
+ <%= t('blacklight.saved_searches.title') %>
12
+ </li>
13
+ </ul>
14
+ </div>
15
+
16
+ <h2><%= t('blacklight.saved_searches.title') %></h2>
17
+ <%= t('blacklight.saved_searches.intro') %>
18
+
19
+ <% if current_or_guest_user.blank? %>
20
+
21
+ <h4><%= t('blacklight.saved_searches.need_login') %></h4>
22
+
23
+ <% elsif @searches.blank?-%>
24
+
25
+ <div id="empty_saved_searches" class="well">
26
+ <h4><%= t('blacklight.saved_searches.no_searches') %></h4>
27
+ <p>To save a search, click the "Save Search" link on the search results page.</p>
28
+ </div>
29
+
30
+ <% else %>
31
+ <%= link_to t('blacklight.saved_searches.clear.action_title'),
32
+ clear_saved_searches_path,
33
+ method: :delete,
34
+ data: { confirm: t('blacklight.saved_searches.clear.action_confirm') },
35
+ class: 'clear_all btn btn-warning float-md-right' %>
36
+ <h3><%= t('blacklight.saved_searches.list_title') %></h3>
37
+ <table class="table">
38
+ <%- @searches.each do |search| -%>
39
+ <tr>
40
+ <td><%= link_to_previous_search(search.query_params) %></td>
41
+ <td><%# button_to content_tag(:i, '', :class => 'icon-remove'),
42
+ forget_search_path(search.id) %>
43
+ <%= link_to(icon('fas', 'times', aria: { hidden: true }),
44
+ forget_search_path(search.id),
45
+ class: 'delete_search',
46
+ method: 'post',
47
+ aria: { label: t('blacklight.saved_searches.delete') },
48
+ title: t('blacklight.saved_searches.delete')) %>
49
+ </td>
50
+ </tr>
51
+ <% end %>
52
+ </table>
53
+
54
+ <% end %>
55
+ </div>
@@ -0,0 +1,57 @@
1
+ <% @page_title = t('blacklight.search_history.page_title', application_name: application_name) %>
2
+ <div class="col-sm-9" id="search_history_content">
3
+ <%# sidebar_items << capture do %>
4
+ <!-- <p><%# link_back_to_catalog %></p> -->
5
+ <%# end %>
6
+ <div id="breadcrumb">
7
+ <ul class="breadcrumb">
8
+ <% if current_user %>
9
+ <li class="breadcrumb-item">
10
+ <%= link_to(t('blacklight.users.account_heading'), current_user) %>
11
+ <span class="divider"><%= t('blacklight.breadcrumb.separator') %></span>
12
+ </li>
13
+ <% end %>
14
+ <li class="active breadcrumb-item">
15
+ <%=t('blacklight.search_history.title')%>
16
+ </li>
17
+ </ul>
18
+ </div>
19
+
20
+
21
+ <h2><%=t('blacklight.search_history.title')%></h2>
22
+ <%= t('blacklight.search_history.intro') %>
23
+ <% if @searches.blank? %>
24
+ <div id="empty_search_history">
25
+ <h3><%=t('blacklight.search_history.no_history')%></h3>
26
+ <p>Search for items by entering keywords in the search bar at the top right.</p>
27
+ </div>
28
+ <% else %>
29
+ <%= link_to t('blacklight.search_history.clear.action_title'),
30
+ blacklight.clear_search_history_path,
31
+ method: :delete,
32
+ id: 'clear_search_history',
33
+ data: { confirm: t('blacklight.search_history.clear.action_confirm') },
34
+ class: 'btn btn-warning float-md-right' %>
35
+ <h3><%=t('blacklight.search_history.recent')%></h3>
36
+ <table id="searches_list" class="table search_history">
37
+ <% @searches.each_with_index do |search, index| %>
38
+ <tr id="document_<%= index + 1 %>">
39
+ <td class="query"><%= link_to_previous_search(search_state.reset(search.query_params).to_hash) %></td>
40
+ <% if has_user_authentication_provider? %>
41
+ <td class="actions">
42
+ <% if current_or_guest_user && search.saved? %>
43
+ <%# button_to t('blacklight.search_history.forget'), blacklight.forget_search_path(search.id),
44
+ class: 'btn btn-secondary' %>
45
+ <%= icon('fas', 'check') %>
46
+ In your <%= link_to t('blacklight.saved_searches.title'), saved_searches_path %>
47
+ <% else %>
48
+ <%= button_to t('blacklight.search_history.save'), save_search_path(search.id),
49
+ method: :put, class: 'btn btn-secondary' %>
50
+ <% end %>
51
+ </td>
52
+ <% end %>
53
+ </tr>
54
+ <% end %>
55
+ </table>
56
+ <% end %>
57
+ </div>
@@ -0,0 +1,54 @@
1
+ <div id="folderItemTools">
2
+ <%= render partial: 'shared/folder_tools' %>
3
+ </div>
4
+
5
+ <%# for users w/JS, email_btn and cite_btn below are replaced by shared/folder_tools %>
6
+ <%= button_tag(type: 'submit', class: 'btn btn-outline-secondary', id: 'cite_btn', name: 'commit', value: t('blacklight.tools.citation')) do %>
7
+ <%= icon('fas', 'list-alt', aria: { hidden: true }) + ' ' + t('blacklight.tools.citation') %>
8
+ <% end %>
9
+ <%= button_tag(type: 'submit', class: 'btn btn-outline-secondary', id: 'email_btn', name: 'commit', value: t('blacklight.tools.email')) do %>
10
+ <%= icon('far', 'envelope', aria: { hidden: true }) + ' ' + t('blacklight.tools.email') %>
11
+ <% end %>
12
+
13
+ <% if params[:controller] == 'bookmarks' || folder_belongs_to_user(@folder) %>
14
+ <%= button_tag(type: 'submit', class: 'btn btn-outline-secondary', id: 'remove_btn', name: 'commit', value: t('blacklight.tools.remove')) do %>
15
+ <%= icon('fas', 'times', aria: { hidden: true }) + ' ' + t('blacklight.tools.remove') %>
16
+ <% end %>
17
+ <% end %>
18
+
19
+ <% if current_user && !current_user.folders.empty? %>
20
+ <div class="btn-group folder-item-control" id="copy_folder_item_control">
21
+ <button id="folder_item_copy_dropdown" class="btn btn-outline-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
22
+ <%= icon('fas', 'random', aria: { hidden: true }) + ' ' + t('blacklight.tools.copy_to') %>
23
+ </button>
24
+ <div class="dropdown-menu folder_copy_list" aria-labelledby="folder_item_copy_dropdown">
25
+ <% unless params[:controller] == 'bookmarks' %>
26
+ <div class="folder_copy_option dropdown-item">
27
+ <%= button_tag(type: 'submit',
28
+ class: 'copy_btn',
29
+ name: 'commit',
30
+ value: t('blacklight.tools.copy_to') + ' ' + t('blacklight.bookmarks.title')) do %>
31
+ <%= t('blacklight.bookmarks.title') %>
32
+ <% end %>
33
+ </div>
34
+ <% end %>
35
+ <% current_user.folders.each do |folder| %>
36
+ <% unless @folder && folder.id == @folder.id %>
37
+ <div class="folder_copy_option dropdown-item">
38
+ <%= button_tag(type: 'submit',
39
+ class: 'copy_btn',
40
+ name: 'commit',
41
+ value: t('blacklight.tools.copy_to') + ' ' + folder.id.to_s) do %>
42
+ <%= folder.title %>
43
+ <% end %>
44
+ </div>
45
+ <% end %>
46
+ <% end %>
47
+ </div>
48
+ </div>
49
+ <% end %>
50
+
51
+ <%= hidden_field_tag(:per_page, params[:per_page]) if params[:per_page] %>
52
+ <%= hidden_field_tag(:sort, params[:sort]) if params[:sort] %>
53
+ <%= hidden_field_tag(:view, params[:view]) if params[:view] %>
54
+ <%= hidden_field_tag(:origin, params[:controller]) %>
@@ -0,0 +1,4 @@
1
+ <script language="javascript" type="text/javascript">
2
+ // render the tool buttons
3
+ $('#folderItemTools').html("<%= escape_javascript(render('shared/tools')) %>");
4
+ </script>
@@ -0,0 +1,16 @@
1
+ <input type="checkbox" name="selectAll" id="selectAllItems" />
2
+ <ul class="folderItemToolsList">
3
+ <li class="cite">
4
+ <%= link_to icon('fas', 'list-alt', aria: { hidden: true }) + ' ' + t('blacklight.tools.citation'),
5
+ citation_solr_documents_path(id: ''),
6
+ { id: 'citeLink', name: 'citation',
7
+ class: 'lightboxLink btn btn-outline-secondary',
8
+ data: { blacklight_modal: 'trigger' }} %>
9
+ </li>
10
+ <li class="email">
11
+ <%= link_to icon('far', 'envelope', aria: { hidden: true }) + ' ' + t('blacklight.tools.email'),
12
+ email_solr_documents_path(id: ''),
13
+ class: 'lightboxLink btn btn-outline-secondary',
14
+ id: 'emailLink', data: { blacklight_modal: 'trigger' } %>
15
+ </li>
16
+ </ul>
@@ -0,0 +1,42 @@
1
+ <div id="user-util-links" class="justify-content-md-end">
2
+
3
+ <% if current_user %>
4
+
5
+ <div id="user-nav-btn" class="btn-group btn-group-xs">
6
+ <%= link_to(icon('fas', 'user', aria: { hidden: true }) + ' ' + current_user.first_name,
7
+ current_user, class: 'btn btn-outline-secondary btn-sm') if current_user %>
8
+ <button class="btn btn-xs btn-outline-secondary dropdown-toggle" data-toggle="dropdown"
9
+ aria-haspopup="true" aria-expanded="false">
10
+ </button>
11
+ <div id="user-util-links-list" class="dropdown-menu">
12
+ <%= link_to t('blacklight.header_links.folders'), folders_path, class: 'dropdown-item' %>
13
+ <%= link_to t('blacklight.header_links.saved_searches'), saved_searches_path, class: 'dropdown-item' %>
14
+ <%= link_to t('blacklight.header_links.search_history'), blacklight.search_history_path, class: 'dropdown-item' %>
15
+ <%= link_to t('devise.registrations.edit'), edit_user_registration_path, class: 'dropdown-item' %>
16
+ <%= link_to t('blacklight.header_links.logout'), destroy_user_session_path, class: 'dropdown-item' %>
17
+ </div>
18
+ </div>
19
+
20
+ <% else %>
21
+ <div id="util-links-nologin">
22
+ <ul id="user-util-links-list" class="list-inline">
23
+ <% unless @searches.blank? && session[:history].blank? %>
24
+ <% if current_or_guest_user %>
25
+ <li class="list-inline-item"><%= link_to t('blacklight.header_links.folders'), folders_path %></li>
26
+ <% end %>
27
+ <% end %>
28
+ <% if has_user_authentication_provider? %>
29
+ <li class="list-inline-item"><%= link_to t('blacklight.header_links.login'), new_user_session_path %></li>
30
+ <% end %>
31
+ </ul>
32
+ </div>
33
+
34
+ <% end %>
35
+
36
+ <% unless params[:controller] == 'pages' && params[:action] == 'home' %>
37
+ <div id="header-search">
38
+ <%= render :partial=>'shared/search_form_header' %>
39
+ </div>
40
+ <% end %>
41
+
42
+ </div>
@@ -0,0 +1,33 @@
1
+ <% @page_title = "#{t('blacklight.users.account_heading')} - #{application_name}" %>
2
+ <div class="col-sm-9">
3
+ <h2>
4
+ <%= t('blacklight.users.account_heading') %>
5
+ </h2>
6
+
7
+ <ul id="user_account_links_list">
8
+ <li>
9
+ <h4><%= link_to t('blacklight.header_links.folders'), folders_path %></h4>
10
+ <%= t('blacklight.folders.intro') %>
11
+ </li>
12
+ <li>
13
+ <h4><%= link_to t('blacklight.header_links.saved_searches'), saved_searches_path %></h4>
14
+ <%= t('blacklight.saved_searches.intro') %>
15
+ </li>
16
+ <li>
17
+ <h4><%= link_to t('blacklight.header_links.search_history'), blacklight.search_history_path %></h4>
18
+ <%= t('blacklight.search_history.intro') %>
19
+ </li>
20
+ <li>
21
+ <h4><%= link_to t('devise.registrations.edit'), edit_user_registration_path %></h4>
22
+ Change your email or password, or cancel your account.
23
+ </li>
24
+ </ul>
25
+
26
+ </div>
27
+ <div class="col-sm-3">
28
+ <div class="well sidebar-right">
29
+ <ul class="list-unstyled">
30
+ <li><%= link_to t('blacklight.header_links.logout'), destroy_user_session_path, :class => 'btn btn-secondary' %></li>
31
+ </ul>
32
+ </div>
33
+ </div>