bpluser 0.1.19 → 0.2.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/README.md +33 -0
- data/Rakefile +34 -3
- data/app/assets/config/bpluser_manifest.js +1 -0
- data/app/assets/javascripts/bpluser/folder_tools.js +26 -0
- data/app/controllers/bookmarks_controller.rb +50 -0
- data/app/controllers/concerns/bpluser/folders_verify_user.rb +20 -0
- data/app/controllers/concerns/bpluser/omniauth_callbacks.rb +27 -0
- data/app/controllers/concerns/bpluser/registrations.rb +35 -0
- data/app/controllers/concerns/bpluser/saved_searches.rb +62 -0
- data/app/controllers/folder_items_actions_controller.rb +77 -0
- data/app/controllers/folder_items_controller.rb +97 -0
- data/app/controllers/folders_controller.rb +100 -0
- data/app/controllers/saved_searches_controller.rb +5 -0
- data/app/controllers/users/omniauth_callbacks_controller.rb +7 -0
- data/app/controllers/users/registrations_controller.rb +7 -0
- data/app/controllers/users/sessions_controller.rb +6 -0
- data/app/controllers/users_controller.rb +25 -0
- data/app/helpers/bpluser/folders_helper_behavior.rb +11 -0
- data/app/helpers/folders_helper.rb +5 -0
- data/app/models/bpluser/folder.rb +21 -10
- data/app/models/bpluser/folder_item.rb +5 -7
- data/app/models/concerns/bpluser/users.rb +71 -0
- data/app/models/concerns/bpluser/validatable.rb +34 -0
- data/app/views/bookmarks/index.html.erb +58 -0
- data/app/views/bookmarks/update.js.erb +1 -0
- data/app/views/bpluser/folders/_folder.html.erb +36 -0
- data/app/views/catalog/_constraints.html.erb +14 -0
- data/app/views/catalog/_folder_item_control.html.erb +52 -0
- data/app/views/catalog/_save_search.html.erb +8 -0
- data/app/views/devise/confirmations/new.html.erb +14 -0
- data/app/views/devise/mailer/reset_password_instructions.html.erb +13 -0
- data/app/views/devise/passwords/edit.html.erb +32 -0
- data/app/views/devise/passwords/new.html.erb +30 -0
- data/app/views/devise/registrations/edit.html.erb +82 -0
- data/app/views/devise/registrations/new.html.erb +45 -0
- data/app/views/devise/sessions/new.html.erb +72 -0
- data/app/views/devise/shared/_links.erb +29 -0
- data/app/views/folder_items/create.js.erb +1 -0
- data/app/views/folder_items/destroy.js.erb +1 -0
- data/app/views/folder_items/item_actions.js.erb +2 -0
- data/app/views/folder_items/update.js.erb +1 -0
- data/app/views/folders/_in_folder.html.erb +3 -0
- data/app/views/folders/_new_edit_form_fields.html.erb +36 -0
- data/app/views/folders/edit.html.erb +25 -0
- data/app/views/folders/index.html.erb +67 -0
- data/app/views/folders/new.html.erb +26 -0
- data/app/views/folders/public_list.html.erb +41 -0
- data/app/views/folders/show.html.erb +82 -0
- data/app/views/saved_searches/index.html.erb +55 -0
- data/app/views/search_history/index.html.erb +57 -0
- data/app/views/shared/_folder_item_actions.html.erb +54 -0
- data/app/views/shared/_folder_tools.html.erb +4 -0
- data/app/views/shared/_tools.html.erb +16 -0
- data/app/views/shared/_user_util_links.html.erb +42 -0
- data/app/views/users/show.html.erb +33 -0
- data/config/locales/bpluser.en.yml +129 -0
- data/config/routes.rb +23 -2
- data/lib/bpluser/controller.rb +61 -0
- data/lib/bpluser/devise_guests_override.rb +21 -0
- data/lib/bpluser/engine.rb +27 -1
- data/lib/bpluser/version.rb +3 -1
- data/lib/bpluser.rb +21 -15
- data/lib/generators/bpluser/controller_generator.rb +29 -0
- data/lib/generators/bpluser/devise_generator.rb +40 -0
- data/lib/generators/bpluser/install_generator.rb +62 -0
- data/lib/generators/bpluser/templates/config/locales/devise.en.yml +53 -0
- data/lib/generators/bpluser/templates/config/omniauth-polaris.yml +10 -15
- data/lib/generators/bpluser/templates/models/user.rb +3 -4
- data/lib/generators/bpluser/user_generator.rb +23 -0
- data/lib/tasks/bpluser_tasks.rake +27 -0
- metadata +132 -158
- data/app/controllers/bpluser/api_controller.rb +0 -8
- data/app/controllers/bpluser/users/omniauth_callbacks_controller.rb +0 -48
- data/app/controllers/bpluser/users/registrations_controller.rb +0 -35
- data/app/controllers/bpluser/users/sessions_controller.rb +0 -23
- data/app/models/bpluser/ability.rb +0 -22
- data/app/models/bpluser/application_record.rb +0 -5
- data/app/models/bpluser/concerns/users.rb +0 -190
- data/app/models/bpluser/concerns/validatable.rb +0 -47
- data/app/models/bpluser/user.rb~ +0 -213
- data/app/models/bpluser/user_institution.rb +0 -6
- data/app/models/bpluser/validatable.rb~ +0 -65
- data/lib/bpluser/routes.rb +0 -37
- data/lib/generators/bpluser/bpluser_generator.rb +0 -183
- data/lib/generators/bpluser/templates/config/hydra-ldap.yml +0 -33
- data/lib/generators/bpluser/templates/config/omniauth-facebook.yml +0 -14
- data/lib/generators/bpluser/templates/controllers/users/omniauth_callbacks_controller.rb +0 -3
- data/lib/generators/bpluser/templates/controllers/users/registrations_controller.rb +0 -3
- data/lib/generators/bpluser/templates/controllers/users/sessions_controller.rb +0 -3
- data/lib/generators/bpluser/templates/migrations/add_fields_to_user.rb +0 -22
- data/lib/generators/bpluser/templates/migrations/add_folder_items_to_folder.rb +0 -18
- data/lib/generators/bpluser/templates/migrations/add_folders_to_user.rb +0 -14
- data/lib/generators/bpluser/templates/migrations/create_institutions_for_users.rb +0 -16
- data/lib/generators/bpluser/templates/models/ability.rb +0 -4
- data/lib/generators/bpluser/templates/views/devise/registrations/edit.html.erb +0 -0
- data/lib/generators/bpluser/templates/views/devise/registrations/new.html.erb +0 -24
- data/lib/generators/bpluser/templates/views/devise/sessions/new.html.erb +0 -17
- /data/lib/generators/bpluser/templates/config/initializers/{devise.rb → devise.rb.bak} +0 -0
@@ -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 @@
|
|
1
|
+
$('#folder_item_toggle').replaceWith("<%= escape_javascript(render(partial: 'folders/in_folder')) %>");
|
@@ -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,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>
|