sufia 4.0.0.beta3 → 4.0.0.beta4

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 (133) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +7 -0
  3. data/SUFIA_VERSION +1 -1
  4. data/app/assets/javascripts/sufia/search.js +4 -6
  5. data/app/assets/stylesheets/dashboard.css.scss +26 -0
  6. data/app/assets/stylesheets/header.css.scss +21 -12
  7. data/app/controllers/batch_controller.rb +0 -1
  8. data/app/controllers/collections_controller.rb +0 -1
  9. data/app/controllers/concerns/sufia/catalog.rb +0 -9
  10. data/app/controllers/concerns/sufia/controller.rb +4 -0
  11. data/app/controllers/concerns/sufia/dashboard_controller_behavior.rb +24 -74
  12. data/app/controllers/concerns/sufia/downloads_controller_behavior.rb +0 -3
  13. data/app/controllers/concerns/sufia/files_controller_behavior.rb +4 -13
  14. data/app/controllers/concerns/sufia/my_controller_behavior.rb +87 -0
  15. data/app/controllers/{dashboard → my}/collections_controller.rb +3 -2
  16. data/app/controllers/{dashboard → my}/files_controller.rb +3 -2
  17. data/app/controllers/{dashboard → my}/highlights_controller.rb +3 -2
  18. data/app/controllers/{dashboard → my}/shares_controller.rb +3 -2
  19. data/app/controllers/my_controller.rb +3 -0
  20. data/app/controllers/single_use_links_controller.rb +0 -2
  21. data/app/helpers/dashboard_helper.rb +3 -0
  22. data/app/helpers/generic_file_helper.rb +4 -4
  23. data/app/helpers/sufia/dashboard_helper_behavior.rb +25 -0
  24. data/app/helpers/sufia/sufia_helper_behavior.rb +44 -0
  25. data/app/jobs/content_delete_event_job.rb +2 -2
  26. data/app/models/concerns/sufia/solr_document_behavior.rb +5 -0
  27. data/app/views/_user_util_links.html.erb +5 -5
  28. data/app/views/catalog/_results_pagination.html.erb +1 -1
  29. data/app/views/catalog/_search_form.html.erb +56 -28
  30. data/app/views/collections/_dashboard_document_list.html.erb +1 -1
  31. data/app/views/collections/_document_list.html.erb +1 -1
  32. data/app/views/collections/edit.html.erb +8 -11
  33. data/app/views/collections/show.html.erb +2 -2
  34. data/app/views/collections/show_fields/_creator.html.erb +11 -0
  35. data/app/views/collections/show_fields/_description.html.erb +8 -0
  36. data/app/views/collections/show_fields/_title.html.erb +8 -0
  37. data/app/views/dashboard/_index_partials/_stats.html.erb +16 -0
  38. data/app/views/dashboard/_index_partials/_user_info.html.erb +18 -0
  39. data/app/views/dashboard/index.html.erb +51 -19
  40. data/app/views/generic_files/_show_descriptions.html.erb +11 -10
  41. data/app/views/generic_files/show.html.erb +1 -1
  42. data/app/views/generic_files/show_fields/_based_near.html.erb +7 -0
  43. data/app/views/generic_files/show_fields/_contributor.html.erb +7 -0
  44. data/app/views/generic_files/show_fields/_creator.html.erb +7 -0
  45. data/app/views/generic_files/show_fields/_date_created.html.erb +7 -0
  46. data/app/views/generic_files/show_fields/_default.html.erb +6 -12
  47. data/app/views/generic_files/show_fields/_description.html.erb +7 -0
  48. data/app/views/generic_files/show_fields/_identifier.html.erb +4 -0
  49. data/app/views/generic_files/show_fields/_language.html.erb +4 -0
  50. data/app/views/generic_files/show_fields/_publisher.html.erb +7 -0
  51. data/app/views/generic_files/show_fields/_related_url.html.erb +6 -0
  52. data/app/views/generic_files/show_fields/_resource_type.html.erb +4 -0
  53. data/app/views/generic_files/show_fields/_rights.html.erb +4 -0
  54. data/app/views/generic_files/show_fields/_subject.html.erb +7 -0
  55. data/app/views/generic_files/show_fields/_tag.html.erb +4 -0
  56. data/app/views/generic_files/show_fields/_title.html.erb +7 -0
  57. data/app/views/generic_files/upload/_form_fields.html.erb +4 -5
  58. data/app/views/generic_files/upload/_script_templates.html.erb +1 -2
  59. data/app/views/layouts/sufia-dashboard.html.erb +16 -30
  60. data/app/views/mailbox/_notifications.html.erb +21 -0
  61. data/app/views/mailbox/index.html.erb +2 -23
  62. data/app/views/{dashboard → my}/_action_menu.html.erb +0 -0
  63. data/app/views/{dashboard → my}/_batch_edits_actions.html.erb +0 -0
  64. data/app/views/{dashboard → my}/_collection_action_menu.html.erb +0 -0
  65. data/app/views/{dashboard → my}/_did_you_mean.html.erb +0 -0
  66. data/app/views/my/_document_list.html.erb +4 -0
  67. data/app/views/{dashboard → my}/_facet_layout.html.erb +0 -0
  68. data/app/views/{dashboard → my}/_facet_limit.html.erb +0 -0
  69. data/app/views/{dashboard → my}/_facet_pagination.html.erb +0 -0
  70. data/app/views/{dashboard → my}/_facet_selected.html.erb +0 -0
  71. data/app/views/{dashboard → my}/_facets.html.erb +0 -0
  72. data/app/views/{dashboard → my}/_index_partials/_default_group.html.erb +2 -2
  73. data/app/views/{dashboard → my}/_index_partials/_list_collections.html.erb +0 -0
  74. data/app/views/{dashboard → my}/_index_partials/_list_files.html.erb +0 -0
  75. data/app/views/{dashboard → my}/_results_pagination.html.erb +0 -0
  76. data/app/views/my/_scripts.js.erb +11 -0
  77. data/app/views/{dashboard → my}/_sort_and_per_page.html.erb +0 -0
  78. data/app/views/{dashboard → my}/facet.html.erb +0 -0
  79. data/app/views/{dashboard/lists → my}/index.html.erb +4 -20
  80. data/app/views/users/_user_info.html.erb +1 -1
  81. data/config/initializers/sufia_events.rb +19 -2
  82. data/config/locales/sufia.en.yml +27 -2
  83. data/config/routes.rb +7 -11
  84. data/lib/generators/sufia/sufia_generator.rb +15 -0
  85. data/lib/generators/sufia/templates/catalog_controller.rb +14 -14
  86. data/lib/sufia.rb +1 -0
  87. data/lib/sufia/version.rb +1 -1
  88. data/spec/controllers/catalog_controller_spec.rb +7 -16
  89. data/spec/controllers/dashboard_controller_spec.rb +63 -30
  90. data/spec/controllers/generic_files_controller_spec.rb +1 -1
  91. data/spec/controllers/{dashboard → my}/collections_controller_spec.rb +1 -15
  92. data/spec/controllers/my/files_controller_spec.rb +68 -0
  93. data/spec/controllers/{dashboard → my}/highlights_controller_spec.rb +1 -15
  94. data/spec/controllers/{dashboard → my}/shares_controller_spec.rb +1 -15
  95. data/spec/controllers/my_controller_spec.rb +9 -0
  96. data/spec/features/browse_dashboard_files_spec.rb +72 -26
  97. data/spec/features/collection_spec.rb +2 -4
  98. data/spec/features/display_dashboard_spec.rb +20 -26
  99. data/spec/features/search_spec.rb +25 -13
  100. data/spec/helpers/dashboard_helper_spec.rb +41 -0
  101. data/spec/helpers/sufia_helper_spec.rb +104 -3
  102. data/spec/jobs/event_jobs_spec.rb +1 -1
  103. data/spec/models/generic_file/web_form_spec.rb +3 -4
  104. data/spec/models/generic_file_spec.rb +47 -43
  105. data/spec/routing/route_spec.rb +10 -14
  106. data/spec/views/batch_edits/check_all_spec.rb +4 -4
  107. data/spec/views/catalog/sort_and_per_pange.html.erb_spec.rb +27 -0
  108. data/spec/views/dashboard/index_spec.rb +105 -0
  109. data/spec/views/{dashboard → my}/facet_limit.html.erb_spec.rb +2 -2
  110. data/sufia-models/app/actors/sufia/generic_file/actor.rb +23 -3
  111. data/sufia-models/app/models/concerns/sufia/generic_file.rb +0 -5
  112. data/sufia-models/app/models/concerns/sufia/generic_file/metadata.rb +9 -2
  113. data/sufia-models/app/models/concerns/sufia/generic_file/web_form.rb +2 -2
  114. data/sufia-models/app/models/datastreams/generic_file_rdf_datastream.rb +1 -1
  115. data/sufia-models/app/services/sufia/noid.rb +21 -16
  116. data/sufia-models/lib/generators/sufia/models/install_generator.rb +2 -16
  117. data/sufia-models/lib/generators/sufia/models/templates/config/sufia.rb +23 -0
  118. data/sufia-models/lib/sufia/models/version.rb +1 -1
  119. data/sufia-models/sufia-models.gemspec +1 -1
  120. data/vendor/assets/javascripts/fileupload/jquery.fileupload-ui.js +18 -10
  121. metadata +68 -45
  122. data/app/assets/images/glyphicons-halflings-white.png +0 -0
  123. data/app/assets/images/glyphicons-halflings.png +0 -0
  124. data/app/controllers/dashboard/lists_controller.rb +0 -13
  125. data/app/views/dashboard/_constraints.html.erb +0 -6
  126. data/app/views/dashboard/_document_list.html.erb +0 -4
  127. data/app/views/dashboard/_heading.html.erb +0 -1
  128. data/app/views/dashboard/_search_form.html.erb +0 -14
  129. data/app/views/dashboard/_show_partials/_default.html.erb +0 -20
  130. data/app/views/dashboard/_show_partials/_default_details.html.erb +0 -15
  131. data/app/views/dashboard/_show_partials/_facets.html.erb +0 -87
  132. data/app/views/generic_files/_field_display.html.erb +0 -12
  133. data/spec/controllers/dashboard/files_controller_spec.rb +0 -71
@@ -1,15 +0,0 @@
1
- <%# default partial to display solr document fields in catalog show view -%>
2
- <div>
3
- <dl class="defList">
4
- <dt>Date: </dt>
5
- <dd><%= render_document_show_field_value(document: document, field: "date_t") %></dd>
6
- <dt>Title: </dt>
7
- <dd><%= render_document_show_field_value(document: document, field: "title_t") %></dd>
8
- <dt>Document Type: </dt>
9
- <dd><%= render_document_show_field_value(document: document, field: "medium_t") %></dd>
10
- <dt>Location: </dt>
11
- <dd><%= render_document_show_field_value(document: document, field: "location_t") %></dd>
12
- <dt>Date: </dt>
13
- <dd><%= render_document_show_field_value(document: document, field: "date_t") %></dd>
14
- </dl>
15
- </div>
@@ -1,87 +0,0 @@
1
- <% facets_display_heading ||= "" %>
2
- <% # main container for facets/limits menu -%>
3
- <div id="facets">
4
- <h2><%=h facets_display_heading %></h2>
5
- <% facet_field_names.each do |solr_fname| %>
6
- <div>
7
- <% display_facet = @response.facets.detect {|f| f.name == solr_fname} -%>
8
- <%#- raise solr_fname.inspect unless display_facet -%>
9
- <% if display_facet && display_facet.items.length > 0 %>
10
- <h3 class="facet_selected"><%= facet_field_labels[solr_fname] -%></h3>
11
- <ul>
12
- <% item_counter = 0 %>
13
- <% display_facet.items.each do |item| -%>
14
- <% if item.hits > 0 %>
15
- <% facet_count_for_value = facet_value_hits(@facet_lookup, solr_fname, item.value) %>
16
- <% if facet_in_params? solr_fname, item.value %>
17
- <li>
18
- <span class="selected"><%= h(item.value) %> (<%= format_num facet_count_for_value %>)</span>
19
- <% link_options = remove_facet_params(solr_fname, item.value, params).merge!({ controller: "catalog", action: "index" }) %>
20
- [<%= link_to 'remove', url_for(link_options), class: 'remove' %>]
21
- </li>
22
- <% else %>
23
- <%- if item_counter > Blacklight.config[:facet_more_num] - 1 -%>
24
- <li class="more">
25
- <%- else -%>
26
- <li>
27
- <%- end -%>
28
- <h3 class="facet_selected"><%= facet_field_labels[solr_fname] -%></h3>
29
- <ul>
30
- <% item_counter = 0 %>
31
- <% display_facet.items.each do |item| -%>
32
- <% if item.hits > 0 %>
33
- <% facet_count_for_value = facet_value_hits(@facet_lookup, solr_fname, item.value) %>
34
- <% if facet_in_params? solr_fname, item.value %>
35
- <li>
36
- <span class="selected"><%= h(item.value) %> (<%= format_num facet_count_for_value %>)</span>
37
- <% link_options = remove_facet_params(solr_fname, item.value, params).merge!({ controller: "catalog", action: "index" }) %>
38
- [<%= link_to 'remove', url_for(link_options), class: 'remove' %>]
39
- </li>
40
- <% else %>
41
- <%- if item_counter > Blacklight.config[:facet_more_num]-1 -%>
42
- <li class="more">
43
- <%- else -%>
44
- <li>
45
- <%- end -%>
46
- <% link_options = add_facet_params(solr_fname, item.value).merge!({ controller: "catalog", action: "index" }) %>
47
- <%= link_to h(item.value), url_for(link_options) %> (<%= format_num facet_count_for_value %>)
48
- </li>
49
- <% end -%>
50
- <% end -%>
51
- <% item_counter += 1 %>
52
- <% end %>
53
- <%= display_facet.items.length >
54
- Blacklight.config[:facet_more_num] ? "<li class='more_li'><a href=''
55
- class='more_link'
56
- title='more
57
- #{pluralize(2,
58
- facet_field_labels[solr_fname])[2..-1].downcase}'>more<span class='off_screen'>
59
- #{pluralize(2,
60
- facet_field_labels[solr_fname])[2..-1].downcase}</span></a></li>"
61
- : "" %>
62
- <%= display_facet.items.length >
63
- Blacklight.config[:facet_more_num] ? "<li class='less_li'
64
- style='display:none;'><a href=''
65
- class='more_link'
66
- title='less
67
- #{pluralize(2,
68
- facet_field_labels[solr_fname])[2..-1].downcase}'>less<span class='off_screen'>
69
- #{pluralize(2,
70
- facet_field_labels[solr_fname])[2..-1].downcase}</span></a></li>"
71
- : "" %>
72
- </ul>
73
- <% end %>
74
- </div>
75
- <% end %>
76
- </div>
77
- <script type="text/javascript">
78
- $(".more").toggle();
79
- $('.more_link').each(function(){
80
- $(this).click(function(){
81
- $(this).parent().parent().children("li.more").toggle();
82
- $(this).parent().parent().children("li.more_li").toggle();
83
- $(this).parent().parent().children("li.less_li").toggle();
84
- return false;
85
- });
86
- });
87
- </script>
@@ -1,12 +0,0 @@
1
- <% vals = Array(generic_file[key]) %>
2
- <tr>
3
- <th><%= get_label(key) %></th>
4
- <td>
5
- <% vals.each do |v| %>
6
- <span itemprop="name">
7
- <%= v %>
8
- </span>
9
- <br />
10
- <% end %>
11
- </td>
12
- </tr>
@@ -1,71 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Dashboard::FilesController do
4
- describe "logged in user" do
5
- before (:each) do
6
- @user = FactoryGirl.find_or_create(:archivist)
7
- sign_in @user
8
- end
9
-
10
- describe "#index" do
11
- before do
12
- GenericFile.destroy_all
13
- Collection.destroy_all
14
- @my_file = FactoryGirl.create(:generic_file, depositor: @user)
15
- @my_collection = Collection.new(title: "test collection").tap do |c|
16
- c.apply_depositor_metadata(@user.user_key)
17
- end
18
- @my_collection.save!
19
- @shared_file = FactoryGirl.build(:generic_file).tap do |r|
20
- r.apply_depositor_metadata FactoryGirl.create(:user)
21
- r.edit_users += [@user.user_key]
22
- r.save!
23
- end
24
- @unrelated_file = FactoryGirl.create(:generic_file, depositor: FactoryGirl.create(:user))
25
- @wrong_type = Batch.create
26
- end
27
-
28
- it "should respond with success" do
29
- get :index
30
- expect(response).to be_successful
31
- expect(response).to render_template('dashboard/lists/index')
32
- end
33
-
34
- it "sets the controller name" do
35
- expect(controller.controller_name).to eq :dashboard
36
- end
37
-
38
- it "should paginate" do
39
- FactoryGirl.create(:generic_file)
40
- FactoryGirl.create(:generic_file)
41
- get :index, per_page: 2
42
- expect(assigns[:document_list].length).to eq 2
43
- get :index, per_page: 2, page: 2
44
- expect(assigns[:document_list].length).to be >= 1
45
- end
46
-
47
- it "shows the correct files" do
48
- get :index
49
- # shows documents I deposited
50
- expect(assigns[:document_list].map(&:id)).to include(@my_file.id)
51
- # doesn't show collections
52
- expect(assigns[:document_list].map(&:id)).to_not include(@my_collection.id)
53
- # doesn't show shared files
54
- expect(assigns[:document_list].map(&:id)).to_not include(@shared_file.id)
55
- # doesn't show other users' files
56
- expect(assigns[:document_list].map(&:id)).to_not include(@unrelated_file.id)
57
- # doesn't show non-generic files
58
- expect(assigns[:document_list].map(&:id)).to_not include(@wrong_type.id)
59
- end
60
- end
61
- end
62
-
63
- describe "not logged in as a user" do
64
- describe "#index" do
65
- it "should return an error" do
66
- get :index
67
- expect(response).to be_redirect
68
- end
69
- end
70
- end
71
- end